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?

È stato utile?

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
scroll top