Naar hoofdinhoud

KoppelingenLightspeed

Lightspeed API koppelen aan je website.

Met een koppeling op de Lightspeed API toont je website de voorraad en prijzen uit je kassa, per winkel. Verkoop je in de winkel het laatste exemplaar, dan staat het online niet meer als leverbaar. Lightspeed heeft vier productlijnen met elk een eigen API, dus we beginnen met vaststellen welke je hebt.

Vertrouwd door

200+ bedrijven en webshops

Dux
Swim Essentials
Vouwwagenspecialist
Fit Preps
Fysio Moov
Mörgenn
MBST
Sunwave Brands
Flaske
Boumij Makelaars

Wat het oplevert

Wat een koppeling met Lightspeed je oplevert.

Eén voorraad. Wat de kassa telt, toont je website, zonder lijsten die iemand met de hand bijwerkt.

Op voorraad in de winkel. Per product zie je in welke vestiging het ligt, zodat een bezoeker weet waar hij het kan ophalen of passen.

Prijzen op één plek. Een prijswijziging in Lightspeed staat daarna ook op je site, in plaats van twee keer invoeren.

Technisch

De koppeling in het kort.

Vorm van de koppeling
Per productlijn een eigen REST API: Retail X-Series en R-Series voor de kassa, eCom (C-Series) voor de webshop, Restaurant (K-Series) voor horeca
Authenticatie
OAuth 2.0 bij X-Series, R-Series en K-Series; een API-sleutel en secret bij eCom
Richting
Beide kanten op
Verversing
Webhooks bij X-Series en eCom, met een periodieke controle erachter; R-Series op een vast interval
Wij bouwen het op
WordPress, Next.js, Maatwerk

Waar het misgaat

  • Je bouwt op de verkeerde API. Lightspeed is vier systemen onder één naam. De X-Series draait op het adres van je eigen winkel, de R-Series op api.lightspeedapp.com met je accountnummer, eCom op een eigen cluster, en Restaurant op weer een ander platform. Authenticatie, veldnamen en limieten verschillen per lijn. Een handleiding of package voor de ene werkt niet op de andere, dus de eerste vraag is altijd welke Lightspeed je in je backoffice hebt.
  • Een webhook is geen garantie. Bij de X-Series moet je server binnen 5 seconden antwoorden, anders volgt een nieuwe poging, tot 20 keer in 48 uur. Lightspeed schrijft zelf dat levering niet gegarandeerd is en dat periodiek ophalen de manier is om systemen gelijk te houden. Faalt je server een uur lang op bijna alles terwijl er 1.000 meldingen openstaan, dan pauzeert Lightspeed de levering 24 uur en wist de achterstand. Wij gebruiken webhooks voor snelheid en halen daarnaast periodiek de stand op.
  • De limieten verschillen per lijn en per kassa. De X-Series staat 300 aanvragen per kassa plus 50 toe per 5 minuten; met één kassa is dat 350. De R-Series werkt met een emmer van 90 die met 1 per seconde leegloopt. Bij eCom is het 300 per 5 minuten en 12.000 per dag. Een volledige catalogus product voor product ophalen loopt daar snel tegenaan, dus wij werken met pagina's en alleen met wat gewijzigd is.
  • Tokens verlopen en worden vervangen. Een access token van de R-Series verloopt doorgaans na 60 minuten, bij de K-Series na 25. Bij de X-Series geeft elke vernieuwing een nieuwe refresh token, en de oude access token vervalt. Een koppeling die die nieuwe token niet opslaat, valt stil zonder foutmelding op je site. Wij bewaren tokens aan de serverkant en loggen elke vernieuwing.

Bron: documentatie van Lightspeed, Montreal

Wat is Lightspeed?

Lightspeed is kassasoftware voor winkels en horeca, met een eigen webshopplatform ernaast. Een winkelier beheert er producten, voorraad, prijzen, klanten en verkopen in, en rekent er aan de toonbank mee af.

Voor een website is Lightspeed meestal de bron van de waarheid voor voorraad. De kassa weet wat er vandaag verkocht is, wat er binnenkwam en wat er in welke winkel ligt. Een koppeling haalt die kennis naar je site, zodat online en offline hetzelfde verhaal vertellen.

Welke Lightspeed heb je?

Lightspeed Retail bestaat uit twee kassalijnen. De X-Series draait op een eigen adres per winkel. De R-Series is de andere Retail-kassa, met een eigen API op versie 3 en een accountnummer in elk adres. Beide hebben voorraad per vestiging, maar de velden heten anders: bij de X-Series zijn het voorraadrecords per outlet, bij de R-Series het veld qoh per winkel.

Lightspeed eCom, ook wel C-Series, is het webshopplatform van Lightspeed zelf. Heb je dat, dan heb je al een webshop, en gaat een koppeling meestal over iets anders: een marktplaats, een boekhouding of een eigen frontend. Voor de API is een Advanced- of Professional-abonnement nodig.

Lightspeed Restaurant, de K-Series, is de horecakassa. Die API is alleen open voor partners en goedgekeurde klanten, en voor een klant loopt de aanvraag via de accountmanager bij Lightspeed. Wat er wel kan, is de menukaart en artikelen uit de kassa lezen voor een website voor je horecazaak.

Welke je hebt, zie je aan het adres waarop je inlogt en aan de naam in je abonnement. Twijfel je, stuur ons een schermafbeelding van je backoffice, dan zeggen we het je.

Hoe de Lightspeed API werkt

De X-Series, R-Series en K-Series gebruiken OAuth 2.0 met een autorisatiecode. Wij maken een app aan bij Lightspeed, jij logt eenmalig in en geeft toestemming, en de koppeling krijgt een token waarmee hij namens jouw winkel mag lezen. Je wachtwoord komt nergens in onze code.

Bij eCom werkt het met een API-sleutel en een secret, die je in de backoffice aanmaakt en waarvan je de rechten per onderdeel instelt. Die sleutel staat bij ons op de server, nooit in de browser.

Voor voorraad gebruiken we waar het kan webhooks. De X-Series stuurt een melding bij inventory.update en product.update, eCom heeft eigen webhooks. Zo staat een verkoop in de winkel binnen korte tijd op je site. Omdat een melding kan wegvallen, halen we daarnaast periodiek de volledige stand op. Bij de R-Series doen we het op een vast interval, binnen de limiet van je account.

Op voorraad in de winkel

De meeste webshops tonen één getal: op voorraad of niet. Met Lightspeed kun je meer laten zien, omdat de kassa per vestiging telt. "Op voorraad in Boxtel, 2 stuks" helpt een bezoeker die vandaag wil passen of ophalen, en het scheelt telefoontjes met dezelfde vraag.

Daarvoor koppelen we elk product op je site aan het juiste product in Lightspeed. Dat gaat op SKU of barcode, niet op naam, want namen verschillen al snel tussen kassa en site. Varianten zoals maten en kleuren krijgen elk hun eigen regel.

Je bepaalt zelf wat de bezoeker ziet. Een exact aantal, een melding "laatste stuks" onder een drempel, of alleen per winkel ja of nee. Ook kun je voorraad die bestemd is voor de winkel afschermen, zodat online niet het laatste exemplaar wegloopt dat in de etalage ligt.

Voor een WooCommerce-webshop betekent dit dat de voorraad van WooCommerce zelf wordt bijgewerkt vanuit Lightspeed. Op een Next.js-site lezen we het rechtstreeks in de productpagina, met een korte cache ervoor.

Welk systeem is de bron?

Een koppeling werkt alleen als vastligt welk systeem waarvoor de bron is. Voor voorraad is dat de kassa. Voor productteksten en foto's is dat meestal de website, want daar staan de uitgebreide beschrijvingen die in een kassa niet passen.

Prijzen zijn de lastige. Staan ze in Lightspeed, dan neemt de site ze over en past niemand ze in de webshop aan. Wil je online andere prijzen of acties, dan leggen we dat vast als uitzondering, zodat de koppeling ze niet overschrijft.

Online bestellingen kunnen ook terug naar Lightspeed, zodat de voorraad in de kassa daalt als er online iets verkocht wordt. Dat is een bewuste keuze, want dan schrijft de koppeling in je kassa. De omzet daarna naar de boekhouding brengen is een aparte stap, bijvoorbeeld met een koppeling met Exact Online.

Lightspeed koppelen met WordPress of met maatwerk

Op WordPress met WooCommerce komt er een uitbreiding op de server die de meldingen van Lightspeed ontvangt, de voorraad per product bijwerkt en periodiek de volledige stand controleert. De winkelvoorraad per vestiging tonen we op de productpagina. Kies je een kant-en-klare plugin, dan bepaalt die welke velden meegaan en hoe vaak.

Op een maatwerksite in Next.js is het een eigen serverroute met een cache, die per productpagina de stand uit Lightspeed leest. Dat is de route als je een winkelzoeker, een reserveer-in-de-winkelknop of meerdere vestigingen met eigen assortiment wilt tonen.

De webshop, de koppeling en de opbouw van de productpagina vallen bij ons onder Design & Development.

Bijgewerkt op

Specialist voor koppelingen

Portret van Jos van der Pluijm tussen de stellingen van een magazijnJosDesign & Development085 83 30 533jos@klubb.nl

Veelgestelde vragen

Heeft Lightspeed een API?

Ja, Lightspeed heeft per productlijn een eigen API. De Retail-kassa's X-Series en R-Series, het webshopplatform eCom (C-Series) en de horecakassa Restaurant (K-Series) hebben elk een REST API met eigen documentatie, adressen en limieten. Welke je nodig hebt, hangt af van de Lightspeed die je gebruikt. Dat stellen we vast voordat we iets bouwen.

Hoe kom ik aan een Lightspeed API-sleutel?

Een Lightspeed API-sleutel maak je alleen bij eCom (C-Series) aan, in de backoffice, met een Advanced- of Professional-abonnement. Bij de X-Series, R-Series en K-Series werkt het met OAuth 2.0: je logt eenmalig in en geeft een app toestemming. Op de X-Series kunnen gebruikers met een Plus-abonnement ook een persoonlijke token maken, bedoeld om te testen.

Wat is de Lightspeed POS API?

De Lightspeed POS API is de API van de Lightspeed-kassa: de X-Series of R-Series voor winkels, of de K-Series voor horeca. Daarmee lees je producten, voorraad per vestiging, prijzen, klanten en verkopen uit de kassa, en kun je waar nodig gegevens terugschrijven. Voor een website gaat het meestal om voorraad en prijzen.

Wat is het verschil tussen Lightspeed X-Series en R-Series?

De X-Series en R-Series zijn twee aparte kassalijnen van Lightspeed Retail, elk met een eigen API. De X-Series draait op het adres van je eigen winkel en kent webhooks voor onder meer voorraad. De R-Series gebruikt api.lightspeedapp.com met je accountnummer en werkt met een limiet van een emmer die per seconde leegloopt. Code voor de een werkt niet op de ander.

Kan ik de voorraad van mijn Lightspeed-kassa op mijn website tonen?

Ja. Zowel de X-Series als de R-Series houdt voorraad per vestiging bij, en die lezen we via de API uit. Op je website toon je dan per product of het online leverbaar is en in welke winkel het ligt. Producten koppelen we op SKU of barcode, zodat varianten zoals maten en kleuren elk de juiste stand krijgen.

Werkt Lightspeed met WooCommerce?

Ja, met een koppeling op de Lightspeed API. Een uitbreiding op de server van je WooCommerce-webshop ontvangt de meldingen van Lightspeed, werkt de voorraad per product bij en controleert periodiek de volledige stand. Prijzen kunnen meekomen als Lightspeed daarvoor de bron is. Online bestellingen kunnen terug naar de kassa, als je dat wilt.

Heeft de Lightspeed API webhooks?

Ja, bij de X-Series en bij eCom. De X-Series stuurt onder meer inventory.update, product.update en sale.update en probeert een mislukte melding tot 20 keer in 48 uur opnieuw. Lightspeed garandeert de levering niet en raadt aan daarnaast periodiek op te halen. Daarom combineren wij webhooks altijd met een vaste controle van de volledige stand.

Hoeveel aanvragen mag een Lightspeed-koppeling doen?

Dat verschilt per productlijn. De X-Series staat 300 aanvragen per kassa plus 50 toe per 5 minuten. De R-Series werkt met een emmer van 90 die met 1 per seconde leegloopt, met meer ruimte per extra kassa. Bij eCom is het 300 per 5 minuten, 3.000 per uur en 12.000 per dag. Overschrijding geeft een 429 met een wachttijd.

Heb ik voor de Lightspeed eCom API een bepaald abonnement nodig?

Ja, voor de Lightspeed eCom API heb je een Advanced- of Professional-abonnement nodig. Daarmee maak je in de backoffice een API-sleutel en secret aan en stel je per onderdeel in wat de sleutel mag lezen of wijzigen. Elke aanvraag gaat naar het cluster van je winkel, voor Europa api.webshopapp.com.

Kan ik Lightspeed Restaurant (K-Series) koppelen aan mijn website?

Ja, maar de API van Lightspeed Restaurant is alleen open voor partners en goedgekeurde klanten. Als klant vraag je toegang aan via je accountmanager bij Lightspeed. Daarna werkt het met OAuth 2.0 en kun je onder meer menukaarten en artikelen uitlezen. Reken op een doorlooptijd voor die aanvraag voordat er gebouwd kan worden.

Let's work together.

Wat de kassa telt, toont je website.