मैं Magento 1.5 प्रोग्रामेटिक रूप से उत्पादों को जोड़ने की कोशिश कर रहा हूं। अंततः मेरी स्क्रिप्ट एक क्रॉन नौकरी होगी, नियमित रूप से अद्यतन और उत्पादों को जोड़ने के रूप में खाता प्रणाली द्वारा आपूर्ति की गई एक एक्सएमएल फ़ाइल द्वारा निर्धारित।Magento: प्रोग्रामिंग के नए उत्पादों को जोड़ना
मुझे नए उत्पादों को बनाने में समस्या है। मेरी स्क्रिप्ट से प्रासंगिक कोड खंड है:
$attributeSetId = 4;
//$newproduct = Mage::getModel('catalog/product');
$newproduct = new Mage_Catalog_Model_Product();
$newproduct->setTypeId('simple');
$newproduct->setWeight($product->UnitWeight);
$newproduct->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$newproduct->setStatus(1);
$newproduct->setSKU($SKU);
$newproduct->setTaxClassId(0);
$newproduct->setWebsiteIDs(array(0));
$newproduct->setStoreIDs(array(1));
$newproduct->setStockData(array(
'is_in_stock' => 1,
'qty' => $XMLproduct->QtyInStock,
'manage_stock' => 1
));
$newproduct->setAttributeSetId(4);
$newproduct->setName($product->Name);
$newproduct->setCategoryIds(array(3)); // array of categories it will relate to
$newproduct->setDescription($product->LongDescription);
$newproduct->setShortDescription($product->Description);
$newproduct->setPrice($XMLproduct->SalePrice);
try {
if (is_array($errors = $newproduct->validate())) {
$strErrors = array();
foreach($errors as $code=>$error) {
$strErrors[] = ($error === true)? Mage::helper('catalog')->__('Attribute "%s" is invalid.', $code) : $error;
}
$this->_fault('data_invalid', implode("\n", $strErrors));
}
$newproduct->save();
} catch (Mage_Core_Exception $e) {
$this->_fault('data_invalid', $e->getMessage());
}
उत्पाद 'आधा' बनाया है, लेकिन स्क्रिप्ट निम्न त्रुटि फेंक देता है:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`LittleDickyBird`.`catalog_category_product_index`, CONSTRAINT `FK_CATALOG_CATEGORY_PROD_IDX_CATEGORY_ENTITY` FOREIGN KEY (`category_id`) REFERENCES `catalog_category_entity` (`entity_id`) ON)' in /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#2 /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#3 /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ca...', Array)
#4 /home/default/littledic in /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Statement/Pdo.php on line 234
किसी को भी, कृपया, किसी भी प्रकाश पर फेंक कर सकते हैं मैं क्या याद कर रहा हूँ या गलत कर रहा हूँ। जैसा कि आप मेरे स्वर से बताने में सक्षम हो सकते हैं, मैं बहुत हताश हूं, इसलिए किसी भी मदद की बहुत सराहना की जाएगी।
आप
एक ऐसी ही समस्या यह है कि MySQL पर InnoDB को चालू करके हल किया गया था था हो जाता है लगता है। शायद वहां जांचना चाहें। उम्मीद है की वो मदद करदे! – Nic
दुर्भाग्यवश, यह समस्या नहीं प्रतीत होती है, क्योंकि InnoDB पहले से सक्रिय है। लेकिन आपकी मदद के लिए धन्यवाद। – AMP
त्रुटि से पता चलता है कि आप एक श्रेणी आईडी का उपयोग करने का प्रयास कर रहे हैं जो मौजूद नहीं है। क्या आप वाकई एक श्रेणी 3 है? – clockworkgeek