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.

2 Answers 2

$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.

  • Hurray, This solve my issue.Thumbs up
    – Anees
    Feb 22, 2019 at 12:36

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;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.