"Bestandsaktualisierung automatisieren" (SimpleStockUpdate)

Zweck dieses Plugins

Dieses Plugin hilft Ihnen dabei Ihren Bestand aktuell zu halten indem es einen Cronjob zum automatisierten Import von CSV-Dateien bereitstellt. Zum Beispiel falls Sie auf mehreren Plattformen verkaufen und Ihren Bestand regelmäßig mit Ihrer Warenwirtschaft abgleichen müssen.

Der Cronjob des Plugin prüft in frei wählbaren Intervallen ob sich die konfigurierte Datei geändert hat, und importiert sie gegebenenfalls.

(De-)Installation

Über den Plugin-Manager, siehe Shopware-Dokumentation für Details.

Bitte leeren Sie nach Installation den Shopware-Cache, andernfalls könnte es dazu kommen das der Cronjob nicht ausgeführt werden kann da benötigte Komponenten nicht gefunden werden können. Nach der Installation erscheint eine Abfrage mit der Sie dies direkt erledigen können.

Nutzung

Wie Sie den Cronjob letztendlich aufrufen, ist absolut egal. Das kann über den Browser, die Crontab oder auch bin/console erfolgen. Details entnehmen Sie bitte der Shopware-Dokumentation https://community.shopware.com/Cronjobs_detail_1102.html#Wie_starte_ich_einen_Cronjob.3F. Um die Häufigkeit/das Interval des Imports zu konfigurieren, können Sie das Interval des Cronjobs bearbeiten.

Der "Action name" für die Ausführung über bin/console lautet Shopware_CronJob_pixe2SimpleStockUpdateCron. Der komplette Befehl zum starten des Cronjobs lautet also bin/console sw:cron:run Shopware_CronJob_pixe2SimpleStockUpdateCron.

Je nach Artikelanzahl kann die Ausführung durchaus etwas länger dauern, die Ausführung über den Browser ist daher ungeeignet.

Konfiguration

Das Plugin bietet Optionen um den Prozess anzupassen. Passen Sie diese zuerst Ihren Erfordernissen an und aktivieren Sie anschließend den Cronjob des Plugins unter Grundeinstellungen > System > Cronjobs. Bitte beachten Sie das dass Shopware eigene "Cron" Plugin aktiviert sein muss.

Dateipfad

Geben Sie hier den Namen der zu importierenden Datei ein. Das Plugin geht davon aus das diese Datei im Pluginverzeichnis liegt. Das Pluginverzeichnis finden Sie unter <ihrshopverzeichnis>/custom/plugins/pixe2SimpleStockUpdate. Sie können aber auch einen relativen Pfad hier eingeben, solange er für den Webserver bzw. PHP-Benutzer lesbar ist. Wenn Ihre Datei z.B im Hauptordner des Shops liegt, würde der relative Pfad ../../../dateiname.csv lauten. Bitte beachten Sie, nicht nur der Pfad selbst muss für den Webserver lesbar sein - natürlich auch die Datei selbst.

Alternativ ist es auch möglich eine HTTP(S), SFTP oder FTP URL anzugeben, die Datei wird dann für den Import heruntergeladen und nach Import wieder gelöscht.

Remote-Dateien verifizieren

Falls aktiviert werden Dateien, die aus einer HTTP(S), SFTP oder FTP Quelle stammen, mehrfach heruntergeladen. Nach jedem Download wird eine sha1 Prüfsumme erstellt und diese verglichen. Das Plugin geht davon aus das die Datei gerade aktiv verändert wird falls die Prüfsumme sich verändert und plant den Cronjob zur erneuten Ausführung in 5 Minuten.

Achtung: dies fügt mindestens 10 Sekunden zusätzliche Verzögerung in den Prozess ein.

SSL-Fehler ignorieren

Wenn aktiv werden SSL-Fehler beim Abruf einer Remote-Datei, zum Beispiel durch ein selbstsigniertes Zertifkat, ignoriert.

Spalten-Trennzeichen

Geben Sie das Spalten-Trennzeichen hier ein. Es sind beliebige Zeichenketten möglich, üblicherweise z. B. "," oder ";". Um [TAB] als Trennzeichen zu verwenden, bitte "\t" eingeben.

Identifizierungs-Spalte

Numerischer Index der Spalte die den Zuordnungswert enthält. (Hinweis: Zählung beginnt bei 0!)

Wert Spalte

Numerischer Index der Spalte mit dem neuen Bestand (Hinweis: Zählung beginnt bei 0!)

Erste Zeile überspringen

Falls die erste Zeile in der Datei Spaltenköpfe enthält, können Sie diese Option aktivieren um Sie beim Import zu ignorieren.

Rückgabewert

Hier mit können Sie konfigurieren welche Art von Rückmeldung erfolgen soll. Es gibt die Möglichkeit das Ergebnis als Klartext, JSON oder in serialisierter Form zurückzugeben,oder auch auszugeben. Alternativ ist es auch möglich eine Aus- bzw. Rückgabe komplett zu unterdrücken.

Debug-Logging aktivieren

Mit dieser Option werden detaillierte Informationen zur Fehlersuche in das Plugin log geschrieben. Dieses kann direkt im Backend eingesehen werden.

Bitte beachten Sie das in der Shopware-Standardkonfiguration dort nur Fehler angezeigt werden, daher loggt das Plugin alle Informationen als Fehler - auch wenn es keine Fehler sind.

Artikel (de-)aktivieren

Wenn aktiviert, werden die Artikel automatisch de-/aktiviert, je nach dem ob der importierte Bestand größer 0 ist.

Importierte Artikel immer aktivieren

Wenn aktiviert werden importierte Artikel immer aktiviert, egal welcher Bestand in der Datei steht.

Achtung: Falls mit "Artikel (de-)aktivieren" ebenfalls aktiv ist, übersteuert es diese Option.

Identitätsfeld

Erlaubt Ihnen festzulegen anhand welcher Eigenschaft die Daten zugeordnet werden. Standardmäßig wird die Bestellnummer genutzt.

Sperr-Mechanismus deaktivieren

Normalerweise legt das Plugin sobald der Import startet eine Datei ".lockfile" im Pluginverzeichnis an. Wenn diese existiert, kann kein Import gestartet werden. Gedacht ist dieser Mechanismus um mehrere laufende Imports zu unterbinden.

Falls der letzte Import aber abgebrochen wurde, in der Regel wegen Ausführung über den Browser und max_execution_time, verbleibt diese Sperrdatei und verhindert einen neuerlichen Importlauf. Mit dieser Option können Sie diesen Sperrmechanismus komplett aushebeln ohne die Datei zu entfernen.

WICHTIG: Diese Option ist als Workaround gedacht, nicht für den Dauerbetrieb. Wenn nach dem Import die Sperrdatei nicht entfernt wurde, wurde der Import auch nicht erfolgreich beendet!

Änderungscheck deaktivieren

Normalerweise führt das Plugin den Import nur durch, falls sich die Importdatei seit dem letzten Lauf verändert hat. Diese Prüfung kann hiermit deaktiviert werden, so das der Import immer ausgeführt wird.

Zeilenumbrüche normalisieren

Falls die Importdatei "\r" Zeilenumbrüche, oder einen Mix, nutzt können Sie mit dieser Option einen Workaround aktivieren.

Nicht importierte Artikel deaktivieren

Falls aktiviert, werden alle Artikel die nicht in der importierten Datei enthalten waren deaktiviert. Um dies einzugrenzen kann die Option ""Nicht importiert" Präfix - Einschluss" genutzt werden. Des weiteren gibt es auch einen Ausschlussfilter.

Hinweis: Dies funktioniert nur wenn die Bestellnummer als Identitätsfeld genutzt wird! Außerdem müssen Varianten das Standard-Bestellnummernschema nutzen, sprich die Bestellnummern der Varianten müssen auf der Hauptartikel-Bestellnummer aufbauen (z.B Hauptartikel = SW10001, Varianten SW10001.2 SW10001.3 etc.).

"Nicht importiert" Präfix - Einschluss

Hiermit können Artikel die nicht im Import enthalten waren für die Deaktivierung/Bestandleerung EINBEZOGEN werden. Der Wert wird dabei als Präfix genutzt, wenn hier also "DS" eingegeben wird werden alle Artikel deren Bestellnummer mit "DS" beginnt und die nicht im Import enthalten waren deaktiviert / geleert. Wird diese Option nicht gesetzt, werden ALLE nicht enthaltenen Artikel deaktiviert / geleert.

"Nicht importiert" Präfix - Ausschluss

Hiermit können Artikel die nicht im Import enthalten waren von der Deaktivierung/Bestandleerung AUSGESCHLOSSEN werden. Der Wert wird dabei als Präfix genutzt, wenn hier also "DS" eingegeben wird werden alle Artikel deren Bestellnummer mit "DS" beginnt NICHT deaktiviert/geleert selbst wenn sie nicht im Import enthalten waren. Wird diese Option nicht gesetzt, werden alle Artikel deaktiviert/geleert die der Option '"Nicht importiert" Präfix - Einschluss' entsprechen.

Bestand nicht importierter Artikel löschen

Falls aktiv, wird der Bestand nicht im Import enthaltener Artikel auf 0 gesetzt.

Pickware-Unterstützung

Wenn aktiviert, werden die Bestandsänderungen "nativ" in Pickware importiert und nicht einfach nur der Lagerbestand am Artikel aktualisiert.

Wichtiger Hinweis falls Sie das Plugin bereits vor dieser Option mit Pickware eingesetzt haben

Wenn Sie das Plugin vor diesem Update bereits in Kombination mit Pickware genutzt haben, wurden die Bestandsänderungen bislang direkt auf dem "reservierten Bestand" ausgeführt. Mit aktiven Pickware-Support erfolgen die Buchungen auf den "physischen Bestand", daher kann es zu falschen (bzw. doppelten) Gesamtbeständen kommen. Bitte kontrollieren Sie daher nach dem ersten Import mit aktivierter Pickware-Unterstützung den Bestand der betroffenen Artikel!

Pickware-Unterstützung: relativer Import

Wenn die Importdatei relative Bestandsangaben, also Veränderung statt Gesamtwert, liefert, aktivieren Sie diese Option. Ohne diese Option werden Gesamtwerte in der Datei erwartet.

Pickware-Unterstützung: Ziel Lager

Geben Sie hier den Namen des Lagers ein auf dem die Änderungen gebucht werden sollen.

Pickware-Unterstützung: Ziel Lagerplatz

Mit dieser Option können Sie einen Lagerplatz für die Buchungen vorgeben (Standard: pickware_null_bin_location).

Mindestbestand für Import

Falls Bestandsänderungen nur angewendet werden sollen wenn der neue Bestand größer als X ist können Sie hier X eingeben. Sollte ein Artikel in der Importdatei einen Bestand unter X haben wird der neue Bestand dann nicht angewendet.

Bestandswerte sind Staffelungsangaben

Wenn aktiv, werden importiere Bestandswerte als "Staffelungscontainer" betrachtet und entsprechend multipliziert. Ein Beispiel: es wird ein Getränk in Flaschen angeboten, der Lieferant bietet es in Kartons mit je X Flaschen an also ist der Artikel mit einer Staffelung und Mindestabnahme von X Flaschen konfiguriert. Der Bestand in der Importdatei des Lieferanten gibt die Anzahl an Kartons, nicht Flaschen, an und muss daher mit der Staffelung multipliziert werden.

Anmerkungen

Nicht existierende Artikel werden als Fehler geloggt, ansonsten wird der Import aber weiter ausgeführt.

Sollte für einen Artikel ein nicht numerischer Bestand in der Importdatei enthalten sein, so führt dies dazu das der entsprechende Artikel nach Import einen Bestand von 0 hat.

Die Ergebnisse des Import sind im konfigurierten Format in der Cronjob Konfiguration ersichtlich. Das gilt auch für eventuell aufgetretene Fehler. Alternativ bietet sich die Umleitung der Ausgabe in eine Datei an.

Alle Spalten in der Importdatei, außer die konfigurierten Spalten für Artikelnummer und Bestand, werden ignoriert. Sie müssen aber dennoch in den Speicher geladen werden, je nach Dateigröße kann es Sinn machen die Datei vorher zu reduzieren.