Comment définir par programme l'attribut multi-Sélect d'un produit par des étiquettes
-
16-10-2019 - |
Question
Si vous avez un attribut multiselect et que vous souhaitez définir la sélection sur un produit.
$selectedOptions = "red,green,blue";
$product->..... // # what to do?
Comment puis-je faire?
La solution
attributs Multiselect peut être défini comme une liste séparée par des virgules (ou également un tableau) contenant les identifiants de valeur d'attribut.
Alors d'abord, nous devons convertir les valeurs réelles internes ids Magento.
$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();
Autres conseils
Modifier la dernière ligne du code ci-dessus
$product->save();
avec
$product->getResource()->saveAttribute($product, $attrCode);
Il fonctionne
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange