Ich versuche, ein Produkt mit zwei benutzerdefinierten Textfeldern zu erstellen: Länge und Breite. Wenn der Benutzer sowohl eine Länge als auch eine Breite eingibt, muss der Preis über eine benutzerdefinierte Formel berechnet werden.
Ich versuche das richtige Ereignis zu finden, mit dem ich einen Beobachter verbinden kann - weiß jemand, was das sein könnte?
Folgendes weiß ich und habe es versucht
1) Das Textfeld für benutzerdefinierte Felder in der Produktansicht enthält ein Onchange-Ereignis, auf das ich noch nicht über ein Beobachterereignis zugegriffen habe - "opConfig.reloadPrice ()
2) Wenn ich einen Beobachter auf dem Ereignis sales_quote_add_item aufbaue, kann ich den Preis über eine Formel ändern, wenn er dem Warenkorb hinzugefügt wird. Mit dieser Methode muss ich sie noch in der Produktansicht ändern, bevor sie in den Warenkorb gelegt wird.
3) Ich habe auch das Ereignis catalog_product_get_final_price ausprobiert, aber dies scheint nur beim Laden der Produktseite ausgelöst zu werden. Nach dem Hinzufügen einer Produktlänge oder -breite wird es also nicht erneut ausgelöst.
Irgendwelche Ideen wären sehr dankbar!
quelle
Antworten:
Ich habe für diesen Anwendungsfall verwendet
sales_quote_collect_totals_before
:Auf der Client-Seite können Sie nur ein paar Zeilen JS verwenden, um den Preis zu aktualisieren?
quelle
catalog_product_get_final_price
ist das richtige serverseitige Ereignis. Es wird nicht nur ausgelöst, wenn die Produktseite geladen wird, sondern auch, wenn das Produkt in den Warenkorb gelegt wird. In diesem Fall stehen Ihnen alle ausgewählten benutzerdefinierten Optionen zur Verfügung mit:(Siehe auch: Gibt es eine Möglichkeit, wie der Benutzer den gewünschten benutzerdefinierten Preis größer als Null einstellen und für jedes Produkt in den Warenkorb gehen kann? )
Die Neuberechnung des Preises auf der Produktseite ist ein weiteres Thema und erfordert JavaScript.
reloadPrice
ist die richtige Funktion zum Einhängen, ich würde sie folgendermaßen erweitern:quelle