Hallo zusammen.
Ich war ziemlich lange inaktiv beim Thema Shopware und kann mich kaum daran erinnern, wie ich die Versandkosten damals eingerichtet habe. Nun stehe ich aber vor dem Problem diese wieder anpacken zu müssen…
Ich soll bei 2 verschiedenen Herstellern Mindermengenzuschläge berechnen. Diese sollen bis 100€ Einkaufswert pro Hersteller gelten. So weit, so gut (Brutto, Netto im Frontend lasse ich mal außer Acht).
attr4 ist das Attribut, welches alle Artikel mit Mindermengenzuschlag haben.
a.supplierID=4 und a.supplierID=5 sind die beiden besagten Hersteller.
Bei Warenkörben mit nur höchstens einem dieser beiden Hersteller bekomme ich mit
IF(SUM(IF(at.attr4=1,b.priceb.quantity,0))<100,10,0) auch die gewünschten 10€ Mindermengenzuschlag hin. Bei Warenkörben mit beiden Herstellern wird dann auch „nur“ draufgeschlagen bis insgesamt 100 € dieser Hersteller erreicht sind. Immer noch alles zu erwarten.
Mit IF(SUM(IF(a.supplierID=4,b.priceb.quantity,0))<110,10,0) klappts bei dem ersten Hersteller, mit
IF(SUM(IF(a.supplierID=5,b.price*b.quantity,0))<110,10,0) klappts bei dem anderen Hersteller. Ich wollte mit jetzt ein paar Varianten sparen und spielte mit folgender Version rum.
IF(SUM(IF(a.supplierID=4,b.priceb.quantity,0))<100,10,0) OR IF(SUM(IF(a.supplierID=5,b.priceb.quantity,0))<100,10,0)
AND oder OR, sei auch mal egal…
Damit sieht es eigentlich schon ganz gut aus. Leider nur eigentlich, denn nach ner Weile fiel mir auf, dass nur noch 1 € statt der 10 € draufgeschlagen wird. Ich kann die verlangten 100 € anpassen und sehe die Anpassung auch im Frontent. Ich kann alles Mögliche verändern (natürlich nur im Rahmen ) aber dieser blöde 1 € Zuschlag bleibt. Ich kann mir nicht erklären wie er mit den Formeln auf 1 € Mindermengenzuschlag kommt. Ich habe sonst im Backend nirgendwo Zuschläge eingerichtet und auch keine andere Versandart hat irgendwo 1 € als Zuschlag drin. Das System benutzt oben genannte Formel, denn wenn ich sie deaktiviere benutzt er die normale Formel für DHL (ohne Mindermengenzuschlag).
Vielleicht hat ja einer von euch ne Idee wie das System von IF(SUM(IF(at.attr4=1,b.priceb.quantity,0))<100,10,0) bzw. IF(SUM(IF(a.supplierID=4,b.priceb.quantity,0))<100,10,0) mit 10 € berechnetem Mindermengenzuschlag zu IF(SUM(IF(a.supplierID=4,b.priceb.quantity,0))<100,10,0) OR IF(SUM(IF(a.supplierID=5,b.priceb.quantity,0))<100,10,0) mit nur 1 € berechnetem Mindermengenzuschlag kommt.
Ich mache mal für heute Feierabend und wünsche euch allen ein schönes WE.