Sale-Banner aus dem Shop-Export, und wieder weg, wenn die Aktion endet
Das Wichtigste in Kürze
- Ein Sale hat zwei Momente, in denen die Grafik lügt: am Anfang zeigt sie den alten Preis, am Ende den Aktionspreis. Den zweiten vergisst fast jeder, und er ist der teurere, weil er irreführend wirbt.
- Die Produktdatei, die ein Shop exportiert, enthält bereits alles: Name, Marke, Foto, Preis und den Vergleichspreis. Shopify nennt ihn „Compare-at price“, WooCommerce „Regular price“ neben „Sale price“, der Google-Feed „price“ neben „sale_price“.
- ListingShot erkennt den Export an seinen Spalten und stellt den Vergleichspreis als {compare_price} bereit — nur dort, wo er höher ist als der Preis.
- Ein Badge-Muster wie „SALE · statt {compare_price}“ erscheint darum genau auf den Produkten im Sale und auf keinem anderen; endet die Aktion, verschwindet es mit der nächsten Prüfung.
- Die Grafik mit Badge gehört in Anzeigen und eigene Kanäle. Ins Hauptbild des Google-Feeds gehört sie nicht, dort verlangt Google das Foto ohne Preis.
Der Sale beginnt am Montag um null Uhr. Im Shop steht der neue Preis, die Anzeige zeigt den alten. Zwei Wochen später endet der Sale, im Shop steht wieder der alte Preis, und die Anzeige zeigt den neuen.
Der erste Fehler fällt auf, weil jemand die Anzeige für den Sale gebaut hat und sie am Montag sehen will. Der zweite fällt niemandem auf, weil niemand am Ende einer Aktion Anzeigen ansieht. Er ist der teurere: Wer mit einem Aktionspreis wirbt, den es nicht mehr gibt, wirbt irreführend.
Der Export weiß es schon
Was ein Shop über seine Aktionen weiß, steht in der Produktdatei, die er
ohnehin schreibt. Shopify exportiert je Produkt den Preis und daneben den
„Compare-at price“, den durchgestrichenen. WooCommerce führt „Regular price“
und „Sale price“. Der Google-Produktfeed, den ein Shop für Shopping-Anzeigen
pflegt, hat price und sale_price. In allen drei Fällen ist der Sale kein
Häkchen, das jemand setzt, sondern eine Zahl, die größer ist als eine andere.
Shopifys Datei sieht so aus, auf die Spalten gekürzt, um die es geht. Ein Produkt mit zwei Größen und zwei Bildern sind vier Zeilen; nur die erste trägt den Namen:
Handle,Title,Vendor,Type,Option1 Value,Variant Price,Variant Compare At Price,Image Src
halden-low,Halden Low — Off-White,Nordwerk,Sneaker,42,179.00,199.00,https://…/sneaker.jpg
halden-low,,,,43,179.00,199.00,
halden-low,,,,,,,https://…/sneaker-2.jpg
nordkap-8,Trekking E-Bike Nordkap 8,Talwerk,E-Bike,Default Title,3499.00,,https://…/bike.jpg
Der Sneaker ist im Sale, das E-Bike nicht. Das steht nicht in der Datei; es folgt aus ihr.
Was beim Hochladen passiert
Bevor etwas kostet, gibt es einen Plan: ListingShot liest die Kopfzeile, erkennt die Datei an ihrer Unterschrift als Shopify-Export und sagt, welche Spalte welche Rolle auf der Grafik bekommt. Die vier Zeilen werden zu zwei Produkten; Varianten- und Bildzeilen gehören zu ihrem Produkt, statt als eigene Produkte ohne Namen zu enden.
{
"shop": { "flavour": "shopify", "label": "Shopify" },
"form": "Shop-Export",
"rows": 2,
"columns": [
{ "column": "Handle", "role": null, "note": "the row’s key — not drawn" },
{ "column": "Title", "role": "headline" },
{ "column": "Vendor", "role": "eyebrow" },
{ "column": "Variant Price", "role": "emphasis" },
{ "column": "Variant Compare At Price", "role": null,
"note": "reference price — available to patterns as {compare_price}" },
{ "column": "Image Src", "role": "photo" }
],
"preview": { "title": "Halden Low — Off-White", "price": "179,00 €",
"badge": "SALE · statt 199,00 €" }
}
Die Zeile mit dem Vergleichspreis ist die, um die es in diesem Beitrag geht.
Sie wird nicht gezeichnet. Sie steht neben der Zeile bereit, als
{compare_price}, und zwar nur dann, wenn sie höher ist als der Preis.
Ein Muster statt einer Liste
Bei ListingShot gibt es Muster: feste Werte, die unter jeder Zeile liegen und Platzhalter aus der Zeile füllen. „Jetzt in {location} besichtigen“ wird auf vierhundert Objekten zu vierhundert Sätzen. Und ein Muster, dessen Platzhalter leer ist, entfällt vollständig — kein Satz mit einem Loch, keine leere Pille.
Damit ist das Sale-Badge ein Muster:
badge: SALE · statt {compare_price}
Auf dem Sneaker gibt es einen Vergleichspreis, also erscheint das Badge. Auf dem E-Bike gibt es keinen, also erscheint nichts. Niemand hat eine Liste der Sale-Produkte gepflegt, und niemand kann vergessen, ein Produkt von dieser Liste zu streichen.
Beide Grafiken kommen aus derselben Datei, demselben Formular und demselben Muster. Der einzige Unterschied ist eine Zahl in einer Spalte, die der Shop selbst geschrieben hat.
Und wenn die Aktion endet
Das ist der Teil, für den es den angeschlossenen Bestand gibt. Statt die Datei
hochzuladen, hinterlegen Sie ihre Adresse und einen Abstand. Für Shopify ist
das in der Regel der Google-Produktfeed, den eine Feed-App erzeugt; Shopware
liefert ihn über den Verkaufskanal „Produktvergleich“, WooCommerce über eine
Feed-Erweiterung. Alle drei führen sale_price, und ListingShot liest den
Feed wie den Export.
Endet die Aktion, nimmt der Shop den Aktionspreis zurück. Die nächste Prüfung sieht die Zeile als geändert: Preis zurück, Vergleichspreis weg. Die Grafik wird neu gesetzt, ohne Badge, mit dem regulären Preis, und die Anzeige, die damit läuft, zeigt ab diesem Moment das, was im Shop steht.
Dass ein Preis, der auf einen früheren Wert zurückkehrt, eine Änderung wie jede andere ist, klingt selbstverständlich. Es war es vier Tage lang nicht: Wir haben genau diesen Fall im eigenen Betrieb übersehen, und der Test, der ihn seither bewacht, lässt einen Preis fallen und wieder steigen und erwartet beide Male eine neue Grafik. Das Ende einer Aktion ist dieser Fall.
Wohin die Grafik gehört
Nicht überallhin. Google verlangt für das Hauptbild im Produktfeed das Produkt ohne Preisangabe, ohne Handlungsaufruf, ohne Logo; der Meta-Katalog ebenso. Das Sale-Badge gehört in die Anzeigenbilder für Demand Gen, Performance Max und das Displaynetzwerk, in Ihre Instagram- und Facebook-Beiträge, in den Newsletter und aufs Pinterest-Pin. Das Foto im Feed bleibt das Foto. Die Regeln je Plattform, mit Quelle und Datum.
Was es kostet
Ein Produkt aus einem Export kostet 4 Cent, einmal, weil die Daten strukturiert vorliegen und kein Modell sie auslesen muss. Jede Grafik daraus ist kostenlos, in jedem Format, auch die neue, wenn die Aktion beginnt, und die nächste, wenn sie endet. Der angeschlossene Bestand kostet 50 € im Monat bis 500 Datensätze, Aktualisierungen enthalten — wie oft sich ein Preis ändert, spielt keine Rolle.
Der Preis auf der Grafik ist eine Zahl aus Ihrem Shop. Der Sale auf der Grafik ist ein Vergleich zweier Zahlen aus Ihrem Shop. Beides steht in der Datei, die Sie schon haben.
Häufige Fragen
Woher weiß ListingShot, welches Produkt im Sale ist?
Aus dem Export selbst. Shopify schreibt neben den Preis den „Compare-at price“, WooCommerce führt „Regular price“ und „Sale price“, der Google-Produktfeed „price“ und „sale_price“. Liegt der Vergleichspreis über dem Preis, steht er als {compare_price} bereit; liegt er nicht darüber oder fehlt er, gibt es keinen {compare_price}. Es wird nichts geschätzt.
Muss ich die Sale-Produkte markieren?
Nein. Sie schreiben einmal ein Badge-Muster, etwa „SALE · statt {compare_price}“. Ein Muster, dessen Platzhalter leer ist, entfällt vollständig — das ist die Regel für alle Muster bei ListingShot. Das Badge erscheint deshalb nur auf Produkten mit Vergleichspreis, ohne dass jemand eine Liste pflegt.
Was passiert, wenn die Aktion endet?
Der Shop nimmt den Aktionspreis zurück, der Export enthält wieder den regulären Preis ohne Vergleichspreis, und die nächste Prüfung des angeschlossenen Bestands erkennt die Zeile als geändert. Die Grafik wird neu gesetzt: regulärer Preis, kein Badge. Ein Preis, der auf einen früheren Wert zurückkehrt, ist eine Änderung wie jede andere.
Funktioniert das mit Shopware?
Der Export des Standardprofils trägt den Bruttopreis, aber keinen Vergleichspreis; ein Sale-Badge braucht dort den Google-Produktfeed, den der Verkaufskanal „Produktvergleich“ erzeugt und der sale_price führt. Name, Hersteller, Foto und Preis werden aus beiden gelesen.
Darf das Sale-Badge auf das Produktbild bei Google Shopping?
Nein. Google verlangt für das Hauptbild im Produktfeed das Produkt ohne Preisangabe, Handlungsaufruf, Logo oder Rahmen; dasselbe gilt für den Meta-Katalog. Das Badge gehört in Anzeigenbilder für Demand Gen, Performance Max und das Displaynetzwerk sowie in Ihre eigenen Beiträge. Die Regeln je Plattform stehen mit Quelle und Datum unter listing-shot.com/text-auf-bildern.
Weiterlesen
Warum der Preis auf Ihrem Bild veraltet ist Eine Grafik wird einmal erzeugt. Der Preis ändert sich danach, und niemand erzeugt die Grafik neu — nicht aus Nachlässigkeit, sondern weil das Bild in einem Werkzeug liegt und der Preis in einem anderen. Was ein beobachteter Bestand dagegen tut, mit den Zahlen aus fünf Tagen Betrieb, einschließlich des Fehlers, den wir beim Schreiben gefunden haben.
KI schreibt gute Anzeigen. Die Zahlen setzt der Datensatz Werkzeuge, die Werbeanzeigen erzeugen, sind erstaunlich gut im Argument. Warum Argument und Zahl trotzdem getrennt gehören, auch seit Bildmodelle Preise meist richtig schreiben — und wie eine Anzeige aussieht, in der das Modell den Text schreibt und ein Renderer den Preis setzt.