我正在尝试按照此链接以编程方式添加前端产品:
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 :(得分:1)
http://www.fontis.com.au/blog/magento/add-product-custom-options
注意:强>
上面的链接做了我想要它做的事情。但有一点需要注意,您必须将自定义选项添加到已存在/已保存的产品中。
答案 1 :(得分:0)
我有类似的问题。原来,自动生成的SKU在某种程度上无效或未正确保存在我为测试创建的新产品上。该产品并非无效,因为它在第一时间保存得当,但是当我通过CMS重新访问产品并尝试点击"保存并继续"它突然促使我进入SKU。当我重新进入自动生成的sku时,它有效!
所以简短的回答是:检查您的产品是否存在该SKU编号。如果是,请重新检查SKU是否正确保存。