Skip to main content
Werbemittelkennzeichen, auch Werbemittelcodes genannt, sind kurze Codes, anhand derer sich nachvollziehen lässt, über welches Werbemittel eine Bestellung zustande gekommen ist. Beispiele hierfür sind ein bestimmter Katalog, eine Anzeige oder ein Mailing. Der Code wird an die Produktnummer angehängt, beispielsweise 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.
  1. Die Funktion ist aktiviert. In der Konfiguration muss content.inserts.enabled auf true stehen. Solange sie aus ist, wird kein Code erfasst, aufgelöst oder angezeigt.
  2. 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.validInsertCodes hinterlegt. Fehlt sie, findet der Shop die am Produkt gepflegten Codes nicht und behandelt jedes Produkt so, als hätte es keine gültigen Codes.
  3. Am Produkt sind gültige Codes gepflegt. Erst wenn ein Produkt im Feld validInsertCodes konkrete Codes trägt, kann für dieses Produkt ein Code übernommen werden. Ist die Liste leer, greift der Standardcode (defaultInsertCode), sofern einer konfiguriert ist.
Die konkreten Schritte dazu stehen weiter unten im Abschnitt Einrichtung.
Ohne Feldzuordnung (Punkt 2) wirken die produktspezifischen Codes nicht. Es reicht nicht aus, das Produktfeld nur anzulegen und Codes einzutragen. Fehlt die Zuordnung in usedFields.products, erhält jede Position stillschweigend den Standardcode (oder gar kein Kennzeichen), auch wenn an den Produkten Codes gepflegt sind.

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:
  1. Ein gültiger Code wurde angegeben → Der Code wird für das Produkt übernommen.
  2. 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.
  3. Andernfalls → Es greift der in der Konfiguration hinterlegte Standardcode (defaultInsertCode). Ist keiner hinterlegt, bleibt die Position ohne Kennzeichen.
Die drei Fälle bauen aufeinander auf. Fall 3 greift nur, wenn kein Code angegeben wurde und für dieses Produkt kein passender Code gespeichert ist. „Kein Code → Standardcode“ ist also keine Absolutregel, sondern der letzte Schritt der Kette.

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.
Das gemerkte Kennzeichen steht im Template über das Modul $wsInserts bereit. So lässt es sich überall anzeigen, wo ein Produkt dargestellt wird, beispielsweise auf Kategorie-Kacheln und der Produktdetailseite.

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 beispielsweise DA 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 insert an 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>
  • 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.
Eine View-URL ist dabei eine über die Template-Funktion $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 Werbemittelkennzeichen 09 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.
Wenn der Shop ohne Trennzeichen mit insertCodeLength arbeitet, müssen alle Werbemittelkennzeichen im Shop dieselbe Länge haben. Ein Code mit abweichender Länge wird bei der Direktbestellung falsch abgetrennt.
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 Feld validInsertCodes 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 Bereich products verweist der Eintrag validInsertCodes auf das angelegte Produktfeld:
Das Beispiel zeigt nur den relevanten Eintrag. Der Knoten enthält daneben die Zuordnungen aller anderen Funktionsbereiche (beispielsweise weight, crossSelling, metaTitle). Diese bestehenden Einträge bleiben unverändert erhalten, es wird ausschließlich der Wert von validInsertCodes gesetzt.
Ohne diese Zuordnung wirken die am Produkt gepflegten Codes nicht. Der Shop kann die gültigen Codes eines Produkts dann nicht ermitteln, und jeder Posten erhält stillschweigend den Standardcode oder bleibt ohne Kennzeichen, auch wenn an den Produkten Codes gepflegt sind. Es reicht also nicht, das Produktfeld nur anzulegen, es muss auch zugeordnet werden.

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 DA nicht gleich da).
  • 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).
Im Template steht das Feld als Liste zur Verfügung, beispielsweise über $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:
Ergebnis
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 (beispielsweise 123456-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.byProduct sowie 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.insert und die Artikelnummer der Position über $item.itemNumber.
  • $wsConfig liefert über $wsConfig.inserts dieselben Einstellungen wie $wsInserts. Das Objekt bleibt weiterhin verfügbar.
Die Erfassung eines Codes (URL, Direktbestellung, Warenkorb-Schnittstelle) benötigt kein eigenes Modul. Sie geschieht über URL-Parameter, das Direktbestellformular oder die Storefront-API.

Beispiele

Artikelnummer mit Werbemittelkennzeichen ausgeben

Im Warenkorb (und analog dazu in der Bestellübersicht, der E-Mail und dem PDF) übergeben Sie der Komponente components/itemNumberWithInsert.htm die Artikelnummer und den Code der Position. Die Reihenfolge und die Trennzeichen werden von der Komponente selbst berücksichtigt.
Ergebnis
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.
Ergebnis
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.
Ergebnis
Der Werbemittelcode erscheint nur bei aktiver Funktion und nur für Positionen, die einen Code tragen.

Werbemittelkennzeichen in der Direktbestellung erfassen

Auf der Direktbestellseite (Template modules/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:
  1. 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.
  2. 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-09 mit dem Trennzeichen „-” wird somit die Nummer 123-456 mit dem Code 09.
  3. Der abgetrennte Code wird gegen die gültigen Codes des gefundenen Produkts geprüft, wie unter Wie der Shop ein Werbemittelkennzeichen ermittelt beschrieben.
Eingaben ohne Kennzeichen funktionieren unverändert, das heißt, es können weiterhin Artikelnummer, Produkt-ID, EAN oder ISBN verwendet werden. Damit die Kunden wissen, dass sie den Code eingeben können, kann das Feld für die Artikelnummer einen entsprechenden Hinweis erhalten. Im folgenden Beispiel wird der Platzhalter nur bei aktiver Funktion ergänzt:
Ergebnis
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.
  • $wsInserts: je Produkt gemerktes Kennzeichen über $wsInserts.byProduct sowie die Einstellungen (aktiv, Trennzeichen, Position, Standardcode).
  • $wsConfig: Einstellungen über $wsConfig.inserts (aktiv, Trennzeichen, Position, Standardcode).
  • $wsBasket: Ausgabe je Position über $item.insert und $item.itemNumber.
  • $wsViews: Erzeugung von View-URLs (url(), viewUrl()), an die sich der insert-Parameter anhängen lässt.
  • content - Katalog: Konfigurationsblock content.inserts und die zwingende Feldzuordnung usedFields.products.
  • API-Referenz Produkte: Pflege der zulässigen Codes je Produkt (custom.validInsertCodes). Setzt die Feldzuordnung usedFields.products voraus (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 sowie GET /api/v1/config/inserts.