Det er sjældent nok blot at vide, at noget har ændret sig. En arbejdsgang skal som regel vide, hvordan den så ud før: om prisen er faldet eller steget, med hvor meget, hvilket tag der er blevet tilføjet, og hvad metafeltet sagde i går. Denne opdatering gør både den gamle og den nye værdi tilgængelig i hele appen og giver mulighed for, at en brugerdefineret udløser kan starte en arbejdsgang, selv når der slet ikke er sket noget.
Gamle og nye værdier, overalt
- Metafelt-udløsere indeholder nu den forrige værdi. Hver metafelt-udløser (generisk, produkt, variant, ordre, kunde) overfører Shopify Flow-
Metafield.previousValueen ved siden af Metafield.value. Den er tom, når metafeltet netop er oprettet. Se Metafelt-udløsere.
- Ændringer i pris, enhedspris og omkostninger følger med tallene. Shopify Flow kan ikke udføre regneoperationer, så »Variant Price Changed«, »Variant Unit Price Changed« og »Produktvariant Cost Changed« leverer nu også »
delta« (nyt minus gammelt), »percentChange« og »direction« (stigning, fald, uændret). »Prisen er faldet med mere end 10 %« er nu én betingelse uden kode.
- Produktopdatering, Ordreopdatering og Kundeopdatering angiver, hvad der er ændret. Tidligere angav de blot, at posten var blevet opdateret. Nu indeholder de en »
changes«: en liste over de ændrede felter samt den gamle og den nye værdi for hvert felt. De felter, der spores, er titel, beskrivelse, status, tags, leverandør, type og håndteringsnummer for produkter; betalingsstatus, klargøring, varelinjer, tags, bemærkning og yderligere detaljer for ordrer; samt tags, bemærkning og kontostatus for kunder. Lange værdier forkortes. Listen er tom, når opdateringen ikke vedrørte disse felter, f.eks. en ændring i lagerbeholdningen.
- »Ændringer i udkast til varelinjer« viser nu den samme linje-for-linje-sammenligning som ordreudløseren: hvad der er tilføjet, fjernet eller ændret med hensyn til mængde, pris eller variant.
- Din egen brugerdefinerede udløser registrerer også den gamle og den nye værdi. En brugerdefineret udløser](https://docs.workflow-trigger-extensions.app/da/brugerdefinerede-udloesere) med navnet [, der udløses ved produktopdatering, ordreopdatering eller kundeopdatering, modtager nu
payload._changes: alle sporede felter, der er ændret, hver med oldValue og newValue. Så din kode kan udløses ved en overgang i stedet for en tilstand - "status gik fra udkast til aktiv", "ordren blev betalt" - hvilket en betingelse baseret på den aktuelle værdi ikke kan udtrykke. Det eksempel på en begivenhed, du kan se i editoren, viser feltet.
Alt fungerer additivt. De arbejdsgange, du allerede har oprettet, fortsætter med at fungere uændret. Den fulde feltliste for hver udløser findes i udløser-referencen »« på.
Vælg, hvilke ændringer der skal udløse en opdateringsudløser
»Produktopdatering«, »Ordreopdatering« og »Kundeopdatering« har fået en ny indstilling, som findes bag tandhjulet ved siden af deres tænd/sluk-knap på siden »-udløsere«: Hvilke ændringer udløser denne handling.
- Intet er markeret: udløseren aktiveres ved hver opdatering, præcis som den altid har gjort.
- Markerede felter: Der udløses kun en handling, når et af dem ændres. Alle andre opdateringer springes over og tæller ikke med i din plan.
Dette er også den rene måde at forhindre, at en arbejdsgang udløser sig selv. En arbejdsgang, der starter ved en produktopdatering og derefter skriver til et produktmetafelt, der bruges til at starte den selv igen. Begræns udløseren til de felter, du er interesseret i, så udløses den anden opdatering ikke længere.
Dine øvrige udløsere påvirkes ikke af dette valg. Hvis du begrænser »Order Update« til betalingsstatus, ændrer det ikke, hvornår »Order Tags Added« udløses.
Brugerdefinerede udløsere, der kører efter en tidsplan
Shopify Flow reagerer, når der sker noget. Den kan ikke reagere, når der ikke sker noget, og den kan ikke se noget uden for din butik. En brugerdefineret udløser fra kan nu gøre det. Editoren spørger: »Hvad udløser denne udførelse: En Shopify-begivenhed eller efter en tidsplan?« Efter en tidsplan kører din kode hvert 30. sekund op til én gang om dagen. Den husker, hvad den så ved sidste kørsel, kan læse din butik og kalde på alt på det offentlige internet og beslutter selv, hvad der tæller som en ændring.
Start med en skabelon, og rediger tallene øverst:
- Produkt, ordre eller kunde, der ikke er blevet opdateret i N dage - forældede kataloggennemgange, fastlåste ordrer, genvindingskampagner. Hver post udløser en handling én gang pr. inaktiv periode; poster, der allerede var forfaldne, da funktionen blev aktiveret, udløser ikke alle handlinger på én gang.
- En værdi uden for Shopify er blevet ændret - f.eks. en leverandørs lageropdatering, en valutakurs eller en prisliste. Viser værdien før og efter ændringen samt forskellen og procentdelen for tal.
- Nyt indlæg i et RSS- eller Atom-feed - leverandørnyheder, et produktoversigtsfeed, en statusside.
- Ingen ordrer i N timer - en pulsmåler for din butik. Udføres én gang, når ordrerne stopper, og én gang, når de genoptages.
Den første kørsel af en planlagt udløser husker kun det, den ser, så aktivering af en sådan udløser vil aldrig overbelaste dine arbejdsgange. Den vises i »Shopify Flow« som »Brugerdefineret udløser«, filtreret efter sit håndtag, og posten vises som dens id. Hver kørsel tæller med i dit abonnement, uanset om den udløses eller ej - editoren viser, hvor mange kørsler et interval i alt udgør. "Test" kører din kode én gang uden at udløse noget.
Skabeloner til begivenhedsbaserede brugerdefinerede udløsere
Brugerdefinerede udløsere, der overvåger en »Shopify«-begivenhed, har nu også skabeloner. Vælg en under »Start fra en skabelon«, så vælges begivenheden, og koden udfyldes automatisk. Hver skabelon læser værdien før og efter ændringen:
- Et produkt-, ordre- eller kundefelt skiftede fra én værdi til en anden - for eksempel skiftede status fra »udkast« til »aktiv«, eller en ordre blev betalt.
- Prisen faldt med mere end N procent - en reel prisnedsættelse, ikke bare en tilfældig prisændring.
- Lagerbeholdningen faldt under en tærskelværdi - der udløses et alarmsignal én gang, nemlig i det øjeblik lagerbeholdningen krydser grænsen, ikke ved hvert eneste salg, mens den allerede er lav.
- Et produktmetafelt har overskredet en tærskel - en bedømmelse er faldet til under 3, en margin er steget til over 40.
- Ordre betalt af en stor kunde - henter kundens samlede forbrug i din butik via
ctx.shopify() og udløser kun, når beløbet overstiger det beløb, du har angivet.
En postens udløsere på dens egen administrationsside
Nye administrationsblokke viser de seneste udløsende begivenheder for den post, du ser på, direkte på dens side i Shopify-administrationsgrænsefladen, hver med en kort linje, der viser »gammelt -> nyt«, f.eks. price: 100.00 -> 85.00. Herfra kan du åbne begivenheden eller en oversigt over begivenhedshistorikken for netop den pågældende post.
Gælder for produkter, varianter, ordrer, ordrekladder, kunder, inkasso, virksomheder og virksomhedslokationer. Tilføj blokken én gang via sidens tilpasningsmenu. Triggere, der behandler personoplysninger, vises uden deres værdier. Sådan tilføjes det, med et eksempel på en produkt-, ordre- og kundeside: Udløs begivenheder på en postens administrationsside.
Flere AI-udbydere til »Generate with AI«
Generer med AI fungerer nu med Google Gemini og OpenRouter ud over Anthropic og OpenAI. OpenRouter giver dig adgang til modeller fra mange virksomheder med én enkelt nøgle, herunder ethvert model-id, du indtaster. Tilslut en nøgle under Udvikler -> Forbindelser: for at få en Gemini API-nøgle eller for at få en OpenRouter API-nøgle. Som før kører genereringen på din egen udbyderkonto, og nøglen er krypteret og vises aldrig igen.
En hurtigere brugergrænseflade, der er baseret på webkomponenterne frShopify
Hver eneste side i appen er blevet genopbygget ved hjælp af de nye webkomponenter til administrationen på Shopify - de samme byggesten, som selve Shopify-administrationssystemet bruger.
- Hurtigere indlæsning. Appen leveres ikke længere med sin egen kopi af et grænsefladebibliotek. Komponenterne hentes fra Shopify, deles med resten af dit administrationsområde og findes som regel allerede i din browsers cache, så der er langt mindre, der skal downloades, før hver side vises.
- Det føles som administrationspanelet. Knapper, tabeller, afbrydere, dialogbokse og formularer ser ud og fungerer præcis som dem, du bruger alle andre steder på Shopify, herunder tastaturnavigation og skærmlæsere.
- Holder sig opdateret. Når Shopify forbedrer sine komponenter, overtager appen disse forbedringer uden at vi behøver at udgive en opdatering.
Intet har ændret sig: alle sider, indstillinger og links er stadig, hvor de var.
Også i denne udgave
- »Tildel alle« og »Tilbagekald alle« på siden »Tilladelser«. »Tildel alle« beder om alle manglende tilladelser i én samlet dialogboks med »Shopify« i stedet for én pr. kort. »Tilbagekald alle« beder dig først om at bekræfte og forklarer, hvad det betyder: Dine udløsere forbliver aktiverede, men de kan ikke udløses, før du tildeler adgang igen.
- Brugerdefineret udløser kan oprette forbindelse til det offentlige internet via
ctx.fetch(), ikke kun til din butik via ctx.shopify(). Interne adresser afvises.
- Dine brugerdefinerede udløsere og dine webshop-udløsere fungerer nu på samme måde: Klik på rækken for at redigere, status vises til højre.
- På siden »Udløsere« vises antallet af aktive udløsere ved siden af overskriften, og de fire udløsere af typen »Metafelt« har nu hver deres egen aktiveringsknap på listen.
- Brugerdefinerede udløsere, udløsere for webshop og forbindelser er markeret på formularerne.
- Rettet: Et datofilter i begivenhedshistorikken kunne ikke ryddes. Når man fjernede dato-chippen eller valgte »Ryd alt«, forblev datoerne aktive. Nu ryddes de i begge tilfælde.
- Rækkerne i begivenhedshistorikken vises som almindelig tekst og ikke som blå links. Man kan stadig klikke på hele rækken.