ラベル別に製品のマルチ選択属性をプログラム的に設定する方法
-
16-10-2019 - |
質問
マルチセレクト属性があり、製品に選択を設定する場合。
$selectedOptions = "red,green,blue";
$product->..... // # what to do?
どうやってやるの?
解決
マルチセレクト属性は、属性値IDを含むコンマ分離リスト(またはアレイ)として設定できます。
したがって、最初に、実際の値をMagentoの内部IDに変換する必要があります。
$attrCode = 'color_base';
$sourceModel = Mage::getModel('catalog/product')->getResource()
->getAttribute($attrCode)->getSource();
$valuesText = explode(',', 'red,green,blue');
$valuesIds = array_map(array($sourceModel, 'getOptionId'), $valuesText);
$product->setData($attrCode, $valuesIds);
$product->save();
他のヒント
上記のコードの最後の行を変更します
$product->save();
と
$product->getResource()->saveAttribute($product, $attrCode);
できます
所属していません magento.stackexchange