2017-05-24 3 views
0

私はmagentoで製品をインポートしたいと思います。ここではスクリプトは次のとおりです。スクリプトでMagentoの製品をインポートできません

<?php 

$mageFilename = 'app/Mage.php'; 
require_once $mageFilename; 
ini_set('display_errors', 1); 
umask(0); 
Mage::app('admin'); 
Mage::register('isSecureArea', 1); 

$product = Mage::getModel('catalog/product'); 

$product->setSku("ABC123"); 
$product->setName("Name"); 
$product->setDescription("Desc."); 
$product->setShortDescription("Desc2."); 
$product->setPrice(70.50); 
$product->setTypeId('simple'); 
$product->setAttributeSetId(9); 
$product->setCategoryIds("20,24"); 
$product->setWeight(1.0); 
$product->setTaxClassId(2); 
$product->setVisibility(4); 
$product->setStatus(1); 

$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId())); 

$product->save();  

?> 

問題が結果です:

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 (magento . catalog_product_entity , CONSTRAINT FK_CAT_PRD_ENTT_ATTR_SET_ID_EAV_ATTR_SET_ATTR_SET_ID FOREIGN KEY (attribute_set_id) REFERENCES eav_attribute_set (attribute_set_i)' in /home/zelewe3k/public_html/lib/Zend/Db/Statement/Pdo.php:228 Stack trace: #0 /home/zelewe3k/public_html/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) #1 /home/zelewe3k/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array) #2 /home/zelewe3k/public_html/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array) #3 /home/zelewe3k/public_html/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array) #4 /home/zelewe3k/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO ca...', Array) #5 /home/zelewe3k/pu in /home/zelewe3k/public_html/lib/Zend/Db/Statement/Pdo.php on line 234

私は何ができますか? これを修正する方法!?

+0

を試しセットんですか?属性のチェックが存在しない設定のように見えますか既存の製品であれば属性セットを変更できるはずです - それは 'DELETE'や' UPDATE'の 'CASCADE'に設定されていますが、データベースに残されているような混乱を考えるのは恐ろしいことです。あなたはおそらく*システム - >インポート/エクスポート - >データフロープロファイル*を使用する方が良いでしょう。 – CD001

答えて

0

その属性がID 9がしなさい、あなたがこの新製品である場合はセットIDは、属性が実際に存在9` `Magentoの中に存在するか

$product->setAttributeSetId(4); 
関連する問題