Spezialversand Distributionslogik

Benötigte Lesezeit: 3 Minuten


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 _spezialversandcustom 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.

🌶️
🔥
🌶️