Spezialversand Distributionslogik
Modul Spezialversand / Distributionslogik
Mit dem Modul Spezialversand lassen sich Frachtkostenberechnungen nach PLZ und anderen Mechanismen Regel basiert implementieren. Die Versandarten lassen sich mit diesem Modul ebenfalls Regel basiert deaktivieren (z.B. kein Postversand zur Auswahl, wenn ein Produkt die Lieferung per Lastwagen erfordert).
Das Modul wird in der Literatur auch unter anderen Namen gelistet: Spezial-Logistik / Sperrgut / Distributionslogik.
Derzeit ist kein GUI in der Shop-Administration vorhanden. Die Umsetzung per PHP erlaubt maximale Freiheiten bei der Definition der Regeln.
Setup
Der Einsatz des Moduls ist ab PepperShop in der Version 5 möglich. Benötigt wird das kostenpflichtige Zusatzmodul und ein PepperShop in einer kompatiblen Version des Typs Professional oder Enterprise. Die Basic Version unterstützt keine Zusatzmodule und müsste zuerst geupgraded werden.
Installation Modul Spezialversand
Moduldateien auf den Server kopieren {shop_verzeichnis}/shop/classes/spezialversand
. Es besteht aus folgenden Dateien:
spezialversand_config.php
spezialversand.def.php
spezialversand_custom.def.php
spezialversand_versandart.def.php
Modul Konfiguration
Die Konfiguration des Moduls befindet sich in folgender Datei: {shop_verzeichnis}/shop/classes/spezialversand/spezialversand_config.php
Kunden individuelle Implementierungen werden in folgender Datei umgesetzt: {shop_verzeichnis}/shop/classes/spezialversand/spezialversand_custom.def.php
Anwendung
Versandart-ID: Identifikation einer Versandart
Eine Versandart wird durch ihre Shop-interne Versandart-ID identifiziert. Die Versandart-ID entspricht dem Primary Key der Datenbank Tabelle versandarten (Autoincrement Spalte). Sobald also eine Versandart gelöscht und danach neu eingefügt wird (einfache Mutation via Shop-Administration) existiert eine zuvor in der Distributionslogik verwendete Versandart NICHT MEHR! Dies muss man sich bewusst sein und Anpassungen in der Shop-Administration in Shop-Einstellungen → Lieferländer / Versandarten entsprechend kommunizieren. Hier sollte nicht mehr einfach gelöscht und neu angelegt werden dürfen – das ist sehr wichtig!
Versandarten und -kosten Steuerung
In der PHP-Klasse spezialversand_custom wird eine Kunden individuelle Versandkosten- und Zahlungsarten-Steuerung zentral programmiert. Die für die Steuerung erfolderlichen Werte wie Kunde, Lieferadresse, Bestellung und gewählte Versandart stehen direkt im Objekt zur Verfügung. Wie schon im Kapitel ‘Modul Konfiugration’ erwähnt, werden Kunden individuelle Implementierungen in folgender Datei umgesetzt: spezialversand_custom.def.php
Es stehen dafür die folgenden Methoden zur Verfügung:
- Methode : deaktiviere_versandart_custom
- In dieser Methode kann eine Kunden individuelle Versandarten-Deaktivierung implementiert werden. Als Argument wird der Versandarten-Array übergeben.
- Methode: entferne_versandart_aus_array
- Mit dieser Methode kann eine Versandart aus dem Versandarten-Array entfernt werden und steht somit nicht mehr zur Auswahl zur Verfügung. Das Shopsystem stellt zudem sicher, dass eine zuvor gewählte, nun nicht mehr verfügbare Versandart durch die erste, jetzt noch verfügbare Versandart ersetzt wird. Bitte verhindern, dass es zu Situationen kommen kann, wo keine Versandart verfügbar ist. Dies würde zur Verhinderung der Bestellungsannahme führen.
- Methode: check_set_versandart
- Hier prüft man, ob die aktuell gewählte Versandart verwendbar ist. Sollte dies nicht der Fall sein, wird ein Fallback auf eine jetzt verfügbare Versandart gewählt (optionale Angabe).
Zahlungsarten Steuerung
- Methode: deaktiviere_bezahlungsarten_custom
- In dieser Methode können Bezahlungsarten abhängig von der gewählten Versandart oder von Kunden- / Bestellungsdaten deaktiviert werden. Kunde, Lieferadresse und die Bestellung sind in Membervariablen des Objekts abgefüllt und stehen als Entscheidungsgrundlage bereit.
Anforderung: Versandkosten nach PLZ
Pro Lieferland und Versandart wird eine Frachtkostentabelle geführt, wobei die Versandart-ID Bestandteil des Dateinamens ist:
zum Beispiel so: {shop_verzeichnis}/shop/Admin/ch_spezialversand_nach_plz.csv
PLZ-von;PLZ-bis;Frachtkosten\
1000;1199;220\
1200;1299;230\
1300;1339;220
Die kann man dann z.B. auch mit dem CSV-Editor einfach editierbar machen, ein Beispiel findet man hier: {shop_verzeichnis}/shop/Admin/csv_admin.tpl.php
Nun kann man die Datei mit dem CSV-Reader einlesen und mit den gewählten Lieferdaten vergleichen und dann daraus eine Entscheidung für die Verfügbarkeit von Versandarten fällen.
Support
In komplexeren Fällen empfehlen wir die Implementierung durch Spezialisten der Glarotech GmbH, Hersteller des PepperShop E-Commerce Systems durchführen zu lassen: http://www.peppershop.com.