Programmgesteuertes Festlegen des Mehrfachauswahlattributs eines Produkts nach Bezeichnungen


16

Wenn Sie ein Mehrfachauswahl-Attribut haben und die Auswahl für ein Produkt festlegen möchten.

$selectedOptions = "red,green,blue";
$product->..... // # what to do?

Wie kann ich das machen?

Antworten:


24

Mehrfachauswahlattribute können als durch Kommas getrennte Liste (oder auch als Array) mit den Attributwert-IDs festgelegt werden.

Also müssen wir zuerst 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();

dies funktioniert nicht, die Seite wird mit diesem Code weiter
geladen

2

Ändern Sie die letzte Zeile des obigen Codes

$product->save();

mit

$product->getResource()->saveAttribute($product, $attrCode);

Es klappt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.