Naar de hoofdinhoud

[Orderintake - GCW] Sjablonen maken voor bestellingverwerking

T
Geschreven door Toby Dawson
Meer dan 3 weken geleden bijgewerkt

Templates zijn onmisbare onderdelen in GelatoConnect die zorgen voor zowel inkomende als uitgaande datastromen. Ze zetten klantgegevens om naar een formaat dat past bij jouw workflow, en ze maken uitgaande data van GelatoConnect geschikt voor de systemen van je klanten. In deze gids laten we je stap voor stap zien hoe je templates maakt, test en gebruikt voor beide kanten van de gegevensuitwisseling in je orderbeheer.

GelatoConnect-sjablonen begrijpen

Templates in GelatoConnect dienen als blauwdrukken die bepalen hoe gegevens moeten worden gestructureerd, verwerkt en gepresenteerd. Ze verwerken twee kritieke gegevensstromen:

Inkomende gegevenssjablonen

Deze sjablonen zetten gegevens van je klanten om in een formaat dat GelatoConnect kan verwerken:

  • Orderverzoek indienen: Zet klantordergegevens om naar het interne formaat van GelatoConnect

  • Annuleringsverzoek: Formatteert annuleringsverzoeken zodat ze begrepen worden door GelatoConnect

Uitgaande gegevenssjablonen

Deze sjablonen zorgen ervoor dat de gegevens die vanuit GelatoConnect worden verstuurd, netjes bij je klanten of hun systemen aankomen:

  • Responsopmaak: Structureert API-reacties op bestellingen of annuleringen

  • Gebeurtenismeldingen: Maakt gestandaardiseerde berichten voor updates van bestelstatussen

  • Postbacks: Bepaalt hoe gegevens naar externe systemen worden gestuurd als de orderstatus verandert

Alle sjablonen gebruiken de Jinja2 sjabloontaal, die krachtige functies biedt voor gegevenstransformatie, voorwaardelijke logica en het genereren van dynamische inhoud.

Soorten sjablonen die je kunt maken

GelatoConnect ondersteunt verschillende sjabloontypes voor diverse datastromen:

Binnenkomende gegevenssjablonen (klant → GelatoConnect)

  • Order indienen: Zet de klantgegevens om naar het formaat van GelatoConnect

  • Annuleer verzoek: Zet annuleringsverzoeken van klanten om naar het formaat van GelatoConnect

Uitgaande gegevenssjablonen (GelatoConnect → klant)

  • Reactie verzenden: Formatteert reacties die worden teruggestuurd na het indienen van een bestelling

  • Annuleer reactie: Geeft weer hoe antwoorden worden verstuurd na een annuleringsverzoek

  • Webhook: Maakt JSON-berichten aan om externe systemen op de hoogte te brengen van wijzigingen in de orderstatus

  • E-mail: Formatteert e-mailnotificaties voor verschillende bestelgebeurtenissen

Het is belangrijk om te weten welke kant de data opgaat als je sjablonen maakt. Zo weet je welke data je kunt gebruiken en hoe je die het beste kunt indelen.

Stapsgewijze handleiding voor het maken van een template

1. Ga naar het gedeelte Sjablonen

  1. Log in op je GelatoConnect-account

  2. Ga naar Workflow > Order Intake > Templates

  3. Klik op de knop Template toevoegen om te beginnen met het maken van een nieuw template

2. Kies je sjabloontype

Kies welk type sjabloon je wilt maken:

  • Voor API-integraties heb je meestal de sjablonen Order Submit Request, Submit Response en Cancel Response nodig.

  • Voor meldingen kies je Webhook of E-mail

3. Definieer het sjabloonformaat

Kies het formaat voor je template:

  • JSON: Meest gebruikt voor API-integraties en webhooks

  • XML: Gebruikt voor sommige oudere systemen

  • Platte tekst: Wordt meestal gebruikt voor e-mailsjablonen

4. Genereer een voorbeeld invoerlading

Om een goed sjabloon te maken, is het belangrijk dat je weet welke gegevens beschikbaar zijn:

  1. Klik op de knop Sjabloon genereren

  2. Selecteer Voorbeeldinvoergegevens toevoegen om testgegevens in te vullen

  3. Kies het juiste evenementtype uit de vervolgkeuzelijst:

    • Bestelling Ontvangen

    • Bestelling mislukt

    • Bestelling geannuleerd

    • Bestelling teruggestuurd

    • Bestelling geproduceerd

    • Bestelling geleverd

    • Bestelling verzonden

    • Bestelling onderweg

Het systeem vult een voorbeeldpayload in met typische gegevens voor die gebeurtenis, die je kunt gebruiken als referentie bij het maken van je sjabloon.

5. Maak je sjabloonmapper

De Template Mapper is waar je definieert hoe gegevens worden getransformeerd tussen formaten:

  1. In de Template Mapper sectie, schrijf je template met Jinja2 syntax

  2. Gebruik gegevens uit de input payload met dubbele accolades: ####{{ variable }}

  3. Voeg opmaakfilters toe met het pipe-symbool: ####{{ variable|js }} (de js filter zorgt ervoor dat tekst veilig wordt gemaakt voor JSON)

  4. Gebruik besturingsstructuren zoals {% if %}, {% for %} en {% set %} voor voorwaardelijke logica en lussen

Overwegingen voor sjabloonrichting

De inhoud van je sjabloon zal verschillen op basis van of je inkomende of uitgaande gegevens verwerkt:

Voor inkomende gegevenssjablonen (klant → GelatoConnect):

  • Focus op het extraheren van gegevens uit klantspecifieke formaten

  • Koppel gepersonaliseerde veldnamen aan de standaardveldnamen van GelatoConnect

  • Controleer en pas je gegevens aan zodat ze voldoen aan de eisen van GelatoConnect

  • Ga slim om met speciale opmaak of het omzetten van gegevens

Voor uitgaande gegevenssjablonen (GelatoConnect → klant):

  • Structureer gegevens volgens wat het systeem van de klant verwacht

  • Neem alle vereiste velden op voor de integratie van de klant

  • Dateer, valutawaarden en andere gegevens formatteren volgens de voorkeuren van de klant

  • Voeg klant-specifieke kenmerken of referenties toe

Voorbeeld: Webhook-sjabloon voor ontvangen bestelling

Hier is een voorbeeldsjabloon voor een "Order Received" Webhook:

{ "event": "Bestelling ontvangen", "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\": \"De bestelling is ontvangen.\"}

Met deze template maak je een JSON-structuur met bestelgegevens en loop je door alle items in de bestelling heen.

6. Maak en controleer het sjabloon

Na het maken van je sjabloon:

  1. Klik op de knop Renderen om de template samen te stellen.

  2. Bekijk het resultaat in het voorbeeldvenster

  3. Controleer of alle gegevens goed zijn opgemaakt en of er geen fouten in de opmaak staan.

  4. Controleer of er velden ontbreken of verkeerd zijn ingevuld

7. Test je template

Testen is superbelangrijk om zeker te weten dat je template goed werkt:

  1. Geef je test een naam in het gedeelte Test Template.

  2. Klik op Test uitvoeren om de template te testen met de voorbeeldgegevens.

  3. Controleer of de Status op Geslaagd staat

  4. Bekijk het resultaat en check of het is wat je verwacht.

8. Sla je template op

Als je blij bent met het sjabloon:

  1. Geef je sjabloon een beschrijvende naam

  2. Klik op sjabloon toevoegen of wijzigingen opslaan om het op te slaan.

  3. De template is nu beschikbaar om te gebruiken in triggers en workflowinstellingen.

Sjablonen gebruiken met triggers

Sjablonen worden meestal gebruikt met triggers om meldingen te automatiseren wanneer specifieke gebeurtenissen plaatsvinden:

1. Maak een trigger

  1. Ga naar Workflow > Order Intake > Triggers

  2. Klik op Trigger toevoegen

  3. Kies de klant waarvoor deze trigger geldt

  4. Geef je trigger een naam (bijv. \"Bevestiging ontvangen bestelling\")

  5. Selecteer de gebeurtenis die de trigger zal activeren (bijv. \"Bestelling ontvangen\")

2. Configureer bezorgmethode

Kies hoe je meldingen wilt ontvangen:

  • URL: Stuur een webhook naar een extern systeem

    • Geef de bestemmings-URL op

    • Kies de POST- of GET-methode

    • Kies voor JSON- of XML-formaat

    • Stel indien gewenst de opties voor opnieuw proberen in

  • E-mail: Stuur een e-mailmelding

    • Voer e-mailadressen van ontvangers in

    • Voeg een onderwerpregel toe

    • Geef de naam en het adres van de afzender op

3. Kies je template

  1. Kies in het sjabloon dropdownmenu het sjabloon dat je eerder hebt gemaakt

  2. Als er nog geen sjabloon is, kun je er direct eentje maken in de triggerconfiguratie met dezelfde interface als hierboven beschreven.

Sjablonen maken direct vanuit triggers

Handig: je kunt ook sjablonen maken terwijl je triggers instelt.

  1. Bij het maken van een trigger, klik op Template maken in plaats van een bestaande template te selecteren

  2. Definieer het sjabloonformaat (JSON, XML of Platte tekst)

  3. Gebruik de template editor om je template te maken zoals hierboven uitgelegd.

  4. Sla het sjabloon op, dan wordt het automatisch geselecteerd voor deze trigger.

Deze aanpak is handig voor het snel maken van sjablonen wanneer je al bezig bent met het configureren van een trigger.

Templates koppelen aan API-eindpunten

Als je bestellingen via de API verstuurt, moet je vaak gegevens omzetten van jouw formaat naar het formaat van GelatoConnect. Templates regelen deze omzetting, maar je moet je template wel zelf koppelen aan het API-endpoint voordat deze wordt toegepast.

Zo koppel je een template aan een order submit-endpoint:

  1. Navigeer naar je connectorlijst en klik op de Bewerken hyperlink naast het eindpunt voor het indienen van bestellingen.

  2. Op de pagina voor eindpuntconfiguratie, zoek het gedeelte Eindpuntsjabloon

  3. Kies je sjabloon voor het indienen van bestellingen in het dropdownmenu

  4. Klik op de knop Endpoint instellen rechtsboven op de pagina.

  5. Klik rechtsboven op Wijzigingen opslaan om je instellingen toe te passen.

Als je deze stappen hebt doorlopen, worden alle bestellingen die naar dit endpoint worden gestuurd, met jouw template omgezet voordat ze verwerkt worden. Zo weet je zeker dat het formaat van jouw systeem goed wordt omgezet naar het formaat dat GelatoConnect verwacht.

Zonder deze configuratie wordt je sjabloon niet toegepast, zelfs als het bestaat en correct is ontworpen. Dit kan leiden tot mislukte ordervalidaties als je gegevensformaat niet exact overeenkomt met de vereisten van GelatoConnect.

Geavanceerde sjabloontechnieken

Slim zoeken

Lookups zijn vooral handig als je gegevens tussen systemen heen en weer wilt koppelen. Hoe ze werken, hangt af van de richting van de template:

Voor inkomende sjablonen (klant → GelatoConnect):

Koppel klantspecifieke waarden aan de gestandaardiseerde waarden van GelatoConnect:

{% set shipMethod = lookups({"shipping_code": order.shipping.method}, strict=False, default="normal") %} "shipmentMethodUid": ####{{ shipMethod|js }},

Voor uitgaande sjablonen (GelatoConnect → klant):

Zet de interne waarden van GelatoConnect om naar het formaat dat klanten verwachten:

{% set customerShippingCode = lookups({"gelatoShipMethod": shipment.shipmentMethodUid}, strict=False, default=shipment.shipmentMethodUid) %} "shipping_method": ####{{ customerShippingCode|js }},

Voorwaardelijke logica

Gebruik voorwaarden om gegevens op te nemen of anders weer te geven, afhankelijk van de situatie:

{% if item.fulfillmentStatus == "shipped" %} "trackingNumber": "####{{ item.trackingCode }}", "trackingUrl": "####{{ item.trackingUrl }}",{% endif %}

Variabele toewijzing

Maak variabelen aan om ingewikkelde formules makkelijker te maken:

{% set fullName = customer.firstName + " " + customer.lastName %} "recipientName": "####{{ fullName }}",

Lussen met complexe objecten

Navigeer door ingewikkelde gegevensstructuren:

\"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 %}]

Best practices voor sjablonen

Naamgevingsregels op basis van richting

  • Gebruik duidelijke, beschrijvende namen die laten zien wat het doel is en welke kant de data opgaat.

  • Voor binnenkomende sjablonen: Voeg voorvoegsels zoals \"IN_\" of achtervoegsels zoals \"_Request\" toe

  • Voor uitgaande sjablonen: gebruik voorvoegsels zoals "OUT_" of achtervoegsels zoals "_Response" of "_Notification".

  • Voeg de klantnaam toe voor klantspecifieke sjablonen

  • Gebruik steeds dezelfde naamgeving, zo vind je je sjablonen makkelijk terug.

Foutafhandeling

  • Stel standaardwaarden in om null-verwijzingen te voorkomen

  • Gebruik het default filter voor ontbrekende waarden: ####{{ variable|default('N/A') }}

  • Gebruik try/except blokken voor potentieel problematische codesecties

Onderhoud

  • Voeg opmerkingen toe om ingewikkelde logica uit te leggen: {# Dit behandelt een speciaal geval voor internationale bestellingen #}

  • Houd sjablonen flexibel en gericht op één duidelijk doel

  • Werk sjablonen bij wanneer datastructuren of vereisten veranderen

Testen

  • Test met verschillende datasituaties, ook de uitzonderingen

  • Controleer sjablonen met echte productiedata als het kan

  • Maak grondige tests voor belangrijke sjablonen

Problemen met sjablonen oplossen

Veelvoorkomende problemen en oplossingen

Probleem

Mogelijke oorzaak

Oplossing

Syntaxisfout

Niet-overeenkomende haakjes of aanhalingstekens

Controleer de sjabloonsyntaxis goed; zorg dat elke openingstag ook een sluitingstag heeft.

Ontbrekende gegevens

Verwijzen naar velden die er niet zijn

Controleer of veldnamen overeenkomen met de invoer; voeg standaardwaarden toe voor optionele velden.

Opmaakproblemen

Onjuiste filter gebruikt

Controleer of je de juiste filters gebruikt, zoals js, json of xml.

Sjabloon niet toegepast

Sjabloon is niet gekoppeld aan trigger

Controleer de triggerinstellingen en kies het juiste sjabloon

Fouten bij het openen van geneste gegevens

Onjuist pad naar geneste eigenschappen

Controleer de datastructuur en pas de eigenschapspaden aan waar nodig.

Veldtoewijzingsfouten

Verkeerde veldnamen voor inkomende of uitgaande gegevens

Controleer bij inkomende sjablonen de namen van klantvelden. Bij uitgaande sjablonen kijk je of het antwoord het juiste formaat heeft.

Problemen met gegevenstransformatie

Incompatibele gegevensformaten

Zorg voor de juiste gegevenstypeconversie tussen systemen (datums, getallen, etc.)

Handige tips voor het oplossen van problemen

  • Gebruik de knop Render regelmatig tijdens het ontwikkelen, zo zie je fouten meteen.

  • Voeg tijdelijke debug-uitvoer toe om variabelewaardes te onderzoeken

  • Controleer of er geen spelfouten in veldnamen staan, want dat is vaak de oorzaak van fouten.

  • Onthoud dat Jinja2 hoofdlettergevoelig is als je naar variabelen verwijst.

Was dit een antwoord op uw vraag?