我有一個類似萬阿英,蔣達清到Integrity constraint violation creating Product in Magento(未回答),但我創建掛鉤插入catalog_product_save_after事件定製的觀測 - 基於此教程:http://fishpig.co.uk/blog/custom-tabs-magento-product-admin.html完整性約束違反Magento的自定義模塊
但是每當有新產品救了我得到這個錯誤:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '22-1' for key 'UNQ_CATALOGINVENTORY_STOCK_ITEM_PRODUCT_ID_STOCK_ID'
config.xml文件看起來是這樣的:
<adminhtml>
<events>
<catalog_product_save_after>
<observers>
<a1web_save_product_data>
<type>singleton</type>
<class>metricimperial/observer</class>
<method>saveProductData</method>
</a1web_save_product_data>
</observers>
</catalog_product_save_after>
</events>
</adminhtml>
的outli之類的NE是這樣的:
<?php
class A1web_MetricImperialConverter_Model_Observer
{
/**
* Flag to stop observer executing more than once
*
* @var static bool
*/
static protected $_singletonFlag = false;
* @param Varien_Event_Observer $observer
*/
public function saveProductData(Varien_Event_Observer $observer)
{
if (!self::$_singletonFlag) {
self::$_singletonFlag = true;
$product = $observer->getEvent()->getProduct();
//Custom updates made to product object here
$product->save();
}
catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
}
}
}
/**
* Retrieve the product model
*
* @return Mage_Catalog_Model_Product $product
*/
public function getProduct()
{
return Mage::registry('product');
}
/**
* Shortcut to getRequest
*
*/
protected function _getRequest()
{
return Mage::app()->getRequest();
}
}
產品與定製產品數據我加入正確保存 - 而一旦產品被保存在錯誤在後續不會出現同一產品的節省。只是在產品首次創建時發生錯誤。
在此先感謝
在產品保存期間調用產品保存有點奇怪。你的觀察者究竟做了什麼?模塊名稱只是部分揭示其功能。使用屬性後端模型,您嘗試完成的任務可能可能/更好地完成。 – benmarks
基本上@benmark說什麼。進行更改但不要求保存,magento會爲你做。你可能想澄清你想要做什麼。 –
@DanielSloof他必須保存,這是事後觀察保存。 – benmarks