TRADElube 1.2.1.10 Release Notes
Release Datum: 11.10.2023
Aktionspreise nun über Gültigkeitszeitraum möglich
Da es in Shopware nicht die Möglichkeit gibt die Standardpreise auf einen Gültigkeitszeitraum zu beschränken, hatte bisher der Gültigkeitszeitraum von den in TRADElube hinterlegten Aktionspreisen auch keine Auswirkung bei der Übertragung nach Shopware:
Der Aktionspreiszeitraum aus CAO-Faktura wurde zwar nach TRADElube synchronisiert, aber nicht nach Shopware. Stattdessen musste der Aktionspreis nach dem Aktionszeitraum auch wieder in der WaWi entfernt und neu synchronisiert werden.
Auch wurde dies seitens TRADElube bisher nicht umgesetzt, da eine einfache Lösung bisher so hätte ausgesehen, dass immer alle Artikel täglich synchronisiert werden hätten müssen, damit bei ein paar wenigen Produkten der Aktionspreis angepasst worden wäre. Das wäre aus Sicht der Performance (vor allem bei vielen Produkten) nicht sinnvoll gewesen. Deshalb ist diese schnelle Lösung für uns auch nicht in Frage gekommen.
Nun haben wir hier die notwendige Energy in ein neues Konzept reingesteckt und eine aufwendigere aber performante Lösung entwickelt, wo die vom Aktionszeitraum betroffenen Artikel nun gezielt zum richtigen Zeitpunkt und einmalig für die Übertragung neu ausgewählt werden. Mit diesem neuen Konzept lassen sich künftig nun auch andere Datums-abhängige Zuweisungen einfacher realisieren.
Die Anpassung der Aktionspreise abhängig vom eingestellten Aktionszeitraum erfolgt somit ab jetzt über Nacht zum richtigen Zeitpunkt automatisch.
Entsprechend wurde auch der Transferplan der Aufgabe "Shopware Produkte Hochladen" um den Gültigkeitszeitraum der Aktionspreise ergänzt.
Unterstützung von Mehrfachmapping bei Produktattributen
Produktattribute aus TriData können nun mehrfach für unterschiedliche Schreibweisen gemappt werden und so in TRADElube zu einer Eigenschaft zusammengeführt werden.
Feldzuweisung "Unternehmen" mit Skript Unterstützung
Im Transferplan des Kanals CAO-Faktura im Register "Bestellungen" dann im Register "Exportieren" kann nun jeweils für Rechnungs- und Versandadresse für das Feld "Unternehmen" ein Skript hinterlegt werden. Dadurch kann nun, falls gewünscht, zusätzlich die Abteilung hinzugefügt werden. Da es für Abteilung kein dediziertes Feld in CAO-Faktura gibt, in TRADElube und meist im Onlineshop dieses Feld aber schon vorhanden ist.
Entfernen von Emojis aus dem Bestellkommentar
Wenn in Shopware ins Bestellkommentar Emojis reingeschrieben werden, dann kann die Bestellung aktuell nicht importiert werden, da es dann beim Speichern in die Datenbank (MariaDb) aufgrund ungültiger Zeichen einen SQL-Fehler gibt. Diese Problem muss noch weiter untersucht werden - vielleicht ist dazu auch ein größeres Upgrade des Datenbankservers und ggf. auch von TRADElube wegen der Datenbanktreiber erforderlich. Vorsorglich kann aber deshalb nun (sollte das Problem tatsächlich auftreten) im Transferplan der Aufgabe "Shopware Bestellungen Herunterladen" der Feldzuweisung des Bestellkommentars ein Skript hinterlegt werden, um die Emojis zu entfernen.
Folgendes Script wird bereits automatisch vorgeschlagen:
return customerComment.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g, '');
Fehler beim Import von Bestellungen mit Rabatt
Die Shopware API für Bestellungen liefert bei Bestellpositionen mit Rabatt in Sonderfällen keinen sog. payload. Im Payload steht normalerweise die Produktnummer für Produktpositionen oder der Gutscheincode für Gutscheinpositionen. In solchen Fällen war der Import der Bestellung daher fehlerhaft. Dies wird nun berücksichtigt und diese Positionen werden in TRADElube nun als Rabatt-Position angelegt.
Importieren von Lagerbeständen abgebrochen
Bei der Aufgabe "TriData Lagerbestände Herunterladen" konnte es unter gewissen Voraussetzungen aufgrund der Fehlermeldung "Object reference not set to an instance of an object." zu einem Abbruch kommen. Dies war bisher immer nur ein vorrübergehendes Phänomen, und kam dadurch zustande, wenn es in TriCon Lagerbestände zu Filialen gab, aber für diesen Artikel in TriCon noch kein Gesamtlagerbestand angelegt wurde. Diese Inkonstenz ist in der Regel nur vorübergehend während eines Datenabgleichs von TriData nach TriCon entstanden und dieser Umstand wurde von TRADElube nicht berücksichtigt.
Nun wird bei fehlendem Gesamtbestand zu einem Artikel, der Abgleich dessen korrekterweise übersprungen, oder anders gesagt, es werden nur noch Artikel mit Gesamtbestand synchronisiert.
Verzögerung der Synchronisierung von Laberbeständen bei neuen Artikeln
Nach Einführung der Kanalisierung in der Version 1.2.1.3 entstand das Problem, dass unter gewissen Voraussetzungen die Lagerbestände aus TriCon initial nicht mehr synchronisiert wurden. Diese blieben in TRADElube bei neu hinzugekommen Produkten also erstmal bei 0. Erst bei erneuter Änderung des Lagerbestands (oder nach Ablauf der Erneuerungszeit) wurde die Synchronisierung dann verspätet durchgeführt. Bereits bestehende Produkte waren von diesem Problem NICHT betroffen - wie gesagt nur bei neu Hinzugekommenen verzögerte sich die Übertragung und der Lagerbestand blieb erstmal bei 0.
Ursache war, wenn die Aufgabe "TriData Lagerbestände Herunterladen" quasi die Aufgabe "TriData Produkte Herunterladen" überholt hat. Die Artikel, die zu dem Zeitpunkt noch nicht angelegt wurden, wurden von der Aufgabe "TriData Lagerbestände Herunterladen" "Übersprungen" (dieses Konzept gibt es erst seit des Kanalisierungs-Features) und die Übertragung wurde nach der Artikelanlage dann aber nicht mehr wiederholt.
Durch eine Optimierung an der internen Mapping-Versionierung ist das Problem nun behoben.
Hinweis:
Als Übergangslösung bei dieser Art von Übertragungsleak können Aufgaben "Zurückgesetzt" werden. Dies bewirkt dann einen Vollabgleich aller Einträge. Danach werden dann immer nur Änderungen synchronisert (oder auch ohne Änderung wiederholt sich die Synchronisierung nach Ablauf der Erneuerungszeit). Dieses Vorgehen hat erhebliche Performance- bzw. Geschwindigkeitsvorteile im Gegensatz dazu also würde man IMMER das ganze Produktsortiment synchronisieren, ist aber natürlich auf der anderern Seite eine viel größere technische Herausforderung.