Ich möchte einen Versandaufschlag konfigurieren, der nur greift wenn eine bestimmte Versandart ausgewählt wird. Sprich ich habe 4 Versandarten und einen Inselaufschlag. Der Inselaufschlag soll nur aktiv sein wenn PLZ ne Insel ist (klar) und wenn Versandart A oder C gewählt wurde. Bei Versandart B und D gibt es keinen Inselzuschlag
Ok, ich hab jetzt mal ganz frech in den Grundeinstellungen des Storefront/Versandkostenmoduls folgendes bei der erweiterten SQL-Abfrage hinzugefügt:
(SELECT CASE WHEN LOCATE('"sDispatch";i:', SES.data) = 0 THEN 0 ELSE SUBSTRING(SES.data, LOCATE('"sDispatch";i:', SES.data) + 14, LOCATE(';', SES.data, LOCATE('"sDispatch";i:', SES.data) + 14) - (LOCATE('"sDispatch";i:', SES.data) + 14)) END FROM s_core_sessions SES WHERE SES.id = b.sessionID) AS CurrentDispatchId
Für meinen spezifischen Fall scheint das jetzt zu funktionieren, aber keine garantie wie lang das „gebastel“ hebt Immerhin kann ich jetzt bei den Zuschlägen in der eigenen Bedingung CurrentDispatchId = „17“ oder so nutzen. Leider noch ein problem dass es erst nach einem Seitenrefresh wirkt. Sprich wenn per Ajax-Cart ne neue ausgewählt wird, ist in CurrentDispatchId noch die alte drin. Nach ner weiteren aktion (z.B. Menge ändern) findet er die neue, da die Session-Daten in der DB aktuell sind. Bekomm ich aber auch irgendwie hin