Custom ERP and connected point of sale
Dolibarr 22 with 8 custom modules, a connected POS and e-invoicing
Key figures
- custom modules
- 8
- lines of code
- ~53,000
- faster product list
- 4×
Context
The store needed complete sales management: point of sale, stock, inventory, and legal and electronic invoicing. All of it had to stay connected to the online store.
My role
Design, architecture, development of the custom modules, deployment and operations, fully autonomously.
Solution
The ERP runs on a containerised Dolibarr 22, extended with 8 custom-built modules (~53,000 lines). They cover supplier price list imports, multi-user inventory on handheld scanners with offline mode, Peppol e-invoicing, point-of-sale payments and bulk catalogue tools. A REST API feeds the online store with WebP images, stock levels and a notification queue.
For the point of sale, I took over an open-source module, migrated it from Dolibarr 12 to 22, then extended it: ESC/POS receipt printing, a card payment terminal, an automatic cash machine and gift cards. This work builds on a hardware integration study of the cash machine connector.
Key features
Offline multi-user inventory
Several people count stock in parallel on handheld scanners, even without a network.
Peppol e-invoicing
UBL 2.1, BIS Billing 3.0 and EN 16931, with backoff retries and incoming invoice handling.
Hardware-connected point of sale
ESC/POS receipts, a card payment terminal, an automatic cash machine and gift cards.
Flexible in-store payments
Card, cash through an automatic cash machine, bank transfer and parked sales.
Engineering challenges
- 1
Measured, then optimised
POS opening cut from 11 s to 3-6 s, product list from 2.8 s to 0.64 s.
- 2
POS migrated from Dolibarr 12 to 22
An open-source module taken over, ported to version 22 and then extended.
- 3
Deduplicated Borg backups
8.7 GB of data stored in 3.15 GB.
- 4
Automatic health checks
A health check automatically restarts the service when it fails.
Tech stack
- Backend
- Dolibarr 22PHP 8
- Frontend
- JavaScript
- Data
- PostgreSQL 16IndexedDB
- Infrastructure
- DockerNginxCloudflare TunnelTailscaleGitHub ActionsBorg
A project of this scale?
Let's talk about your context: I'll tell you frankly what is feasible, and how long it takes.