วิธีรับตัวเลือกทั้งหมดสำหรับมุมมองร้านค้าทั้งหมดสำหรับแอตทริบิวต์เดียวได้อย่างไร


13

colorฉันกำลังพยายามที่จะดึงตัวเลือกทั้งหมดสำหรับมุมมองของร้านค้าทั้งหมดสำหรับแอตทริบิวต์เช่นเดียว

สำหรับแอตทริบิวต์colorผมได้สร้างทางเลือกสองทางและblue whiteฉันลองใช้รหัสต่อไปนี้ซึ่งคาดว่าจะส่งคืนป้ายกำกับตัวเลือกทั้งหมดสำหรับมุมมองร้านค้าทั้งหมด แต่จะส่งคืนadminป้ายตัวเลือกสำหรับฉันเท่านั้น

$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)

ต่อไปนี้ใช้งานได้ดีสำหรับรับcolorชื่อแอตทริบิวต์ทั้งหมดสำหรับแต่ละมุมมองร้านค้า แต่ไม่ทำงานสำหรับตัวเลือก

$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)

สกรีนช็อตของคุณสมบัติสีและตัวเลือกของฉัน

คำตอบ:


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);

และจะบันทึกลงใน 1 storeview ที่แน่นอนได้อย่างไร
snh_nl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.