While creating product, at the last step after retrieving for a time, Magento gives following error-:
SQLSTATE[23000]: Integrity constraint violation:
Many time this error is caused when you update a product in your custom module's observer as shown below.
class [NAMESPACE]_[MODULE NAME]_Model_Observer
{
/**
* Flag to stop observer executing more than once
*
* @var static bool
*/
static protected $_singletonFlag = false;
public function saveProductData(Varien_Event_Observer $observer)
{
if (!self::$_singletonFlag) {
self::$_singletonFlag = true;
$product = $observer->getEvent()->getProduct();
//do stuff to the $product object
// $product->save(); // commenting out this line prevents the error
$product->getResource()->save($product);
}
}
Hence whenever you save your product after updating some properties in your module's observer use $product->getResource()->save($product) instead of $product->save()