Zu wissen, dass sich etwas geändert hat, reicht selten aus. Ein Workflow muss in der Regel wissen, wie die Situation zuvor war: Ist der Preis gesunken oder gestiegen, um wie viel, welches Tag wurde hinzugefügt, welchen Wert hatte das Metafeld gestern? Mit dieser Version stehen die alten und neuen Werte app-weit zur Verfügung, und ein benutzerdefinierter Trigger kann einen Workflow starten, auch wenn überhaupt nichts passiert ist.
Alte und neue Werte - überall
- Metafeld-Trigger enthalten nun den vorherigen Wert. Jeder Metafeld-Trigger (generisch, Produkt, Variante, Bestellung, Kunde) übergibt an Shopify Flow das
Metafield.previousValue neben Metafield.value. Dieses Feld ist leer, wenn das Metafeld gerade erst erstellt wurde. Siehe Metafeld-Trigger.
- Preis-, Stückpreis- und Kostenänderungen werden durch die Zahlen angegeben. Da Shopify Flow keine arithmetischen Berechnungen durchführen kann, liefern die Angaben Variant Price Changed, Variant Unit Price Changed und Product Variant Cost Changed nun zusätzlich die Werte
delta (Neuwert minus Altwert), percentChange sowie direction (Anstieg, Rückgang, unverändert). „Der Preis ist um mehr als 10 % gesunken“ ist nun eine Bedingung ohne Code.
- Die Statusangaben „Produktaktualisierung“, „Bestellung“ und „Kundenaktualisierung“ informieren Sie darüber, was sich geändert hat. Früher wurde lediglich angegeben, dass der Datensatz aktualisiert wurde. Nun enthalten sie
changes - die Liste der geänderten Felder sowie für jedes Feld den alten und den neuen Wert. Zu den erfassten Feldern gehören bei Produkten: Titel, Beschreibung, Status, Tags, Anbieter, Typ und Handle; bei Bestellungen: Zahlungsstatus, Fulfillment-Status, Artikel, Tags, Notiz und zusätzliche Details; bei Kunden: Tags, Notiz und Kontostatus. Lange Werte werden gekürzt. Die Liste ist leer, wenn die Aktualisierung nicht diese Felder betraf, beispielsweise bei einer Bestandsänderung.
- Geänderte Artikel im Bestellentwurf liefert nun denselben zeilenweisen Vergleich wie der Trigger: Was wurde hinzugefügt, entfernt oder in Bezug auf Menge, Preis oder Variante geändert?
- Auch Ihr eigener benutzerdefinierter Trigger-Code erkennt den alten und den neuen Wert. Ein benutzerdefinierter Trigger () bei einer Produkt-, Auftrags- oder Kundenaktualisierung erhält nun
payload._changes: jedes verfolgte Feld, das sich geändert hat, jeweils mit oldValue und newValue. So kann Ihr Code bei einem Übergang statt bei einem Status ausgelöst werden - „der Status wechselte von ‚Entwurf‘ zu ‚aktiv‘“, „die Bestellung wurde bezahlt“ -, was eine Bedingung auf den aktuellen Wert nicht ausdrücken kann. Das Beispielereignis, das Sie im Editor erfassen, zeigt das Feld an.
Alles ist additiv. Von Ihnen bereits erstellte Workflows funktionieren weiterhin unverändert. Die vollständige Feldliste pro Trigger finden Sie in der Referenz zum -Trigger unter.
Wählen Sie aus, welche Änderungen einen Update-Trigger auslösen
„Produktaktualisierung“, „Bestellungsaktualisierung“ und „Kundenaktualisierung“ verfügen über eine neue Einstellung, die sich hinter dem Zahnrad-Symbol neben dem Schalter auf der Seite „-Trigger“ unter befindet: Diese Einstellung legt fest, welche Änderungen diese Trigger auslösen.
- Nichts ist markiert: Der Trigger wird bei jeder Aktualisierung ausgelöst, genau wie bisher.
- Markierte Felder: Es wird nur ausgelöst, wenn sich eines davon geändert hat. Alle anderen Aktualisierungen werden übersprungen und werden nicht auf Ihren Plan angerechnet.
Dies ist zudem die saubere Methode, um zu verhindern, dass sich ein Workflow selbst auslöst. Ein Workflow, der bei einer Produktaktualisierung gestartet wird und anschließend ein Produkt-Metafeld schreibt, das dazu dient, ihn erneut zu starten. Beschränken Sie den Trigger auf die Felder, die für Sie von Bedeutung sind, und diese zweite Aktualisierung wird nicht mehr ausgelöst.
Ihre übrigen Trigger sind von dieser Auswahl nicht betroffen. Die Einschränkung der Aktualisierung von „Bestellung“ auf den Zahlungsstatus hat keinen Einfluss darauf, wann das Ereignis „Bestell-Tags hinzugefügt“ ausgelöst wird.
Benutzerdefinierte Trigger, die nach einem Zeitplan ausgeführt werden
Shopify Flow reagiert, wenn etwas passiert. Er kann nicht reagieren, wenn nichts passiert, und er kann nichts außerhalb Ihres Shops erkennen. Ein benutzerdefinierter Trigger kann dies nun. Der Editor fragt: „Was löst diesen Vorgang aus: Ein Ereignis unter Shopify oder nach einem Zeitplan?“ Bei der Ausführung nach Zeitplan wird Ihr Code alle 30 Sekunden bis zu einmal täglich ausgeführt. Er merkt sich, was er bei der letzten Ausführung festgestellt hat, kann Ihren Shop auslesen und beliebige Dienste im öffentlichen Internet aufrufen und entscheidet selbstständig, was als Änderung gilt.
Beginnen Sie mit einer Vorlage und bearbeiten Sie die Zahlen oben:
- Produkt, Bestellung oder Kunde seit N Tagen nicht aktualisiert - veraltete Katalogbewertungen, festgefahrene Bestellungen, Rückgewinnung. Jeder Datensatz löst die Aktion einmal pro Ruhephase aus; bereits überfällige Einträge zum Zeitpunkt der Aktivierung werden nicht alle auf einmal ausgelöst.
- Ein Wert außerhalb von Shopify wurde geändert - ein Lieferantenbestandsfeed, ein Wechselkurs, eine Preisliste. Zeigt den Wert vor und nach der Änderung sowie die Differenz und den prozentualen Anteil für Zahlen an.
- Neuer Eintrag in einem RSS- oder Atom-Feed - Anbieter-News, ein Produktverzeichnis-Feed, eine Statusseite.
- Keine Bestellungen seit N Stunden - ein „Herzschlag“ für Ihren Shop. Wird einmal ausgelöst, wenn keine Bestellungen mehr eingehen, und einmal, wenn wieder Bestellungen eingehen.
Der erste Durchlauf eines geplanten Triggers speichert lediglich die aktuellen Daten; daher führt das Aktivieren eines solchen Triggers niemals zu einer Überlastung Ihrer Workflows. Er erscheint unter Shopify Flow als benutzerdefinierter Trigger, gefiltert nach seinem Handle, und der Datensatz wird als dessen ID mitgeführt. Jeder Durchlauf wird auf Ihren Plan angerechnet, unabhängig davon, ob der Trigger ausgelöst wird oder nicht - der Editor zeigt an, wie viele Durchläufe ein Intervall insgesamt umfasst. Mit „Test“ führen Sie Ihren Code einmal aus, ohne dass dabei etwas ausgelöst wird.
Vorlagen für ereignisbasierte benutzerdefinierte Trigger
Benutzerdefinierte Trigger, die auf ein Shopify-Ereignis reagieren, verfügen nun ebenfalls über Vorlagen. Wählen Sie unter „Start“ eine Vorlage aus, woraufhin das Ereignis ausgewählt und der Code automatisch ausgefüllt wird. Jede Vorlage liest den Wert vor und nach der Änderung aus:
- Ein Feld eines Produkts, einer Bestellung oder eines Kunden hat sich von einem Wert auf einen anderen geändert - beispielsweise ist der Status von „Entwurf“ auf „Aktiv“ gewechselt oder eine Bestellung wurde bezahlt.
- Der Preis ist um mehr als N Prozent gesunken - eine echte Preissenkung, nicht jede Preisänderung.
- Der Lagerbestand ist unter einen Schwellenwert gefallen - es wird einmal ausgelöst, und zwar in dem Moment, in dem der Lagerbestand die Grenze überschreitet, nicht bei jedem Verkauf, solange der Bestand bereits niedrig ist.
- Die Zahl eines Produkt-Metafelds hat einen Schwellenwert überschritten - eine Bewertung ist unter 3 gefallen, eine Marge ist über 40 gestiegen.
- Von einem Großkunden bezahlte Bestellung - ermittelt die Gesamtumsätze des Kunden in Ihren Shops mithilfe von
ctx.shopify() und löst erst ab dem von Ihnen festgelegten Betrag aus.
Die Trigger-Ereignisse eines Datensatzes auf dessen eigener Verwaltungsseite
Neue Admin-Blöcke zeigen die neuesten Trigger-Ereignisse zu dem Datensatz, den Sie gerade betrachten, direkt auf dessen Seite im Shopify-Adminbereich an, jeweils mit einer kurzen Zeile „alt -> neu“, wie beispielsweise price: 100.00 -> 85.00. Von dort aus können Sie das Ereignis oder eine Ansicht des Ereignisverlaufs für diesen einen Datensatz öffnen.
Verfügbar für Produkte, Varianten, Bestellungen, Bestellentwürfe, Kunden, Inkassoangelegenheiten, Unternehmen und Unternehmensstandorte. Fügen Sie den Block einmalig über das Anpassungsmenü der Seite hinzu. Trigger, die personenbezogene Daten verarbeiten, werden ohne ihre Werte aufgelistet. So fügen Sie sie hinzu - mit einem Beispiel für eine Produkt-, Bestell- und Kundenseite: Trigger-Ereignisse auf der Verwaltungsseite eines Datensatzes:.
Weitere KI-Anbieter für „Generate with AI“
„Generate with AI“ funktioniert nun neben Anthropic und OpenAI auch mit Google Gemini und OpenRouter. Mit OpenRouter erhalten Sie Modelle zahlreicher Unternehmen mit einem einzigen Schlüssel, einschließlich jeder von Ihnen eingegebenen Modell-ID. Verbinden Sie einen Schlüssel unter „Developer“ -> „Connections“: . Beziehen Sie einen Gemini-API-Schlüssel unter oder . Beziehen Sie einen OpenRouter-API-Schlüssel unter. Wie bisher erfolgt die Generierung über Ihr eigenes Anbieter-Konto, und der Schlüssel wird verschlüsselt und nie wieder angezeigt.
Eine schnellere Benutzeroberfläche, die auf den Webkomponenten von Shopify basiert
Jede Seite der App wurde auf Basis der neuen Admin-Webkomponenten von Shopify neu erstellt - denselben Bausteinen, die auch die Shopify-Verwaltung selbst verwendet.
- Schnelleres Laden. Die App enthält keine eigene Kopie einer Schnittstellenbibliothek mehr. Die Komponenten stammen von Shopify, werden gemeinsam mit dem Rest Ihres Admin-Bereichs genutzt und befinden sich in der Regel bereits im Cache Ihres Browsers, sodass jede Seite weitaus weniger Daten herunterladen muss, bevor sie angezeigt wird.
- Es fühlt sich an wie die Admin-Oberfläche. Schaltflächen, Tabellen, Umschalter, Dialogfelder und Formulare sehen aus und verhalten sich genau wie die Elemente, die Sie überall sonst in Shopify verwenden, einschließlich der Tastaturnavigation und der Bildschirmleseprogramme.
- Bleibt auf dem neuesten Stand. Wenn Shopify seine Komponenten verbessert, übernimmt die App diese Verbesserungen, ohne dass ein Update von uns erforderlich ist.
Nichts hat sich verändert: Alle Seiten, Einstellungen und Links befinden sich noch an derselben Stelle wie zuvor.
Ebenfalls in dieser Version
- „Alle gewähren“ und „Alle widerrufen“ auf der Seite „Berechtigungen“. Bei „Alle gewähren“ werden alle fehlenden Berechtigungen in einem einzigen Dialogfeld Shopify abgefragt, anstatt jeweils einzeln pro Karte. Bei „Alle widerrufen“ werden Sie zunächst um Bestätigung gebeten und darüber informiert, was dies bedeutet: Ihre Trigger bleiben aktiviert, sie können jedoch erst wieder ausgelöst werden, wenn Sie den Zugriff erneut gewähren.
- Benutzerdefinierter Trigger-Code kann über
ctx.fetch() auf das öffentliche Internet zugreifen, nicht nur über ctx.shopify() auf Ihren Shop. Interne Adressen werden abgelehnt.
- Ihre benutzerdefinierten Trigger und Ihre Storefront-Trigger verhalten sich nun auf dieselbe Weise: Klicken Sie auf die Zeile, um sie zu bearbeiten; der Status wird rechts angezeigt.
- Auf der Seite „Trigger“ wird neben dem Titel angezeigt, wie viele Trigger aktiv sind, und die vier Trigger für Metafelder mit festgelegten Typen verfügen nun über eigene Schalter in der Liste.
- Pflichtfelder sind in den Formularen für benutzerdefinierte Trigger, Storefront-Trigger und Verbindungen gekennzeichnet.
- Behoben: Ein Datumsfilter im Ereignisverlauf konnte nicht gelöscht werden. Beim Entfernen des Datums-Chips oder bei Auswahl von „Alle löschen“ blieben die festgelegten Daten erhalten. Beide Optionen löschen diese nun.
- Die Zeilen im Ereignisverlauf bestehen aus reinem Text und nicht aus blauen Links. Die gesamte Zeile ist weiterhin anklickbar.