में प्रोग्रामेटिक रूप से अद्यतन उत्पादों को अद्यतन करें मैं एक स्क्रिप्ट पर काम कर रहा हूं जो मेरे कैटलॉग में उत्पादों को बना या अपडेट करेगा।
स्क्रिप्ट ठीक काम करता है जब उत्पाद बनाने की आवश्यकता है, लेकिन यह विफल रहता है जब उत्पाद पहले से ही मुझे (कई बार) निम्न संदेश दे रही है डेटाबेस में मौजूद है:Magento
2011-09-30T08:00:53+00:00 ERR (3): Recoverable Error: Argument 3 passed to Mage_Catalog_Model_Resource_Eav_Mysql4_Abstract::_canUpdateAttribute() must be an array, null given, called in ...
2011-09-30T08:00:53+00:00 ERR (3): Recoverable Error: Argument 3 passed to Mage_Eav_Model_Entity_Abstract::_canUpdateAttribute() must be an array, null given, called in ...
2011-09-30T08:00:53+00:00 ERR (3): Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in ...
मैं विधि को देखकर किया गया है संदेश में उद्धृत, लेकिन मुझे कोई कारण नहीं मिला कि स्क्रिप्ट विफल क्यों होती है।
स्क्रिप्ट पहले का उपयोग कर एक उत्पाद लोड करने का प्रयास:
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
और फिर परीक्षण उत्पाद एक सरल if(!$product) { //creation }
का उपयोग कर लिया गया था कि।
यदि कथन का पालन करने वाले सभी कोड को सृजन या अद्यतन के लिए साझा किया गया है और उत्पाद ऑब्जेक्ट पर सेटटर कॉल शामिल हैं।
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
if(!$product) {
// the product doesn't exist yet
$product = new Mage_Catalog_Model_Product();
$product->setSku($sku);
$product->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_SIMPLE);
$product->setCreatedAt(strtotime('now'));
}
// setters calls
$product->setTeinte(trim((string)$record->web_teinte));
// ...
// finally save the product
$product->save();
हो सकता है कि कोई पहले से ही सामना करना पड़ा है एक ही समस्या:
यहाँ कोड मैं का उपयोग करें।
किसी भी मदद का स्वागत है! धन्यवाद।
शायद आप आपकी मदद कर सकते हैं अगर आप अपनी स्क्रिप्ट के प्रासंगिक भाग को पोस्ट करेंगे। विशेष रूप से त्रुटि उत्पन्न करने वाली रेखा सहित, क्योंकि इस समय केवल आप जानते हैं कि कौन सी निर्देश त्रुटि को ट्रिगर करता है। –
यह सही है, मैं सवाल संपादित कर दूंगा। धन्यवाद। –
मुझे पता है कि त्रुटि '$ product-> save() से आती है; 'लेकिन मुझे नहीं पता क्यों। जब मैं उत्पाद लॉग करता हूं तो मुझे लगता है कि यह सही ढंग से लोड हो गया है। मैंने सोचा था कि 'सेव()' विधि के लिए एक सरल कॉल अद्यतन –