Bagaimana secara terprogram mengatur Atribut Multi-Pilih Produk berdasarkan Label


16

Jika memiliki atribut multiselect dan ingin mengatur pemilihan pada suatu produk.

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

Bagaimana saya bisa melakukan itu?

Jawaban:


24

Atribut multiselect dapat ditetapkan sebagai daftar yang dipisahkan koma (atau juga array) yang berisi id nilai atribut.

Jadi pertama-tama kita harus mengonversi nilai aktual ke id internal 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();

ini tidak berfungsi, halaman terus dimuat dengan kode ini
Mp de la Vega

2

Ubah baris terakhir dari kode di atas

$product->save();

dengan

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

Berhasil

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.