2012-08-06 67 views
0

我试图从前端添加产品编程访问以下网址:在自定义模块前端控制器中以编程方式向产品添加自定义选项?

Magento: Adding new products programmatically

,但我希望把它扩大到太添加自定义选项,以它。而我下面的代码添加到它

$options = array(); 
     $options[$sku] = array(
     'title' => 'Option Title', 
     'type' => 'radio', 
     'is_require' => 1, 
     'sort_order' => 0, 
     'values' => array() 
     ); 
     $options[$addvp['product']['sku']]['values'][] = array(
     'title' => 'Option Value 1', 
     'price' => 0.00, 
     'price_type' => 'fixed', 
     'sku' => '', 
     'sort_order' => '1' 
     ); 
     $options[$sku]['values'][] = array(
     'title' => 'Option Value 2', 
     'price' => 89.00, 
     'price_type' => 'fixed', 
     'sku' => '', 
     'sort_order' => '1' 
     ); 

    foreach($options as $sku => $option) { 
     $id = Mage::getModel('catalog/product')->getIdBySku($sku); 
     $product = Mage::getModel('catalog/product')->load($id); 

     if(!$product->getOptionsReadonly()) { 
     $product->setProductOptions(array($option)); 
     $product->setCanSaveCustomOptions(true); 
     //$product->save(); 
     } 
    } 

但它打印此错误,而不是将自定义选项添加到产品。

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`vendor`.`catalog_product_entity`, CONSTRAINT `FK_CAT_PRD_ENTT_ATTR_SET_ID_EAV_ATTR_SET_ATTR_SET_ID` FOREIGN KEY (`attribute_set_id`) REFERENCES `eav_attribute_set` (`attribute_set_id`) ON DEL) 

回答

0

我有一个类似的问题。结果发现自动生成的SKU在某种程度上无效或者未正确保存在我为测试而创建的新产品上。该产品并非无效,因为它在第一时间保存正确,但当我通过CMS重新访问产品并尝试点击“保存并继续”时,它突然提示我输入SKU。当我重新进入自动生成的SKU它工作!

所以简短的回答是:通过该SKU编号检查您的产品是否存在。如果是,请重新检查SKU是否正确保存。

相关问题