Domanda

Sto seguendo questa guida ( attributo del prodotto alla voce preventivo e ordine voce ), tuttavia per qualsiasi ragione mi sembra in grado di recuperare il mio attributo nel mio osservatore. Il mio attributo ho creato si chiama "budgetcode" ed è assegnato al prodotto che sto cercando di acquisto. Nel mio osservatore Sto tentando di utilizzare la stessa teoria come il post di cui sopra comunque la mia attributo "budgetcode" appare così profondo all'interno dello schema non posso recuperarla. Ho fatto Zend_Debug::dump($item) e posso vedere un'uscita massiccia (troppo grande per incollare) con la mia budgetcode mostrato fino in fondo, il problema è che non riesco a recuperarlo.

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>

Ogni aiuto è apprezzato.

È stato utile?

Soluzione

CamelCase è importante nel getter magici / setter

menzionare l'attributo è chiamato 'budgetcode', ma si utilizza getBudgetCode () - che si tradurrà in un attributo denominato budget_code.

Se l'attributo viene chiamato budgetcode quindi è necessario utilizzare getBudgetcode ()

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top