Sonntag, 7. Mai 2017

Mehr Felder und Daten in oxOrderArticles

Wer Verkaufsanalysen auf Artikelebene durchgeführt möchte, kommt an der Tabelle oxorderarticles nicht vorbei: oxorderarticles enthält den Zustand des Artikels zum Zeitpunkt des Verkaufs. Leider gilt das nicht für alle Datenfelder eines Artikels.



Ursache

Die Save Methode der OXID Klasse oxorderarticles kopiert beim Abschluss einer Bestellung Werte aus der Tabelle oxarticles in die Tabelle oxorderarticles um den Zustand des Artikels zum Kaufzeitpunkt festzuhalten. Aber leider nur ein Teil der Daten. Felder wie etwa den Einkaufspreis, die EAN/GTIN oder der Lieferant werden nicht gespeichert. Wird der Artikel nach dem Verkauf verändert oder gar gelöscht, sind diese Informationen unwiederbringlich verloren. Die Erweiterung der Methode vorzunehmen hilft nur bedingt: der Tabelle oxorderarticles fehlen auch die entsprechenden Datenbankfelder.

Abhilfe

Durch das Modul jxOrderFields kann diese Lücke geschlossen werden. Das Modul erlaubt eine benutzerdefinierte Erweiterung der zu übertragenen Werte eines Artikels und legt die fehlenden Datenfelder in der Tabelle oxorderarticles auch gleich an. Welche Felder zum Zeitpunkt des Kaufs übertragen werden sollen, kann über die Einstellungen von jxOrderFields festgelegt werden.

Download und Einrichtung

Wie immer wird das Modul unter der GPL Lizenz kostenlos zur Verfügung gestellt. jxOrderFields kann als separates Modul zu jedem CE und PE Shop der Versionen 4.7, 4.8, 4.9 und 4.10 hinzugefügt werden. Es unterstützt mehrere Sprachen, deutsch und englisch sind bereits enthalten, Änderungen an bestehenden Dateien sind nicht erforderlich.
Das Modul kann direkt von Github herunter geladen werden.

Installation

Für die Installation des OXID Moduls müssen die Dateien z.B. per FTP hochgeladen werden. 

Einrichtung

Das Modul jxOrderFields unter Erweiterungen - Module auswählen, aber (noch) nicht aktieren, sondern als erstes auf den Reiter Einstellungen wechseln. Dort müssen die gewünschten Datenbankfelder - jeweils eines pro Zeile - eingetragen werden. Zulässig sind alle Felder der Tabelle oxarticles.

Die Datenfelder werden durch das Modul jxOrderFields bei der Aktivierung - so fern sie noch nicht vorhanden sind - automatisch angelegt.  Die Methode funktioniert nicht nur mit OXID Standardfeldern von oxarticles, sondern auch mit zusätzlichen Feldern anderer Module.

Alternativ können die Datenbankfelder auch manuell angelegt werden, z.B. wenn der DB User keine Rechte zum Erzeugen neuer Felder besitzt. Um eine Verwechslung und Konflikte zu vermeiden, müssen die neuen Felder mit jx anstelle von ox beginnen. Aus oxbprice wird also jxbprice. Das ist auch gut so, denn oxbprice gibt es beispielweise schon in der Tabelle oxorderarticles, doch leider mit einer anderen Bedeutung als in oxarticles. 

Sind alle Felder definert, kann das Modul aktiviert werden. Weitere Aktionen sind nicht erforderlich, ab dem nächsten Kauf werden die Felder automatisch gefüllt.


Keine Kommentare:

Kommentar veröffentlichen