MySQLDB内の製品のリストからMagento1.6.2ストアにいくつかの製品を転送するスクリプトを作成しようとしています。私は次のコードを持っています:
$product = Mage::getModel('catalog/product');
$product->setTypeId('simple');
$product->setWebsiteId("2");
$product->setName($row['name']);
$product->setDescription('No Description');
$product->setShortDescription('No Description');
$product->setAttributeSetId(4); // need to look this up
$product->setSku($sku);
if (isset($row['price'])) $product->setPrice($row['price']);
if (isset($row['msrp'])) $product->setMsrp($row['msrp']);
$product->setCategoryId($map_mysql_cat_to_mage_cat[$row['category_id']]);
$product->setWeight($weight);
$product->setManufacturer($row['manufacturer']);
$product->setTaxClassId(2); // taxable goods
$product->setVisibility(4); // catalog, search
$product->setStatus(1); // enabled
// assign product to the default website
echo "Adding Product...";
$product->save();
echo "Product Added." . PHP_EOL;
これにより、製品がMagentoカタログに正常に追加され、名前、SKU、価格、希望小売価格、および重量が正しく設定されます。
ただし、Manufacturer属性、カテゴリ、およびWebサイトは未設定/空のままです。$ row ['manufacturer']は間違いなく有効な空でない文字列であり、$ map_mysql_cat_to_mage_cat [$row['category_id']]は有効なカテゴリIDに一致する整数に解決されます。
どこがおかしいのか、髪を引き裂いてる!