Ich habe Attribute erstellt, die direkt zu einem Zitat Artikel in meiner checkout_cart_product_add_after
Observer-Methode wird nicht beibehalten den Wert, wie es nach dem Observer Exits zurückgesetzt werden scheint.Magento Custom Pricing/Attribute auf ein Angebot Artikel
Siehe Codebeispiele unter:
config.xml (Snippet):
<checkout_cart_product_add_after>
<observers>
<module>
<type>model</type>
<class>NativeRemedies_OrderGroove_Model_Observer</class>
<method>productAddAfter</method>
</module>
</observers>
</checkout_cart_product_add_after>
Observer.php (Snippet):
public function handleOrderGroove()
{
foreach($this->og->products as $_product){
if($_product->every>0){
foreach($this->_quote->getAllVisibleItems() as $_item){
//if sku is in the active list of recurring products selected add quote item id to array
if($_item->getSku()==$_product->id){
Mage::helper('nrordergroove')->setRecurringItem($_item->getItemId());
$_item->setOrdergrooveActive(true)->save();
$_item->getProduct()->setPrice(2);
$_item->setCustomPrice(2);
$_item->setOriginalCustomPrice(2);
$_item->getProduct()->setIsSuperMode(true);
}
}
} // else, do nothing
}
Das $ _ITEM Objekt in Dieses Beispiel bietet nicht die Möglichkeit, das Attribut als gesetzt zu behalten - selbst beim Aufruf von ->save()
.
Vielen Dank im Voraus für Ihre Hilfe. Ich habe alle Tutorials zum Einstellen von benutzerdefinierten Preisen und Attributen gesehen - nichts scheint die Situation zu verbessern!
Edit 1
ich so zu fühlen fange ist ein Fehler in 1.6+. Ich habe in verschiedenen Gremien viel darüber diskutiert, in> = 1.4 zu arbeiten.
Edit 2
Nur absolut klar zu sein, ist das Problem hier, dass das benutzerdefinierte Pricing Attribut wird durch das Produktmodell oder die collectTotals Methoden effektiv überschrieben werden. Ich brauche einen Workaround.
erstellt haben Sie die Felder in sales_flat_quote Geschichte? –
Ja, in der Tabelle 'sales_flat_quote_item', da dies ein Entitätstyp von Zitat_Element ist. – philwinkle
seit 1.4 das Zitat ist in sales_flat_quote gespeichert und wenn Sie etwas hinzufügen fügen Sie sie als Felder zu dieser Tabelle, wo sie gespeichert werden. –