Como definir programaticamente o atributo de seleção múltipla de um produto por rótulos


16

Se tiver um atributo de seleção múltipla e desejar definir a seleção em um produto.

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

Como eu posso fazer isso?

Respostas:


24

Os atributos de seleção múltipla podem ser definidos como uma lista separada por vírgula (ou também uma matriz) contendo os IDs de valor do atributo.

Então, primeiro temos que converter os valores reais nos IDs internos do 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();

isso não está funcionando, a página é manter a carga com este código
Mp de la Vega

2

Modifique a última linha do código acima

$product->save();

com

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

Funciona

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.