Question

Can any one help me? When I create simple product in GUI I can set color value by dropdown menu.

My question is: How to assign color value programmatically, when I create simple product? I have spend whole day searching a way do to it.

Was it helpful?

Solution

$attr = $_product->getResource()->getAttribute('color');
$avid = $attr->getSource()->getOptionId('Blue'); //name in Default Store View
$_product->setData('color', $avid);

I found the answer from here for a simple product. I post here the code because the post I am referring to does not point out which Product Attribute value should be used.

OTHER TIPS

I was updating product attributes programmatically and for attributes which have custom options work in this way

if ($color != '') {
 $color_attr = $prod->getResource()->getAttribute('color');
 if ($color_attr->usesSource()) {
  $colour_opt = $color_attr->getSource()->getOptionId($color);
  if ($available_color != $colour_opt) {
   $prod->setData('color', $colour_opt);
   $prod->getResource()->saveAttribute($prod, 'color');
   $notification .= 'Colour is updated for SKU ' . $sku . PHP_EOL;
   }
  }
 }
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top