Det er sjelden nok å bare vite at noe har endret seg. En arbeidsflyt må vanligvis vite hvordan situasjonen var før: gikk prisen ned eller opp, med hvor mye, hvilken tag ble lagt til, hva metafeltet viste i går. Denne utgivelsen gjør både den gamle og den nye verdien tilgjengelig i hele appen, og lar en tilpasset utløser starte en arbeidsflyt selv når ingenting har skjedd.
Gamle og nye verdier, overalt
- Metafeltutløsere inneholder nå den forrige verdien. Hver metafeltutløser (generisk, produkt, variant, ordre, kunde) overfører Shopify Flow
Metafield.previousValue i tillegg til Metafield.value. Den er tom når metafeltet nettopp er opprettet. Se Metafeltutløsere.
- Endringer i pris, enhetspris og kostnad følger med tallene. Shopify Flow-betingelser kan ikke utføre aritmetiske beregninger, så Variant Price Changed, Variant Unit Price Changed og Product Variant Cost Changed leverer nå også
delta (nytt minus gammelt), percentChange og direction (økning, reduksjon, uendret). «Prisen har falt med mer enn 10 %» er nå én betingelse, uten kode.
- Produktoppdatering, ordreoppdatering og kundeoppdatering viser hva som har endret seg. Tidligere opplyste de bare at posten var oppdatert. Nå inneholder de
changes: en liste over endrede felt, samt den gamle og den nye verdien for hvert felt. Felt som spores er tittel, beskrivelse, status, tagger, leverandør, type og håndtak for produkter; betalingsstatus, leveringsstatus, varelinjer, tagger, merknad og tilleggsdetaljer for bestillinger; tagger, merknad og kontostatus for kunder. Lange verdier forkortes. Listen er tom når oppdateringen ikke gjaldt disse feltene, for eksempel en endring i lagerbeholdningen.
- Endringer i utkast til ordrelinjer viser nå de samme linjevise forskjellene som ordreutløseren: hva som er lagt til, fjernet eller endret når det gjelder antall, pris eller variant.
- Din egen tilpassede utløserkode ser også både den gamle og den nye verdien. En tilpasset utløser ved produktoppdatering, ordreoppdatering eller kundeoppdatering mottar nå
payload._changes: hvert sporet felt som har endret seg, med henholdsvis oldValue og newValue. Dermed kan koden din utløses ved en overgang i stedet for en tilstand - «status gikk fra utkast til aktiv», «ordren ble betalt» - noe som en betingelse basert på den nåværende verdien ikke kan uttrykke. Eksempelhendelsen du fanger opp i redigeringsverktøyet viser feltet.
Alt er additivt. Arbeidsflyter du allerede har opprettet, fortsetter å fungere som før. Den fullstendige feltlisten for hver utløser finnes i utløserreferansen.
Velg hvilke endringer som skal utløse en «Oppdater»-utløser
«Produktoppdatering», «Ordreoppdatering» og «Kundeoppdatering» har en ny innstilling, som du finner bak tannhjulikonet ved siden av bryteren på siden «Utløsere»: Denne endringen utløser denne funksjonen.
- Ingenting er merket av: utløseren aktiveres ved hver oppdatering, akkurat som den alltid har gjort.
- Merkede felt: Det utløses kun når ett av dem endres. Alle andre oppdateringer hoppes over og teller ikke med i abonnementet ditt.
Dette er også den rene måten å forhindre at en arbeidsflyt utløser seg selv på. En arbeidsflyt som starter ved en produktoppdatering og deretter skriver til et produktmetafelt som brukes til å starte den på nytt. Begrens utløseren til de feltene du er interessert i, så vil den andre oppdateringen ikke lenger utløses.
Dine andre utløsere påvirkes ikke av dette valget. Å begrense «Order Update» til betalingsstatus endrer ikke når «Order Tags Added» utløses.
Tilpassede utløsere som kjører etter en tidsplan
Shopify Flow reagerer når noe skjer. Den kan ikke reagere når ingenting skjer, og den kan ikke se noe utenfor butikken din. En tilpasset utløser kan nå gjøre dette. Redigeringsverktøyet spør: «Hva utløser denne kjøringen: En Shopify-hendelse eller etter en tidsplan?» Ved «etter en tidsplan» kjøres koden din hvert 30. sekund, opptil én gang om dagen. Den husker hva den så ved forrige kjøring, kan lese butikken din og hente inn informasjon fra det offentlige internett, og avgjør selv hva som regnes som en endring.
Ta utgangspunkt i en mal og rediger tallene øverst:
- Produkt, ordre eller kunde som ikke har blitt oppdatert på N dager - utdaterte katalogvurderinger, fastlåste ordrer, gjenvinning av kunder. Hver post utløser en handling én gang per inaktiv periode; oppgaver som allerede var forfalt da du aktiverte funksjonen, utløses ikke alle samtidig.
- En verdi utenfor Shopify har endret seg - en lageroppdatering fra en leverandør, en valutakurs, en prisliste. Vis verdien før og etter, samt differansen og prosentandelen for tall.
- Nytt innlegg i en RSS- eller Atom-feed - nyheter fra leverandøren, en produktliste-feed, en statusside.
- Ingen bestillinger i N timer - en «hjerteslag»-funksjon for butikken din. Utløses én gang når bestillingene opphører, og én gang når de kommer tilbake.
Den første kjøringen av en planlagt utløser husker bare det den registrerer, så å aktivere en slik utløser vil aldri overbelaste arbeidsflytene dine. Den vises i Shopify Flow som Egendefinert utløser, filtrert etter håndtaket, og posten vises som ID. Hver kjøring teller med i abonnementet ditt, uansett om den utløses eller ikke - redigeringsverktøyet viser hvor mange kjøringer et intervall utgjør. Test kjører koden din én gang uten å utløse noe.
Maler for hendelsesbaserte tilpassede utløsere
Egendefinerte utløsere som reagerer på en Shopify-hendelse, har nå også maler. Velg en under Start fra en mal, så velges hendelsen og koden fylles ut automatisk. Hver av dem leser verdien før og etter endringen:
- Et produkt-, ordre- eller kundefelt endret seg fra én verdi til en annen - for eksempel gikk statusen fra «utkast» til «aktiv», eller en ordre ble betalt.
- Prisen falt med mer enn N prosent - en reell prisnedsetning, ikke bare en vanlig prisjustering.
- Aksjekursen falt under en terskel - utløser én gang, i det øyeblikket kursen krysser linjen, ikke ved hvert salg mens den allerede er lav.
- Et produktmetafelt har overskredet en terskel - en vurdering har falt under 3, en margin har steget over 40.
- Bestilling betalt av en storkunde - henter kundens samlede forbruk i butikken din ved hjelp av
ctx.shopify(), og utløser kun når beløpet overstiger det du har angitt.
En postens utløsende hendelser på dens egen administrasjonsside
Nye adminblokker viser de nyeste utløsende hendelsene knyttet til posten du ser på, rett på selve siden i Shopify-administrasjonspanelet, hver med en kort «gammelt -> nytt»-linje, for eksempel price: 100.00 -> 85.00. Derfra kan du åpne hendelsen eller en oversikt over hendelseshistorikken for den aktuelle posten.
Tilgjengelig for produkter, varianter, ordrer, ordreutkast, kunder, inkassoer, selskaper og selskapets lokasjoner. Legg til blokken én gang fra sidens tilpasningsmeny. Utløsere som behandler personopplysninger, er oppført uten verdier. Slik legger du den til, med et eksempel på en produkt-, ordre- og kundeside: Utløserhendelser på en postens administrasjonsside.
Flere AI-leverandører for «Generate with AI»
Generer med AI fungerer nå med Google Gemini og OpenRouter i tillegg til Anthropic og OpenAI. OpenRouter gir deg tilgang til modeller fra mange selskaper med én nøkkel, inkludert hvilken som helst modell-ID du skriver inn. Koble til en nøkkel under Developer -> Connections: få en Gemini API-nøkkel eller få en OpenRouter API-nøkkel. Som før kjører genereringen på din egen leverandørkonto, og nøkkelen er kryptert og vises aldri igjen.
Et raskere grensesnitt, basert på Shopifys webkomponenter
Hver side i appen er bygget om ved hjelp av Shopifys nye webkomponenter for administrasjonsgrensesnittet - de samme byggesteinene som Shopifys eget administrasjonsgrensesnitt bruker.
- Raskere å laste inn. Appen leveres ikke lenger med sin egen kopi av et grensesnittbibliotek. Komponentene kommer fra Shopify, deles med resten av administrasjonsområdet ditt og ligger vanligvis allerede i nettleserens cache, slik at hver side har langt mindre å laste ned før den vises.
- Det føles akkurat som administrasjonsgrensesnittet. Knapper, tabeller, brytere, dialogbokser og skjemaer ser ut og fungerer akkurat som de du bruker alle andre steder i Shopify, inkludert tastaturnavigering og skjermlesere.
- Holder seg oppdatert. Når Shopify forbedrer komponentene sine, tar appen i bruk forbedringene uten at vi trenger å utgi en oppdatering.
Ingenting har endret seg: alle sider, innstillinger og lenker er akkurat der de var.
Også i denne utgaven
- Gi alle og Tilbakekall alle på siden Tillatelser. «Gi alle» ber om alle manglende tillatelser i én enkelt Shopify-dialogboks, i stedet for én per kort. «Tilbakekall alle» ber deg om å bekrefte først og forklarer hva det innebærer: utløserne dine forblir aktivert, men de kan ikke utløses før du gir tilgang igjen.
- Egendefinert utløserkode kan hente data fra det offentlige internett ved hjelp av
ctx.fetch(), ikke bare fra din butikk med ctx.shopify(). Interne adresser avvises.
- Dine egendefinerte utløsere og utløserne i butikkfronten fungerer nå på samme måte: Klikk på raden for å redigere, status vises til høyre.
- På siden Triggers vises det hvor mange utløsere som er aktivert ved siden av tittelen, og de fire utløserne for tekstbaserte metafelt har nå egne brytere i listen.
- Obligatoriske felt er merket i skjemaene for tilpassede utløsere, nettbutikkutløsere og tilkoblinger.
- Løst: Et datofilter i Hendelseshistorikk kunne ikke fjernes. Når man fjernet datofeltet eller valgte «Fjern alt», ble datoene likevel beholdt. Nå fjernes de ved begge alternativene.
- Radene i hendelseshistorikken vises som ren tekst, ikke som blå lenker. Man kan fortsatt klikke på hele raden.