次の記事に従うと、Magentoは製品をdouble保存します。
顧客がブログ投稿を製品にリンクできるようにするフィールドを追加しましたが、$product->save()
そこに配置すると、製品が2倍保存されます。また、同時に画像を追加すると(または新製品を作成すると)、画像が2倍になります。
編集:
以下はそれが保存するコードです
public function saveProductTabData(Varien_Event_Observer $observer)
{
if (!self::$_singletonFlag) {
self::$_singletonFlag = true;
$product = $observer->getEvent()->getProduct();
try {
/**
* Perform any actions you want here
*
*/
$customFieldValue = $this->_getRequest()->getPost('blogIDs');
if(!empty($customFieldValue)){$blogIds = implode(',', @$customFieldValue);}
if(!empty($blogIds)) { $product->setBlogids($blogIds); } else { $product->setBlogids('0'); }
/**
* Uncomment the line below to save the product
*
*/
// $product->save();
}
catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
}
}
}
そしてconfig.xmlで
<events>
<catalog_product_save_before>
<observers>
<pmit_save_product_data>
<type>singleton</type>
<class>blogextend/observer</class>
<method>saveProductTabData</method>
</pmit_save_product_data>
</observers>
</catalog_product_save_before>
</events>