So setzen Sie das Multi-Select-Attribut eines Produkts programmgesteuert nach Beschriftungen
-
16-10-2019 - |
Frage
Wenn Sie ein Multiselect -Attribut haben und die Auswahl auf einem Produkt festlegen möchten.
$selectedOptions = "red,green,blue";
$product->..... // # what to do?
Wie kann ich das machen?
Lösung
Multiselect -Attribute können als Kommas -Trennungsliste (oder auch als Array) festgelegt werden, das die Attributwert -IDs enthält.
Zuerst müssen wir die tatsächlichen Werte in Magentos interne IDs konvertieren.
$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();
Andere Tipps
Ändern Sie die letzte Zeile des obigen Code
$product->save();
mit
$product->getResource()->saveAttribute($product, $attrCode);
Es klappt
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange