Versandkostenberechnung pro Artikel mit Freigrenze

Ich benötige eine Versandkostenberechnung pro Artikel nach Stückzahl, aber mit einer Anzahl, ab der die Bestellung versandkostenfrei ist. Funktioniert mit Attributfeld und eigener Berechnung gut (siehe http://wiki.shopware.com/Versandkosten- … l_699.html), aber ich weiß nicht, wie ich die Freigrenze in die Berechnung und / oder Bedingung einbaue. In der eigenen Berechnung in der Versandkostenregel steht: “SUM(at.attr4*b.quantity)”, das funktioniert auch und ergibt die ins Attributfeld eingetragenen Versandkosten multipliziert mit der Menge. Jetzt soll aber allgemein ab einer Stückzahl X die Lieferung versandkostenfrei sein. Was muss ich wo einbauen, damit das System dies berücksichtigt?

Du müsstest einfach ein IF um das SUM machen und dann einfach bei b.quantity = 5 oder ähnlichem eine 0 zurück geben. Bin aktuell nicht am PC und hab daher gerade kein Beispiel zur Hand. Gesendet von iPhone mit Tapatalk

Danke, und genau das “einfach” suche ich;-) Habe schon einiges ausprobiert, aber bekomme immer eine Fehlermeldung. Über die Formel wäre ich dankbar.

Schreib mir mal ne Mail / PM als Gedächtnisstütze dann schau ich mal morgen. Gesendet von iPhone mit Tapatalk

Danke, schon geschehen.

Hallo, hast du eine gernerelle Anzahl ab der der Artikel versandkostenfrei ist oder soll das auch auf Artikelebene berechnet werden? Denkbar wäre sowas: Versandkostenfrei-Anzahl pro Artikel (definierbar über attr1): SUM(IF(b.quantity \> at.attr1,0,at.attr4\*b.quantity)) In diesem Beispiel prüft er, ob die Anzahl des Artikels größer als die Zahl die in Attr1 steht ist und errechnet so entweder 0€ für die Position oder deine Formel. Versandkostenfrei-Anzahl pro Artikel (global): SUM(IF(b.quantity \> 5,0,at.attr4\*b.quantity)) In diesem Beispiel wird auch auf Positionsebene geprüft ob die Anzahl größer 5 ist und ansonsten deine Formel benutz. Versandkostenfrei-Anzahl pro Bestellung: IF(SUM(b.quantity) \> 5,0,SUM(at.attr4\*b.quantity)) Hier wird dann nur noch auf alle Artikel im Warenkorb geprüft und nicht mehr auf Positiosnebene. Wenn mehr als 5 Artikel im Warenkorb sind, wird der Versand versandkostenfrei. Hilft dir das schon weiter? Grüße Moritz

Super, danke, das letzte Beispiel sieht gut aus, funktioniert aber nur auf Positionsebene. Wenn das jetzt global funktionieren würde, d.h. wenn mehr als 5 Artikel insgesamt inkl. aller Positionen im Warenkorb liegen ist die Lieferung versandkostenfrei, dann hätte ich das Ziel erreicht;-) Ich habe übrigens in den Versandkosten noch eine Staffel eingetragen bis 65 Stück (0-35 = 100% Faktor, 36-65 = 50% Faktor), danach soll es versandkostenfrei sein. Dazu zusätzlich deine Formel in „Erweiterte Einstellungen>Eigene Berechnung“. Die Staffel funktioniert, jedoch berechnet das System so ab 66 Stück trotzdem den 50% Faktor weiter.

Hallo, da war noch ein Denkfehler drin, versuch es mal damit: IF(SUM(b.quantity) \> 5,0,SUM(at.attr4\*b.quantity)) Generell machen die Staffeln bei einer eigenen Berechnung nicht wirklich Sinn. Da deine Staffel sich dann nicht auf die „Stückzahl“ der Artikel bezieht, sondern vielmehr auf den Wert die die Eigene Berechnung zurückgibt - im Beispiel oben ist das entweder „0“ oder der Wert der Versandkosten. Wenn du Versandart Berechnung nach „Eigene Berechnung“ auswählst, bezieht sich die Staffel immer auf den Wert den die eigene Berechnung zurückgibt. Aktuell berechnest du einfach für 36-65€ Versandkosten nur 50%. Grüße Moritz

Danke!! Mit der letzten Formel hat es funktioniert, auch mit der Staffel. Der Wert der Berechnung ist ja eine Stückzahl, deshalb funktioniert das auch mit der Staffel, jedenfalls bei mir. Sollte das nicht so sein? Im Attribut 4 Feld steht “0.60” bei jedem Artikel drin, da dies der Stückpreis für die Versandkosten ist. Versandkostenberechnung nach: Eigene Berechnung. 0-35 / Versandkostenfeld = nichts eingetragen / Faktor = 100% 36-beliebig / Versandkostenfeld = nichts eingetragen / Faktor = 50% In “Erweitere Einstellungen>Eigene Berechnung” deine Formel: IF(SUM(b.quantity) > 65,0,SUM(at.attr4*b.quantity)) Ergibt bei allen Mengen die korrekten Versandkostenpreise im Warenkorb und ab 66 Stück ist die Bestellung versandkostenfrei. Bsp.: 36 Stück würden dann 36*0.30 € = 10,80 € Versand kosten (da der Faktor 50% der Staffel greift, also 0.60 / 2).

Falsch, die Staffel funktioniert doch nicht, da war wohl noch was im Cache drin oder ich habe es falsch nachgerechnet. Also ist die Staffel wie du sagtest, vollkommen unrelevant, dort gehört nur Faktor 100% rein in die erste Zeile. Aber wie komme ich jetzt auf meine Staffel, die muss dann wohl noch in die Formel rein in eigene Berechnung?

Sorry, aber jetzt habe ich mal einige Stückzahlen nachgerechnet, die Staffel greift doch, aber nur auf Positionsebene, d.h. wenn ich in einer Position 30 eingebe, in der anderen 35, dann berechnet er absolut nur 0,30 € pro Artikel, nimmt also den 50% Faktor! Leider stehen im Wiki solche Details nicht, das wäre schön, wenn hier mehr auf Versandkostenberechnung eingegangen würde und diese Abhängigkeiten. Ich müsste also jetzt wie zuvor schon gesagt, komplett in die Formel einbauen: 0-35 Stück = 0,30 € 36-65 Stück = 0,60 € ab 66 Stück versandkostenfrei Brauche ich dazu überhaupt ein Attributfeld bzw. muss ich evtl. 2 anlegen für die Staffelpreise o.ä.?

Hallo, das Attributfeld macht ja nur Sinn, wenn du auch unterschiedliche Versandkosten pro Artikel hast. Wenn du bei jedem Artikel gleich sind, brauchst du ja auch keine Eigene Berechnung, sondern gehst über „Berechnung nach Artikelanzahl“ und legst deine Staffel an. Wenn sich das ganze dann pro Artikel unterscheidet wird es aufwendiger, aber nicht „unlösbar“. Denkbar wäre hier eine verschachtelte Abfrage: IF(SUM(b.quantity) \> 35,IF(SUM(b.quantity) \> 64,0,SUM(at.attr4\*b.quantity/2)),SUM(at.attr4\*b.quantity)) So prüft er erst, ob die Gesamranzahl > 35 ist, wenn springt er in die nächste überprüfung, wenn nein gibt er deine Formel zurück. Dann prüft er ob sie > 64 ist und gibt eine 0 zurück, wenn das auch nicht passt deine Formel/2. So bräuchtest du die Staffel garnicht mehr, sondern nur Faktor 100. Sicherlich gibt es da auch eine „schönere“ Syntax, aber ich bin leider auch kein Entwickler :wink: Grüße Moritz

Das war´s, funktioniert mit der verschachtelten Formel und für die Staffel nur “0 bis beliebig” mit Faktor 100%. Allerdings funktioniert “Berechnung nach Artikelanzahl” ja nur mit absoluten Versandkosten, nicht mit “pro Stück”-Versandkosten. Dazu benötigt man das Attribut-Feld. In meinem Fall sind die Versandkosten ja für alle Artikel gleich, aber die Stückzahl im Warenkorb reduziert ab einer bestimmten Bestellmenge die Versandkosten pro Stück um 50%, also auf 0,30 € statt auf 0,60 € wie im Attributfeld angegeben. Danke für die schnelle Hilfe!!

Hallo, kein Problem. Versandkosten ist ein ziemlich umfangreiches Thema, da kann man viel machen, aber durch die Komplexität ist das nicht immer alles so einfach. Ich habe hier intern mal vermerkt, dass man das Wiki entsprechend nochmal überarbeitet/erweitert in Zukunft um ggf. diese Dinge nochmal etwas klarer zu machen. Grüße Moritz