Skabeloner er vigtige elementer i GelatoConnect, der styrer både indgående og udgående data. De omdanner kundedata, så det passer til dit workflow, og de tilpasser udgående data fra GelatoConnect, så det matcher dine kunders systemkrav. Denne guide hjælper dig trin for trin med at oprette, teste og bruge skabeloner til begge retninger af dataudveksling i dine ordreprocesser.
Forstå skabeloner i GelatoConnect
Skabeloner i GelatoConnect fungerer som skabeloner, der viser, hvordan data skal struktureres, behandles og præsenteres. De styrer to vigtige dataflows:
Indgående dataskabeloner
Disse skabeloner gør det nemt at omdanne data fra dine kunders systemer til formater, som GelatoConnect kan arbejde med:
Ordreafsendelse: Gør kundens ordredata klar til GelatoConnects interne format
Annuller anmodning: Gør det nemt for GelatoConnect at forstå dine annulleringsanmodninger
Udgående dataskabeloner
Disse skabeloner sørger for, at data fra GelatoConnect bliver sendt tilbage til dine kunder eller deres systemer i det rigtige format:
Svarformat: Strukturerer API-svar på ordrer, der bliver oprettet eller annulleret
Begivenhedsnotifikationer: Sender klare beskeder, når der sker ændringer i ordrestatus
Postbacks: Sender data til eksterne systemer, når ordrestatuser ændrer sig
Alle skabeloner bruger Jinja2-skabelonsproget, som giver dig stærke muligheder for at tilpasse data, lave betinget logik og skabe dynamisk indhold.
Typer af skabeloner du kan lave
GelatoConnect understøtter flere skabelontyper til forskellige retninger for dataflow:
Indgående dataskabeloner (kunde → GelatoConnect)
Ordreafsendelse: Gør kundens ordredata klar til GelatoConnects format
Annuller anmodning: Gør det nemt at omdanne kunders annulleringsønsker til GelatoConnects format
Udgående dataskabeloner (GelatoConnect → Kunde)
Send svar: Formaterer de svar, der sendes tilbage efter en ordre er sendt
Annuller svar: Viser, hvordan svar ser ud, når du har bedt om at annullere
Webhook: Sender JSON-data til eksterne systemer, når der sker ændringer i ordrestatus
Email: Formaterer e-mailnotifikationer til forskellige ordreopdateringer
Det er vigtigt at forstå, hvilken vej dataene bevæger sig, når du laver skabeloner – det afgør nemlig, hvilke data du har adgang til, og hvordan de skal sættes op.
Trin for trin-guide til at lave en skabelon
1. Gå til skabelon-sektionen
Log ind på din GelatoConnect-konto
Gå til Workflow > Order Intake > Skabeloner
Klik på Tilføj skabelon for at komme i gang med at lave en ny skabelon
2. Vælg din skabelontype
Vælg den type skabelon, du vil lave:
Til API-integrationer skal du som regel bruge Order Submit Request-, Submit Response- og Cancel Response-skabeloner.
Til notifikationer skal du vælge Webhook eller Email
3. Definér skabelonens format
Vælg det format, du vil bruge til din skabelon:
JSON: Det mest brugte format til API-integrationer og Webhook
XML: Bruges til nogle ældre systemer
Almindelig tekst: Bruges typisk til e-mailskabeloner
4. Lav et eksempel på en input-payload
For at lave en god skabelon skal du vide, hvilke data du har til rådighed:
Klik på knappen Generér skabelon
Vælg Tilføj eksempel på inputdata for at give testdata
Vælg den rigtige begivenhedstype i rullemenuen:
Ordre modtaget
Ordre mislykkedes
Ordren er annulleret
Ordre sendt retur
Ordre produceret
Ordre leveret
Ordren er sendt afsted
Ordre på vej
Systemet udfylder et eksempel med typiske data for den begivenhed, så du kan bruge det som inspiration, når du laver din skabelon.
5. Lav din Template Mapper
Template Mapper er stedet, hvor du bestemmer, hvordan data bliver omdannet mellem forskellige formater:
I afsnittet Template Mapper skriver du din skabelon med Jinja2-syntaks
Brug data fra inputtet ved at skrive dobbelt krøllede parenteser:
####{{ variable }}
Tilføj formateringsfiltre med pipe-symbolet:
####{{ variable|js }}
(filteretjs
gør tekst klar til JSON)Brug kontrolstrukturer som
{% if %}
,{% for %}
og{% set %}
til at styre betingelser og gentagelser
Ting du skal tænke over, når du vælger retning for din skabelon
Indholdet i din skabelon afhænger af, om du arbejder med data, der kommer ind, eller data, der skal sendes ud:
For indgående dataskabeloner (kunde → GelatoConnect):
Fokusér på at hente data ud fra formater, der er tilpasset den enkelte kunde
Match tilpassede feltnavne med GelatoConnects standardfeltnavne
Tjek og tilpas data, så det passer til GelatoConnects krav
Tag dig af særlige formaterings- eller databehandlingsbehov
For udgående dataskabeloner (GelatoConnect → Kunde):
Opbyg data, så det passer til det, kundens system har brug for
Husk at tage alle nødvendige felter med til kundens integration
Formater datoer, valutaværdier og andre data, så de passer til kundens ønsker
Tilføj eventuelle unikke kendetegn eller referencer for kunden
Eksempel: Skabelon til Webhook for modtaget ordre
Her er et eksempel på en skabelon til en "Order Received" Webhook:
{ "event": "Bestilling modtaget", "orderId": "####{{ orderId }}", "orderReferenceId": "####{{ orderReferenceId }}", "timestamp": "####{{ created }}", "status": "####{{ fulfillmentStatus }}", "items": [ {% for item in items %} { "itemReferenceId": "####{{ item.itemReferenceId }}", "status": "####{{ item.fulfillmentStatus }}" }{% if not loop.last %},{% endif %} {% endfor %} ], "message": "Ordren er modtaget."}
Denne skabelon laver en JSON-struktur med ordreoplysninger og gennemgår alle varer i ordren.
6. Gennemgå og tjek skabelonen
Når du har lavet din skabelon:
Klik på Render-knappen for at samle skabelonen
Tjek resultatet i forhåndsvisningen
Tjek, at alle data er formateret korrekt, og at der ikke er nogen syntaksfejl
Tjek om der mangler felter, eller om de er udfyldt forkert
7. Test din skabelon
Det er vigtigt at teste, så du er sikker på, at din skabelon fungerer som den skal:
Giv din test et navn under afsnittet Testskabelon
Klik på Kør test for at prøve skabelonen med eksemplet på data
Tjek, at Status står som Bestået
Gennemgå resultatet og tjek, om det lever op til dine forventninger
8. Gem din skabelon
Når du er tilfreds med skabelonen:
Giv din skabelon et navn, der fortæller, hvad den handler om
Klik på Tilføj skabelon eller Gem ændringer for at gemme den
Skabelonen er nu klar til at blive brugt i triggers og workflow-indstillinger
Sådan bruger du skabeloner sammen med udløsere
Skabeloner bruges oftest sammen med udløsere til automatisk at sende beskeder, når bestemte ting sker:
1. Opret en trigger
Gå til Workflow > Order Intake > Triggers
Klik på Tilføj udløser
Vælg den kunde, som denne trigger gælder for
Giv din trigger et navn (f.eks. "Ordre modtaget-besked")
Vælg den begivenhed, der skal sætte triggeren i gang (f.eks. "Ordre modtaget")
2. Vælg leveringsmetode
Vælg, hvordan du vil modtage notifikationer:
URL: Send en Webhook til et eksternt system
Angiv den URL, du vil sende til
Vælg POST- eller GET-metode
Vælg JSON- eller XML-format
Indstil genforsøgsindstillinger, hvis du har lyst
Email: Send en mailnotifikation
Indtast modtagerens e-mailadresser
Tilføj en emnelinje
Angiv afsendernavn og adresse
3. Vælg din skabelon
Vælg den skabelon, du lavede tidligere, i Skabelon-menuen
Hvis der ikke findes en skabelon, kan du nemt lave en direkte i trigger-konfigurationen med det samme interface som beskrevet ovenfor.
Lav skabeloner direkte fra triggers
For nemheds skyld kan du også lave skabeloner, mens du sætter triggers op:
Når du opretter en trigger, skal du i stedet for at vælge en eksisterende skabelon klikke på Opret skabelon
Vælg skabelonformat (JSON, XML eller almindelig tekst)
Brug skabeloneditoren til at lave din skabelon, som beskrevet ovenfor
Gem skabelonen, så bliver den automatisk valgt til denne trigger
Den her metode er smart, hvis du hurtigt vil lave en skabelon, mens du alligevel er i gang med at sætte en trigger op.
Sådan kobler du skabeloner til API-endpoints
Når du sender ordrer via API, skal du ofte omdanne data fra dit eget format til GelatoConnects format. Skabeloner klarer den omstilling, men du skal selv koble din skabelon til API-endpointet, før den bliver brugt.
Sådan kobler du en skabelon til et order submit-endpoint:
Gå til din connector-liste, og klik på Rediger-linket ved siden af submit order-endpointet.
På siden med endpoint-indstillinger skal du finde afsnittet Endpoint-skabelon
Vælg din skabelon til ordreafgivelse i rullemenuen
Klik på knappen Angiv endpoint øverst til højre på siden
Klik på Gem ændringer oppe i højre hjørne for at gemme dine indstillinger
Når du har fulgt disse trin, vil alle ordreindsendelser, der sendes til dette endpoint, bruge din skabelon til at omdanne dataene, før de behandles. Det sikrer, at dit systems format bliver omdannet korrekt til det format, GelatoConnect forventer.
Uden denne opsætning bliver din skabelon ikke brugt, selvom den findes og er designet korrekt. Det kan betyde, at din ordre ikke bliver godkendt, hvis dit dataformat ikke passer præcis til GelatoConnects krav.
Smarte tricks til skabeloner
Sådan bruger du opslag
Lookups er særligt nyttige, når du skal matche data begge veje mellem systemer. De fungerer forskelligt alt efter, hvilken vej skabelonen går:
For indgående skabeloner (kunde → GelatoConnect):
Match kundespecifikke værdier med GelatoConnects standardiserede værdier:
{% set shipMethod = lookups({"shipping_code": order.shipping.method}, strict=False, default="normal") %} "shipmentMethodUid": ####{{ shipMethod|js }},
For udgående skabeloner (GelatoConnect → kunde):
Gør GelatoConnects interne værdier lette at forstå for kunderne:
{% set customerShippingCode = lookups({"gelatoShipMethod": shipment.shipmentMethodUid}, strict=False, default=shipment.shipmentMethodUid) %} "shipping_method": ####{{ customerShippingCode|js }},
Betinget logik
Brug betingelser til at tilføje eller formatere data forskelligt alt efter situationen:
{% if item.fulfillmentStatus == "shipped" %} "trackingNumber": "####{{ item.trackingCode }}", "trackingUrl": "####{{ item.trackingUrl }}",{% endif %}
Tildeling af variabel
Lav variabler, så du nemt kan holde styr på de svære udtryk:
{% set fullName = customer.firstName + " " + customer.lastName %} "recipientName": "####{{ fullName }}",
Løkker med komplekse objekter
Find rundt i indlejrede datastrukturer:
"items": [ {% for item in items %} { "sku": "####{{ item.sku }}", "quantity": ####{{ item.quantity }}, "options": [ {% for option in item.options %} { "name": "####{{ option.name }}", "value": "####{{ option.value }}" }{% if not loop.last %},{% endif %} {% endfor %} ] }{% if not loop.last %},{% endif %} {% endfor %}]
Bedste tips til skabeloner
Navngivningsregler baseret på retning
Brug tydelige og beskrivende navne, der viser både formål og hvilken vej dataene bevæger sig
For indgående skabeloner: Tilføj for eksempel præfikser som "IN_" eller suffikser som "_Request"
Til udgående skabeloner: Brug for eksempel præfikser som "OUT_" eller suffikser som "_Response" eller "_Notification"
Tilføj kundens navn til skabeloner, der er lavet specielt til dem
Brug ensartede navne, så du nemt kan finde dine skabeloner
Fejlhåndtering
Sæt standardværdier for at undgå fejl, hvis noget mangler
Brug
default
-filteret til manglende værdier:####{{ variable|default('N/A') }}
Brug
try/except
-blokke, når du arbejder med kode, der kan give problemer
Vedligeholdelse
Tilføj kommentarer for at gøre svær logik nemmere at forstå:
{# Dette håndterer særlige tilfælde for internationale ordrer #}
Hold skabelonerne enkle og målrettede, så de passer til hver opgave
Opdatér skabeloner, når datastrukturer eller krav ændrer sig
Tester
Test med forskellige datasituationer – også de skæve og uventede
Tjek skabeloner med rigtige produktionsdata, når det er muligt
Lav grundige tests for vigtige skabeloner
Sådan løser du problemer med skabeloner
Typiske udfordringer og løsninger
Udfordring | Mulig årsag | Løsning |
Syntaksfejl | Parenteser eller anførselstegn, der ikke passer sammen | Tjek skabelonens syntaks grundigt – sørg for, at alle åbningstags har et tilsvarende lukningstag |
Mangler data | At henvise til felter, der ikke findes | Tjek om feltnavne matcher inputdata, og tilføj standardværdier til valgfrie felter |
Problemer med formatering | Forkert brug af filter | Tjek, at du bruger filtre som |
Skabelon ikke brugt | Skabelonen er ikke forbundet til en udløser | Tjek om din trigger er sat rigtigt op, og om du har valgt den rigtige skabelon |
Fejl ved adgang til indlejrede data | Forkert sti til underliggende egenskaber | Tjek datastrukturen og ret stierne til egenskaber, så de passer |
Fejl i felt-tilknytning | Forkerte feltnavne for indgående/udgående data | For indgående skabeloner, tjek kundens feltnavne – for udgående skabeloner, sørg for at svaret har det rigtige format |
Problemer med at få dataene til at spille | Uforenelige dataformater | Sørg for, at data bliver konverteret korrekt mellem systemerne (datoer, tal osv.) |
Tips til fejlfinding
Brug Render-knappen ofte, mens du udvikler, så du hurtigt kan fange fejl undervejs
Tilføj midlertidig debug-output for at tjekke værdierne af variabler
Tjek for stavefejl i feltnavne – det er ofte der, fejl sniger sig ind.
Husk, at Jinja2 skelner mellem store og små bogstaver, når du bruger variabler