Problemi con attributo del prodotto fissaggio a preventivo articolo / ordine
-
16-10-2019 - |
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.
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 ()