シンプルなインポートスクリプトを作成しましたが、3つのカスタム属性(att1、att2、att3)を他のすべての情報(名前、説明、価格、カテゴリ..)とともにプログラムで保存しようとしています。 )。Magento 1.9.Xはカスタム属性をプログラムで保存します
だから基本的に私が持っている:私はしようと試み
public function insert_product($data) {
$product = Mage::getModel('catalog/product');
try {
$sku = $data['code'];
if ($this->prodottiImportati[$sku]) {
$sku = $data['code'] . '-1';
}
$this->prodottiImportati[$sku] = true;
$product->setSku($sku);
$product->setName($data['name']);
$product->setDescription($data['desc']);
$product->setShortDescription($data['short_desc']);
$product->setManufacturer('');
$product->setPrice($data['price']);
$product->setTypeId('simple');
$product->setAttributeSetId($this->attributeSet);
$categorie = $this->get_categories($data);
$product->setCategoryIds($categorie);
$product->setWeight($data['peso']);
$product->setTaxClassId(2); // taxable goods
$product->setVisibility(4); // catalog, search
$product->setStatus(1); // enabled
$product->setWebsiteIds($data['store_id']);
$stockData = $product->getStockData();
$stockData['qty'] = $data['qty'];
if ($data['quantita'] > 0) {
$stockData['is_in_stock'] = 1;
} else {
$stockData['is_in_stock'] = 0;
}
$stockData['manage_stock'] = 1;
$stockData['use_config_manage_stock'] = 0;
$product->setStockData($stockData);
$product->setIsMassupdate(true)->setExcludeUrlRewrite(true);
$product->save();
$productID = $product->getId();
} catch(Exception $e) {
echo ($e->getMessage());
}
return $productID;
}
まず最初は、IDを使用して、挿入関数が呼び出された後のものを更新する基本的にそう
$productID = $this->insert_product($data);
Mage::getSingleton('catalog/product_action')->updateAttributes(
array($productID), array(
'att1' => $data['att1'],
), $data['store_id']);
を追加した挿入後に得ました。 store_idは、指定された言語のストアのIDです。何も保存しませんでした。
第二にしようと、私はこのfollwed:私はinsert_product関数内でも外で$のproductID =の$ this - > insert_product($データ)の後にあることをしようと試みMagento add custom options with programmatically importing products を。どちらもうまくいかなかった。
最後に私は魔法の$ product-> setAtt1( 'value')を試しました。それで、Magentoがどうやってatt1を設定するのか分かりませんが、わたしはどこかに読んで試してみました)
att1、att2とatt3は小文字で、 althoug彼らは大文字のラベルを持っています(ここでは問題ないと思います)、それらは属性グループの一部です($ product-> setAttributeSetId($ this-> setAttributi)で渡しています)、それらはすべて複数の選択属性ですそれで、私は童話で複数の価値を彼らに渡すことができました。
私は途中で何かが不足していると確信しています。誰も助けることができますか?