Làm thế nào để có được tất cả các tùy chọn cho tất cả các lượt xem cửa hàng cho một thuộc tính?


13

Tôi đang cố gắng truy xuất tất cả các tùy chọn cho tất cả các lượt xem cửa hàng cho một thuộc tính, ví dụ: color .

Đối với thuộc tính colortôi đã tạo ra hai tùy chọn bluewhite. Tôi đã thử mã sau đây giả sử trả lại tất cả các nhãn tùy chọn cho tất cả các lượt xem cửa hàng, nhưng chỉ trả lại adminnhãn tùy chọn cho tôi.

$option_arr = array();
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'color');
foreach ($attribute->getSource()->getAllOptions(false) as $option) {
  $option_arr[$option['value']] = $option['label'];
}
// $option_arr contains Array([4] => Blue, [3] => White)

Các cách sau hoạt động tốt để nhận tất cả các colortiêu đề thuộc tính cho mỗi lượt xem cửa hàng, nhưng không hoạt động cho các tùy chọn.

$product = Mage::getModel('catalog/product')->load();
$attribute_title = $product->getResource()->getAttribute('color');
// $attribute_title contains Array([1] => ~~~, [2] =>Color, [3] => Couleur, [4] => Còôlòôr)

Ảnh chụp màn hình thuộc tính và tùy chọn màu của tôi.

Câu trả lời:


16
    /**
     * @var $config  Mage_Eav_Model_Config
     * @var $options Mage_Eav_Model_Resource_Entity_Attribute_Option_Collection
     */
    $storeId   = 3;
    $config    = Mage::getModel('eav/config');
    $attribute = $config->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'color');
    $values    = $attribute->setStoreId($storeId)->getSource()->getAllOptions();
    print_r($values);

    //here is another method
    $options = Mage::getResourceModel('eav/entity_attribute_option_collection');
    $values  = $options->setAttributeFilter($attribute->getId())->setStoreFilter($storeId)->toOptionArray();
    print_r($values);

Và làm thế nào để lưu nó vào 1 số lượt xem nhất định?
snh_nl
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.