Skip to main content
Customer-Facing Display (CFD) for ERPNext POS — A second-screen customer display that mirrors the live ERPNext POS cart, runn — 1/1Illustrative preview

A second-screen customer display that mirrors the live ERPNext POS cart,

running totals, tax/discount breakdown, promotions and a digital receipt QR. Built to order by

ECOSIRE for ERPNext v15/v16, then installed and supported.

What is Customer-Facing Display (CFD) for ERPNext POS?

A second-screen customer display that mirrors the live ERPNext POS cart, running totals, tax/discount breakdown, promotions and a digital receipt QR. Built to order by ECOSIRE for ERPNext v15/v16, then installed and supported. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Read-only second-screen route served by the Frappe web framework, paired per terminal via the `POS Profile` (no cashier UI is exposed to the customer)
Live itemized cart mirroring driven by a client script on the `Point of Sale` page publishing mutations over the built-in socket.io realtime channel
Running total with a full tax and discount breakdown computed from the same `Sales Taxes and Charges` and `Pricing Rule` logic ERPNext applies
Per-terminal realtime rooms via `frappe.realtime.publish` so multiple lanes never cross-talk
Applied coupon codes, `Pricing Rule` discounts and item-level price changes reflected the instant the cashier acts
Promotional and ad content rotation between sales, triggered automatically on terminal idle with configurable timeout
Digital receipt QR rendered on `POS Invoice` submit via a `hooks.py` `on_submit` doc event
Loyalty enrolment / receipt-link QR wired to your `Loyalty Program` or an external hosted receipt
Optional tip-prompt shown at checkout with configurable preset amounts and percentages
Post-sale feedback capture (rating + comment) written to a custom DocType so responses stay queryable in ERPNext report view
`CFD Settings` DocType governing branding, ad media, idle timeout and per-terminal pairing, with its own permission rules
Whitelisted methods and standard Frappe REST API endpoints, gated by dedicated role profiles so only the POS role can drive a display
Scheduler event that housekeeps stale display sessions and rotates scheduled promotional content
Bench-installable Frappe app (`ecosire_cfd`) with migration-safe fixtures, compatible with ERPNext v15 and v16

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

At the counter, ERPNext POS shows the cashier a full cart, but the customer sees nothing until the receipt prints. That opacity costs trust: shoppers can't confirm items and prices as they're scanned, disputes surface after payment, and the idle second screen every retailer already owns shows a Windows desktop instead of your promotions. ERPNext core has no customer-facing display surface — the POS Awesomebar and cart live entirely inside the cashier's Point of Sale page, there's no read-only mirrored view, and nothing publishes cart state to an external screen in real time. This is where a native ERPNext build, rather than a bolt-on kiosk, pays off.

We build a proper Frappe app (ecosire_cfd) installed onto your bench alongside ERPNext, not a scraped overlay. The core is a lightweight public display route served by the Frappe web framework that subscribes to POS events over the built-in socket.io realtime channel. A client script injected into the Point of Sale page publishes cart mutations — item add/remove, quantity change, applied Pricing Rule discounts, coupon codes, and net/tax/grand totals — via frappe.realtime.publish scoped to a per-terminal room derived from the POS Profile. The display route renders the itemized cart, a running total with a full tax and discount breakdown computed from the same Sales Taxes and Charges logic ERPNext uses, and swaps to promotional/ad content between sales when the terminal is idle. Nothing is duplicated or re-keyed: the display reflects exactly what the cashier's POS state holds.

On checkout, hooks.py doc events on POS Invoice (on_submit) generate a digital receipt and render a QR code on the customer screen — linking to a hosted receipt or feeding a loyalty enrolment flow — plus an optional tip-prompt and a short feedback capture (rating/comment) written back to a custom DocType so the data stays queryable inside ERPNext. Content, ad rotation, per-terminal pairing and idle timeouts are governed by a CFD Settings DocType with its own permissions, and a scheduler event housekeeps stale display sessions. Everything is exposed through whitelisted methods and the standard Frappe REST API, guarded by role profiles so only the POS terminal role can drive a given display. It runs on ERPNext v15 and v16.

Because this is build-to-order, we start from your actual checkout flow rather than shipping a fixed product. After a short scoping call we confirm the terminal hardware, branding, promo/loyalty and tip requirements, then build against your scope. Typical delivery is one working week from confirmed scope. You get the installable source for your version, staged UAT on a copy of your site with a rollback plan, install and configuration on your environment, documentation, a training session, a git repo handover, and a post-go-live support window. No instant download, no generic template — a display built for your ERPNext POS and supported by the team that wrote it.

What you get

  • Installable source code for your ERPNext version (v15 or v16), delivered as a proper bench-installable Frappe app
  • Installation and configuration on your environment, including per-terminal `POS Profile` pairing and role setup
  • Technical documentation: DocTypes, hooks, whitelisted methods, realtime channels and configuration reference
  • End-user guide plus a live training session for cashiers and store managers
  • UAT on a staging copy of your site with a documented rollback plan before any production change
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with full commit history and setup instructions
  • Handover call covering deployment, updates and how to extend the app in future

Who this is for

Independent retail store owner

Runs one or a few ERPNext POS lanes and wants shoppers to see each item and price as it's scanned, cutting checkout disputes and building trust at the counter without buying separate kiosk software.

Restaurant or QSR operator

Needs a customer-facing screen that shows the live order, applied combo/discount rules and a tip-prompt at payment, plus a feedback capture — all tied back into the same ERPNext POS the staff already use.

Multi-branch retail IT manager

Standardizes on ERPNext across locations and needs a per-terminal, role-gated display app that deploys consistently on the bench for v15/v16, with clean source and a git handover rather than an opaque third-party binary.

Marketing or store-experience lead

Wants the idle second screen to run branded promotions and loyalty/receipt QR flows between sales, driving enrolment and repeat visits directly from the checkout moment.

How Customer-Facing Display (CFD) for ERPNext POS Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Fit to your POS flowBuilt against your actual checkout, terminals and rulesFully bespoke but you own the build effortGeneric layout, limited to the vendor's assumptionsNo customer-facing display exists at all
Realtime cart mirroringNative socket.io per-terminal rooms, no re-keyingPossible, but you design the channel yourselfOften polling-based or partial mirroringCart is visible only on the cashier screen
Tax & discount breakdownUses ERPNext's own Sales Taxes and Pricing Rule logicMust be reimplemented and kept in syncMay recompute totals and drift from POSShown only inside the cashier POS page
Promos, loyalty QR & tipsIdle ad rotation, receipt/loyalty QR, tip-prompt includedEach feature built from scratch on your budgetSome included, often as paid add-ons or fixedNot available
ERPNext v15/v16 supportDelivered and tested for your exact versionDepends on your team's version disciplineVersion support varies; upgrades can break itN/A
Source & handoverFull source, git repo handover, you own itYou own it, but also the maintenance overheadUsually closed-source binary or licensedN/A
Install & UATInstalled on your env, staged UAT + rollback planYour team plans and runs deploymentSelf-serve install, limited hand-holdingN/A
Support after launchPost-go-live support window from the buildersIn-house only, no external safety netTicket queue, generic and impersonalCommunity forums only

Frequently Asked Questions about Customer-Facing Display (CFD) for ERPNext POS

Is this a ready-made app I can download and install today?

No. This is a build-to-order engagement. ECOSIRE builds the customer-facing display against your specific POS flow, terminals and branding, then installs and supports it. There is no instant download or off-the-shelf marketplace binary.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After a short scoping call we lock the requirements — terminal hardware, promo/loyalty and tip needs, branding — and the timeline runs from that agreed scope, not from first contact.

Which ERPNext versions are supported?

We build for ERPNext v15 and v16 as a proper bench-installable Frappe app. During scoping we confirm your exact version and bench setup so the delivered source matches your environment.

How does the display stay in sync with the cashier's POS in real time?

A client script on the `Point of Sale` page publishes cart mutations over Frappe's built-in socket.io realtime channel to a per-terminal room. The display route subscribes to that room, so items, discounts and totals update the instant the cashier acts — no polling, no re-keying.

Does it need a separate server or third-party service?

No. It runs entirely inside your existing ERPNext bench — DocTypes, hooks, whitelisted methods, realtime and scheduler are all native Frappe. The display is just an additional route served by your site; you only need a second screen at each lane.

What about updates and support after go-live?

Every engagement includes a post-go-live support window for defect fixes and configuration adjustments, plus a git repository handover so you own the source. Ongoing enhancements or an extended support/maintenance retainer can be scoped separately.

Can it handle promotions, loyalty and tips, not just the cart?

Yes. Between sales the idle screen rotates branded promotional content; at checkout it renders a receipt/loyalty QR on `POS Invoice` submit, can show a configurable tip-prompt, and captures a post-sale rating/comment into a custom DocType that stays queryable inside ERPNext.

Request a quote

Customer-Facing Display (CFD) for ERPNext POS

A second-screen customer display that mirrors the live ERPNext POS cart, running totals, tax/discount breakdown, promotions and a digital receipt QR. Built to order by ECOSIRE for ERPNext v15/v16, then installed and supported.

  • Read-only second-screen route served by the Frappe web framework, paired per terminal via the `POS Profile` (no cashier UI is exposed to the customer)
  • Live itemized cart mirroring driven by a client script on the `Point of Sale` page publishing mutations over the built-in socket.io realtime channel
  • Running total with a full tax and discount breakdown computed from the same `Sales Taxes and Charges` and `Pricing Rule` logic ERPNext applies
  • Per-terminal realtime rooms via `frappe.realtime.publish` so multiple lanes never cross-talk

Request a Quotation

Tell us about your Customer-Facing Display (CFD) for ERPNext POS requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.