Wir haben ein Plugin (das vor einiger Zeit für uns programmiert wurde), welches die Preise überschreibt. Das funktioniert soweit recht gut, allerdings bisher nicht im Ajax-Cart (der Rechts eingeblendet wird) und auch nicht im Warenkorb-Widget.
Während ich beim Ajax-Cart dem Plugin einfach das Template hinfügen konnte und dort der richtige Preis angezeigt wird, rätsel ich momenten welche Events ich subscriben muss, damit auch die das Template
widgets/checkout/info.tpl
im Plugin verarbeitet wird (meine Änderung im Code führt dazu, dass dort „0“ angezeigt wird… was mir zeigt, das ich schon grundsätzlich an der richtigen Stelle bin, aber da wohl noch die ensprechende Eventregistrierung fehlt und meine neuen Variablen (noch) nicht verfügbar sind (die „Magie“ für den normalen Warenkorb wird
Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Checkout
zugeordnet.
Shopware\_Controllers\_Widgets\_Checkout
Zeigt keine Wirkung.
Ersetze einfach “Frontend” durch “Widgets”.
Beispiel:
- Enlight_Controller_Action_Widgets_Checkout_Info
- Enlight_Controller_Action_PostDispatch_Widgets_Checkout
etc
Viele Grüße
1 „Gefällt mir“
Greif leider auch nicht.
Was mich nebenbei wundert:
Während meine Änderungen im template ajax_cart.tpl greifen, aber ajax_amount.tpl nicht.
In der letzteren sind auch keine Smartyblöcke, d.h. ich arbeite auch nicht mit “extends” (und selbst wenn ich das mache, zeigt die Änderung keine Wirkung).
Das überschreiben der info.tpl des Widgets funktioniert mittlerweile (der Fehler ist banal: sBasketAmount statt sBasket).
Das ajax_amount.tpl hingegen wird nicht verarbeitet.
Im Checkout-Controller des Frontend findet sich die entsprechende Aktion (ajaxAmountAction), dort wird auch direkt auf das Template verwiesen:
$this->Response()->setBody(
json_encode(
[
'amount' => Shopware()->Template()->fetch('frontend/checkout/ajax_amount.tpl'),
'quantity' => $quantity
]
)
);
Der entsprechende Request sieht so aus:
DOMAIN/checkout/ajaxAmount?callback=jQuery2110939xyz00798952&_=146klm56
Soweit ich das verstehe, ist der Checkout-Controller auch hierfür der richtige Event.
Warum greift das Template trotzdem nicht?