GetAttributeText Magento не соответствует - PullRequest
0 голосов
/ 16 марта 2011

Я пытаюсь написать собственную логику для просмотра и поиска в магазине Magento.

Итак, я решил перезаписать getProductCollection для Mage_Catalog_Model_Layer и Mage_CatalogSearch_Model_Layer.

Я пытаюсь принимать решения на основе значения определенных атрибутов для некоторых продуктов в коллекции, но я не могу получить текстовое значение всех атрибутов.

Функция, которую я перезаписал:

public function getProductCollection()
{
    if (isset($this->_productCollections[$this->getCurrentCategory()->getId()])) {
        $collection = $this->_productCollections[$this->getCurrentCategory()->getId()];
    } else {
        $collection = $this->getCurrentCategory()->getProductCollection();
        $this->prepareProductCollection($collection);
        $this->_productCollections[$this->getCurrentCategory()->getId()] = $collection;
    }

    //ben
    $collection->addAttributeToSelect('parent_sku');
    $collection->addAttributeToSelect('door_color');
    foreach($collection as $product) {
            echo "\nSKU: ".$product->getSku()."\n";
            $product_data = $product->getData();
            if(isset($product_data['parent_sku']) && ($product_data['parent_sku'] != '')) {
                    echo "GETDATA PARENT: ".$product_data['parent_sku']."\n";
            }
            if($product->getAttributeText('parent_sku') != '') {
                    echo "ATTR TEXT PARENT: ".$product->getAttributeText('parent_sku')."\n";
            }
            if($product->getAttributeText('door_color') != '') {
                    echo "ATTR TEXT COLOR: ".$product->getAttributeText('door_color')."\n";
            }
    }
    //end ben

    return $collection;
}

Это производит вывод как:

SKU: TEST_SKU_1
GETDATA PARENT: TEST_SKU_2
ЦВЕТ ТЕКСТА ATTR: Черный

Примечание:
Я добавляю 'parent_sku' и 'door_color' в качестве атрибутов для выбора.
Я могу получить доступ к door_color, используя $ product-> getAttributeText ()
Я не могу получить доступ к parent_sku, используя $ product-> getAttributeText ()
Я могу получить доступ к parent_sku через $ product-> getData ()

Каждый раз, когда я вызываю $ product-> getAttributeText ('parent_sku'), он возвращает false.

Я предполагал, что это проблема с кэшированием, но я очистил кеш, и это, похоже, не помогло.

Кто-нибудь знает, почему я не могу получить доступ к значению parent_sku через getAttributeText ()?

1 Ответ

1 голос
/ 17 марта 2011

parent_sku реализован как выпадающий список?Насколько я понимаю, getAttributeText загрузил параметры выпадающего меню и сопоставил их и идентификатор для текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...