Jak programowo ustawić atrybut wielokrotnego wyboru produktu według etykiet

16

Jeśli masz atrybut wielokrotnego wyboru i chcesz ustawić wybór dla produktu.

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

Jak mogę to zrobić?

Alex
źródło

Odpowiedzi:

24

Atrybuty wielokrotnego wyboru można ustawić jako listę oddzieloną przecinkami (lub również tablicę) zawierającą identyfikatory wartości atrybutów.

Najpierw musimy przekonwertować rzeczywiste wartości na wewnętrzne identyfikatory 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();
Alex
źródło
to nie działa, strona wciąż się ładuje z tym kodem
Netorica,
2

Zmodyfikuj ostatni wiersz powyższego kodu

$product->save();

z

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

To działa

Urocza Arora
źródło