Cómo mediante programación fija de un producto de múltiples Seleccionar atributo de etiquetas
-
16-10-2019 - |
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?
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