2014-11-06 168 views
1

在我的模塊中,客戶可以將產品添加到商店,它將通過單獨的數據庫傳遞。 當管理員檢查產品並驗證產品時,我將信息更改爲prestashop產品。PRESTASHOP 1.6以編程方式將產品類別添加到產品

所以我有這樣的代碼:

$object = new Product(); 
$object->price = 32; 
$object->id_tax_rules_group = 0; 
$object->name = array((int)Configuration::get('PS_LANG_DEFAULT') => $creation['title']); 
$object->id_manufacturer = 0; 
$object->id_supplier = 0; 
$object->quantity = 1; 
$object->minimal_quantity = 1; 
$object->additional_shipping_cost = 0; 
$object->wholesale_price = 0; 
$object->ecotax = 0; 
$object->out_of_stock = 0; 
$object->available_for_order = 1; 
$object->show_price = 1; 
$object->on_sale = 1; 
$object->online_only = 1; 
$object->meta_keywords = $creation['title']; 
$object->active = 1; 
$object->description_short = array((int)(Configuration::get('PS_LANG_DEFAULT')) => $creation['description']); 
$object->link_rewrite = array((int)(Configuration::get('PS_LANG_DEFAULT')) => $creation['title']); 

$object->id_category = 2; 
$object->id_category_default = 2; 
$object->addToCategories(array(2,13)); 

//SAVE 
$object->save() 

產品被保存,具有良好的信息,但它沒有與任何一個類別。 當我去我的頁面產品,我可以看到所有的產品,我看到我的產品和類別在那裏,但是當我輸入產品的細節,我去類別列表沒有什麼是檢查。

我想看到更多的是什麼happenning的代碼,我看到這個:

if (!in_array($new_id_categ, $current_categories)) 
    $product_cats[] = array(
    'id_category' => (int)$new_id_categ, 
    'id_product' => (int)$this->id, 
    'position' => (int)$new_categ_pos[$new_id_categ], 
); 

和測試後的「如果」始終是真實的,因此該產品是永遠不會產生關聯。 我有檢查,此關聯不存在。

我不知道下一步該怎麼做,或者也許我需要不使用addToCategory,也許將數據輸入自己...

所以請幫助表示感謝。

回答

1

方法addToCategories()將類別分配給已創建的產品。換句話說,您需要在調用addToCategories()之前調用Product類的save()方法;

+0

我已經嘗試過,並且表明那一個,但我再次嘗試,你是對的,不知道我第一次錯過了什麼,但你只是救了我:)非常感謝 – 2014-11-06 13:19:12

相關問題