Leider scheine ich hier noch etwas nicht ganz zu verstehen. Alle meine Versuche eine eigene Bedingung zu formulieren endeten in einer PDOException, was mich zum Schluß führt, dass ich die Abfrage grundsätzlich falsch formuliere.
Ich habe zunächst Versandkostenberechnung nach Artikelanzahl aktiviert und eine Staffeln 0-1 -> 5.50 und 2-beliebig -> 0 defniert. Soweit so gut, das funktioniert auch. Nun hat der Shop allerdings ein paar Extralocken. Wenn man Artikel ohne Bestand in den Warenkorb legt, wird ein weiterer Artikel im Modus 4 mit der articleID = 0 hinzugefügt. Dieser stellt lediglich einen Aufschlag für Fremdlagerlieferung dar. Ich vermute dass dieser zur Menge der Artikel im Warenkorb dazuzählt und daher einzelne Artikel ohne Lagerbestand auch keine Versandkosten verursachen obwohl sie es sollten.
Wie muß die Bedingung formuliert sein? Soll der Ausdruck zu einem Wahrheitswert auswertbar sein oder was ist hier das Ziel?
Sowas wie
CASE WHEN COUNT(b.articleID !=0) THEN 1 ELSE 0 END
führt lediglich zu Exceptions…
Würde mich über Tipps oder ne Erklärung wie das funktioniert sehr freuen.
Danke das hat mir schon mal geholfen. Ich hatte leider auch die SQL Abfrage an die falsche stelle geschrieben.(in die Bedingung statt es an die erweiterte SQL Abfrage anzuhängen)
Es gibt jetzt zumindest keine Exceptions mehr.
Muß ich jetzt noch bei “Versandkosten Berechnung nach” etwas bestimmtest einstellen oder reicht es Artikelanzahl auszuwählen und eine Staffel anzulegen?
Aktuell hab ich folgendes eingestellt. Es scheint mir so als ob die Versandkosten nur von der Staffel abhängen und die Bedingung ignoriert wird.
COUNT(b.articleID) !=0 as item_count
in der SQL Abfrage angehängt mit einem Komma getrennt. (Hier hab ich das Gefühl die Abfrage ist falsch. Ich will doch die items im basket zählen, deren articleID != 0 ist. Die Abfrage heißt für mich item_count = true, wenn mehr als ein article da ist und ansonsten false)
und in der Bedingung in der Versandkostenverwaltung steht:
Dann würde ich „Versandkostenberechnung nach“ auf „eigene Brechnung“ umstellen. Tests mit der „Anzahl der Artikel“ haben bei mir kein brauchbares Ergebnis gebracht, dann hätte man auch kein eigenes SQL hinterlegen müssen.