Frage

Ich folge diesem Leitfaden (Produktattribut zum Zitieren von Artikeln und Bestellelement) Aus irgendeinem Grund scheine ich jedoch nicht in der Lage, mein Attribut in meinem Beobachter abzurufen. Mein von mir erstellter Attribut heißt "BudgetCode" und wird dem Produkt zugeordnet, das ich kaufen möchte. In meinem Beobachter versuche ich, dieselbe Theorie wie der obige Beitrag zu verwenden. Mein "BudgetCode" -attribut erscheint jedoch so tief im Schema, dass ich es nicht abrufen kann. Ich tat Zend_Debug::dump($item) und kann eine massive Ausgabe (zu groß zum Einfügen) mit meinem Budgetcode sehen, das nicht nach unten ist. Ich kann es nicht abrufen.

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>

Jede Hilfe wird geschätzt.

War es hilfreich?

Lösung

Kamelase ist wichtig in den Magic Getters/Setters

Sie erwähnen, dass Ihr Attribut als "BudgetCode" bezeichnet wird, aber Sie verwenden getBudgetCode () - was in ein Attribut namens Budget_Code übersetzt wird.

Wenn Ihr Attribut als BudgetCode bezeichnet wird, müssen Sie GetBudgetCode () verwenden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top