Shop 5.59.0 Release Notes - Februar 2025
Konfigurierbare Pflichtfelder
Bisher waren die Regeln für Neukundenregistrierung fest in den Frontend-Masken implementiert. Mit dieser Release wird die Basis für die Regeln zur Datenqualität von Kundenstammdaten in die Datenbank verlegt, womit sie ohne Eingriff in die Implementierung konfigurierbar wird. Die erste Nutzung dieser Regelbasis ist ein Modul beim Neuanmelden, das die Qualität der Daten prüft und im Bedarfsfall den Kunden auf eine Maske umleitet, in der die Stammdaten ergänzt werden müssen. Falls der Kunde diese Aufforderung ignoriert, wird spätestens vor einer Bestellung das Ergänzen der Stammdaten erzwungen. In den kommenden Releases wird diese Möglichkeit zur Konfiguration der Kundenstammdaten in weitere Module integriert werden.
Merkliste merkt sich Datum des Hinzufügens
Um die Merkliste eine zusätzliche historische Sortiermöglichkeit zu geben, speichert die Liste nun das Datum des Hinzufügens eines Produkts zur Merkliste. Das zuletzt hinzugefügte Produkt kann nun in der Liste ganz oben stehen und wird nicht nach Artikelnummer einsortiert.
PDF-Datenblatt über PDF Service
Die Möglichkeit zur Erstellung eines PDFs aus den Artikeldaten war bisher schon vorhanden, in dem der Shop eine HTML-Repräsentation des Datenblattes geliefert hat und diese über ein Tool am Server in eine PDF Datei umgewandelt wurde. Die Nutzung von ABCPdf war dafür in der Basis-Implementierung bereits vorbereitet, musste jedoch am Server lizenziert und als Service implementiert werden. Wir haben deshalb bereits seit längerer Zeit ein externes Service bereitgestellt, das die PDF Generierung nicht mehr am Server benötigt, jedoch zusätzliche Anforderungen an die Weitergabe von aktuellen Sichtbarkeiten und Preisen stellt. Durch die Integration des externen PDF-Services in die Basis-Implementierung wird die Verwendung des externen PDF-Services optimiert und für Crawler komplett umgangen, um hier keine Resourcen zu blockieren.
Ausblenden von AI-Search bei Produktfotos
Microsoft Edge bietet auf Bildern in einer Webseite einen KI-unterstützten Vergleich mit anderen Webseiten, was dem Kunden einen Produktvergleich gestatten soll. Über ein zusätzliches HTML-Tag kann diese Möglichkeit unterbunden werden, das nun in alle Produktbilder im Basis-Layout integriert wurde.
Originalpreis vor Verkaufsaktion
In der Shop-Datenbank war schon länger ein Feld vorhanden, in dem ein bisheriger Verkaufspreis pro Artikel hinterlegt werden konnte, um einen gesetzten Statt-Preis zu erzeugen. Die Anzeige war allerdings nur über den Zugriff auf das Feld-Array möglich und hat deshalb auch nicht auf Brutto/Netto-Umschaltungen reagiert. Das Feld wurde jetzt offiziell ins Objekt-Modell aufgenommen.
Information zum Einkaufsartikel im Objektmodell
Für Szenarien, in denen der Shop Artikeldaten direkt aus Lieferantenkatalogen ermittelt und diese erst im Auftragsfall im ERP System angelegt werden, muss die Plattform bei Aufträgen oder Stammdatenabfragen auch immer Informationen zu den Originaldaten im Lieferantenkatalog geben. Dazu wurden diese Informationen nun ins Objektmodell aufgenommen, um den Zugriff auf Einkaufspreise, Lieferantenartikelnummern, Mindestbestellmengen, etc. zu erhalten.
Integration Prometheus für Workflow Kennwerte
Betriebsparameter können nun über Prometheus abgefragt und in Dashboard Anwendungen integriert werden. Wir haben diese Plattform auch für unser Cloud Service ausgewählt, um Betriebsparameter einzelner instanzen zu überwachen.
Optimierung Cache bei starker Auslastung / Neustart
Ein Neuladen des Caches mitten im Betrieb ist eine Herausforderung, da der Shop einen möglichst störungsfreien Betrieb bieten soll, während die grundlegenden Datenbestände ausgetauscht werden. Diese Release enthält Optimierung, die in diesem Szenario die Antwortzeiten während dieser Vorgänge verbessert.
Während Start Redirect auf Bitte Warten Meldung
Während des Startens der Software werden diverse Datenbestände in den Arbeitsspeicher geladen und Vorverarbeitungen auf den Artikeldaten durchgeführt, die später im Zugriff Zeit ersparen. Bisher mussten alle eingehenden Requests auf die Fertigstellung dieser Phase warten. Nun löst nur der erste Request eine Wartezeit aus, alle weiteren werden auf eine Seite weitergeleitet, die über den aktuell stattfindenden Start informiert und den Kunden bis zur Verfügbarkeit auf der Seite hält. Die Seite lädt automatisch neu, sobald der Shop vollständig gestartet ist.
Performance Optimierung beim Wechsel in den Checkout
Beim Wechsel zwischen Warenkorb (oder eine anderen Seite davor) in den Checkout Prozess führt der Shop eine Reihe an Gültigkeitsprüfungen durch bzw. berechnet Kosten wie Versand, Mindermengen, etc. In dieser Release wurden Optimierungen durchgeführt, die die Zeit nach dem Klick auf Zur Kasse verkürzen.
Performance Optimierung bei Suchmaschinen Crawlern
Falls die aktuelle Session als Suchmaschinen Crawler erkannt wird, hat der Shop schon immer einige Abkürzungen genommen, da der gelieferte HTML Code nicht von einem menschlichen Besucher gesehen und zum Einkauf verwendet wird. Diese Abkürzungen reduzieren die Serverlast und lässt mehr Zeit für menschliche Einkäufer. In dieser Release wurden Funktionen in der Navigation ausgewählt, die für eine Suchmaschine nicht relevant ist und deshalb mit Standardwerten geliefert werden kann.
Speicheroptimierung
In dieser Release wurden Funktionen, die bei jedem einzelnen Request ausgeführt werden, auf die Verwendung von String-Funktionen überarbeitet, die innerhalb des Heaps der Applikation Resourcen blockieren. Das Ergebnis ist eine Reduktion des Speicherbedarfs und eine Verlängerung der Zeit, die ohne Garbage Collection erfolgt.
Geoblocking
Um Requests zu sperren, die lauf Protokollauswertung weder von menschlichen Benutzern, noch von erwünschten Maschinenzugriffen (Zahlungssysteme, Monitoring, Suchmaschinen Crawler) erfolgen, kann nun mit Black- und Whitelists für IP Adressen und für Länder gearbeitet werden. Beim Setzen von Whitelists werden alle Requests blockiert, die nicht in den Whitelists angegeben wind. Die Parameter dazu sind whitelistips, blacklistips, whitelistcountries und blacklistcountries.
Layoutverbesserung Budgetfreigabe
Der Bildschirm im Kundenkonto, mit dem die Freigabe von Aufträgen durch den Vorgesetzten erfolgt, wurde überarbeitet.
Layoutverbesserung Mengenfeld bei Customizer
Ein Customizer ist eine Seite, die nach dem Auswählen von In den Warenkorb eingeblendet wird, weil das zu bestellende Produkt noch personalisiert werden muss. Da die Bestellmenge Teil des Customizeres sein kann, ist die Auswahl einer Bestellmenge vorab problematisch. Bei Verwenden eines Customizers wurde das Mengenfeld bisher gesperrt, was aber als Fehler verstanden wird. Nun wird das Feld ausgeblendet.
Layoutverbesserung Kostenstellen in Bestelldetails in Konto / Bestellhistorie
Kostenstellen auf Kopf und Positionsebene werden nun in der Bestellhistorie (und auch bei Gruppenbestellungen) angezeigt.
CMS Module für Produktbilder, Produkttexte, Produkteigenschaften
Die CMS Module für die Darstellung der Produktbilder, Produkttexte und Produkteigenschaften wurden verbessert. Bisher konnte mit den Modulen meist nur ein Produktbild, ein Produkttext, etc. dargestellt werden. Nun sind die Module parametrisierbar und können auch auf weitere Produktbilder, etc. zugreifen. Ist das zweite Produktbild z.B. eine Bemessungszeichnung für einen Customizer, kann auch auf dieses Bild zugegriffen werden.
Admin Backend Produkt generieren merkt sich letzte Einstellungen
Im Modul Lieferanten des Admin Backends hat sich die Software bisher die Einstellungen beim Datenimport pro Lieferant gemerkt. Beim Übertragen der Lieferantenartikel in den Verkaufsartikelstamm mussten die Parameter aber bei jedem Übertragen (Produkt generieren) neu gesetzt werden. Nun werden pro Lieferant auch diese Parameter gespeichert und beim nächsten Update automatisch rekonstruiert.
Admin Backend Kostenstellen / Lieferdatum in Bestelldetails
Im Admin Backend werden in den Details einer Bestellung nun auch das gewünschte Lieferdatum und auch Kostenstellen auf Kopf- und Positionsebene angezeigt.
Admin Backend zusätzliche Produkteigenschaften Verfügbarkeit, Min/Max Beschaffungszeit
Im Admin Backend können nun zusätzliche Eigenschaften eines Produkts zur Verfügbarkeit (als Text) als auch minimale/maximale Beschaffungszeit (in Werktagen zur Berechnung der Lieferzeit) manuell gewartet werden. Bisher waren diese Produkteigenschaften nur beim Produktimport aus einem ERP System verfügbar.
Workflow Aktion zum Aufräumen der Datenbank
Eine neue Aktion zur Erstellung von Workflows erlaubt das Archivieren von Workflow Daten, die in manchen Implementierungen zu den umfangreichsten Datenbeständen der Shop-Datenbank gehören und somit die Datenbankkosten beeinflussen. Bisher musste die Archivierung mit SQL Befehlen zusammengesetzt werden. Nun ist es eine fertige Aktion mit der die maximale Historie für Workflows kontrolliert werden kann.
Workflow Event beim Abschicken einer Anfrage
Beim Abschicken einer Angebotsanfrage wird nun auch ein Event erzeugt, der individuelle Benachrichtigung innerhalb einer Implementierung wie z.B. Bestätigungen an den Kunden und/oder Benachrichtigungen an den Innendienst über Brevo erlaubt.
API Leere Ergebnismengen liefern leere Ergebnisse statt 404
Das Bulk API zum Abfragen und Ändern von Aufträgen, Artikeln und Kunden sendet beim Abfragen mit Suchparametern, die keine Ergebnisse finden, den HTTP Status 404 - Not found. Für einige Implementierung ist es notwendig, dass anstelle des Status ein normaler HTTP Status 202 mit einer leeren Ergebnisliste gesendet wird. Der Parameter bulk.emptycollections muss dazu auf true gesetzt werden.
API Hersteller und Herstellerartikelnummer im Bulk API
Das Bulk API liefert im Rahmen der Artikeldaten nun auch Daten zum Lieferanten und der Lieferantenartikelnummer für Szenarien, in denen der Shop komplette Lieferantenkataloge zum Kauf anbietet, diese Artikel aber erst beim ersten Auftrag im ERP angelegt werden. Die Schnittstellen benötigen dann diese neu im API verfügbaren Daten, um die Artikel im ERP anzulegen.
API Staffelpreise In Brutto- und Einstandspreisliste
Das Bulk API liefert im Rahmen von Kunden-Preislisten, der Brutto-Preislisten, der kalkulierten Einstandspreise und der Einkaufspreise pro Lieferant im Artikelstamm nun auch durchgängig Staffelpreise.
Bugfix Rücksprung in Checkout
Bugfix Staffelpreise in Popup Warenkorb / Checkout anzeigen
Bugfix HidePrice blendet auch Staffelpreise aus
Bugfix Alter Preis auch nach Cache Reset
Bugfix Leere Parameter schränken nicht mehr ein
Bugfix Concurrency Fehler beim Speichern von Kundendaten
Bugfix Doppelte USt Zeile bei Bestellungen außerhalb des Shop-Landes
Bugfix Merkmalsfilter
Bugfix Warenkorb Merge beim Anmelden
Bugfix Keine STRIPE Zahlung bei kostenlosen Warenkörben
Bugfix Sortierung des Warenkorbs sicherstellen
Bugfix Gutscheine mit Nachkommastellein in STRIPE Zahung
Bugfix Fehlende Sicherheitsabfragen im Admin Backend