Naar de hoofdinhoud

[Orderintake - GCW] Introductie tot Template Mappers

Juliana Maciel Maruri da Cunha avatar
Geschreven door Juliana Maciel Maruri da Cunha
Meer dan 3 weken geleden bijgewerkt

Wat zijn template mappers?

Template mappers in GelatoConnect zijn krachtige tools die gegevens omzetten van het formaat van jouw systeem naar het formaat van GelatoConnect. Zie ze als vertalers die ervoor zorgen dat informatie moeiteloos tussen verschillende systemen stroomt, hoe die systemen hun data ook hebben opgebouwd.

Of je nu bestellingen doorstuurt naar GelatoConnect of updates ontvangt over de status van je bestelling, met template mappers kun je gegevens omzetten naar het juiste formaat zonder dat je je bestaande systemen hoeft aan te passen.


Waarom zou je template mappers gebruiken?

Sjabloonmappers lossen verschillende veelvoorkomende integratieproblemen op:

  1. Verschillende gegevensstructuren: jouw systeem en GelatoConnect kunnen dezelfde informatie op een andere manier ordenen.

  2. Verschillen in veldnamen: Jouw systeem noemt een verzendadres misschien "delivery_address", terwijl GelatoConnect "shippingAddress" gebruikt.

  3. Formaatconversies: Het kan nodig zijn om gegevensformaten te converteren, zoals het wijzigen van datumnotaties of het omzetten van maateenheden.

  4. Selectief veldtoewijzing: Soms wil je alleen bepaalde velden uit je gegevens meesturen naar GelatoConnect.

  5. Voorwaardelijke logica: Soms moet je verschillende regels toepassen, bijvoorbeeld afhankelijk van het soort bestelling of het land van bestemming.

Zo werken template mappers

GelatoConnect gebruikt de Jinja2-sjabloontaal voor zijn template mappers. Deze krachtige en flexibele taal geeft je de mogelijkheid om:

  1. Waarden ophalen: Haal gegevens uit je invoerformaat

  2. Gegevens transformeren: Pas functies en logica toe om de gegevens aan te passen

  3. Output maken: Zet het eindresultaat in het formaat dat GelatoConnect verwacht

Een sjabloonmapper neemt een invoer (jouw gegevens) en produceert een uitvoer (GelatoConnect-compatibele gegevens) op basis van een reeks transformatieregels die je definieert.

Template mapper componenten

Een standaard template mapper in GelatoConnect bestaat uit deze onderdelen:

1. Gegevens invoeren

Dit is de brondata die je wilt omtoveren. Dat kan bijvoorbeeld zijn:

  • Bestelgegevens van je e-commercesysteem

  • Klantgegevens uit je CRM

  • Productdetails uit je catalogus

2. Sjabloondefinitie

Hier bepaal je hoe je de invoergegevens wilt omzetten. Met Jinja2-syntax geef je het volgende aan:

  • Welke velden wil je uit de invoer halen

  • Toe te passen transformaties

  • De opbouw van het resultaat

3. Uitvoerformaat

Het resultaat van het verwerken van de template, meestal in JSON-formaat dat voldoet aan de API-eisen van GelatoConnect.

Eenvoudig voorbeeld van een template mapper

Laten we eens kijken naar een simpel voorbeeld waarin we een bestelling omzetten van het formaat van jouw systeem naar het formaat van GelatoConnect:

De bestelgegevens van je systeem:

{"order_id": "ORD-12345","klant": {"name": "John Doe",\"email\": \"[email protected]\"},""levering": {"street": "123 hoofdstraat","city": "New York","zip": "10001","country": "VS"},"\"products\": [{"sku": "POSTER-A4-MATTE","qty": 2,"image_url": "https://example.com/images/poster1.jpg"}]}

Template mapper:

{"orderReferenceId": "####{{ order_id }}",\"orderType\": \"order\",\"valuta\": \"USD\",\"verzendadres\": {"firstName": "####{{ customer.name.split(' ')[0] }}","lastName": "####{{ customer.name.split(' ')[1] }}","addressLine1": "####{{ delivery.street }}",\"city\": \"####{{ delivery.city }}\","postCode": "####{{ delivery.zip }}","country": "####{{ delivery.country }}","email": "####{{ customer.email }}",\"telefoon\": \"+1234567890\"},"\"items\": [{% for product in products %}{"itemReferenceId": "####{{ order_id }}-####{{ loop.index }}","productUid": "####{{ lookups({'sku': product.sku}, strict=False, default='') }}","aantal": ####{{ product.qty }},\"bestanden\": [{"type": "standaard","url": "####{{ product.image_url }}"}]}{% if not loop.last %},{% endif %}{% endfor %}]}

Resulterende GelatoConnect-compatibele bestelling:

{"orderReferenceId": "ORD-12345",\"orderType\": \"order\",\"valuta\": \"USD\",\"verzendadres\": {\"firstName\": \"John\",\"lastName\": \"Doe\","addressLine1": "123 hoofdstraat","city": "New York","postCode": "10001",\"country\": \"US\",\"email\": \"[email protected]\","telefoon": "+1234567890"},"\"items\": [{"itemReferenceId": "ORD-12345-1","productUid": "flat_product_pf_a4_pt_200-g-m2-ongecoat_cl_4-0_ct_none_prt_none_sft_none_set_none_hor",\"aantal\": 2,\"bestanden\": [{"type": "standaard","url": "https://example.com/images/poster1.jpg"}]}]}

Belangrijkste functies van de template mapper

Variabele invoeging

Gebruik dubbele accolades om waarden uit de invoergegevens in te voegen:

jinja"orderReferenceId": "####{{ order_id }}"

Filters

Pas filters toe op waarden (aangegeven met het pijpteken):

jinja"firstName": "####{{ customer.name | title }}"

Veelvoorkomende filters zijn onder andere:

  • upper: Zet om naar hoofdletters

  • lower: Omzetten naar kleine letters

  • title: Begin elk woord met een hoofdletter

  • trim: Verwijder witruimte van begin en eind

  • default: Geef een standaardwaarde op als de variabele niet is gedefinieerd

  • js: Zorg dat de waarde goed is opgemaakt voor JSON

Besturingsstructuren

Gebruik logica om content alleen te tonen als het nodig is, of om door lijsten heen te gaan:

{% for product in products %}// Verwerk elk product{% endfor %}{% if customer.type == "business" %}// Voeg bedrijfsspecifieke velden toe{% anders %}// Voeg velden voor individuele klanten toe{% endif %}

Opzoeken

Gebruik de functie lookups() om waarden tussen systemen te koppelen, bijvoorbeeld om je product-SKU's om te zetten naar GelatoConnect product-UID's:

jinja\"productUid\": \"####{{ lookups({'sku': product.sku}, strict=False, default='') }}\"

De zoekfunctie werkt pas als je in GelatoConnect lookup-tabellen instelt. Daarmee koppel je de waarden uit je eigen systeem aan die van GelatoConnect.

Sjablonen mappers maken en testen

GelatoConnect biedt een gebruiksvriendelijke omgeving om sjabloonmappers te maken en te testen:

  1. Maak een template: Ga naar het gedeelte Templates en maak een nieuwe template aan.

  2. Kies sjabloontype: Selecteer het juiste sjabloontype (bijv. verzoek voor orderindiening, orderbevestiging).

  3. Stel je template op: Schrijf je Jinja2-template in de editor.

  4. Testen met voorbeeldgegevens: Vul wat voorbeeldgegevens in en bekijk direct het resultaat van je template.

  5. Testen en bijschaven: Pas je template aan als het resultaat niet helemaal is wat je wilt.

  6. Opslaan en activeren: Als je sjabloon goed werkt, sla je hem op zodat je hem kunt gebruiken in je integratie.

Veelvoorkomende toepassingen voor template mappers

1. Orderverzend mapping

Zet bestellingen om van het formaat van jouw systeem naar het API-formaat van GelatoConnect.

2. Statusupdate meldingen

Maak sjablonen voor verschillende orderstatussen (ontvangen, verzonden, geleverd) zodat je systemen altijd op de hoogte zijn.

3. Gepersonaliseerde Webhooks

Zorg dat je gegevens klaar zijn om te delen met andere systemen zodra er iets belangrijks gebeurt.

4. Gegevens normaliseren

Zorg dat je gegevens uit verschillende bronnen op één lijn brengt voordat je ze verwerkt.

Best practices voor template mappers

  1. Begin eenvoudig: Start met een simpele template en voeg stap voor stap meer toe.

  2. Gebruik opmerkingen: Voeg opmerkingen toe om lastige aanpassingen uit te leggen.

    jinja{# Dit haalt de voornaam en achternaam uit de volledige naam #}
  3. Omgaan met ontbrekende gegevens: Zorg er altijd voor dat je standaardwaarden gebruikt of controleert of optionele velden zijn ingevuld.

    jinja"additionalInfo": "####{{ customer.notes | default('') }}"
  4. Test uitzonderlijke gevallen: Zorg ervoor dat je sjablonen ook werken als er onverwachte invoer of waarden zijn.

  5. Gebruik lookups voor ingewikkelde koppelingen: In plaats van alles handmatig in je template te zetten, kun je beter de lookups-functie gebruiken.

  6. Houd sjablonen overzichtelijk: Maak aparte sjablonen voor verschillende doelen in plaats van één ingewikkeld sjabloon.

  7. Uitvoer valideren: Controleer altijd of de uitvoer van je sjabloon voldoet aan de API-vereisten van GelatoConnect.

Geavanceerde technieken voor het koppelen van sjablonen

Naarmate je meer vertrouwd raakt met template mappers, kun je de geavanceerde functies gaan gebruiken:

Macro's

Definieer herbruikbare blokken sjablooncode:

{% macro format_address(address) %}{\"addressLine1\": \"####{{ address.street }}\","city": "####{{ address.city }}",\"postCode\": \"####{{ address.zip }}\","country": "####{{ address.country }}"}{% endmacro %}// Gebruik het dan als volgt:\"verzendadres\": ####{{ format_address(delivery) }}

Instellingen

Maak variabelen aan in je template:

{% set full_name = customer.firstName + ' ' + customer.lastName %}"recipientName": "####{{ full_name }}"

Gepersonaliseerde filters en functies

GelatoConnect ondersteunt verschillende gepersonaliseerde filters en functies naast standaard Jinja2:

  • lookups(): Voor het in kaart brengen tussen waardesystemen

  • js: Voor correcte JSON-escaping

  • Verschillende datumformatteringsfuncties


Wil je meer weten?

Nu je de basisprincipes van Template Mappers in GelatoConnect begrijpt, ben je klaar om:

  1. Verken Jinja2 sjabloonvoorbeelden

  2. Stel postback triggers in die je sjablonen gebruiken

Was dit een antwoord op uw vraag?