2016-12-20 4 views
0

Я занимаюсь разработкой импортных продуктов cron. В моем коде у меня есть:PrestaShop, назначить поставщика продукта

if ($supplier = Supplier::getIdByName(trim($prodotto['Supplier']['Name']))) { 
    $product->id_supplier = (int)$supplier; 
} else { 
    $supplier = new Supplier(); 
    $supplier->name = $prodotto['Supplier']['Name']; 
    $supplier->active = true; 
    $supplier->add(); 

    $product->id_supplier = (int)$supplier->id; 
    $supplier->associateTo($product->id_shop_list); 

} 

Результат:

  • продукт, созданный
  • поставщик создал
  • продукт без поставщика

Где я ошибаюсь?

ответ

1

Вы должны также добавить новый ProductSupplier, после того, как вы сохранили тот новый продукт использовать этот фрагмент кода (очевидно, адаптировать его к вашим потребностям :)):

// Product supplier 
if (isset($product->id_supplier) && property_exists($product, 'supplier_reference')) 
{ 
    $id_product_supplier = ProductSupplier::getIdByProductAndSupplier((int)$product->id, 0, (int)$product->id_supplier); 
    if ($id_product_supplier) 
     $product_supplier = new ProductSupplier((int)$id_product_supplier); 
    else 
     $product_supplier = new ProductSupplier(); 

    $product_supplier->id_product = $product->id; 
    $product_supplier->id_product_attribute = 0; 
    $product_supplier->id_supplier = $product->id_supplier; 
    $product_supplier->product_supplier_price_te = $product->wholesale_price; 
    $product_supplier->product_supplier_reference = $product->supplier_reference; 
    $product_supplier->save(); 
}