Overslaan naar inhoud
eCommerce, POS en multichannel

Odoo POS offline-modus: hoe het werkt en hoe je verkopen synchroon houdt

dooPartners· 30 april 2026 · 13 min leestijd
Odoo POS offline-modus: hoe het werkt en hoe je verkopen synchroon houdt

Het Odoo Point of Sale blijft verkopen wanneer het internet wegvalt, bewust ontworpen. Het draait in de browser en cachet alles wat het nodig heeft wanneer de sessie wordt geopend, zodat het orders kan aannemen, totalen kan berekenen en bonnen kan afdrukken zonder verbinding. Het addertje zit in wat het offline niet kan: het werkt de voorraad niet bij, praat niet met de backend, en ziet niet wat andere kassa's verkopen. Wanneer de verbinding terugkomt, synchroniseren de orders in de wachtrij terug naar de server. Het meeste risico in een POS zit in dat offline-venster, niet in de synchronisatie zelf. De rest van dit bericht behandelt wat er offline draait, wat er synchroniseert als je opnieuw verbindt, en hoe je meerdere kassa's draait zonder rommel.

De rij bij de kassa loopt door, en dan knippert de wifi eruit. Je verwacht dat het scherm bevriest. In plaats daarvan blijft de kassa werken, scant producten, neemt contant en kaart aan, drukt bonnen af. Het personeel merkt het nauwelijks. Twintig minuten later komt de verbinding terug en vraagt Odoo om de niet-gesynchroniseerde orders te synchroniseren. Je klikt erdoorheen en alles landt in de backend.

Het werkt, dus mensen gaan ervan uit dat de offline-modus een gratis vangnet is zonder nadelen. Dat is het niet. Terwijl die kassa offline was, verkocht hij vanuit een momentopname die werd gemaakt toen de sessie werd geopend. Hij wist niet dat een andere kassa het laatste exemplaar van een artikel had verkocht, hij verlaagde de voorraad niet in realtime, en een pinautomaat die het netwerk nodig heeft is mogelijk niet doorgegaan. De verkoop is veilig. Wat je wist over de voorraad en over de andere kassa's, gedurende die twintig minuten, was niet actueel. In dat gat ontstaan oververkoop en verrassingen bij het afstemmen.

Waarom het gebeurt

De POS is een browser-app die op een lokale cache draait. Wanneer je een POS-sessie opent, laadt Odoo de gegevens die de kassa nodig heeft in de browser: producten, prijzen, btw, klanten, de geopende sessie. Vanaf dat moment werkt de kassa tegen die lokale kopie. Het apparaat heeft geen rondje naar de server nodig voor elke scan, daarom is het snel, en daarom overleeft het een weggevallen verbinding. De keerzijde is dat de kopie een momentopname is van bij het openen van de sessie, geen live feed.

Orders worden lokaal opgeslagen en in de wachtrij gezet, niet direct verstuurd. Elke voltooide order wordt eerst naar de browser geschreven. Als de verbinding er is, stuurt Odoo die orders op de achtergrond naar de server. Als de verbinding weg is, stapelen ze zich op als niet-gesynchroniseerde orders in de wachtrij. Er gaat niets verloren zolang die browser, op dat apparaat, niet wordt gewist voordat hij synchroniseert.

De voorraad wordt in de backend afgeboekt, niet op de offline kassa. De daadwerkelijke voorraadmutatie gebeurt aan de serverkant, wanneer de order Odoo bereikt. Offline toont de kassa je de voorraadwaarde van bij het openen van de sessie (als die al wordt getoond), en verkoopt gewoon door. Dus twee kassa's, beide offline, kunnen allebei hetzelfde laatste exemplaar verkopen. Geen van beide heeft lokaal ongelijk. Het conflict wordt pas zichtbaar zodra beide synchroniseren en de backend twee mutaties tegen één exemplaar probeert af te stemmen.

Alles wat de server nodig heeft, wordt gepauzeerd, niet slim in de wachtrij gezet. Realtime voorraad, het opzoeken van een klant die vandaag op een andere kassa is aangemaakt, bepaalde elektronische betaalintegraties, en loyaliteits- of cadeaukaartcontroles die de backend aanroepen werken niet offline. Sommige hiervan hervatten netjes bij het herstellen van de verbinding. Sommige, zoals een kaartbetaling die een online terminal nodig heeft, kunnen simpelweg niet voltooid worden zolang de verbinding weg is.

Tijdlijndiagram dat de drie fasen van een offline-venster van Odoo POS toont: sessie open, verbinding weg, verbinding terug
Het offline-venster in drie fasen: open, ontkoppeld, opnieuw verbonden.

De oplossing, in genummerde stappen

1

Behandel de offline-modus als een buffer, niet als een functie waar je op leunt.

Het bestaat om een korte storing te overleven, een paar minuten tot een uur, niet om een winkel te draaien op een permanent slechte verbinding. De eerste oplossing is saai en het meest effectief: geef het POS-apparaat een stabiele verbinding. Een bedrade verbinding of een speciaal access point voor de kassa's verslaat het delen van de gast-wifi. De meeste "Odoo POS-synchronisatieproblemen" zijn eigenlijk "de winkel-wifi is slecht"-problemen. En voordat je de buffer überhaupt vertrouwt, test hem met je eigen betaalprovider. We hebben terminals gezien die offline blijven werken en terminals die weigeren op het moment dat het netwerk wegvalt. Trek de netwerkkabel eruit op een rustige ochtend, sla een testverkoop aan, en kijk wat je terminal daadwerkelijk doet. Leer het in een oefening, niet op een drukke zaterdag.

2

Synchroniseer de wachtrij zodra de verbinding terugkomt, voordat je sluit.

Wanneer Odoo de melding met niet-gesynchroniseerde orders toont, stuur ze door en bevestig dat de wachtrij leeg is. Sluit de sessie niet, en sluit de browser niet of zet het apparaat niet uit, zolang er nog orders niet gesynchroniseerd zijn. De sessie sluiten met orders in de lokale wachtrij is de enige manier om ze echt kwijt te raken.

3

Heropen dezelfde sessie nooit op een tweede apparaat terwijl je offline bent.

De niet-gesynchroniseerde orders leven in de browser van het apparaat dat ze heeft aangenomen. Als dat apparaat offline is en iemand dezelfde POS-sessie opent op een tablet of een andere pc om "door te verkopen", heb je nu twee lokale wachtrijen die niets van elkaar weten. Houd één apparaat per geopende sessie aan, vooral tijdens een storing.

4

Stem de sessie af, sluit hem niet zomaar.

Open aan het einde van de dag het sessieoverzicht en controleer de totalen: verwacht contant geld versus geteld contant geld, kaarttotalen versus de terminalrapportage. Het offline-venster is precies waar een kaartbetaling op papier kan zijn aangenomen of overgeslagen, dus de cijfers kunnen afwijken. Stem af voordat je de sessie boekt, en onderzoek een verschil in plaats van het geforceerd af te sluiten.

5

Controleer de voorraad na een bekende storing, niet alleen aan het einde van de maand.

Als je een echte storing hebt gehad waarbij meerdere kassa's verkochten, doe daarna een snelle voorraadcontrole op de snellopers. Dit is waar twee kassa's hetzelfde laatste exemplaar kunnen hebben verkocht. Het dezelfde dag opmerken, terwijl je je nog herinnert wat er gebeurde, is veel goedkoper dan drie weken later een negatieve voorraadwaarde vinden.

6

Bepaal je regel voor het verkopen van artikelen die niet op voorraad zijn.

Odoo laat je toestaan of blokkeren dat producten worden verkocht die niet op voorraad zijn. Op één verbonden kassa zou je het kunnen blokkeren. Met de offline-modus in beeld doet blokkeren weinig, omdat de kassa offline toch geen actuele voorraad controleert. Kies de regel bewust en zorg dat het personeel weet dat "de kassa liet me het verkopen" niet hetzelfde is als "het was op voorraad".

Het stuk waar mensen over struikelen

Een paar dingen overkomen vrijwel iedereen

Offline betekent niet "de voorraad is actueel, alleen vertraagd". Het betekent dat de kassa verkoopt tegen een momentopname en de backend van niets weet tot de synchronisatie. Het gevaar zit niet in de synchronisatie, maar in de beslissingen die in het duister worden genomen: een klant het laatste exemplaar beloven, of twee kassa's die het allebei verkopen.

Het sluiten van de sessie is het echte punt van dataverlies. Orders overleven een weggevallen verbinding. Ze overleven niet altijd een gesloten browser, een gewiste cache, of een geforceerde sessieafsluiting met orders nog in de wachtrij. Leer je personeel om nooit een kassa af te sluiten die nog niet-gesynchroniseerde orders toont.

Een kaartbetaling is mogelijk niet doorgegaan. Een offline afgedrukte bon bewijst dat de order is aangeslagen, niet dat een online pinautomaat het geld heeft geïnd. Als je betaalterminal het netwerk nodig heeft, kan een offline "kaart"-betaling een betaling zijn die je nooit hebt ontvangen. Dit is een van de grootste verrassingen bij het afstemmen. Stem terminalrapportages na elke storing af op de kaarttotalen in de POS.

Twee offline kassa's zijn de klassieke oververkoop. Eén offline kassa is voor de voorraad meestal veilig. Twee of meer kassa's tegelijk offline, die allemaal vanuit hun eigen momentopname verkopen, daar wordt hetzelfde exemplaar twee keer verkocht. Hoe meer kassa's en hoe langer de storing, hoe groter het verschil.

Stamgegevens die tijdens de storing zijn aangemaakt, zijn onzichtbaar voor de offline kassa. Een klant die op kassa A is toegevoegd, of een prijs die in de backend is gewijzigd, verschijnt pas op kassa B als kassa B weer online is en de sessie die gegevens opnieuw laadt. Ga er niet vanuit dat een wijziging die je elders hebt gemaakt, live is op een offline kassa.

Snelle checklist

  • Het POS-apparaat heeft een stabiele, idealiter bedrade, verbinding. De winkel-wifi wordt niet gedeeld met de kassa's.
  • Het personeel synchroniseert de wachtrij met niet-gesynchroniseerde orders zodra de verbinding terug is.
  • Niemand sluit de sessie, de browser of het apparaat zolang er nog orders niet gesynchroniseerd zijn.
  • Eén apparaat per geopende sessie. Geen heropening van dezelfde sessie elders tijdens een storing.
  • Bij de dagafsluiting worden het getelde contante geld en de kaarttotalen van de terminal vergeleken met de POS, niet alleen een snelle afsluiting.
  • Na elke echte storing wordt snel lopende voorraad dezelfde dag steekproefsgewijs gecontroleerd.
  • Je regel voor het verkopen van artikelen die niet op voorraad zijn, is bewust ingesteld, en het personeel weet dat offline kassa's de actuele voorraad niet controleren.
  • Rapportages van de pinautomaat worden na een storing afgestemd op de kaarttotalen in de POS.

Hoe het offline-venster daadwerkelijk verloopt

Lees het als drie fasen. Sessie open: Odoo laadt producten, prijzen, btw en klanten in de browser, en de kassa werkt nu tegen die lokale kopie. Verbinding weg: de kassa verkoopt door, orders komen lokaal in de wachtrij, voorraad- en backend-opzoekingen zijn bevroren op de momentopname, en alleen-online betalingen kunnen niet voltooid worden. Verbinding terug: de orders in de wachtrij worden naar de server gestuurd, voorraadmutaties worden geboekt, conflicten (zoals twee kassa's die één exemplaar verkopen) komen in de backend naar boven, en je stemt af. De verkopen zijn veilig in alle drie de fasen. Wat niet gegarandeerd is, is dat je voorraadbeeld en je andere kassa's actueel waren tijdens de middelste fase. Plan voor die fase, en de rest komt vanzelf goed.

Dit blijft beheersbaar op één of twee kassa's met een fatsoenlijke verbinding. Hoe meer kassa's je draait, hoe langer je storingen, en hoe meer je aan de balie afhankelijk bent van actuele voorraad, hoe meer het offline-venster pijn kan doen, en hoe meer het de moeite waard is om eromheen te ontwerpen.

FAQ

Werkt Odoo POS offline?

Ja. Het Odoo Point of Sale draait in de browser en cachet de gegevens die het nodig heeft wanneer de sessie wordt geopend, zodat het orders blijft aannemen, totalen blijft berekenen en bonnen blijft afdrukken zonder internetverbinding. Orders worden lokaal opgeslagen en synchroniseren naar de server wanneer de verbinding terugkomt.

Wat gebeurt er met Odoo POS-orders wanneer het internet terugkomt?

Ze synchroniseren automatisch. Wanneer de verbinding hersteld is, toont Odoo een melding "niet-gesynchroniseerde orders" en stuurt de orders in de wachtrij naar de backend, waar vervolgens voorraadmutaties en boekhoudregels worden geboekt. Synchroniseer de wachtrij voordat je de sessie sluit, en sluit het apparaat nooit zolang er nog orders niet gesynchroniseerd zijn, anders kun je ze kwijtraken.

Werkt Odoo POS de voorraad bij terwijl het offline is?

Nee. De voorraad wordt in de backend afgeboekt wanneer de order de server bereikt, niet op de offline kassa. Terwijl het offline is, verkoopt de kassa tegen een momentopname die werd gemaakt toen de sessie werd geopend, dus ziet hij geen realtime voorraad of wat andere kassa's verkopen. De voorraad loopt bij zodra de orders synchroniseren.

Kunnen twee Odoo POS-kassa's hetzelfde product offline oververkopen?

Ja. Als twee kassa's tegelijk offline zijn, verkoopt elk vanuit zijn eigen momentopname en weet geen van beide dat de ander het laatste exemplaar heeft verkocht. Het conflict komt pas in de backend naar boven nadat beide hebben gesynchroniseerd. Houd kassa's waar mogelijk verbonden, en controleer snel lopende voorraad steekproefsgewijs na elke storing.

Waarom ontbreekt mijn Odoo POS-kaartbetaling na een storing?

Omdat een offline afgedrukte bon bewijst dat de order is aangeslagen, niet dat een online pinautomaat het geld heeft geïnd. Als de terminal het netwerk nodig heeft, is een offline kaartbetaling mogelijk nooit geïnd. Stem terminalrapportages na elke storing af op de kaarttotalen in de POS en stem af voordat je de sessie sluit.

Lees verder Waarom je Odoo-webshop de verkeerde prijs toont (varianten, prijslijsten en btw online)

Open kennis. Ben je een Odoo-partner die deze problemen ook oplost? Draag je eigen oplossingen bij en groei samen met het netwerk richting Gold.

Voor partners
Wanneer een partner inschakelen

Sommige problemen vragen om een paar handen, niet om een handleiding.

dooPartners is een wereldwijd netwerk van onafhankelijke, Odoo-gecertificeerde partners. Lokaal waar je bent, met het netwerk erachter wanneer een project groter wordt dan één bureau. Je houdt één aanspreekpunt, en je kiest met wie je werkt.

Vind een partner bij jou in de buurt