A resilient point-of-sale for ERPNext that keeps checkout running during internet outages and safely reconciles invoices, stock and payments the moment connectivity returns. Built, installed and supported by ECOSIRE on a build-to-order basis. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $399.00 USD; request a quote for a scoped proposal.

A resilient point-of-sale for ERPNext that keeps checkout running during internet outages and safely reconciles invoices, stock and payments the moment connectivity returns. Built, installed and supported by ECOSIRE on a build-to-order basis.
अभी कोई भुगतान नहीं। यह हमारी टीम को एक कोटेशन अनुरोध भेजता है — हम कीमत और अगले चरणों के साथ ईमेल द्वारा संपर्क करेंगे।
Retailers and restaurants in low-connectivity regions lose revenue every time the line drops. ERPNext's stock POS relies on a live connection to the server for pricing, item lookups and POS Invoice submission; when the network flaps, the till stalls, queues back up, and staff resort to paper slips that never make it back into the system. The native POS Profile and offline mode buffer some transactions in the browser, but they do not survive a full page reload or device restart, do not cache full item and pricing catalogs reliably, and give you no conflict-safe reconciliation when several offline terminals reconnect at once. That is exactly where ERPNext out of the box runs out of road for a shop that simply cannot stop selling.
Durable local-first checkout backed by IndexedDB — billing, item search and receipt generation survive full page reloads and device restarts, not just tab-level browser offline mode
Offline catalog cache of items, `Price List` rates, tax templates and stock levels, refreshed incrementally when online so pricing is correct even during an outage
Idempotency-keyed offline transaction queue — every sale carries a client-generated key, device id and sequence number so retries and double-taps never create duplicate `POS Invoice` records
Conflict-safe reconnect sync via whitelisted Frappe server methods and the REST API, replaying queued invoices in order with server-side deduplication
Custom `Offline POS Queue` and `POS Sync Log` DocTypes that give you a full audit trail of what synced, when, from which terminal, and what failed
`hooks.py` doc events validate and post each queued sale into `POS Invoice`/`Sales Invoice` against live ERPNext stock and pricing on reconnect
ECOSIRE builds Offline-First POS for ERPNext as a proper Frappe app installed on your bench (bench get-app / bench install-app), not a fragile browser hack. The checkout screen runs against a durable local store (IndexedDB) so billing, item search, price and tax lookup, and receipt generation all work with zero connectivity. Every sale is written locally first as a queued transaction with a client-generated idempotency key, then replayed to ERPNext through whitelisted server methods and the Frappe REST API when the link returns. On the server side we add custom DocTypes for the offline queue and sync ledger, hooks.py doc events to validate and post each POS Invoice/Sales Invoice, and a scheduler event that sweeps for stragglers so nothing is silently lost.
The sync engine is conflict-safe by design. Each terminal caches item prices, Price List rates, stock levels and customer records, and stamps every offline invoice with device id, sequence number and timestamp. On reconnect, the server-side handler deduplicates on the idempotency key (so a double-tap or a retry never creates two invoices), validates stock and pricing against current ERPNext state, and flags genuine conflicts — for example an item that went out of stock while the terminal was offline — into a review queue instead of guessing. ESC/POS receipt printing runs entirely offline over USB or network printers, and cash, card and mobile-wallet tenders are captured against the correct Mode of Payment and reconciled into the ERPNext POS Closing Entry at end of shift. Role profiles and permissions gate who can void, discount, reopen a shift or resolve a sync conflict.
Because this is build-to-order, we start from your real scope: your ERPNext version (v15 or v16), your item and pricing structure, tender types, printer models, and how many terminals need to run dark. ECOSIRE writes the app, adapts DocTypes, server scripts, client scripts and permissions to fit your workflow, tests it on a staging bench, and installs it on your production instance. Typical delivery is 2 to 4 weeks from confirmed scope — there is no instant download, and we do not resell a generic marketplace listing. You get the installable source for your version, documentation, training, a post-go-live support window and the git repository so your team is never locked in.
Runs several tills across shops where the internet is intermittent. Needs every terminal to keep billing during outages and reconcile into one ERPNext instance without duplicate invoices or lost sales when the line comes back.
Cannot let a dropped connection stall the counter during a rush. Needs fast offline order entry, local ESC/POS receipt and kitchen printing, and mixed cash/card/wallet tenders that close out cleanly into ERPNext at end of shift.
Owns the ERPNext instance and wants a real Frappe app with clean DocTypes, permissions and a documented sync ledger — not a browser hack — that they can audit, upgrade across v15/v16 and maintain via the handed-over git repo.
Accountable for reconciliation and stock accuracy. Needs confidence that offline sales post correctly against the right `Mode of Payment` and stock, that conflicts are flagged for review, and that `POS Closing Entry` totals match the till.
Buy the license on ecosire.com and download the Offline-First POS for ERPNext app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install Offline-First POS for ERPNext and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Works through a full internet outage | Durable IndexedDB local store — bills, prints and queues with zero connectivity | Possible but you build and test the whole offline layer yourself | Browser offline mode only; often breaks on reload or device restart | |
| Duplicate-invoice protection on reconnect | Idempotency key + device/sequence dedup on the server | Must design and prove your own dedup scheme | Rarely handles simultaneous multi-terminal reconnects | |
| Conflict handling (stock/price drift) | Server validates and routes real conflicts to a review queue | You define conflict rules from scratch | Typically last-write-wins or silent failure | |
| Offline ESC/POS printing | Local USB/network printing with your branding and tax lines | Printer integration is your effort | Often cloud-dependent print paths | |
| Multi-tender + shift close | Cash/card/wallet booked to correct `Mode of Payment`, into `POS Closing Entry` | You wire tenders and closing logic yourself | Varies; offline tenders often not reconciled | |
| Fit to your workflow | Built to order for your items, tenders, printers and ERPNext version | Fully bespoke but slow and costly to reach parity | Generic; configure around its assumptions | |
| Code ownership | Full git repo + installable source handed over | You own it (and all the maintenance) | Vendor-controlled, usually closed or licensed | |
| Delivery model | Build-to-order, 2–4 weeks, staging UAT + rollback plan | Weeks to months depending on your team | Instant install but no offline guarantees for your case |
No. Offline-First POS for ERPNext is build-to-order. ECOSIRE writes, adapts and installs the Frappe app for your specific ERPNext version and workflow — there is no instant download or generic marketplace listing. You receive the installable source and the git repository as part of delivery.
Typical delivery is 2 to 4 weeks from confirmed scope. The timeline depends on your ERPNext version, item and pricing complexity, tender types, printer models and how many terminals need to run offline. We lock the scope first, then build, test on staging and install on production.
Every offline sale is stamped with a client-generated idempotency key plus a device id and sequence number. On reconnect, the server-side sync handler deduplicates on that key before posting, so retries, double-taps and simultaneous multi-terminal reconnects can never produce two `POS Invoice` records for the same sale.
The reconnect handler validates each queued invoice against current ERPNext stock and pricing. Clean sales post automatically; genuine conflicts — such as an item that sold out elsewhere while you were offline — are routed to a review queue with full context, so nothing is silently overwritten or guessed at.
We build and pin the Frappe app for Frappe/ERPNext v15 or v16, installable via `bench install-app`. Tell us your exact version during scoping and we target it. Cross-version upgrades can be quoted separately.
Delivery includes a post-go-live support window for bug fixes and sync-behavior tuning. Because you receive the full git repository, your team can maintain and extend the code independently, and ECOSIRE can provide ongoing support or version upgrades under a separate agreement.
Yes. Receipts print locally over USB or network ESC/POS printers with no server round-trip. Cash, card and mobile-wallet tenders are captured offline against the correct `Mode of Payment` and reconciled into the ERPNext `POS Closing Entry` when the shift closes and the terminal syncs.
A resilient point-of-sale for ERPNext that keeps checkout running during internet outages and safely reconciles invoices, stock and payments the moment connectivity returns. Built, installed and supported by ECOSIRE on a build-to-order basis.