Shop 5.33.0 Release Notes
5.33.0
CMS Modul 1:1 Teilung und 1:1:1 Teilung
Für den schnellen Aufbau von CMS Seiten gibt es das neue Modul 1:1 Teilung bzw. 1:1:1 Teilung, mit dem die Seite auf Desktop und Tablet in zwei Hälften bzw. drei Drittel geteilt werden kann. Auf Smartphones werden diese Spalten einfach untereinander gestellt.
CMS Modul Gewinnspiel
Das neu gestaltete Modul zur Durchführung von Gewinnspielen auf der Seite wurde ins CMS integriert und kann gegenüber der alten Seite nun beliebig gestaltet werden. Das Modul erlaubt die Definition der Gewinnfrage, der abzufragenden persönlichen Daten und ob die EMail Adresse automatisch in eine Newsletter-Liste aufgenommen werden soll. Als Bestätigungsseite kann eine beliebige URL, die ebenfalls im CMS gestaltet werden kann, definiert werden. Zusätzlich kann das CMS Modul ein Bestätigungsmail verschicken, das über eine Textvorlage definiert werden kann.
CMS Modul Martfury: Product Gallery mit Produktanzahl
Wird die Produkt Gallerie in einem Layout mit Seitenspalten benutzt, wurden bisher die gleiche Anzahl an Produkten dargestellt, wie bei Nutzung der vollen Seitenbreite. Deshalb wurden die einzelnen Thumbnails verkleinert und die Produktnamen stark umbrochen. Mit der neuen Eigenschaft Sichtbare Produkte kann für mehrere Darstellungsgrößen die Anzahl der Produkte festgelegt werden.
CMS Modul Menü Box mit Darstellen ab Ebene-Attribut
Dieser neue Parameter erlaubt die Angabe einer Ebene in einer Navigation, ab wo das Menü dargestellt werden soll. Das ist hilfreich, wenn die oberste Ebene ein Kategorie-Knoten ist, der die untergeordneten Navigationselemente automatisch aus den Artikelgruppen liest und bei der der Kategorie-Knoten aber nicht dargestellt werden soll.
Kennwort rücksetzen per Link
Bisher wurde mit der Kennwort vergessen Funktion ein neues Kennwort generiert und dem Kunden an seine hinterlegte EMail Adresse gesendet. Durch den Parameter resetpassword kann nun zwischen zwei Prozessen hin- und hergeschalten werden. Ist der Parameter auf den Wert link eingestellt, erhält der Kunde zuerst nur einen Link, mit dem er sein neues Kennwort selbst setzen kann. Ist der Parameter nicht gesetzt, wird weiterhin die bisherige Methode verwendet. Der Link wird mit dem neuen Mail-Template RESETLINK zugesendet, das im Admin Backend unter Inhalte/Texte angelegt sein muss. Alternativ kann ein Workflow durch den Event "Passwort rücksetzen-Link angefordert" ausgelöst werden, der die Mail z.B. über SendinBlue versendet. Workflow und Mail-Template können das Feld link benutzen, um den Rücksetz-Link an den Kunden zu melden.
Ingenico Zahlungsmodul
Das Zahlungs-Modul für den Paymentanbieter Ingenico wurde in den Standardumfang des Shops aufgenommen. Die Zahlungsart muss mit dem ID OGONE bzw. IGENICO angelegt werden, um das Modul beim Checkout auzulösen.
OpenGraph Meta-Tags
Wird der neue Parameter includeopengraph auf true gesetzt, werden automatisch OpenGraph Meta Tags für Produktseiten in den HTML Code geschrieben. Werden Seiten dann auf z.B. Facebook geteilt, erscheinen im Link der korrekte Produktname, das Produktbild und die Produktbeschreibung. Ansonsten analysiert Facebook automatisch den Inhalt der Seite und versucht diese Inhalte selbst zu erkennen. Ob das erfolgreich mit und ohne aktiviertem Parameter ist, kann man über den Debugger auf https://developers.facebook.com/tools/debug/ abfragen.
Produktblatt
Zusätzlich zur Produktdetailseite besitzt das Martfury Layout nun auch einen eigenen Link /Produkt/DetailDeeplink/ für ein Produktdatenblatt. Das Datenblatt enthält keine Kopf/Fußzeilen, Navigation und aktive Funktionen für Warenkorb, Merkliste, etc. Einsatzgebiete für diesen Link sind externe Artikelkataloge, die einen Link auf ein Datenblatt erlauben - das allerdings keine Kauffunktion haben darf, weil die Mitarbeiter in der firmeneigenen eProcurement Applikation bestellen sollen.
Konto: Angebote mit Gültigkeitsdatum
Angebote - als Reaktion auf eine Angebotsanfrage - können ein Gültigkeitsdatum haben. Sobald das Gültigkeitsdatum abgelaufen ist, wird das Angebot automatisch ausgeblendet und kann nicht mehr in den Warenkorb gelegt werden.
Konto: Kostenstellen erzwingen
Mit der neuen Option Kostenstelle muss bei Bestellung gewählt werden (gilt für alle Mitarbeiter) kann für die Firma festgelegt werden, dass bei jeder Bestellung eine Kostenstelle angegeben werden muss.
Konto: Mitarbeiter Kostenstellen
Im Konto können jetzt jedem Mitarbeiter Kostenstellen zugeordnet werden. Diese Kostenstellen werden dann dem Mitarbeiter zur Auswahl angeboten, anstelle eine freie Texteingabe zu erlauben. Die Kostenstellen werden zentral für alle Mitarbeiter definiert und dann alle oder einzelne Kostenstellen den einzelnen Mitarbeitern angeboten. Kostenstellen können auf Kopf- oder Positionsebene erfasst werden und werden mit der Bestellung an die Auftragsbearbeitung weitergereicht. Genau wie Bestellreferenzen dienen sie für die Kontierung der Bestellung beim Kunden und dienen zur Zuordnung der Auftragswerte in der Kostenrechnung des Kunden bzw. zum Einfügen von Empfängern in die Bestellung.
Konto: Mitarbeiter Rechte
Im Konto können jetzt jedem Mitarbeiter Rechte zugeordnet werden, um dem Mitarbeiter zum Kostenstellen- oder Budget-Administrator zu machen. Normalerweise ist jeder vom ERP bzw. bei der Registrierung angelegte Zugang ein Administrator innerhalb seines Firmen-Kontos. Über das Kundenkonto können dann weitere Mitarbeiter angelegt werden, die weniger Rechte besitzen. Mit dem Mitarbeiter Rechte Bildschirm kann ein Mitarbeiter höhergestuft werden.
API: Bestellstatus mit erweiterten Produktdaten
Die Bestellhistorie enthält auch den EAN Code und das Produktbild pro Bestellzeile. Die erweiterten Daten erlauben eine reichhaltigere, benutzerfreundlichere Anzeige der Bestellhistorie und wir in kundenspezifischen Versionen der BaseShopApp benutzt.
API: Besteller in Bestellhistorie
Die Bestellhistorie enthält nun auch den Vor/Nachnamen des Bestellers jeder Bestellung, um einem Administrator zu zeigen, welcher Mitarbeiter die Bestellung ausgelöst hat. Die erweiterten Daten erlauben eine reichhaltigere, benutzerfreundlichere Anzeige der Bestellhistorie und wir in kundenspezifischen Versionen der BaseShopApp benutzt.
API: Lieferadressen abfragen
Der neue Call /api/DeliveryAddresses erlaubt das Abrufen der gespeicherten Lieferadressen eines Kunden. Der Call wird von der App verwendet, um bei der Bestellung die Lieferadresse wählen zu können.
API: Bestellung kalkulieren
Der neue Call /api/CalculateCart erlaubt das Abrufen der Gesamtkosten einer Bestellung für einen definierten Warenkorb und eine ausgewählte Lieferadresse. Dabei werden Versandkosten, Mindermengenzuschläge, Rabatte und Umsatzsteuer berücksichtigt. Der Call wird von der App verwendet, um eine Zusammenfassung einer Bestellung innerhalb der App anzuzeigen und dem Kunden Gelegenheit zu geben, Mindermengenzuschläge oder Versandkosten durch eine Erhöhung der Bestellmenge zu vermeiden.
API: Verfügbarkeit aktualisieren
Der neue Call /api/ValidateCheckout ermöglicht eine Neuberechnung einer Einkaufsliste, um geänderte Verfügbarkeiten vor einer Bestellung nochmals für den gesamten Warenkorb zu aktualisieren. Außerdem enthält der Call weitere sinnvolle Gültigkeitskontrollen für einen Bestellschirm. Die App verwendet diesen Call, um den Kunden über geänderte Lieferzeiten oder in seiner Lieferadresse nicht mögliche Lieferungen zu informieren bzw. Gültigkeitsregeln abzufragen, die der Kundenadministrator über das Kundenkonto für die Mitarbeiter einstellen kann.
API: Seitengröße für Produkte-Call definierbar
Mit dem Products API Call kann eine Liste der im Shop verfügbaren Produkte abgerufen werden, mit dem z.B. die App einen Offline Index erstellen kann, damit auch Scans und Suchen ohne Internetverbindung möglich sind. Bei großen Sortimenten > 100.000 Artikel hat der Abruf aber zu lange gedauert und Timeouts erzeugt. Nun hat der Call die Möglichkeit die Gesamtliste in mehreren, frei definierbaren Teilmengen abzurufen.
App: Bestellzusammenfassung-Seite
Die App kann optional vor dem Abschicken einer Bestellung eine Zusammenfassungsseite mit der Auswahl verschiedener Lieferadressen bzw. einer Gesamtsumme des Auftrags inklusive Steuer und Versandkosten anzeigen. Bisher wurde die Bestellung nach einer Sicherheitsabfrage sofort an die Standardlieferadresse des Kontos geschickt, die an der App angemeldet ist. Die Option muss aktuell in der App fest justiert werden und ist deshalb nur bei shopspezifischen Versionen der App wählbar.
Performanceoptimierung
Für die Nutzung von API Calls mit einer großen Anzahl an Produkten im Ergebnis bzw. für häufig verwendete Parameter in der Preisfindung wurden Performanceoptimierungen durchgeführt, die die Antwortzeit vor allem in Shops mit kundenspezifischen Sichtbarkeiten von Produkten deutlich reduziert.
Bugfix: Marken in Suchergebnissen
Werden Marken in den Produktdaten erfasst, können die im Suchergebnis enthaltenen Marken als Filter angeboten werden, damit der Kunde das Suchergebnis auf seine Wunschmarke begrenzen kann. Die Anzeige der verfügbaren Marken war fehlerhaft. Das Problem wurde behoben.
Bugfix: Mindermengenzuschlag im Warenkorb
Wurde die Menge im Warenkorb geändert, wurde die Mindermengenzuschlag Zeile erst dann entfernt, wenn die Seite neu geladen wurde. Nun wird die Zeile automatisch ein/ausgeblendet, wenn der Mindermengenzuschlag fällig wird.
Bugfix: Automatisches Füllen der Keywords Meta-Tag
Wurden für ein Produkt kein SEO Merkmal für das Keywords Meta-Tag definiert, wurden in Produktseiten bisher die Stichworte aneinandergefügt. Wenn diese leer waren, standen bisher nur Beistriche im Metatag. In der neuen Version werden die Schlagwort Merkmale verwendet und bei leeren Feldern nicht überzählige Beistriche hinzugefügt.
Bugfix: Farb- und Größenvarianten mit Beistrichen
Hat die Farb- oder Größenbezeichnung einer Variante einen Beistrich enthalten, wurden diese an der Stelle des Beistriches in zwei Varianten aufgeteilt und die beiden Teile fehlerhaft verarbeitet. Das Problem wurde behoben.
Admin Backend: Workflows für Kennwort rücksetzen-Link
Der neue Event erlaubt das Erstellen eines Workflows, der durch das Rücksetzen des Kennworts nach Setzen des Parameters resetpassword auf link ausgelöst wird.