123456-09. Dabei steht 123456 für die Produktnummer und 09 für das Werbemittelkennzeichen.
In den Bereichen Konfiguration, Templates und Schnittstellen trägt dieses Konzept den technischen Namen Insert. Die zugehörigen Felder heißen beispielsweisecontent.inserts (Konfiguration), validInsertCodes (gültige Codes je Produkt) und insert (Code einer einzelnen Position). Die Tabelle im Abschnitt Begriffe und technische Namen ordnet alle Namen einander zu.
Die vollständigen technischen Details je Ebene (Template-Modul, Konfiguration, REST- und Storefront-API) stehen auf den unter Weiterführende Links verlinkten Detailseiten.
Die Funktion ist standardmäßig ausgeschaltet. Solange sie nicht aktiviert und eingerichtet ist (siehe Voraussetzungen), verhält sich der Shop unverändert: keine zusätzlichen Eingabefelder, keine zusätzlichen Anzeigen, nichts wird gespeichert.
Voraussetzungen
Damit ein Werbemittelkennzeichen wirken kann, müssen drei Bedingungen erfüllt sein. Fehlt auch nur eines davon, bleibt die Funktion für das betroffene Produkt wirkungslos. In diesem Fall erscheint keine Fehlermeldung.- Die Funktion ist aktiviert. In der Konfiguration muss
content.inserts.enabledauftruestehen. Solange sie aus ist, wird kein Code erfasst, aufgelöst oder angezeigt. - Die Feldzuordnung ist eingerichtet (einmalig pro Shop). Der Shop muss wissen, welches Produktfeld die gültigen Codes enthält. Diese Zuordnung wird in
content.usedFields.products.validInsertCodeshinterlegt. Fehlt sie, findet der Shop die am Produkt gepflegten Codes nicht und behandelt jedes Produkt so, als hätte es keine gültigen Codes. - Am Produkt sind gültige Codes gepflegt. Erst wenn ein Produkt im Feld
validInsertCodeskonkrete Codes trägt, kann für dieses Produkt ein Code übernommen werden. Ist die Liste leer, greift der Standardcode (defaultInsertCode), sofern einer konfiguriert ist.
Begriffe und technische Namen auf einen Blick
Je nach Ebene (Admin-Interface, Konfiguration, Template oder Schnittstelle) heißt das Konzept der Werbemittelkennzeichen unterschiedlich. Diese Tabelle ordnet die verschiedenen Bezeichnungen einander zu.In den gespeicherten Bestelldaten einer Position steht der Code im Feld
insert und die Artikelnummer im Feld itemNumber. Letzteres enthält die Nummer des Hauptprodukts, auch wenn eine Variante bestellt wurde. Die genauen Feldnamen je Schnittstelle sind auf den jeweiligen Detailseiten zu finden (siehe Weiterführende Links).Wie der Shop ein Werbemittelkennzeichen ermittelt
Wenn die Voraussetzungen erfüllt sind, ermittelt der Shop beim Hinzufügen eines Produkts zum Warenkorb das Werbemittelkennzeichen für diese Position in folgender Reihenfolge:- Ein gültiger Code wurde angegeben → Der Code wird für das Produkt übernommen.
- Kein Code wurde angegeben → Der Shop übernimmt den Code, den er sich zuvor für genau dieses Produkt gemerkt hat (siehe Gemerktes Werbemittelkennzeichen je Produkt), sofern er für das Produkt gültig ist. Bei Varianten zählt die konkrete Variante.
- Andernfalls → Es greift der in der Konfiguration hinterlegte Standardcode (
defaultInsertCode). Ist keiner hinterlegt, bleibt die Position ohne Kennzeichen.
Gemerktes Werbemittelkennzeichen je Produkt
Der Shop merkt sich ein erkanntes Werbemittelkennzeichen für das Produkt, bei dem es erfasst wurde. Bei Varianten gilt dies für die konkrete Variante. Der Shop überträgt den Code nicht auf andere Produkte.- Jede Warenkorbposition behält ihr eigenes Kennzeichen. Deshalb können im Warenkorb mehrere Produkte mit unterschiedlichen Codes liegen.
- Das gemerkte Kennzeichen bleibt während der Navigation für dieses Produkt erhalten, beispielsweise auf der Produktdetailseite, beim Wechsel der Variante und im Warenkorb. Das gilt auch, wenn das Produkt zwischenzeitlich aus dem Warenkorb entfernt wird.
- Zwei Varianten desselben Produkts behalten jeweils ihr eigenes Kennzeichen.
- Wenn dasselbe Produkt in derselben Variante erneut hinzugefügt wird, entsteht keine zweite Position. Die Mengen werden summiert. Wenn das erneute Hinzufügen jedoch einen Code mitbringt, erhält die Position den neu ermittelten Code. Ohne Code behält die Position ihren bisherigen.
- Jeder erkannte Code wird gemerkt, auch ein ungültiger. Er ersetzt den zuvor gemerkten Code dieses Produkts. Beim nächsten Hinzufügen ohne Code wird dann der Standardcode verwendet, sofern einer konfiguriert ist.
- Die gemerkten Kennzeichen gelten nur für die laufende Sitzung. Nach Abschluss der Bestellung beginnt eine neue Sitzung, sodass sie entfallen. Zudem setzt der Shop sie zurück, wenn er den Warenkorb beim Abmelden oder Wechseln des Kundenkontos leert.
Was bedeutet „gültiger Code”
Welche Codes für ein Produkt zulässig sind, legt die Produktpflege fest. Die Prüfung erfolgt zeichengenau und unter Beachtung der Groß-/Kleinschreibung. So sind beispielsweiseDA und da nicht dasselbe.
Speicherung in der Bestellung
Das ermittelte Werbemittelkennzeichen wird mit der Bestellung gespeichert und steht damit in der Bestellauswertung als eigene Information zur Verfügung.Wo ein Code erfasst werden kann
Es gibt drei voneinander unabhängige Wege, auf denen ein Werbemittelkennzeichen in den Shop gelangt.- Über die URL: Ein Werbemittelkennzeichen lässt sich per URL-Parameter
insertan einen Produktaufruf anhängen. Das eignet sich für Links aus Katalogen, Anzeigen oder Mailings. Dafür gibt es zwei unabhängige Wege:- an einer technischen View-URL über die Produkt-ID:
?view=Product&productId=<ProduktId>&insert=<Code> - an einer SEO-URL des Produkts:
/buntes-t-shirt?insert=<Code>
- an einer technischen View-URL über die Produkt-ID:
- Direktbestellung: Der Kunde gibt die Artikelnummer zusammen mit dem Werbemittelkennzeichen in ein einziges Feld ein, so wie sie im Katalog abgedruckt ist, beispielsweise
123456/AB. Der Shop trennt den Code selbst ab. Wie das funktioniert, steht unter Werbemittelkennzeichen in der Direktbestellung erfassen. - Warenkorb (Schnittstelle): Beim Hinzufügen oder Ändern eines Postens kann der Code direkt mitgegeben werden, siehe Storefront-API Warenkorb.
$wsViews.url(...) beziehungsweise $wsViews.viewUrl(...) erzeugte, technische Shop-URL (im Gegensatz zur sprechenden SEO-URL). Details siehe Modul $wsViews. Beide URL-Arten nehmen den insert-Parameter gleichermaßen an.
Wird ein Produkt ohne
insert-Parameter aufgerufen, bleibt ein für dieses Produkt bereits gemerktes Werbemittelkennzeichen erhalten. „Kein Parameter” wird also nicht wie „kein Code” behandelt. Der gemerkte Code wird erst beim Hinzufügen des Produkts in den Warenkorb herangezogen und dort gegen die gültigen Codes geprüft.Praxisbeispiel: von der Anzeige bis zur Bestellung
Das folgende Szenario veranschaulicht, wie die Regeln zusammenspielen: Ein Kunde erhält ein Mailing mit einem Produktlink, an den das Werbemittelkennzeichen09 angehängt ist (beispielsweise /buntes-t-shirt?insert=09). Mit einem Klick gelangt er auf die Produktseite. Der Shop merkt sich den Code 09 für das T-Shirt.
Anschließend legt er das T-Shirt in den Warenkorb. Da 09 für dieses Produkt ein gültiger Code ist, trägt die Position das Kennzeichen und die Artikelnummer erscheint als 123456-09.
Danach stöbert er weiter, legt eine Hose in den Warenkorb und ruft dabei keinen Code auf. Der Code 09 gehört zum T-Shirt und wird nicht auf die Hose übertragen. Für die Hose gilt entweder der Standardcode oder die Position bleibt ohne Kennzeichnung.
Später ruft er über einen zweiten Link aus einer Anzeige eine Jacke mit dem Code DA auf und legt sie in den Warenkorb. Im Warenkorb liegen nun drei Artikel: das T-Shirt mit der Nummer 09, die Hose ohne Code und die Jacke mit dem Code DA.
Beim Abschluss der Bestellung wird das Kennzeichen jeder Position zusammen mit der Bestellung gespeichert. Anschließend beginnt eine neue Sitzung, und die gemerkten Codes entfallen.
In der Bestellhistorie steht das gespeicherte Kennzeichen in den Bestelldaten (im Feld
insert). Eine fertig zusammengesetzte Anzeige aus Artikelnummer und Code liefert der Shop weder dort noch im Warenkorb. Wie sich das Kennzeichen in der Bestellhistorie darstellen lässt, ist unter Beispiele → Bestellhistorie beschrieben.Sonderfälle
Set-Artikel: Der Code wird sowohl für die Hauptposition als auch für die enthaltenen Unterartikel aufgelöst. Jeder Unterartikel prüft den Code gegen seine eigenen gültigen Codes (sonst greift der Standardcode). Das funktioniert genauso wie bei einem einzeln hinzugefügten Artikel. Varianten: Die zulässigen Codes werden auf Ebene des Hauptprodukts gepflegt und gelten für alle seine Varianten. Gemerkt wird der Code dagegen je Variante. Wechselt der Kunde auf der Produktdetailseite die Variante, gilt für die neue Variante deren eigenes, bereits gespeichertes Kennzeichen. Der Shop übernimmt den Code der zuvor gewählten Variante nicht. Der Code wird immer gegen die gültigen Codes des Hauptprodukts geprüft.Einrichtung
Dieser Abschnitt beschreibt die konkreten Schritte zu den unter Voraussetzungen genannten Bedingungen.Konfiguration
Die Einstellungen liegen im Konfigurationsbereich unter (content.inserts):
Solange
enabled deaktiviert ist, bleibt die Funktion im gesamten Shop wirkungslos, unabhängig davon, wie die einzelnen Produkte gepflegt sind.
Hinweis zu
defaultInsertCode: Der Standardcode greift produktübergreifend für jede Eingabe, die nicht zu einem gültigen Code aufgelöst werden kann. Wer den Code auf einen festen Wert setzt, sollte bedenken, dass dieser Wert dann auch für Posten verwendet werden kann, für die eigentlich kein Werbemittelkennzeichen vorgesehen ist. Im Zweifel sollten Sie den Wert leer lassen.Produktfeld anlegen
Ist das FeldvalidInsertCodes im Shop noch nicht vorhanden, wird es einmalig als benutzerdefiniertes Produktfeld angelegt. Im Admin Interface geschieht das im Bereich Katalog → Produkte über die Produktfelder-Einstellungen (Einstellungen / Zahnrad rechts oben anwählen). Die dortige Tabelle zeigt alle vorhandenen Produktfelder mit Name, Typ und maximaler Länge. Über die Schaltfläche Neu wird das Feld mit folgenden Einstellungen angelegt:
Alternativ kann das Feld über die REST API Konfiguration im Knoten
content.customProductField erstellt werden.
Feldzuordnung einrichten
Nach dem Anlegen des Produktfelds muss es einmalig der Funktion zugeordnet werden. Erst durch diese Zuordnung weiß der Shop, in welchem Produktfeld die gültigen Werbemittelkennzeichen stehen. Die Zuordnung wird im Konfigurationsknoten content.usedFields gepflegt. Im Bereichproducts verweist der Eintrag validInsertCodes auf das angelegte Produktfeld:
weight, crossSelling, metaTitle). Diese bestehenden Einträge bleiben unverändert erhalten, es wird ausschließlich der Wert von validInsertCodes gesetzt.
Zulässige Codes am Produkt
Das benutzerdefinierte Produktfeld „Gültige Werbemittelkennzeichen“ (validInsertCodes) wird im Admin-Interface auf der Detailseite des jeweiligen Produkts gepflegt. Wie jedes benutzerdefinierte Feld erscheint es in der entsprechenden Feldgruppe. Andernfalls erscheint es in der Sammelgruppe „Sonstige”. Über dieses Feld wird pro Produkt festgelegt, welche Codes für dieses Produkt erlaubt sind.
Es handelt sich um ein Listenfeld. Jeder gültige Code wird als eigener Eintrag erfasst. Ein Trennzeichen wird nicht benötigt und die Codes werden nicht als zusammenhängende Zeichenkette gepflegt. Folgende Voraussetzungen gelten für das Anlegen eines Codes:
- Jeder Eintrag darf maximal 16 Zeichen lang sein.
- Jeder Code ist ein eigener Listeneintrag. Die Codes werden nicht durch Kommas oder andere Trennzeichen in einem Feld aneinandergereiht.
- Die Codes sind case-sensitiv (beispielsweise ist
DAnicht gleichda). - Das Feld wird auf Ebene des Hauptprodukts gepflegt und gilt für dessen Varianten mit.
- Ist die Liste leer, kann für dieses Produkt kein Code übernommen werden (es greift höchstens der Standardcode, sofern gesetzt).
$cProduct.custom.validInsertCodes auf der Produktseite oder $item.product.custom.validInsertCodes an der Warenkorbposition. Die Ausgabe erfolgt per Schleife oder mit join und frei wählbarem Trennzeichen:
Die gültigen Codes des Produkts werden kommagetrennt angezeigt, beispielsweise
DA, 09.
Anzeige im Shop
Das Werbemittelkennzeichen kann als Teil der Artikelnummer im Warenkorb, in der Bestellübersicht, in der Bestätigungs-E-Mail, im Bestell-PDF sowie in der Bestellhistorie angezeigt werden (beispielsweise123456-09). Dabei gelten die konfigurierte Reihenfolge und das konfigurierte Trennzeichen. Voraussetzung ist, dass die Ausgabe im jeweiligen Template eingebunden ist (siehe Beispiele).
Die Anzeige setzt sich aus der Artikelnummer der Position ($item.itemNumber) und dem Code ($item.insert) zusammen. Bei Varianten entspricht$item.itemNumber der Nummer der bestellten Variante. Für das Zusammensetzen gibt es die wiederverwendbare Komponente components/itemNumberWithInsert.htm. Sie gibt je nach Konfiguration Code<Trennzeichen>Nummer oder Nummer<Trennzeichen>Code aus. Ist der Code leer, gibt sie nur die Nummer aus.
Mithilfe des Moduls $wsInserts kann ein gemerktes Kennzeichen auch außerhalb des Warenkorbs angezeigt werden, beispielsweise auf Kategorie-Kacheln und der Produktdetailseite.
Wird ein unbekannter Code eingegeben, verwirft der Shop diesen und greift, sofern eingerichtet, auf den Standardwert zurück. Dadurch wird die Bestellung nie blockiert.
Module
Für die Ausgabe des Werbemittelkennzeichens im Template werden diese Module verwendet:- $wsInserts liefert das je Produkt gemerkte Kennzeichen über
$wsInserts.byProductsowie die Einstellungen (aktiv, Trennzeichen, Position, Standardcode). Damit lässt sich das Kennzeichen überall anzeigen, wo ein Produkt dargestellt wird. - $wsBasket liefert je Warenkorbposition das Kennzeichen über
$item.insertund die Artikelnummer der Position über$item.itemNumber. - $wsConfig liefert über
$wsConfig.insertsdieselben Einstellungen wie$wsInserts. Das Objekt bleibt weiterhin verfügbar.
Beispiele
Artikelnummer mit Werbemittelkennzeichen ausgeben
Im Warenkorb (und analog dazu in der Bestellübersicht, der E-Mail und dem PDF) übergeben Sie der Komponentecomponents/itemNumberWithInsert.htm die Artikelnummer und den Code der Position. Die Reihenfolge und die Trennzeichen werden von der Komponente selbst berücksichtigt.
Jede Position zeigt ihre Artikelnummer inklusive Werbemittelkennzeichen, sofern eines erfasst wurde. Andernfalls wird die reine Artikelnummer angezeigt.
Gemerktes Werbemittelkennzeichen am Produkt anzeigen
Auf einer Kategorie-Kachel oder der Produktdetailseite liefert$wsInserts.byProduct den für das Produkt gemerkten Code. Ist für das Produkt kein gültiger Code gemerkt, bleibt der Wert leer.
Hat der Kunde das Produkt über einen Link mit Werbemittelkennzeichen aufgerufen, erscheint die Artikelnummer mit diesem Code. Andernfalls erscheint nichts.
Werbemittelkennzeichen als eigenes Feld ausgeben
Wenn der reine Code zusätzlich als eigenes Feld erscheinen soll, prüfen Sie zuerst, ob die Funktion aktiv ist. Andernfalls erscheint bei ausgeschalteter Funktion nichts.Der Werbemittelcode erscheint nur bei aktiver Funktion und nur für Positionen, die einen Code tragen.
Werbemittelkennzeichen in der Direktbestellung erfassen
Auf der Direktbestellseite (Templatemodules/directOrder.htm, Modul $wsDirectOrder) können Kunden die Artikelnummern zeilenweise eingeben. Ein eigenes Eingabefeld für das Werbemittelkennzeichen ist nicht erforderlich. Der Kunde gibt die Artikelnummer zusammen mit dem Code in das bestehende Artikelnummernfeld ein, so wie sie im Katalog abgedruckt ist. Der Shop trennt den Code anhand der Konfiguration ab:
Dabei geht der Shop in dieser Reihenfolge vor:
- Er prüft, ob die gesamte Eingabe eine gültige Artikelnummer ist. Dann trennt er nichts ab. So wird eine echte Artikelnummer, die das Trennzeichen zufällig enthält, nicht zerschnitten.
- Andernfalls trennt er den Code ab und prüft die verbleibende Nummer. Steht der Code dahinter, trennt der Shop am letzten Trennzeichen. Steht er davor, trennt der Shop am ersten Trennzeichen. Aus der Nummer
123-456-09mit dem Trennzeichen „-” wird somit die Nummer123-456mit dem Code09. - Der abgetrennte Code wird gegen die gültigen Codes des gefundenen Produkts geprüft, wie unter Wie der Shop ein Werbemittelkennzeichen ermittelt beschrieben.
Bei aktiver Funktion lautet der Platzhalter „Artikelnummer mit Werbemittelkennzeichen“. Gibt der Kunde beispielsweise die Nummer
123456/AB ein, so erfasst der Shop das Produkt mit der Nummer 123456 und dem Code AB im Bestellschein. Dieser steht anschließend in $wsDirectOrder.items[…].insert.
Die Position gelangt erst mit dem separaten Formular in den Warenkorb, das die erfassten Positionen über die Aktion BasketItemAdd übernimmt. Damit der Code dabei erhalten bleibt, schickt das Formular je Position zusätzlich das Feld multiProducts.<Produktnummer>.insert mit. Ein vollständiges Beispiel finden Sie unter Positionen in den Warenkorb übernehmen.
Bestellhistorie
Die Bestellhistorie arbeitet nicht mit dem Warenkorb, sondern mit den gespeicherten Bestelldaten ($order.orderList.item). Auch dort setzt das Template die Anzeige selbst zusammen. Dafür eignet sich ebenfalls die Komponente components/itemNumberWithInsert.htm, der Sie die Artikelnummer (itemNumber) und den gespeicherten Code (insert) der Bestellposition übergeben. Beachten Sie, dass itemNumber in den Bestelldaten die Nummer des Hauptprodukts ist, auch bei bestellten Varianten.
Weiterführende Links
- $wsInserts: je Produkt gemerktes Kennzeichen über
$wsInserts.byProductsowie die Einstellungen (aktiv, Trennzeichen, Position, Standardcode). - $wsConfig: Einstellungen über
$wsConfig.inserts(aktiv, Trennzeichen, Position, Standardcode). - $wsBasket: Ausgabe je Position über
$item.insertund$item.itemNumber. - $wsViews: Erzeugung von View-URLs (
url(),viewUrl()), an die sich derinsert-Parameter anhängen lässt. - content - Katalog: Konfigurationsblock
content.insertsund die zwingende FeldzuordnungusedFields.products. - API-Referenz Produkte: Pflege der zulässigen Codes je Produkt (
custom.validInsertCodes). Setzt die FeldzuordnungusedFields.productsvoraus (siehe Voraussetzungen). - API-Referenz Konfiguration: Pflege des Konfigurationsblocks
content.insertsüber die Konfigurationsknoten-Endpunkte. - Storefront-API Warenkorb: Setzen und Auslesen des Kennzeichens über das
insert-Feld sowieGET /api/v1/config/inserts.
