Vereisten
Voordat je Zonal verbindt, zorg dat je hebt:- Zonal Aztec POS met iOrder API-toegang
- iOrder Brand Token van je Zonal-accountmanager
- iOrder User Device Identifier
- Admin-toegang tot je storekit-dashboard
Neem contact op met je Zonal-accountmanager om iOrder API-gegevens aan te vragen. Je hebt de Brand Token en User Device Identifier nodig om te verbinden.
De verbinding opzetten
Stap 1: Voer Zonal-gegevens in
- Ga naar Store Settings > Integrations in je storekit-dashboard
- Zoek Zonal en klik op Connect
- Voer je iOrder-gegevens in:
- Brand Token - Je iOrder brand-authenticatietoken
- User Device Identifier - Je unieke device identifier
- Bundle Identifier (optioneel) - Custom bundle-ID indien verstrekt
- Klik op Connect
authCheck-endpoint voor het opslaan.
Stap 2: Selecteer je vestiging
Na authenticatie:- storekit haalt beschikbare vestigingen op uit je Zonal-account
- Selecteer de vestiging (site) die matcht met deze storekit-store
- De Site ID van de vestiging wordt opgeslagen voor alle toekomstige API-calls
Stap 3: Synchroniseer je menu
Zodra verbonden, importeer je menu uit Zonal:- Ga naar Menu in je dashboard
- Klik op Sync Menu
- storekit haalt menu’s op uit alle sales areas
- Categorieën en producten worden geïmporteerd met volledige modifier-structuur
Menu-sync
Wat wordt gesynchroniseerd
Sync-types
Full Sync: Importeert de volledige menustructuur inclusief categorieën, producten, modifiers en afbeeldingen. Gebruik na significante menuwijzigingen. Lightweight Sync: Werkt alleen prijzen en beschikbaarheid bij zonder de volledige structuur opnieuw te importeren. Veel sneller — ideaal voor frequente prijswijzigingen of voorraadupdates.Sync-opties
Production instructions (items met
divisionId van 0 of isInstruction-flag) worden automatisch geïmporteerd als gratis modifiers, zelfs als ze geen supplement price hebben. Zo kunnen klanten speciale bereidingsinstructies zoals “No Ice” of “Extra Hot” aan hun bestelling toevoegen.Sales area-beperkingen
Zonal-menu’s zijn georganiseerd per sales area. Tijdens sync doet storekit:- Haalt menu’s op uit alle sales areas
- Voegt identieke menu’s samen over areas
- Maakt beperkingen op categorieniveau per area
Portions (sizes)
Wanneer een product meerdere portions in Zonal heeft, maakt storekit een “Size” modifier-groep:- Basisproductprijs wordt ingesteld op £0
- Elke portion wordt een modifier met zijn prijs
- Klanten moeten een size selecteren om het item toe te voegen
Order injection
Wanneer een klant een bestelling plaatst, stuurt storekit deze naar Zonal via deplacePaidOrder-methode.
Orderflow
- Basketvalidatie - storekit roept
checkBasketaan om items te valideren - Betaling verwerkt - Klant betaalt via storekit
- Bestelling dispatched - Bestelling verstuurd naar Zonal met basket-ID
- Bevestiging - Zonal retourneert receipt-ID, bestelling gemarkeerd als geaccepteerd
Servicetypes
Pre-order dispatch
Voor pre-orders berekent storekit de optimale dispatch-tijd:- Zelfde-dag bestellingen: Direct dispatched
- Toekomstige bestellingen: Dispatched om 6 uur ‘s ochtends op de orderdag
Wat Zonal ontvangt
Elke bestelling bevat:- Klantnaam, e-mail, telefoon
- Alle items met ingredient-ID’s, display record-ID’s en portion type
- Modifiers als choice lines met geneste structuur
- Course-toewijzingen (indien geconfigureerd)
- Removal-modifiers (voor default items die verwijderd zijn)
- Discount lines (percentage of vast bedrag)
- Fooibedrag
- Bezorgadres (voor bezorgorders)
- Tijdslot (voor afhalen/bezorging)
- Collection code (8 tekens)
- Aangepaste ordernotities (via order note-product)
Ordernotities
Zonal accepteert alleen klantnotities als regelitem, dus een Order Note Product ID moet geconfigureerd zijn voordat notities op Zonal-tickets kunnen verschijnen. Ga naar Stores → [je store] → Settings → Integrations → Zonal en stel Order Note Product ID in op het Zonal-product-ID dat je Zonal-accountmanager verstrekt voor ordernotities. storekit voegt vervolgens een regelitem toe met dat product en de opgemaakte notitie eraan gekoppeld. Notities worden omgezet in hoofdletters en gestript van tekens die Zonal niet kan weergeven, en worden afgekapt op 840 tekens. Gebruik Order Note Template om te bepalen hoe de notitie wordt samengesteld. Twee storekit-instellingen moeten de notitie ook doorlaten:- Stores → [je store] → Settings → Operations → Order Notes moet Optional of Mandatory zijn (niet Hidden), anders krijgen klanten nooit een notitieveld
- Als je order batching gebruikt, moet Include order notes aan staan, anders worden notities gestript uit de samengevoegde bestelling voordat deze naar Zonal wordt gestuurd — zie Klantnotities op gebatchte tickets
Basketvalidatie & kortingen
De Zonal-integratie valideert bestellingen bij checkout met decheckBasket-API.
Hoe het werkt
- Klant gaat naar checkout
- storekit stuurt basket naar Zonal met alle items en modifiers
- Zonal valideert beschikbaarheid en berekent eventuele kortingen
- Kortingsbedrag wordt geretourneerd en toegepast op het ordertotaal
- Basket-ID wordt opgeslagen en gebruikt bij het plaatsen van de bestelling
Kortingsconfiguratie
Basketvalidatie vangt niet-beschikbare items op voor betaling. Als een item is uitverkocht, wordt de klant onmiddellijk op de hoogte gebracht.
Auto-snooze bij fouten
AlscheckBasket een sold-out-fout retourneert (code -216), doet storekit automatisch:
- Identificeert het niet-beschikbare item
- Snoozet het 6 uur
- Wist de menu-cache
- Retourneert de iteminfo aan de klant
Floor plan-sync
Synchroniseer je tafelindeling vanuit Zonal voor ter plaatse-bestellen:- Ga naar Stores → [je store] → Settings → Integrations → Zonal
- Klik op Sync tables
- Areas (sales areas) en tafels worden geïmporteerd
Wat wordt gesynchroniseerd
- Sales areas als vestiging-areas
- Tafelgroepen binnen areas
- Individuele tafels met nummers en namen
- Tafelcapaciteit
Integratie-instellingen
Sales area-ID’s voor afhalen en bezorging
Standaard gebruikt storekit sales area-ID1 voor afhaal- en bezorgorders. Als je Zonal-configuratie een specifieke sales area vereist voor deze fulfillment-methoden, configureer ze dan met de fulfillment sales area-ID-instellingen:
Ter plaatse-bestellingen gebruiken altijd de sales area-ID van de vestiging-area van de tafel (gesynchroniseerd via floor plan). De fulfillment sales area-ID-instellingen gelden alleen voor afhaal- en bezorgorders die geen tafel hebben toegewezen.
Je integratie testen
Pre-launch checklist
-
Menu-sync
- Categorieën geïmporteerd uit alle sales areas
- Producten hebben correcte prijzen (inclusief portion-varianten)
- Modifiers verschijnen correct
- Geneste modifiers werken
- Afbeeldingen worden weergegeven
-
Orderflow
- Basket valideert succesvol
- Bestelling verschijnt in Zonal POS
- Items, modifiers en courses zijn correct
- Collection code/tijdslot verschijnt
-
Kortingen (indien geconfigureerd)
- Pas een kortingscode toe
- Verifieer dat bedrag overeenkomt met Zonal-berekening
-
Floor plan (bij gebruik van ter plaatse)
- Tafels correct gesynchroniseerd
- Bestellingen worden naar juiste tafels gerouteerd
Troubleshooting
Verbinding mislukt
- Verifieer dat Brand Token en User Device Identifier correct zijn
- Controleer of gegevens niet zijn verlopen
- Neem contact op met Zonal-support om iOrder API-toegang te bevestigen
Menu synchroniseert niet
- Zorg dat menu’s zijn gepubliceerd in Zonal
- Controleer of producten zijn toegewezen aan display groups
- Verifieer dat sales areas zijn geconfigureerd
- Controleer op syncfouten in het dashboard
Bestellingen mislukken
- “Missing basket ID”: Basketvalidatie kan mislukt zijn — controleer itembeschikbaarheid
- Error -238: Basket verlopen — storekit probeert opnieuw met verse basket
- Error -216: Item uitverkocht — item wordt auto-snoozed
Modifiers verschijnen niet
- Controleer of choice groups zijn geconfigureerd op producten
- Verifieer dat modifiers supplement prices hebben (of schakel “Import Choices With No Price” in)
- Sync menu opnieuw na Zonal-wijzigingen
Ordernotities verschijnen niet
- Controleer dat Order Note Product ID is ingesteld in de Zonal-integratie-instellingen — zonder deze wordt er geen notitieregel verstuurd
- Controleer dat Order Notes onder Operations Optional of Mandatory is, niet Hidden
- Als order batching aan staat, controleer dat Include order notes is ingeschakeld
- Bevestig dat het notitie-product-ID geldig is in Zonal — Zonal wijst de order line af als het product niet bestaat
Verkeerde prijzen
- Controleer portion-configuratie in Zonal
- Verifieer dat de juiste portion als default is ingesteld
- Voor multi-portion-producten: controleer size modifier-prijzen
Ondersteunde functies
Bestellingen
Bestellingen
Pay at Table
Pay at Table
Venue-setup
Venue-setup