Come livello di programmazione impostare Multi-Select di un prodotto attributo da etichette
-
16-10-2019 - |
Domanda
Se ha un attributo selezione multipla e si desidera impostare la selezione su un prodotto.
$selectedOptions = "red,green,blue";
$product->..... // # what to do?
Come posso fare questo?
Soluzione
attributi MultiSelect può essere impostato come una virgola elenco (o anche un array) separato contenente gli ID del valore dell'attributo.
Quindi, prima dobbiamo convertire i valori effettivi ID interni di 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();
Altri suggerimenti
Modifica ultima riga del codice di cui sopra
$product->save();
con
$product->getResource()->saveAttribute($product, $attrCode);
Funziona
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange