Nhận giá trị tùy chọn quản trị thuộc tính nếu bạn có Id tùy chọn hoặc giá trị xem cửa hàng


7

Tôi đang cố gắng từ nhiều giờ nhưng tôi không thể tải giá trị tùy chọn quản trị viên của một thuộc tính nhất định. Mặc dù tôi có đủ thông tin như tùy chọn_id và lưu trữ giá trị lượt xem:

$attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product','color');
$attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
$attributeOptions = $attribute ->getSource()->getAllOptions();

Bảng tùy chọn thuộc tính (tên: màu) của tôi trông giống như

Quản trị cửa hàng mặc định xem
15 trắng
20 màu vàng
22 màu xanh
45 xanh

Sau đây chỉ cung cấp cho tôi các id tùy chọn:

$colorOfProduct = "white";
$attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product','color');
$attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
$attributeOptions = $attribute ->getSource()->getAllOptions();

foreach ($attributeOptions as $option) {
    if ($option['label'] == $colorOfProduct)
    echo $option['value'];
}

Tôi có giá trị xem cửa hàng mặc định (nghĩa là màu trắng) và cần giá trị Quản trị viên được chỉ định. Thật không may, tôi không hoàn thành nó và đánh giá cao mọi sự giúp đỡ.

Câu trả lời:


4

Để nhận giá trị tùy chọn cho quản trị viên

sau đó bạn có thể nhận được bằng mã bên dưới và Trường hợp 0 ​​là id cửa hàng quản trị

$attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product','color');
 $collection =Mage::getResourceModel('eav/entity_attribute_option_collection')
                ->setPositionOrder('asc')
                ->setAttributeFilter($attributeId)
                ->setStoreFilter(0)
                ->load();
                echo "<pre>";
                print_r($collection->toOptionArray());
                echo "</pre>";

Bạn chỉ cần thay đổi cửa hàng

 view ids on place of 0;

Bạn chỉ cho tôi đi đúng hướng. Cảm ơn rất nhiều vì sự giúp đỡ của bạn! Tôi sẽ đăng giải pháp đầy đủ của tôi vào ngày mai.
Stefan

2

Đây là giải pháp đầy đủ của tôi cho một vấn đề nhất định. Có lẽ ai đó có thể sử dụng nó.

    function getImgColor($productId, $colorOfProduct)
    {
    $optionId = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, 'color', 1);

    $attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product','color');
    $collection = Mage::getResourceModel('eav/entity_attribute_option_collection')
        ->setPositionOrder('asc')
        ->setAttributeFilter($attributeId)
        ->setStoreFilter(0)
        ->load();

    $collection = $collection->toOptionArray();

    foreach ($collection as $option) {
        if ($option['value'] == $optionId) {
            $img = $option["label"];
            break;
        }
    }

    return file_exists(Mage::getBaseDir('media')."/colorall/_thumbs/color/".$img.".png") ? "<img src=\"".Mage::getBaseUrl('media')."colorall/_thumbs/color/".$img.".png\" title=\"".$colorOfProduct."\" />" : Mage::getBaseDir('media')."/colorall/_thumbs/color/".$img.".png";
}

0

Bạn có thể làm điều này đơn giản hơn trong một cuộc gọi như sau:

Ví dụ thuộc tính 'giới tính' để nhận giá trị thuộc tính tùy chỉnh cho và chúng tôi đang sử dụng phương thức ma thuật getGender () để thực hiện tương đương với getData ('giới tính')

$gender = Mage::getModel('catalog/resource_eav_attribute')->loadByCode(Mage_Catalog_Model_Product::ENTITY, 'gender')->getSource()->getOptionText($product->getGender());
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.