Cách lập trình đặt thuộc tính đa lựa chọn của sản phẩm theo nhãn


16

Nếu có thuộc tính multiselect và muốn đặt lựa chọn trên một sản phẩm.

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

Làm thế nào tôi có thể làm điều đó?

Câu trả lời:


24

Nhiều thuộc tính có thể được đặt thành một danh sách được phân tách bằng dấu phẩy (hoặc cũng là một mảng) có chứa các giá trị id thuộc tính.

Vì vậy, trước tiên chúng ta phải chuyển đổi các giá trị thực tế thành id nội bộ của 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();

Điều này không hoạt động, trang tiếp tục tải với mã này
Mp de la Vega

2

Sửa đổi dòng cuối cùng của đoạn mã trên

$product->save();

với

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

Nó hoạt động

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.