質問

I am working on a magento extension that automatically creates products from an import file. Everything is going great, except for one small issue i can't seem to figure out.

I have created a few multiselect attributes for all products, but my setData function does not process multiple values for those attributes. Assigning 1 value is no problem though.

my current code (simplified):

$magentoProductModel->setData('multiselect_attribute', array(1, 3, etc));
$magentoProductModel->save();

This doesn't do anything. When i assign only 1 id like this:

$magentoProductModel->setData('multiselect_attribute', 1);
$magentoProductModel->save();

It will assign the correct value.

But i really want to assign more than 1 value. It isn't a multiselect attribute for nothing.

Methods i have tried so far:

$magentoProductModel->setData('multiselect_attribute', array(1, 3, etc));
$magentoProductModel->save();

$magentoProductModel->setData('multiselect_attribute', [1, 3, etc]);
$magentoProductModel->save();

$multiselect_ids = array(1, 3, etc); 
foreach($multiselect_ids as $multiselect_id) {
  $magentoProductModel->setMultiselectAttribute($multiselect_id);
}
$magentoProductModel->save();

None of the above methods work. Can't seem to figure out the right way to fix this. Does anyone know how to get this to work?

役に立ちましたか?

解決

try with $magentoProductModel->setData('multiselect_attribute', '1,2,3');

I mean, concatenate the values using comma.

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top