我正在遵循本指南(产品属性对报价项目和订购项目)但是,无论出于何种原因,我似乎都无法在观察者中检索我的属性。我创建的属性称为“预算代码”,被分配给我要购买的产品。在我的观察者中,我试图使用与上述帖子相同的理论,但是我的“预算代码”属性在模式中显得如此之深,我无法检索它。我做到了 Zend_Debug::dump($item) 并且可以看到我的预算代码向下显示的大量输出(太大而无法粘贴),问题是我似乎无法检索它。

observer.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>

任何帮助都将受到赞赏。

有帮助吗?

解决方案

骆驼在魔术获取器/固定器中很重要

您提到您的属性称为“预算代码”,但您使用的是getBudgetCode() - 它将转化为称为buckity_code的属性。

如果您的属性称为BuffictCode,则需要使用GetBudgetCode()

许可以下: CC-BY-SA归因
scroll top