da wir seit kurzem auch in viele andere Länder außer Deutschland liefern, wollten wir Inselzuschläge wie auch in Deutschland einstellen. Für Deutschland funktioniert es einwandfrei, aber bei allen anderen Ländern kommt beim bestellen die Meldung “Ups, es ist ein Fehler aufgetreten…bal bla”
Haben es genauso gemacht wie beim Land Deutschland.
Beispiel Dänemark:
Dänemark hat bei uns die Länder ID 7 also
IFNULL(us.zipcode,ub.zipcode) = ‘6720’
OR
IFNULL(us.zipcode,ub.zipcode) = '9960‘
OR
IFNULL(us.zipcode,ub.zipcode) = '9950‘
OR
IFNULL(us.zipcode,ub.zipcode) = ‘9940’
OR
IFNULL(us.zipcode,ub.zipcode) = ‘8592’
OR
IFNULL(us.zipcode,ub.zipcode) = ‘8305’
OR
IFNULL(us.zipcode,ub.zipcode) = ‘7884’
OR
IFNULL(us.zipcode,ub.zipcode) = '5985‘
OR
IFNULL(us.zipcode,ub.zipcode) = '5970‘
OR
IFNULL(us.zipcode,ub.zipcode) = '5960‘
OR
IFNULL(us.zipcode,ub.zipcode) = '4592‘
OR
IFNULL(us.zipcode,ub.zipcode) = '3790‘
OR
IFNULL(us.zipcode,ub.zipcode) = '3782‘
OR
IFNULL(us.zipcode,ub.zipcode) = '3770‘
OR
IFNULL(us.zipcode,ub.zipcode) = ‘3700’
OR
IFNULL(us.zipcode,ub.zipcode) = '3720‘
OR
IFNULL(us.zipcode,ub.zipcode) = '3730‘
OR
IFNULL(us.zipcode,ub.zipcode) = '3740‘
OR
IFNULL(us.zipcode,ub.zipcode) = '3751‘
OR
IFNULL(us.zipcode,ub.zipcode) = '3760‘ AND IFNULL(us.countryID,ub.countryID) = 7
Ohne Inselzuschlag funktioniert die Bestellung aus anderen Ländern einwandfrei. Basteln da nun seit 2 Tagen rum, und haben zig Beiträge gelsen, kriegen es aber nicht hin. Warum funktioniert es bei Deutschland, und bei anderen Ländern nicht? Muss für anderen Länder zusätzlich was eingestellt oder aktiviert werden?
Hast du mal die ganzen OR-Bedingungen in Klammern gesetzt? Aktuell ließt sich das so, als ob sich die AND-Bedigung nur auf das letzte OR bezieht.
Also so:
(…OR…OR…OR) AND …
Hallo Moritz,
vielen Dank schon mal.
Verstehe nicht ganz, in Deutschland haben wir ja auch Inselzuschläge definiert, und da funktioniert es ohne Problem. Da haben wir das „or“ auch ohne Klammern und läuft einwandfrei. Auch die AND-Bedingung ist gleich bis auf die ID, da DE die ID 2 hat.
Fehlermeldung sobald man zur Kasse geht, oder versucht den Warenkorb zu bearbeiten:
Ups! Ein Fehler ist aufgetreten! Wir wurden bereits über das Problem informiert und arbeiten an einer Lösung, bitte versuchen Sie es in Kürze erneut.
PS: Mit Klammern funktioniert es auch nicht, versucht man da den Warenkorb zu bearbeiten, kommt das icon–loading-indicator und man kann ewig warten da tut sich nichts.
hat vielleicht noch jemand eine Idee woran es liegen könnte? Funktioniert leider immer noch nicht, und müssen gegebenenfalls die Inselzuschläge aus unserer Tasche zahlen.
also auf den ersten Blick fällt mir auf, dass du teilweise falsche Zeichen anstatt des Hochkommas verwendet hast und zwar ` anstatt '.
Außerdem würde ich dir empfehlen die ganze Bedingung zu verkürzen und nicht jede PLZ einzeln abzufragen mit einer OR-Bedingung, sondern diese mit einem IN in Listenform abzuprüfen. Dies ist performanter und löst auch das Problem mit den Klammern welches Moritz schon angesprochen hat.
Das ganze würde so aussehen und hat bei einem Test bei mir funktioniert:
IFNULL(us.zipcode,ub.zipcode) IN(‚6720‘,‚9960‘,‚9950‘,‚9940‘,‚8592‘,‚8305‘,‚7884‘,‚5985‘,‚5970‘,‚5960‘,‚4592‘,‚3790‘,‚3782‘,‚3770‘,‚3700‘,‚3720‘,‚3730‘,‚3740‘,‚3751‘,‚3760‘)
AND IFNULL(us.countryID,ub.countryID) = 7
also auf den ersten Blick fällt mir auf, dass du teilweise falsche Zeichen anstatt des Hochkommas verwendet hast und zwar ` anstatt '.
Außerdem würde ich dir empfehlen die ganze Bedingung zu verkürzen und nicht jede PLZ einzeln abzufragen mit einer OR-Bedingung, sondern diese mit einem IN in Listenform abzuprüfen. Dies ist performanter und löst auch das Problem mit den Klammern welches Moritz schon angesprochen hat.
Das ganze würde so aussehen und hat bei einem Test bei mir funktioniert:
IFNULL(us.zipcode,ub.zipcode) IN(‚6720‘,‚9960‘,‚9950‘,‚9940‘,‚8592‘,‚8305‘,‚7884‘,‚5985‘,‚5970‘,‚5960‘,‚4592‘,‚3790‘,‚3782‘,‚3770‘,‚3700‘,‚3720‘,‚3730‘,‚3740‘,‚3751‘,‚3760‘)
AND IFNULL(us.countryID,ub.countryID) = 7
vielen Dank, das war es. Beim Copy u. Paste hat unser Programm automatisch das Hochkomma geändert.
Für alle anderen die vielleicht mal diesen Thread lesen sollten und das selbe Problem haben.
Ihr müsst „OR“ verwenden, sonst geht es nicht.
Also z.B:
IFNULL(us.zipcode,ub.zipcode) > '13000'
AND IFNULL(us.zipcode,ub.zipcode) < '13099'
OR
IFNULL(us.zipcode,ub.zipcode) > '43000'
AND IFNULL(us.zipcode,ub.zipcode) < '43099'
evtl hat jemand von Euch einen Denkanstoß für mich. Ich nutze den unten angezeigten Code als Bedingung für unsere DPD Versandart.
Richtig - Was im Moment funktioniert:
-Lieferadresse in den angegebenen PLZ (Warenkorb besteht nicht nur aus versandkostenfreien Artikeln) deaktiviert die Versandart
-Kundengruppe HAE oder EK deaktiviert die Versandart
Falsch
-Nur versandkostenfreie Artikel im Warenkorb deaktiviert die Versandart nicht
Entferne ich die Abfrage für die PLZ, dann funktoniert es und bei nur versandkostenfreien Artikeln wird die Versandart deaktiviert.
Einzeln gesehen funktionieren die Abfrage für allshippingfree und die PLZ, in Kombination aber nicht. Hat jemand eine Idee wo mein Fehler liegt ?
!allshippingfree
AND NOT (u.customergroup = "HAE")
AND NOT (u.customergroup = "EK")
AND IFNULL(us.zipcode,ub.zipcode) IS NULL OR IFNULL(us.zipcode,ub.zipcode)
NOT IN ('18565','25849','25859','25863','25869','25938','25946','25980','25992','25996','25997','25998','25999','26465','26474','26486','26548','26571','26579','26757','27498','27499','83256')