Pregunta

Si tiene un atributo de selección múltiple y quieren establecer la selección de un producto.

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

¿Cómo puedo hacer eso?

¿Fue útil?

Solución

atributos multiselect se puede configurar como una lista separada por comas (o también una matriz) separada que contiene los identificadores de valor de atributo.

Así que primero tenemos que convertir los valores reales de los identificadores internos de 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();

Otros consejos

Modificar última línea del código anterior

$product->save();

con

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

Funciona

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top