Warum Shopify Flow keine Datumsvergleiche kann (und was tatsächlich funktioniert)
Wenn Sie einen Nachmittag damit verbracht haben, Shopify Flow dazu zu bringen, ein Metafeld-Datum mit dem heutigen Datum zu vergleichen, machen Sie nichts falsch. Flow kann das tatsächlich nicht sauber, und die Gründe dafür sind es wert, verstanden zu werden, bevor Sie eine weitere Stunde an Workarounds verschwenden. Das ist die lange Antwort plus der kurze Weg drumherum.
Das Problem, klar formuliert
Sie wollen etwas, das einfach klingt. Prüfen, ob das expiry_date-Metafeld eines Produkts überschritten ist, und das Produkt dann auf Entwurf setzen. Oder prüfen, ob heute das launch_date eines Produkts ist, und es dann veröffentlichen. Oder zwei Wochen vor Beginn eines Sales einen Tag setzen. Das sind die Arten von datumsgesteuerten Produktregeln, die jeder hinreichend echte Shopify-Shop irgendwann braucht — und die Shopify Flow eigentlich erledigen können sollte.
Außer Flow funktioniert so nicht. Es gibt drei separate Mauern, gegen die Sie laufen. Die meisten Händler laufen gegen alle drei, bevor sie aufgeben.
Mauer 1: Die Bedingungsfelder von Flow akzeptieren kein Liquid
Wenn Sie eine Flow-Bedingung bauen, vergleichen Sie einen Wert gegen einen festen String. Sie können sagen „Produkt-Tag entspricht on-sale" oder „Produktstatus entspricht Aktiv". Was Sie nicht sagen können, ist „Produkt-Metafeld-Datum ist kleiner als heute", weil „heute" kein fester Wert ist, den Sie eintippen können. Es ändert sich jeden Tag.
Der intuitive Workaround ist Liquid. Sie nutzen Liquid bereits in Ihrem Theme, Sie haben Liquid in den E-Mail-Aktionen von Flow gesehen, also probieren Sie das Naheliegende:
{{ "now" | date: "%Y-%m-%d" }}
Und es funktioniert nicht. Liquid wird in den Aktionsfeldern von Flow unterstützt (E-Mail-Text, an einen HTTP-Request übergebener Wert), aber nicht in den Bedingungsfeldern. Das Bedingungssystem behandelt Ihr Liquid als wörtlichen String. Ihr eleganter Ausdruck vergleicht die Zeichen {{ "now" | date: "%Y-%m-%d" }} gegen ein tatsächliches ISO-Datum, was nie übereinstimmen wird.
Das überrascht fast alle, weil die Asymmetrie nicht prominent dokumentiert ist. Die Produktoberfläche suggeriert, Liquid sei in Flow durchgängig ein Bürger erster Klasse. Das ist es nicht.
Mauer 2: Sie können Produkte nicht per API nach Metafeld-Datum abfragen
Vielleicht geben Sie Liquid auf und versuchen den anderen naheliegenden Ansatz: einen geplanten Flow, der täglich läuft und Produkte mit abgelaufenem Datum zieht. Dafür sind geplante Auslöser doch da, oder?
Außer die Shopify-Admin-API unterstützt das Filtern von Produkten nach Metafeld-Datumswerten nicht. Die Produktabfrage unterstützt das Filtern nach Status, Titel, Anbieter, Produkttyp, Tag, Erstellungs-/Aktualisierungszeit und einer Handvoll anderer Top-Level-Felder. Metafeld-Datumsvergleich ist nicht in der Liste. Es gibt keinen metafield:custom.expiry_date<today-Filter.
Die offizielle Shopify-Position ist, dass Metafelder flexible Erweiterungsdaten sind, nicht für günstige Abfragen indiziert. Das ist eine vernünftige Architekturentscheidung. Es ist auch die Mauer, die aus einem Ein-Abend-Projekt ein viel größeres macht.
Jeder geplante Flow, der auf „Produkte mit vergangenem Ablaufdatum" wirken will, muss jedes Produkt abrufen, das Metafeld parsen und im Code filtern. Was uns zu Mauer drei führt.
Mauer 3: Der Run-Code-Workaround ist fragil
Flow hat eine „Run Code"-Aktion, mit der Sie JavaScript innerhalb einer Automatisierung schreiben können. Mit genug Aufwand können Sie einen Flow bauen, der Folgendes tut:
- Auslösen nach täglichem Zeitplan.
- Run Code ruft Produkte seitenweise aus der GraphQL-Admin-API ab.
- Für jedes Produkt das
custom.expiry_date-Metafeld lesen. - Den ISO-String in ein Datum parsen, mit der aktuellen Zeit vergleichen.
- Bei Treffern eine Statusänderungsaktion auslösen.
Es funktioniert. Es ist auch weit entfernt vom „No-Code"-Versprechen von Flow.
Sie pflegen JavaScript innerhalb einer Shopify-Automatisierung. Sie handhaben Paginierung, wenn Ihr Katalog größer als eine Seite ist. Sie handhaben fehlende Metafelder. Sie handhaben Produkte mit fehlerhaften Daten, weil jemand eine CSV von Hand bearbeitet hat. Sie handhaben API-Ratenlimits, wenn Ihr Katalog wächst. Wenn Shopify ein Feld in der nächsten API-Version verwirft, kann Ihr Flow stillschweigend scheitern, und Sie merken es erst, wenn ein Produkt nicht rechtzeitig archiviert wird.
Für einen Entwickler, der sich mit dieser Wartung wohlfühlt, ist es in Ordnung. Für einen Händler, der nur wollte, dass sich ein Produkt nach Ablauf selbst auf Entwurf setzt, ist das wirklich zu viel. Und jedes Gespräch, das ich mit Händlern führe, die es versucht haben, endet gleich: Sie haben es gebaut, es lief ein Quartal lang, dann brach etwas still und sie haben es drei Wochen lang nicht gemerkt.
💡 Fairerweise zu Flow: Es ist ein wirklich mächtiges Werkzeug für Bestellautomatisierung, Kundensegmentierung, Bestandswarnungen und Nach-Kauf-Reisen. Es ist nicht für geplante, datumsgesteuerte Produktautomatisierung konzipiert. Zu versuchen, es diese Aufgabe machen zu lassen, kämpft gegen die Bauweise — nicht Flows Schuld und nicht Ihre.
Was tatsächlich funktioniert: ein für die Aufgabe gebautes Werkzeug
DateCue existiert, weil ich immer wieder gegen genau diese Mauer lief und es leid wurde, Händlern Run Code zu empfehlen, die es nicht verdient hatten. Das Modell ist einfach: Sie setzen ein Datum in ein Produkt-Metafeld, DateCue überwacht es, und wenn das Datum fällig ist, löst es die konfigurierte Aktion aus. Statusänderung, Tag-Änderung oder Team-E-Mail.
Kein Liquid. Kein JavaScript. Keine API-Paginierungslogik. Drei Felder und ein Speicherknopf.
Hier ist der Ablauf-Workflow, der in Flow Stunden gedauert hätte:
Zeitpunkt: Nach dem Datum (0 Tage)
Aktion: Produktstatus ändern → Entwurf
Filter: Status = Aktiv
DateCue erfasst jedes Produkt mit einem custom.expiry_date-Metafeld, verfolgt das Datum und setzt es innerhalb einer Minute nach Ablauf auf Entwurf. Der Aktiv-Statusfilter ist die Leitplanke, die sicherstellt, dass DateCue nur Produkte berührt, die derzeit live sind, sodass es Produkte nicht erneut anrührt, die Sie aus anderen Gründen bereits manuell auf Entwurf gesetzt haben.
Wie schnell ist „innerhalb einer Minute" wirklich?
Es laufen zwei Uhren. Der Aktionsausführer prüft jede Minute auf fällige Workflows. Die Produktsynchronisierung, die frische Metafeld-Werte aus Shopify zieht, läuft alle fünf Minuten. Wenn Sie also ein Metafeld jetzt gerade auf ein vergangenes Datum setzen, übernimmt DateCue den neuen Wert bei der nächsten Synchronisierung (bis zu fünf Minuten) und löst die Aktion beim nächsten Ausführer-Tick aus (bis zu eine Minute danach).
Wenn Sie einen brandneuen Wert schneller übernommen brauchen — sagen wir, Sie aktualisieren ein Launch-Datum sechzig Sekunden vor dem Auslösen — klicken Sie im Dashboard auf Jetzt synchronisieren. Das Metafeld wird sofort geladen und die Aktion läuft im nächsten Minuten-Tick.
Für jedes im Voraus gesetzte Datum (was nahezu jeder reale Anwendungsfall ist) feuert die Aktion innerhalb derselben Minute, in der das Datum überschritten wird. Setzen Sie einen Launch auf 10:00 Uhr, ist das Produkt um 10:01 Uhr live.
Dasselbe Modell deckt mehr als nur Ablauf ab
Das, was Flow nicht kann — ein Metafeld-Datum mit heute zu vergleichen — ist genau das Primitive, das die meisten datumsgesteuerten Produktregeln freischaltet. Wenn Sie es einmal haben, stapeln sich die Anwendungsfälle:
- Ein Produkt am Launch-Datum automatisch veröffentlichen, indem ein
launch_date-Metafeld gelesen wird. - Saisonale Produkte veröffentlichen und ausblenden zu Beginn und Ende eines Fensters.
- Produkte zwei Wochen vor Ablauf als „expires-soon" markieren, um eine Räumungs-Kollektion zu speisen.
- Ihren Einkäufer 30 Tage vor Bestandsablauf per E-Mail benachrichtigen, damit er Zeit zum Nachbestellen hat.
- Einen Sale automatisch beenden, indem der on-sale-Tag am Enddatum entfernt wird.
Jeder ist ein einzelner Workflow in DateCue mit anderem Zeitpunkt und anderer Aktion. Die Dinge, die in Flow wirklich schwierig sind — Datumsmathematik, geplante Abfragen, Metafeld-Vergleiche — sind genau das, was DateCue nativ erledigt.
Brauchen Sie Flow noch?
Fast sicher ja, und das ist in Ordnung. Flow ist hervorragend in dem, wofür es entworfen wurde. Hochwertige Bestellungen taggen, Betrugsprüfung, Nach-Kauf-Kundenreisen, Niedrigbestand-Warnungen an Ihr Lager — alles, was durch ein Bestell- oder Kundenereignis ausgelöst wird, handhabt Flow gut, und DateCue versucht das nicht.
Die Aufteilung ist sauber. Flow handhabt Ereignisse, die von der Bestell- oder Kundenseite ausgelöst werden. DateCue handhabt Ereignisse, die von einem Datum auf einem Produkt ausgelöst werden. Sie koexistieren ohne Integration, weil sie nicht um dieselben Auslöser konkurrieren.
Migration von einem Run-Code-Workflow
Wenn Sie bereits einen Run-Code-Workflow haben, der datumsbasierte Produktautomatisierung erledigt, ist die Migration kurz. Das folgende Muster funktioniert meistens:
- Installieren Sie DateCue aus dem Shopify App Store. Der kostenlose Plan reicht zum Testen.
- Bilden Sie die Aktion in einem DateCue-Workflow nach: wählen Sie Metafeld, Zeitpunkt und Aktion.
- Deaktivieren Sie den Run-Code-Workflow in Flow (löschen Sie ihn noch nicht).
- Beobachten Sie das Ausführungsprotokoll von DateCue eine Woche lang. Jede ausgelöste Aktion erscheint mit dem Produkt, dem auslösenden Datum und dem Ergebnis.
- Sobald Sie bestätigt haben, dass DateCue die Aufgabe erledigt, löschen Sie den alten Run-Code-Workflow.
Die meisten Migrationen dauern weniger als eine Stunde. Der langsame Teil ist die Überprüfung, nicht die Einrichtung.
Häufig gestellte Fragen
Warum kann Shopify Flow Datumsangaben nicht nativ vergleichen?
Die Bedingungsfelder von Flow werden zum Zeitpunkt des Auslösers ausgewertet und akzeptieren nur statische Werte. Datumsberechnungen benötigen ein dynamisches „Heute", das sich bei jeder Prüfung ändert. Liquid funktioniert in den Aktionsfeldern von Flow, aber nicht in den Bedingungsfeldern, sodass Sie keinen Liquid-Ausdruck einsetzen können, der das heutige Datum berechnet und von Flow respektiert wird. Das Auslösersystem unterstützt zudem keine geplanten Abfragen, die nach Metafeld-Datum filtern.
Ist der Run-Code-Workaround in Flow tatsächlich zuverlässig?
Er kann funktionieren, erfordert aber laufende Wartung. Sie schreiben JavaScript innerhalb von Flow, das Produkte abruft, Paginierung für große Kataloge handhabt, Metafeld-Datumsstrings parst und sauber zurückfällt, wenn das Metafeld fehlt. Wenn sich die API-Verträge von Shopify ändern, bemerken Sie das vielleicht erst, wenn ein Launch still scheitert. Für einen Entwickler, der bereit ist, das zu betreuen, ist es machbar. Für die meisten Händler ist es überdimensioniert.
Brauche ich Shopify Flow noch, wenn ich DateCue verwende?
Wahrscheinlich ja. Flow ist hervorragend für Bestell-Tagging, Kundenreisen, Bestandswarnungen und Betrugs-Workflows. DateCue ersetzt Flow nur für datumsgesteuerte Produktautomatisierung: Statusänderungen, Tag-Änderungen und Team-E-Mails, ausgelöst durch Produkt-Metafeld-Daten. Die beiden Tools stehen ohne Konflikt nebeneinander.
Welche Metafeld-Typen unterstützt DateCue?
Sowohl date- als auch date_time-Metafelder auf Produkten, in jedem Namespace und Schlüssel. Wenn Sie den Wert im Metafeld-Editor von Shopify bearbeiten können, kann DateCue ihn überwachen.
Wie schnell handelt DateCue, sobald ein Datum überschritten ist?
DateCue führt fällige Aktionen jede Minute aus. Neue Metafeld-Werte aus Shopify werden innerhalb eines 5-Minuten-Synchronisierungsfensters erkannt. Wenn Sie gerade ein Launch-Datum geändert haben und es sofort übernommen werden soll, klicken Sie im Dashboard auf Jetzt synchronisieren und der neue Wert wird sofort geladen.
Was kostet DateCue?
DateCue ist für bis zu 100 Produkt-Cues pro Monat lebenslang kostenlos. Bezahlte Pläne beginnen bei 9 $/Monat (Starter: 10.000 Cues) und reichen bis 19 $/Monat (Scale: 100.000 Cues, plus Webhooks). Alle bezahlten Pläne enthalten einen kostenlosen Test von 14 Tagen.
Kann DateCue einen Flow-Run-Code-Workflow ersetzen, den ich bereits gebaut habe?
In den meisten Fällen ja. Wenn Ihr Run-Code-Workflow das Standardmuster ausführt (Produkte abrufen, Metafeld-Daten vergleichen, Status oder Tags ändern), erledigt ein DateCue-Workflow dasselbe in drei Feldern. Halten Sie den Flow-Workflow lieber für ein bis zwei Wochen archiviert statt gelöscht, während Sie überprüfen, dass sich DateCue wie erwartet verhält, und ziehen Sie ihn dann zurück.
Matt Burrell
Gründer von Ripen Studio. Ich habe DateCue gebaut, weil ich immer wieder gegen genau diese Mauer lief und es leid wurde, Händlern Run Code zu empfehlen, die es nicht verdient hatten. Mehr über Matt.
Sparen Sie sich die Flow-Workarounds. Lebenslang kostenlos.
Ein Workflow, fünfzig Produkte, keine Karte erforderlich. Richten Sie Ihre erste datumsgesteuerte Automatisierung in fünf Minuten ein.
Kostenlos auf Shopify installierenKostenloser Plan: 1 Workflow, 50 Produkte, 100 Cues/Monat. Erst dann upgraden, wenn Sie herauswachsen.