Türchen 06: Versandkostenberechnung für Deutschland, Europa und den Rest der Welt in Magento umsetzen

In der letzten Zeit sind mir bei Umsetzung und Betreuung diverser Magento Projekte aufgefallen das viele Vorgänger Agenturen wie auch Shopbetreiber teilweise völlig unnötig Ihre Magento Instanzen vollpumpen mit Versand-Extensions die überhaupt nicht nötig währen für weit verbreitete Szenarien. Zusätzlich werden diese dann noch ergänzt mit Warenkorbpreisregeln – teilweise eine Regel pro Versand-Land. Eine solche Konstellation schreit gerade nach Fehlern und vielen Fragezeichen wenn man dann mal was ändern muss.

Das ist aber kein Wunder, denn durch derart komplexe Konfigurationen entsteht ein Overhead an
Konfigurationsparametern die erst einmal gleichzeitig verarbeitet werden müssen von Magento.

Magento besitzt von Haus aus die Möglichkeit mit den „Table.Rates“ bzw. „Tabellenbasierte Versandkosten“ einige weit verbreitete und auch oft gewünschte Szenarien abzubilden.

Viele scheuen in der Erstellung eines Magento-Shops davor zurück selbige zu nutzen, weil teilweise die Konzepte dahinter nicht verstanden werden oder die Konfiguration zu komplex erscheint im ersten Moment. An dieser Stell soll dieser Beitrag Abhilfe verschaffen.

Unser Beispiel Szenario:

  • Wir wollen Versandkosten pauschal pro Bestellung berechnen.
  • Wir möchten unsere Produkte an Kunden in der gesamten Welt versenden.
  • Wir möchten dafür nicht Versandkosten für alle Länder der Welt hinterlegen müssen,
    sondern so weit wie möglich automatisiert zuweisen.
  • Wir möchten insgesamt in 3 Gruppen kategorisieren: Deutschland, EU + Rest der Welt.
  • Für Deutschland und die EU möchten wir höhere Bestellsummen belohnen mit
    Versandkostenfreiheit.

Deutschland
Versandkosten: 5,50 € für Bestellungen bis 49,99 €
Versandkostenfrei: für Bestellungen ab 50,00 €

EU-Länder, ausser Deutschland
Versandkosten: 7,50 € für Bestellungen bis 99,99 €
Versandkostenfrei: für Bestellungen ab 100,00 €

Rest der Welt
Festpreis: 12,50 €

Normalerweise würden wir jetzt für gewöhnlich mit 3 Versand-Extensions arbeiten um das abzudecken + ggf. Warenkorb Preisregeln die entsprechende Rabatte anwenden. Das machen wir wegen weiter oben beschriebenen Nachteilen nicht, sondern werden stattdessen alles über die Table Rates abdecken – nur diese Core-Extension von Magento sonst nichts, versprochen!

Start:

  • Magento Admin Panel
    System->Konfiguration->Verkäufe->Versandarten->Tabellenbasierte Versandkosten, letzteres Tab kann je nach Sprachpaketversion auch anders heißen!

Wichtig: Wir müssen spätestens jetzt oben den Konfigurationsbereich auf Website oder StoreView wechseln, da wir ansonsten keine Import / Export Möglichkeit haben! Gleichzeitig bedeutet es dass wir Versandkosten pro Webseite oder StoreView extra konfigurieren können – etwa wenn wir für Endverbraucher und Wiederverkäufer unterschiedliche Versandkosten hinterlegen wollen und der Reseller Shop auf einer 2. Magento Website konfiguriert ist.

  • Diese Versandart aktivieren, standardmäßig deaktiviert
  • Titel und Name der Versandart festlegen – im Beispiel:
    DHL als Titel und Ihre Versandkosten: als Name

Anschließend entscheiden wir noch was unsere Berechnungsgrundlage sein soll:

Gewicht gg. Ziel =
Die Versandkostenberechnung würde sich auf das Gewicht der Artikel im Warenkorb beziehen +
Zieladresse der Sendung.

Preis gg. Ziel =
Die Versandkostenberechnung würde sich auf die Gesamtsumme des Warenkorbs beziehen +
Zieladresse der Sendung.

Anzahl der Artikel gg. Ziel =
Die Versandkostenberechnung würde sich auf die Anzahl der Artikel im Warenkorb beziehen +
Zieladresse der Sendung. Beispiel: Kaufen Sie 3 Artikel = Versandkostenfreier Versand

Für unser eingangs beschriebenes Szenario entscheiden wir uns für die goldene Mitte:

Preis gg. Ziel =
Die Versandkostenberechnung würde sich auf die Gesamtsumme des Warenkorbs beziehen +
Zieladresse der Sendung. Alle anderen Punkte könnte man jetzt auch noch konfigurieren, dass ist für unser Beispiel hier aber nicht notwendig. Wir speichern jetzt zunächst unsere Konfiguration.

Dann exportieren wir uns die Datei & öffnen Sie in einer Tabellenkalkulation oder eben einen
Texteditor. Ich empfehle an dieser Stelle wegen verschiedener Trennzeichen und weiterer
Kompatibilitätshürden die Datei mit einem Texteditor zu bearbeiten!

In der Tabellenkalkulation sollten Sie eine solche (hier vereinfachte) Ansicht haben:

http://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste (Spalte 3, ISO 3166 ALPHA-3" alt="a> (Spalte 3, ISO 3166 ALPHA-3">

Region/Staat:
Bei uns mit * belegt, da für uns nicht relevant

Postleitzahl:
Bei uns mit * belegt, da für uns nicht relevant

Bestellzwischensumme (und höher):
Bestellsumme die erreicht werden muss um eine Versandkosten Staffelung anzuwenden.

Versandkosten:
Die jeweiligen Versandkosten mit einem Punkt getrennt – nicht per Komma!

Erklärung zur letzten Zeile:
Für unsere „Rest der Welt“ Länder setzen wir selbst im Feld Land ein Sternchen. Das bewirkt das Magento es als Fallback anwendet für alle Anschriften die nicht explizit eingestellt sind – dieser Fallback wird von uns also für eine Vielzahl von Ländern genutzt, für Deutschland und EU Länder aber nicht da deklariert mit Kostenstaffelungen.

Unsere komplette Datei in Textform mit allen deklarierten Ländern. Die eingesetzten Staffeln für Deutschland, die EU + Rest der Welt Regel bzw. Fallback können sehr gerne kopiert werden - Speicherung als .csv Datei zum Import!

Land,Region/Staat,Postleitzahl,Bestellungszwischensumme (und höher),Versandkosten
BEL,*,*,0,7.50
BEL,*,*,100,0
BGR,*,*,0,7.50
BGR,*,*,100,0
DEU,*,*,0,5.50
DEU,*,*,50,0
DNK,*,*,0,7.50
DNK,*, *,100,0
EST,*,*,0,7.50
EST,*,*,100,0
FIN,*,*,0,7.50
FIN,*,*,100,0
FRA,*,*,0,7.50
FRA,*,*,100,0
GRC,*,*,0,7.50
GRC,*,*,100,0
IRL,*,*,0,7.50
IRL,*,*,100,0
ITA,*,*,0,7.50
ITA,*,*,100,0
LVA,*,*,0,7.50
LVA,*,*,100,0
LTU,*,*,0,7.50
LTU,*,*,100,0
LUX,*,*,0,7.50
LUX,*,*,100,0
MLT,*,*,0,7.50
MLT,*,*,100,0
NLD,*,*,0,7.50
NLD,*,*,100,0
AUT,*,*,0,7.50
AUT,*,*,100,0
POL,*,*,0,7.50
POL,*,*,100,0
PRT,*,*,0,7.50
PRT,*,*,100,0
ROU,*,*,0,7.50
ROU,*,*,100,0
SWE,*,*,0,7.50
SWE,*,*,100,0
SVK,*,*,0,7.50
SVK,*,*,100,0
SVN,*,*,0,7.50
SVN,*,*,100,0
ESP,*,*,0,7.50
ESP,*,*,100,0
CZE,*,*,0,7.50
CZE,*,*,100,0
HUN,*,*,0,7.50
HUN,*,*,100,0
GBR,*,*,0,7.50
GBR,*,*,100,0
CYP,*,*,0,7.50
CYP,*,*,100,0
*,*,*,0,12.50

Ist die Datei fertig, kann Sie über das Magento Admin Panel importiert werden, indem man die Datei auswählt und die Konfiguration abspeichert. Sollte es über das Magento Backend nicht klappen, kann die CSV auch in die Datenbank importiert werden – etwa über phpMyAdmin. Die betreffende Tabelle lautet: shipping_tablerate

Wir haben nun eine Lösung für eine Vielzahl von Zielregionen, gleichzeitig können die Versandkosten gestaffelt werden und unsere Versandkosten-Matrix kann unter Nutzung dieses hauseigenen Versandmoduls vollumfänglich genutzt werden. Unser Shop hat nun eine Lösung die schlank ist
und trotzdem sehr viel leistet – zudem ein Magento Core Modul ist – es kommt ohne extra Extensions und Preisregeln aus. Es ist per Import / Export Funktion pflegbar.

Ausbaubarkeit in eigenen Projekten:

  • Weitere Staffelungen möglich mit unterschiedlichsten Preisen
  • Bezug auf weitere Standortfaktoren möglich, Beispiel:
    Auf Grundlage der Postleitzahl Inselzuschläge definieren wenn die Kosten hier höher sind als
    normal oder wenn es andere logistische Gründe hat.

Ich wünsche viel Spaß bei der Nutzung der Table Rates von Magento.



Ein Beitrag von Daniel Sasse
Daniel's avatar

'Daniel Sasse ist seit Ende 2008 aktives Mitglied der Deutschen Magento Community.

Alle Beiträge von Daniel

Kommentare
Matthias am

"Die betreffende Tabelle lautet: shipping_tablerate" Danke, das habe ich gesucht! :-)

Marc am

Hallo, ich suche schon länger nach einer Möglichkeit, mit table-rates (oder auch anderen Methoden) die Versandkosten pro Kategorie bzw. Versandort zu berechnen. Hintergrund: in unserem Shop kann der Kunde von verschiedenen Herstellern Produkte kaufen. Da jeder Hersteller selbst verschickt, fallen pro Versandort eben auch Versandkosten an, die wir dem Kunden weiter berechnen möchten. Also Kunde kauft bei Winzer A und Winzer B. Er soll entsprechend 2 x Versandkosten bezahlen.

Monika am

Hallo Daniel, vielen Dank für die ausführliche Erklärung. Leider klappt es bei mir trotzdem nicht. Ich biete in meinen Online-Shop bestimmte Artikel mit verschiedenen Versandkosten an, also nach Gewicht. Dazu mit verschiedenen Versandkosten in verschiedenen Ländern (Deutschland, EU und Schweiz inkl. Global). Ich verwende dafür die Matrix Rates. Muss ich eigentlich das Gewicht im Backend für die bestimmten Artikel eintragen?

Hier ein Beispiel meiner csv Datei: Land,Region/Bundesland,Stadt,"Zip/Postal Code From","Zip/Postal Code To","Gewicht From","Gewicht To",Versandpreis,"Delivery Type" DEU,,,,,0.0000,4.0000,6.9900,"Standard Versand" DEU,,,,,5.0000,9.0000,35.0000,"Standard Versand" DEU,,,,,10.0000,99.0000,100.0000,"Standard Versand" *,,,,,0.0000,4.0000,39.9900,"Standard Versand" ,,,,,5.0000,9.0000,100.0000,"Standard Versand" ,,,,,10.0000,99.0000,150.0000,"Standard Versand" AUT,,,,,0.0000,4.0000,15.99000,"Standard Versand" AUT,,,,,5.0000,9.0000,35.0000,"Standard Versand" AUT,,,,,10.0000,99.0000,100.0000,"Standard Versand" AND,,,,,0.0000,4.0000,15.99000,"Standard Versand" AND,,,,,5.0000,9.0000,35.0000,"Standard Versand" AND,,,,,10.0000,99.0000,100.0000,"Standard Versand"

Vielen Dank und LG

Simon am

Tja - habe mich geirrt ;) Anscheinend ist das keine Magento Core Funktion, sondern sie ist im großartigen Mage_Setup enthalten:

https://github.com/firegento/firegento-magesetup

Daniel am

Hallo,

hab das selbe Problem wie Ronny. Habe Artikel mit 7% und 19% - gibt es da eine Lösung??

LG

RCTech am

Danke für die Anleitung. Hat mir gerade ordentlich Arbeit abgenommen.

Zwei Anmerkungen: Schweiz (CHE) fehlt in der Liste. (Ja ist nicht EU aber Preislich wie EU) Bei mir greift der Rabatt auf 0 Euro Versandkosten nach dem Netto Preis. Sprich wenn ich möchte, dass ab 99 Euro Versandkostenfrei in Deutschland geliefert wird, musste ich 83 Euro eintragen.

Kay am

Ich bin erst jetzt auf den Thread gestoßen, da wir aufgrund des neuen Widerrufsrechtes unser Versandkosten anpassen möchten. Vielen Dank für die ausführliche Beschreibung. Leider gibt es derartige Informationen noch nicht genug im Netz.

lisz am

Hallo zusammen,

danke für die guten Tipps. Ich hätte noch die Frage, wo sich die Tabelle shipping_tablerate befindet. Der Import hat nämlich nicht funktioniert (Magento 1.7)

Vielen Dank für die Hilfe, schönen Sonntag Nachmittag.

Simon am

Hey Rony, hast du die aktuelle Magento Version? Wenn ich dich recht verstehe, ist das 7%/19%-Mwst Problem inkl. Versand seit 1.7 bei Magento built-in

Rony am

Hallo, was tun wenn Artikel mit 7% und 19% MwSt., d.h. bei gewünschter Versandkostenfreiheit ab 75 Euro greifen unterschiedliche Nettobeträge! Gibt es denn keine Möglichkeit, dies über den Gesamtbetrag incl. MwSt. zu realisieren?

Wäre für jeden Tipp dankbar.

vg Rony

Rainer am

Vielen Dank für den Artikel.

Der half mir schon weiter. Kann ich eine Versandkostentabelle gg Gewicht auch so konfigurieren, dass ich bis 1kg einen Preis habe, dann einen bis 2kg und über 2kg die Versandmethode ausblende?

Viele Grüße

Florian am

Hallo! Ich würde gerne meine Versandkosten nach Gewicht berechnen. Aber auch ab einem Bestellwert von 20€ Versandkostenfrei versenden.

Ihr habt oben gezeigt wie man es bei Versandkosten ach Preis umsetzt. Habt ihr auch einen Tipp für meinen Umsetzungswunsch?

Beste Grüße

Mir am

Exakt den Anweisungen befolgt. Habe ab 50€ Bestellwert keine Lieferkosten. Jedoch zeigt er nach wie vor die sonst anfallenden Versandkosten in Höhe von 4.90€ an beim Checkout Process obwohl Bestellwert mehr als 50€ ist. Habe im Backend Versandkostenpauschale & Versandkostenfrei Kategorien auf deaktiviert gesetzt! Kann mir jemand sagen wo der Wurm steckt? :)

Haiko am

Hallo, vielen Dank für die ausführliche Anleitung! Was mich allerdings stört bei der ganzen Sache ist, dass man einen Punkt anstatt Komma setzen muss bei den Gewichtsangaben, was recht unschön im Frontend aussieht. Gibt es dafür schon eine Lösung?

LG, Haiko

Anna Völkl am

Danke für die super Erklärung! :-)

Für zusätzliche Aufgaben kann ich (wie Simon oben schon gepostet hat) MatrixRate ebenfalls empfehlen.

mklooss am

Sehr guter Artikel, meiner Meinung nach sollte noch der Hinweis dazu, dass die "Bestellzwischensumme (und höher):" per Default in Magento ohne MwSt. ist. Wenn man Bspw. nur Artikel mit 19% MwSt. ist die Zwischen Summe nicht 100 €, sondern 81 €.

Simon am

Ja, gut erklärt, schöner Artikel - auch wenn ich bisher zum Glück noch nie auf einen der eingangs beschriebenen Shops getroffen bin ;)

Wer wirklich noch komplexer werden muss, findet übrigens in dieser Extension alles was das Herz begehrt: http://www.magentocommerce.com/magento-connect/webshopapps-matrixrate-1-multiple-table-rates-extension-certified-bug-free.html

Tobias Vogt am

Tolle Erklärung, danke Daniel!

Dein Kommentar