Multilager

Benötigte Lesezeit: 8 Minuten


Einleitung

Mit diesem externen PepperShop Modul, stehen mehrere Lager im Shop zur Verfügung. Somit ist die Erfassung und Verwaltung von mehreren Lagerbeständen pro Artikel möglich.

Das Modul selbst konzentriert sich in der aktuellen Version vor allem auf die Verwaltung der Bestände. Vor dem Einsatz des Moduls müssen gegebenenfalls noch gewisse Prozesse umgesetzt werden, wenn die Standardlösung nicht passt – z.B. Auswahl des abzubuchenden Lagers bei Bestelleingang und Anzeige der Lagerdaten in der Artikeldetailanzeige (ggf. mit Subartikel).

Modulkonfiguration

Abbildung 1: Installierte ModuleZuerst geht man in die Multilager Modulverwaltung: Hauptmenü der ‘Shop-Administration’ > ‘Module’ > ‘Multilager’ (siehe Screenshot Ausschnitt rechts).

In der Multilager Modulverwaltung, klickt man ganz oben auf den Button „Konfiguration”. Nun gelangt man zur Konfigurationsmaske des Multiartikel Moduls. Hier kann man das Modul aktivieren und sieht verwendbare Lagerstandorte (siehe dazu: ‘Lagerdefinition’).

Abbildung 2: Konfigurationsteil der Modulverwaltung

Aktivierung des Moduls

Aktivierung: Hier ein Häkchen in die Checkbox setzen, wenn dieses Modul aktiviert sein soll. Nachdem die Angaben entsprechend konfiguriert wurden, sollte man sicherstellen, dass diese gespeichert worden sind (klick auf den ‘Speichern’-Button).

Lagerdefinition

Die Lager werden in der Konfigurationsmaske dieses Moduls definiert. Die Verwaltung ist ziemlich einfach und intuitiv. Bitte sehr vorsichtig sein, mit dem Löschen eines Lagers im Live-Betrieb!

 Achtung: Eine Mutation hat sehr weitreichende Folgen: Alle verknüpften Lagerbestände und die Historie des Lagers sind davon betroffen.

Administration

Das Artikel-Feld verfügt über eine Autovervollständigung. Der Artikel muss aus der Autovervollständigung-Liste angewählt werden, ansonsten gilt das Formular als nicht vollständig ausgefüllt. Wenn es zum entsprechenden Artikel bereits Buchungen gibt, werden diese nach der Auswahl via Autovervollständigung dargestellt. Das Lastkonto ist das einzige Feld, welches kein Pflichtfeld ist. Unterhalb des Formulars werden die zuletzt getätigten Buchungen aufgelistet, sodass bei vielen Buchungen die Übersicht nicht verloren geht.

Allgemeine Konfiguration (bei Klick auf ‘Konfiguration’ Button)

Abbildung 3: Multilager Verwaltungsmaske

  • Aktivierung: Soll das Modul aktiv sein?
  • Liste der verwendbaren Lager (Anzeige): Info: Neue Lager werden nur via Shop-Datenbank angelegt oder verändert, da es wichtige Abhängigkeiten gibt. Am besten via phpMyAdmin editieren. Pro Lager vergibt man eine Bezeichnung (Lagernummer). Die Lager-ID vergibt das Shopsystem selbst.

Lagerverwaltung

  • Konfiguration: Button führt zur Konfigurationsmaske dieses Moduls.
  • Lagerliste per Datum exportieren: Hier Datum im Format TT.MM.JJJJ [HH:MM:SS] angeben, um eine Lagerübersicht zu exportieren. Verwendet wird das via Excel / LibreOffice lesbare Format CSV

Lagerbuchung

In diesem Abschnitt wird eine Lager Operation durchgeführt. Je nach Ort, wie diese Maske aufgerufen worden ist, kann das Feld ‘Artikel’ auch schon vorausgefüllt sein (GET-Parameter _artikelid. Man kann aber auch nur einen Artikel eingeben, um zu sehen, wie seine letzten Operationen ausgesehen haben.

  • Artikel: Tippen Sie im Eingabefeld den Namen eines Artikels oder dessen Artikel-Nr. Der Shop zeigt eine Type-A-Head Suchresultateliste an, aus welcher man den zu bearbeitenden Artikel auswählt. Info: Sobald ein Artikel gewählt worden ist, blendet der Shop unterhalb der Buchungsmaske eine Übersicht der letzten Multilager-Operationen mit diesem Artikel ein.
  • Lager: Hier kann man aus einer Liste von vorhandenen Lagern wählen. Die Lagerbuchungsoperation gilt dann für dieses Lager.
  • Aktion: Welche Lageroperation soll ausgefürt werden?
    • Wareneingang: Lagerbestand eines Artikel erhöhen
    • Warenausgang: Lagerbestand eines Artikel verkleinern
    • Inventur(buchung): Lagerbestand eines Artikel setzen
    • Lagerbestand umbuchen: Wird diese Option gewählt, zeigt der Shop eine zweite Lagerwahl an. Nun gibt man an, von welchem Lager in welches Lager man die gewünschte Anzahl Artikel umbucht. Es werden immer zwei Operationen gebucht: Ein Wareneingang und ein Warenausgang beim anderen Lager.
  • Anzahl Artikel: Hier bitte die gewünschte Anzahl Artikel angeben, die gebucht werden soll.
  • Lastkonto: Eine Buchungsnotiz

Die Eingabemaske kann auch angepasst werden, siehe dazu Kapitel Anhang 1.

Letzte Buchungen

Zuunterst sieht man eine Tabelle mit den letzten Multilager Buchungen über das gesamte Artikelsortiment und den Navigationsbutton um die Maske zu verlassen. Bestellungen werden direkt verlinkt.

Import / Export von Multilager Daten

Das Multilager Modul ist ins PepperShop Import/Export Tool der Professional Version integriert. Somit kann man die Lagerbestände als absolute Werte (Inventurbuchungstyp) bei einem Import ins Shopsystem übernehmen oder auch als Daten in die Exportausgabe integrieren.

Auswahl der Spalten für den Export

Shop-Administration – Import/Export – Import/Export-Tool – Artikelstamm exportieren (Button klicken)

Bei der nun erscheinenden Liste fehlt das Standardfeld ‘Lagerbestand’, dafür werden die via Multilager Modul definierten Lager mit dem Prefix ‘Lager ’ aufgelistet, z.B. ‘Lager Hannover’ und ‘Lager München’. Setzt man dort ein Häkchen, so wird der Shop die entsprechende Lagerbestände der jeweiligen Artikel mit exportieren.

Artikelimport

Hier einfach eine Importdatei mit denselben Export-Spaltenbezeichnungen hochladen und importieren.

Integration in Artikel Bearbeitungsmaske

Abbildung 4: Artikelinfoanzeige ganz unten in der Artikel Bearbeitungsmaske

Wenn man einen Artikel bearbeitet via ‘Artikel’ → ‘bestehenden Artikel bearbeiten’, sieht man eine Lagerinfoanzeige und einen Button, der direkt zur Lagerbearbeitungsmaske führt. Subartikel werden hier ebenfalls schon angezeigt (siehe Beispielbild).

Buchung bei Bestellung

Wenn via Webshop oder Kasse1 eine Bestellung eintrifft und der Shop im Lagermanagement so konfiguriert ist, dass er direkt Lagerbuchungen vornehmen soll, so wird dies automatisch nach folgender Regel durchgeführt (müsste bei Bedarf in shop/lager.def.php in correkt_lagerbestand_fuer _kunde(..) angepasst werden):

  1. Zuerst im Lager mit dem höchsten Bestand des Artikels abbuchen
  2. Sollte eine grössere Anzahl bestellt werden, als Artikel am Lager mit dem höchsten Bestand sind, so gibt es mehrere Lageraktionen:
    1. Buche soviel Artikel wie möglich von jedem Lager mit positivem Artikelbestand ab
    2. Buche überzählige Artikel auf dem Lager mit:
      1. dem grössten Artikelbestand
      2. den grössten Reservationen (ausstehender Bestand) – falls es keine Artikel an Lager gab

Anzeige der Lagerbestände auf Kundenseite

Im Auslieferungszustand wird den Besuchern des Shops jeweils nur der kumulierte (Sub-)Artikellagerbestand angezeigt. Diese Angabe kann als exakte Zahl oder als Ampel (rot, grün) in der Artikelliste und in der Artikeldetailanzeige verwendet werden. Sollte hier eine andere Anzeigeform gewünscht sein, kann man dies in folgender Methode anpassen: shop/module/multilager/lager.def.php in get_lagerbestand_fuer_kunde(..).

Eine einfache Möglichkeit um eine Liste mit den Lagern und den Beständen zu erhalten, kann man wie folgt auslesen:

$lager = new lager.def.php();
$lager->set_artikel_id($artikel_id);
$lagerliste_array = $lager->get_lagerbestaende_des_artikels();

Installation

Systemanforderungen

Um das Multilager Modul einsetzen zu können, ist mindestens ein PepperShop v.6.0 Professional oder Enterprise erforderlich.

Dateien kopieren und hochladen

Das Multilager Modul besteht aus einigen Dateien und zwei Verzeichnissen, die man in seinen installierten PepperShop kopieren muss. Dazu entpackt man zuerst das mitgelieferte ZIP-Archiv. Es sind im Wesentlichen zwei Verzeichnisse die kopiert werden müssen:

{shopdir}/shop/Admin/module/multilager
{shopdir}/shop/module/multilager

Die Dateien lassen sich einfach via FTP oder SCP zum Webserver hochladen. Der Platzhalter {shopdir} steht dabei für das Shopverzeichnis auf dem Webserver, wo unter anderem die Datei index.php zusammen mit README.txt zu finden ist.

Modulinstallation

Nach dem Kopieren der Dateien kann man in die Shop-Administration gehen und dort ins Menü* ‘Module’* wechseln. Auf der linken Seite, bei den noch nicht installierten Modulen, sieht man nun das Multilager Modul aufgelistet.

Abbildung 5: Das Multilager Modul wird aufgelistet (Module können variieren)

Nun muss das Multilager Modul angewählt werden und auf den ‘Installieren’ Button geklickt werden. Wenn die Installationsroutine ohne Probleme durchläuft, wird dies auf der darauf folgenden Seite kommuniziert. Das Modul ist nun installiert. Wir klicken nun auf den Button ‘Zurück zur Modulverwaltung’ und dort ‘Zurück zur Moduladministration’. Wir sehen jetzt einen Button für das Multilager Modul. Wenn man auf diesen Button klickt, erscheint die Verwaltung dieses Moduls.

Die Installation des Multilager Moduls ist nun abgeschlossen. Damit das Modul eingesetzt werden kann, muss das Modul nun noch an die spezifische Konfiguration des Shopbetreibers angepasst werden, siehe dazu das nächste Kapitel Modulkonfiguration, weiter unten.

Lagermanagement aktivieren

In der Shop-Administration muss man nun via ‘Artikel’ → ‘Lagerverwaltung’ → ‘eingeschaltet’ → Speichern das Lagermanagement aktivieren. In dieser Maske ist das Multilager auch schon verlinkt.

Kompatibilität

Dieses Modul ist derzeit nicht mit der Lager-Synchronisation des PepperShop Moduls Synchronisations-Tool kompatibel (Abgleich von Stammdaten zwischen mehreren PepperShops um ein Shop-Netzwerk zu formen).

Hilfe / offene Fragen

Bei offenen Fragen steht das PepperShop Forum zur Verfügung:

http://www.peppershop.com

Anhang 1: Fortgeschrittene Konfiguration: Administrationsmaske

Aufruf der Maske mit vorausgewählten Daten

Die Maske für Buchungen der Artikel kann man konfigurieren. Es gibt Aufrufparameter, welche als GET-Parameter übermittelt werden können, so dass die Maske angepasst werden kann:

Diese Maske kann mit vorausgewählten Daten aufgerufen werden. Dazu kann man folgende GET-Parameter verwenden:

  • lager_id = Wählen Sie hier ein Lager vor. Dazu muss als GET-Parameter lager_id mit dem nummerischen Lager-ID Wert angegeben werden. Dieser Wert kann in der Konfigurationsmaske ausgelesen werden.
  • lager_id_2 = Wählen Sie hier ein Ziel-Lager vor. Bei der Umbuchen-Aktion muss man zwei Lager angeben. Hier kann man das Ziellager wählen. Dazu muss als GET-Parameter lager_id_2 mit dem nummerischen Lager-ID Wert angegeben werden. Dieser Wert kann in der Konfigurationsmaske ausgelesen werden.
  • lastkonto = Definieren Sie hier das vorausgewählte Lastkonto
  • anzahl = Geben Sie eine vorgewählte Anzahl an. Achtung: Wenn die Anzahl vorgewählt ist, wird die Aktion unmittelbar nach Eingabe einer gültigen Artikelidentifikation ausgeführt!
  • in_popup = Soll die Maske ohne Navigationsoptionen gerendert werden (z.B. in einem PopUp?), dann einfach &in_popup=true anhaengen.
  • aktion = Definieren Sie hier die vorausgewählte Aktion der Maske, z.B. folgende:
    • ein = Wareneingang erfassen
    • aus = Warenausgang erfassen
    • um = Lagerbestand umbuchen
    • inv = Inventur (überschreiben des Lagerbestands mit neuem Wert)

Beispielaufruf einer Warenausgangsmaske:

http://www.example.com/shop_pfad/shop/Admin/module_admin_aufruf.php?darstellen=4&installed_selection=multilager&backlink=6&in_popup=true&lager_id=2&lastkonto=2003&aktion=aus

Konfiguration der Maske

In der folgenden PHP-Datei gibt es mehrere Steuerungskonstanten, mit welchen man das Verhalten der Maske zur Eingabe von Lagerbuchungen beeinflussen kann. Insbesondere bei Verwendung eines Barcode-Scanners und dem Hersteller-Modul ist dies wichtig, da man hier das Datenbankfeld des Barcode-Felds definiert (MULTILAGER_ARTIKEL_IDENT_FIELD = 'artikel_code'):

define('MULTILAGER_MAX_ANZ_LETZTE_BUCHUNGEN' , 10);
define('MULTILAGER_ARTIKEL_IDENT_FIELD' , 'Artikel_Nr');
define('MULTILAGER_JUMP_TO_FIELD_AFTER_IDENT_FILL', 'anzahl');
define('MULTILAGER_COPY_ANZAHL_FELD_AFTER_COMMIT' , false);

  1. PepperShop POS, die webbasierte Kassenlösung: https://www.peppershop.com/pos/
🌶️
🔥
🌶️