Come impostare a livello di codice l'attributo a selezione multipla per etichette


16

Se ha un attributo a selezione multipla e desidera impostare la selezione su un prodotto.

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

Come posso fare ciò?

Risposte:


24

Gli attributi a selezione multipla possono essere impostati come un elenco separato da virgole (o anche un array) contenente gli ID del valore dell'attributo.

Quindi prima dobbiamo convertire i valori effettivi in ​​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();

questo non funziona, la pagina continua a caricarsi con questo codice
Mp de la Vega

2

Modifica l'ultima riga del codice sopra

$product->save();

con

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

Funziona

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.