Problème avec l'attribut de produit attacher à la soumission / l'élément de commande
-
16-10-2019 - |
Question
je suis ce guide ( attribut de produit au point de devis et commande article ) mais pour une raison quelconque, je semble incapable de récupérer mon attribut dans mon observateur. Mon I attribut créé est appelé « budgetcode » et est affecté au produit que je suis en train d'acheter. Dans mon observateur, je suis tenté d'utiliser la même théorie que le poste ci-dessus mais mon attribut « budgetcode » apparaît si profondément dans le schéma que je ne peux pas le récupérer. Je l'ai fait Zend_Debug::dump($item)
et peut voir une sortie massif (trop grand pour coller) avec mon chemin montré budgetcode vers le bas, problème est que je ne peux pas sembler le récupérer.
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>
Toute aide est appréciée.
La solution
CamelCase est important dans la magie getters / setters
Vous mentionnez votre attribut est appelé « budgetcode » mais vous utilisez getBudgetCode () - qui se traduira par un attribut appelé budget_code.
Si vous attribut est appelé budgetcode alors vous devez utiliser getBudgetcode ()