Shopware: Individuelle Versandkosten

Shopware hat ein mächtiges Versandkosten-Modul, in dessen Berechnung man ganz gezielt eingreifen kann. Wir wollen in unserem Fall folgendes Szenario realisieren: Die Versandkosten pro Artikel werden zunächst nach dem Gewicht des Artikels bestimmt (die Gewichtsgrenzen sind dabei vorgegeben). Nur für spezielle Ausnahmen sollen stattdessen pro Artikel feste Versandkosten individuell festlegbar sein.


Dabei sieht die Versandkostentabelle wie folgt aus:

Gewicht von Gewicht bis Preis
0 kg < 3 kg 4,99 €
3 kg < 5 kg 6,90 €
5 kg < 10 kg 9,50 €
10 kg < 15 kg 10,90 €
15 kg < 20 kg 12,90 €
20 kg < 31 kg 17,90 €
31 kg < 40 kg 49,90 €
ab 40 kg 49,90 € Grundpreis + 0,59 € je kg

Zunächst könnte man auf die Idee kommen, im Feld "Versandkosten-Berechnung nach:" den Wert "Gewicht" zu wählen und unterhalb die entsprechenden Grenzen einzutragen:

Shopware: Individuelle Versandkosten

Hier hat man gleich mehrere Probleme: Die Realisierung der Regel "ab 40 kg: 49,90 € Grundpreis + 0,59 € je kg" nicht einfach umsetzbar, Werte wie 2.999 sind nicht genau und fehlt die Möglichkeit der individuellen Vergabe von Versandkosten pro Artikel. Um dies zu ermöglichen, legen wir zunächst unter Einstellungen > Artikel > Artikel-Freitextfelder ein neues Freitextfeld (z.B. "attr5") an:

Shopware: Individuelle Versandkosten

Dieses Feld befüllen wir nun mit dem Wert in Euro bei allen Artikel, die individuelle Versandkosten haben sollen. Dabei verwendet man für Dezimalzahlen Punkt statt Komma:

Shopware: Individuelle Versandkosten

Schließlich legen wir noch eine neue Versandart mit den wichtigen Einstellungen "Versandkosten-Berechnung nach: Eigene Berechnung" sowie "Faktor (%): 100" an:

Shopware: Individuelle Versandkosten

Unter "Erweiterte Einstellungen" hinterlegen wir unter "Eigene Berechnung" schließlich unsere neue Berechnungsfunktion:

a359cdf87765551f0706

Diese Funktion nimmt pro Artikel jeweils das Gewicht und berechnet den Preis. Drei verschiedene Artikel mit einem Gewicht von 2,5 kg schlagen demnach mit 14,97€, drei mal derselbe Artikel mit einem Gewicht von 2,5 kg mit 9,50€ zu Buche. Will man stattdessen die Berechnung anhand des Gesamtgewichts (mit dem Ergebnis 9,50€ in beiden Fällen) durchführen, ändert man die Berechnungsfunktion nur minimal ab:

a359cdf87765551f0706

Sollen auch Händler mit einbezogen werden, muss man bei den angegebenen Preisen in der SQL-Abfrage aufpassen, ob es sich um Netto- oder Bruttowerte handelt (je nach eingestellten Werten in Grundeinstellungen > Shopeinstellungen > Kundengruppen > Eingabe Bruttopreise).

Will man das Artikelmerkmal "Artikel als versandkostenfrei markieren" ebenfalls mit berücksichtigen (und zwar pro Artikel), spricht man die Spalte b.shippingfree an und setzt in den Einstellungen > Versandkosten > Erweiterte Einstellungen > Versandkostenfreie Artikel" die folgende Option:

Mit Hilfe von SQL kann man so beliebig komplexe Abfragen einbauen. Dabei empfiehlt es sich, das finale Query mit Hilfe von SQL-Variablen vorzubereiten, damit das Ganze auch schön pflegbar bleibt. Nachfolgend ein exemplarisches Beispiel einer komplexeren Abfrage, die zwischen Shopkunden und Händlern unterscheidet, versandkostenfreie Artikel berücksichtigt, Versandkosten nur bei einem Maximalwarenkorb erhebt und unterschiedliche Preisstaffeln (je nach Marke) anzapft:

a359cdf87765551f0706

Zurück