Проблема с прикреплением атрибута продукта к цитате/пункту заказа

magento.stackexchange https://magento.stackexchange.com/questions/8423

Вопрос

Я следую за это руководство (Атрибут продукта для цитирования элемента и элемента заказаОднако по какой -то причине я не могу получить свой атрибут в своем наблюдателе. Мой атрибут, который я создал, называется «бюджетный код» и назначен продукту, который я пытаюсь купить. В моем наблюдателе я пытаюсь использовать ту же теорию, что и приведенный выше пост, однако мой атрибут «бюджетный код» кажется настолько глубоким в схеме, что я не могу его получить. Я сделал Zend_Debug::dump($item) И можно увидеть огромный результат (слишком большой, чтобы вставить) с помощью моего бюджетного кода, показанного вниз, проблема в том, что я не могу получить его.

Наблюдатель.php

class Bendart_BudgetCode_Model_Observer extends Varien_Event_Observer
{
    public function setBudgetCodeAttribute(Varien_Event_Observer $observer)
    {
        $item = $observer->getQuoteItem();
        Zend_Debug::dump($item);
        $product = $observer->getProduct();
        $item->setBudgetCode($product->getBudgetCode());
        return $this;
    }
}

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Bendart_BudgetCode>
            <version>0.1.0</version>
        </Bendart_BudgetCode>
    </modules>
    <global>
        <fieldsets>
            <sales_convert_quote_item>
                <budgetcode>
                    <to_order_item>*</to_order_item>
                </budgetcode>
            </sales_convert_quote_item>
        </fieldsets>

        <sales>
            <quote>
                <item>
                    <product_attributes>
                        <budgetcode />
                    </product_attributes>
                </item>
            </quote>
        </sales>

        <events>
            <sales_quote_item_set_product>
                <observers>
                    <Bendart_BudgetCode>
                        <class>Bendart_BudgetCode_Model_Observer</class>
                        <method>setBudgetCodeAttribute</method>
                    </Bendart_BudgetCode>
                </observers>
            </sales_quote_item_set_product>
        </events>
    </global>
</config>

Любая помощь ценится.

Это было полезно?

Решение

Camelcase важен в волшебных геттерах/сеттерах

Вы упоминаете, что ваш атрибут называется «бюджетный код», но вы используете getBudgetCode () - который будет переведен в атрибут с именем Budge_Code.

Если вы атрибут называется бюджетным кодом, вам нужно использовать getBudgetCode ()

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top