Platformen
Lightspeed eCom koppeling met ERP, boekhouding, magazijn en leveranciers
Een Lightspeed koppeling haalt orders uit je webshop en schrijft voorraad, prijzen en verzendstatus terug via de eCom API. Die API telt aanroepen: 300 per 5 minuten, 3.000 per uur en 12.000 per dag per shop. Wie per variant schrijft, komt bij een grote catalogus de dag niet door.
Wat is Lightspeed eCom en wie gebruikt het?
Lightspeed eCom is het gehoste webshopplatform van Lightspeed. Lightspeed draait de servers; jij richt de shop in. Europese shops draaien op het cluster eu1, met de API op api.webshopapp.com, Amerikaanse op us1. Lightspeed heeft daarnaast een kassasysteem. Webshop en kassa kunnen los draaien of omnichannel aan elkaar hangen, en dat verschil bepaalt wat een koppeling kan.
| Opzet | Producten en voorraad | Orders en zendingen |
|---|---|---|
| Alleen eCom | via de eCom API | via de eCom API |
| eCom omnichannel met de kassa (R-Series) | alleen-lezen in de eCom API, schrijven via de kassa-API | via de eCom API |
De eerste vraag bij een Lightspeed-koppeling is dus welke van de twee je hebt. De kassakant staat op Lightspeed kassa koppeling.
Wat je met Lightspeed koppelt
Lightspeed is leidend voor orders en webklanten. Voorraad, prijzen en productgegevens komen uit het ERP, het magazijn of de leverancier.
| Stroom | Richting | Resource in de eCom API |
|---|---|---|
| Voorraad en prijs per variant | naar Lightspeed | variants, in bulk PUT /variants/bulk.json |
| Producten en teksten | naar Lightspeed | products, per taal |
| Staffels en groepsprijzen | naar Lightspeed | quantityDiscounts |
| Orders en klanten | naar het ERP | orders met updated_at_min |
| Zending en trackingcode | naar Lightspeed | PUT /shipments/{id}.json met trackingCode |
Prijs, voorraad, SKU, EAN en artikelcode staan in Lightspeed niet op het product maar op de variant. Ook een product zonder maten of kleuren heeft één variant, en daar schrijft de koppeling naar. Een variant is te vinden op sku, ean of article_code; de koppeling bewaart na de eerste ronde het variant-ID. Zie voorraad en beschikbaarheid en orders, klanten en verzending.
Hoe Lightspeed data vrijgeeft
Sleutel en geheim
De eCom API is een REST API met JSON of XML. Toegang loopt met een API-sleutel en een geheim per shop, als HTTP Basic-authenticatie. De taal staat in het pad, direct na het adres van het cluster: /nl/products.json geeft Nederlandse teksten, /en/products.json Engelse. De taal moet in de shop actief zijn. Een koppeling die titels en omschrijvingen schrijft, doet dat per taal.
Limieten per shop
| Venster | Aanroepen | Wat dat betekent |
|---|---|---|
| 5 minuten | 300 | gemiddeld 1 per seconde |
| 1 uur | 3.000 | 50 per minuut |
| 1 dag | 12.000 | 500 per uur over 24 uur |
| per seconde | 20 | geen pieken |
Boven de grens antwoordt Lightspeed met 429 Too Many Requests. De limieten gelden per API-sleutel van de shop. Lightspeed verhoogt ze op verzoek per account; de echte waarden staan in GET /account/ratelimit.json, met per venster limit, remaining en reset. Zie Lightspeed's pagina over rate limiting.
De rekensom
Een lijst geeft standaard 50 resultaten per aanroep en maximaal 250. Een volledige voorraad- en prijsronde over 15.000 varianten:
- Lezen: 15.000 / 250 = 60 aanroepen.
- Per variant schrijven: 15.000 aanroepen. Bij 3.000 per uur is de daglimiet van 12.000 na 4 uur op, en de laatste 3.000 wachten tot de volgende dag. Orders ophalen kan in die tijd niet meer.
- In bulk schrijven:
PUT /variants/bulk.jsonneemt maximaal 100 varianten per aanroep. 15.000 / 100 = 150 aanroepen, plus 60 om te lezen is 210. Dat past ruim in één venster van 5 minuten.
Na de eerste ronde schrijft de koppeling alleen varianten waarvan voorraad of prijs is veranderd. De ruimte die overblijft gaat naar orders en zendingen. Je eigen aantallen reken je door met doorvoer berekenen.
{
"variant": [
{ "id": 196847073, "stockLevel": 14, "priceIncl": 108.30 },
{ "id": 196847074, "stockLevel": 0, "priceIncl": 108.30 }
]
}
Webhooks
Webhooks zijn er voor orders, klanten, zendingen, facturen, retouren, producten, varianten en offertes, met de acties created, updated en deleted, en voor orders ook paid en shipped. Elke melding draagt de header x-signature, een MD5-hash van de inhoud plus het API-geheim. Lightspeed verwacht binnen 5 seconden een 2xx-antwoord. Daarna volgen tot 10 pogingen in 24 uur. Faalt meer dan 50% van de meldingen van een webhook, dan krijgt de eigenaar een e-mail; is dat na 50 uur nog zo, dan wordt de webhook uitgezet.
De koppeling zet een melding direct in een wachtrij en antwoordt meteen. Een controleronde met updated_at_min haalt elke paar minuten op wat er sinds de vorige ronde is gewijzigd. Zie wat is een webhook.
Waar het bij Lightspeed op vastloopt
Prijs inclusief en exclusief btw
Een variant heeft priceIncl en priceExcl. In het bulkvoorbeeld in Lightspeed's eigen documentatie gaan priceIncl 100 en priceExcl 82.6 erin, en komt priceExcl 82.6446 terug: de prijs exclusief wordt uit de prijs inclusief berekend, op vier decimalen. Een ERP met nettoprijzen levert 89,50; de koppeling rekent 89,50 x 1,21 = 108,295 en schrijft 108,30 inclusief. Lightspeed maakt daar 108,30 / 1,21 = 89,5041 exclusief van. Dat is 0,0041 per stuk meer dan in het ERP; bij 10 stuks verschillen order en factuur al 4 cent. Zie bedragen en btw mappen.
Adressen in losse velden
Een Lightspeed-order heeft per adres addressShippingStreet, addressShippingStreet2, addressShippingNumber en addressShippingExtension. Dat sluit aan op een ERP met straat, huisnummer en toevoeging. Maar het eigen veld is niet altijd gevuld: in Lightspeed's eigen voorbeeldorder staat het huisnummer in de straat, 123 viger, en is addressBillingNumber leeg. Een order met een leeg addressShippingNumber en Dorpsstraat 12 A in de straat wordt door de koppeling gesplitst; lukt dat niet, dan komt de order op een controlelijst. Het land komt als code (nl) en als code3 (nld). Zie adresvelden mappen.
Voorraad bij meerdere winkels
stockLevel is één getal per variant. Staat multishop aan, dan is het de totale voorraad over alle shops. Een ERP met 20 stuks in het magazijn en 6 in een winkel moet dus kiezen welk getal de webshop krijgt. stockTracking bepaalt wat er bij 0 gebeurt: enabled stopt de verkoop, indicator laat bestellen op nabestelling toe, disabled houdt geen voorraad bij. Zie welke voorraad toon je in je webshop.
Systemen die we aan Lightspeed koppelen
De combinatie met een eigen pagina: Lightspeed Exact Online koppeling. De systemen zelf: Exact Online koppeling, AFAS webshop koppeling, Picqer-koppeling en Lightspeed kassa koppeling. Andere platformen: Shopify koppeling en WooCommerce koppeling. Alle stromen staan op koppelingen.
Wij bouwen de koppeling voor een vaste prijs op jouw shop en jouw systemen, en hosten, draaien en bewaken hem daarna voor een vast bedrag per maand. Voor livegang draait hij als dry run: je ziet per variant welke voorraad en prijs er in Lightspeed zou komen, zonder dat er iets wijzigt. Vertel hoeveel varianten je hebt en of je kassa omnichannel meedoet.
Veelgestelde vragen
Gaat het om Lightspeed eCom of om de Lightspeed-kassa?
Deze pagina gaat over Lightspeed eCom, de webshop. De kassa heeft een eigen API en staat op Lightspeed kassa koppeling. Zijn je webshop en kassa omnichannel verbonden, dan bepaalt de kassa de producten, en dat verandert wat een koppeling in de webshop kan schrijven.
Wat als mijn webshop omnichannel aan de Lightspeed-kassa hangt?
Dan kan de eCom API niet schrijven naar producten, varianten, categorieën, merken, leveranciers en btw-instellingen. Die komen uit de kassa (R-Series) en worden naar de webshop gesynchroniseerd. Voorraad en prijzen schrijft de koppeling dan via de API van de kassa. Orders, klanten en zendingen lopen gewoon via de eCom API.
Kan ik hogere limieten krijgen?
Lightspeed noemt 300 aanroepen per 5 minuten, 3.000 per uur en 12.000 per dag per shop-API-sleutel, en geeft aan dat je via je accountmanager om meer kunt vragen. Je werkelijke limieten staan in GET /account/ratelimit.json. De koppeling leest die bij de start en verdeelt het werk over wat er is.
Kan de koppeling een minimale afname per artikel overnemen?
Ja. Een variant heeft stockBuyMinimum en stockBuyMaximum: de kleinste en grootste hoeveelheid die een klant kan bestellen. Verkoop je per doos van 6, dan zet de koppeling stockBuyMinimum op 6 uit de besteleenheid in je ERP. Veelvouden van 6 afdwingen kan Lightspeed met dit veld niet.
Hoe komen staffelprijzen uit het ERP in Lightspeed?
Als staffelkorting per product of variant, met een quantity, een price per stuk of een percentage, een customerGroup en een begin- en einddatum. Een staffel voor alle varianten heeft variant 0. Prijsafspraken per klantgroep gaan langs dezelfde weg. Zie staffelprijzen.
Wat gebeurt er als een webhook niet aankomt?
Lightspeed verwacht binnen 5 seconden een 2xx-antwoord en probeert het daarna tot 10 keer binnen 24 uur. Faalt meer dan de helft van de meldingen, dan volgt een waarschuwing per e-mail, en na 50 uur wordt de webhook uitgezet. De koppeling haalt orders daarom ook zelf op met updated_at_min.
Vertel wat je nodig hebt
Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.
- Je weet de prijs en de doorlooptijd voordat je iets toezegt
- Wij zoeken uit welke koppeling het werk uit handen neemt
- Wij verzorgen de bouw, hosting, bewaking en het onderhoud
- Je team krijgt minder overtypwerk en minder uitzoekwerk