| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 350 |
| Technical Name |
vizion_barcode_refund_flow |
| License | LGPL-3 |
| Website | https://viziontools.com |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 350 |
| Technical Name |
vizion_barcode_refund_flow |
| License | LGPL-3 |
| Website | https://viziontools.com |
| Versions | 18.0 19.0 |
POS Receipt Barcode & Refund
EAN-13 Barcode Generation & Scan-to-Refund Flow for Odoo Point of Sale
Community
Enterprise
Odoo.sh
Refunds in three steps. Scan, review, refund.
Generate EAN-13 barcodes for every POS order and print them automatically on receipts. Cashiers can scan a receipt barcode to instantly pull up the original order and complete a refund — no manual search, no errors, no delays. Works on Odoo Community, Enterprise, and Odoo.sh.
What This Module Does
The POS Receipt Barcode & Refund module extends Odoo's Point of Sale with two powerful capabilities: it auto-generates a unique EAN-13 barcode for every POS order and prints it on the customer's receipt, and it enables a seamless scan-to-refund workflow so cashiers can process returns by simply scanning the receipt barcode — no manual order lookup required.
Why Barcode-Driven Refunds Matter
Returns and refunds are among the most time-consuming and error-prone interactions at any POS counter. Without a structured refund workflow, cashiers must manually search for the original order by date, customer name, or product — a process that slows queues and increases the chance of refunding the wrong item or amount.
By embedding an EAN-13 barcode directly on the receipt, this module makes every transaction self-documenting. The barcode is the order. Scan it, review it, refund it — the entire return workflow is reduced to three steps, regardless of how long ago the purchase was made.
The Refund Flow — Step by Step
Customer presents receipt
The customer brings back their printed receipt which contains the EAN-13 barcode generated at the time of purchase.
Cashier scans the barcode in POS
In an active POS session, the cashier scans the barcode from the receipt using any standard barcode scanner. The barcode field is visible in the POS search bar.
Original order loads automatically
The system instantly retrieves the matched POS order — showing the receipt number, order number, date, cashier, total, and full product breakdown. No typing or searching needed.
Review order details
The cashier can see the complete order: product name, quantity, unit price, and order total. This ensures the correct transaction is being refunded.
Click Refund to process the return
With one click on the Refund button, the system creates a negative order and moves to the payment screen to issue the refund via Cash, Card, or Customer Account.
Validate the refund payment
The cashier selects the refund payment method, the Remaining balance shows 0.00 once matched, and clicking Validate completes the return. A refund receipt is generated.
Key Features
Automatic EAN-13 barcode generation
A unique EAN-13 compliant barcode is auto-generated for every POS order at the moment of sale and stored directly on the order record.
Barcode printed on every receipt
The barcode renders automatically on the printed POS receipt — no configuration per transaction is required.
Scan-to-refund workflow
Cashiers scan the receipt barcode to instantly load the original order. The full order details are shown before the refund is initiated, preventing errors.
Barcode stored in Odoo backend
The EAN-13 barcode value is reflected on the POS order in the Odoo backend for full traceability, auditing, and reporting.
Per-shop configuration
Enable or disable the barcode feature independently for each POS shop from the quick settings panel — no system-wide toggle.
All refund payment methods supported
Refunds can be issued via Cash, Card, or Customer Account — matching the original payment method or a different one as needed.
Clean negative order creation
The refund creates a properly signed negative POS order that integrates with Odoo accounting journal entries automatically.
Community, Enterprise & Odoo.sh
Works identically across all three Odoo deployment types without extra configuration or separate modules.
Business Benefits
- Reduce refund processing time from minutes to seconds by eliminating manual order search.
- Eliminate refund errors — the barcode scan ensures the exact original order is always loaded.
- Improve customer experience at the return counter with faster, hassle-free processing.
- Create a full audit trail — every order has a unique barcode traceable in the Odoo backend.
- Reduce cashier training time — the scan-to-refund workflow is intuitive and requires no ERP knowledge.
- Prevent fraudulent returns — barcode links to a specific order with verified total and products.
- Works with existing barcode scanners — no new hardware investment required.
Demo / Preview
The following preview walks through the complete workflow in order — from installation and configuration through to scanning the barcode, retrieving the order, and validating the refund.
1. Installing the Module from Odoo Apps
Search for "refund" or "vizion_barcode_refund_flow" in the Odoo Apps menu. The module appears under the Point of Sale category. Click Install to begin. Compatible with Community, Enterprise, and Odoo.sh.
2. Enabling "Show Barcode on Receipt" in POS Configuration
Navigate to Point of Sale → Configuration → Point of Sale, then open your shop. Enable the "Show barcode on receipt" checkbox. A tooltip confirms: "Based on the order barcode is generated." Save the settings to activate for all new orders in that session.
3. Scanning the Barcode in the POS Session
Open an active POS session. Click the search area at the top of the screen and scan the barcode from the customer's receipt using a barcode scanner, or type the barcode number manually. The system processes it instantly and navigates to the matched order.
4. Order Search Result & Refund Button
After scanning, the system instantly retrieves the original paid order. Full order details are shown on the right panel: product, quantity, unit price, and total. The Refund button appears at the bottom of the panel.
5. Refund Payment Screen
After clicking Refund, the POS payment screen opens with the negative order amount. The cashier selects the payment method — Cash, Card, or Customer Account. Once the payment method is applied, the Remaining balance turns green at 0.00, confirming the refund is fully matched and ready to validate.
Business Use Cases
This module is designed for any retail or hospitality business running Odoo POS where refunds are a regular part of operations.
| Business Type | Challenge | How This Module Helps |
|---|---|---|
| Retail Furniture Store | Customers return items days or weeks after purchase; staff struggle to find the original order manually. | Scan the receipt barcode to instantly load the original order regardless of when it was placed. |
| Clothing & Apparel Shop | Size exchanges and returns create long queues; different cashiers handle the sale and the return. | Any cashier in any POS session can scan the receipt to retrieve the full order and process the exchange instantly. |
| Bakery & Cafe | Customers request refunds for incorrect items; receipts are the only proof of purchase. | The barcode on the receipt is a tamper-evident link to the exact order — cashier scans and refunds with full confidence. |
| Electronics Retailer | High-value returns require accurate product and price verification before processing. | The scan loads the original order showing exact product name, quantity, and unit price — preventing over-refunding or fraud. |
| Multi-Store Franchise | Returns at a different branch than the original purchase create cross-session lookup problems. | Barcode is stored in the Odoo backend — any branch can scan and access the original order from any POS session. |
| Supermarket / Grocery | High transaction volumes make manual receipt lookup impractical at peak hours. | Barcode scan retrieves the order in under a second — cashiers spend zero time searching, keeping queues moving. |
| Boutique Hotel Gift Shop | Guests return items and check out before a traditional refund can be processed. | Scan-to-refund takes seconds — the entire return is completed before the guest's checkout. |
Installation & Configuration
Enable Barcode on Receipt (Per Shop)
- Go to Point of Sale in the main menu.
- Click Configuration → Point of Sale from the top navigation bar.
- Select the POS shop where you want to enable the feature.
- A settings popup will appear. Scroll to find "Show barcode on receipt".
- Check the checkbox to enable it. The tooltip confirms: "Based on the order barcode is generated."
- Click Save. The setting takes effect for all new orders in that session.
Technical Details
| Module Name | vizion_barcode_refund_flow |
| Barcode Standard | EAN-13 (International Article Number, 13-digit) |
| Odoo Version | Odoo 19 |
| Compatible Editions | Community, Enterprise, Odoo.sh |
| Category | Point of Sale |
| Author | Vizion Tools |
| Hardware | Works with any USB or Bluetooth barcode scanner |
| Accounting Integration | Refund creates proper negative journal entries automatically |
| Backend Traceability | Barcode value stored and visible on POS order record |
Frequently Asked Questions
Does this module work with Odoo Community edition?
Yes. The module is fully compatible with Odoo Community, Enterprise, and Odoo.sh. The barcode generation and refund flow work identically across all three deployment types.
Do I need a special barcode scanner?
No. The module works with any standard USB or Bluetooth barcode scanner that supports EAN-13. It also supports manual entry of the barcode number in the POS search bar — no scanner hardware is strictly required.
Can I enable the feature for only some of my POS shops?
Yes. The "Show barcode on receipt" setting is configured independently per POS shop. You can enable it for one shop but leave it disabled for another.
Is the barcode stored permanently on the order?
Yes. The EAN-13 barcode value is stored on the POS order record in the Odoo backend. You can view it by navigating to Point of Sale → Orders and opening any individual order.
What happens if the receipt is lost?
The barcode value is stored in Odoo's database. If the customer knows the receipt number or order number, staff can look up the barcode in the backend and enter it manually in the POS search bar to initiate the refund.
Does the refund integrate with Odoo Accounting?
Yes. The refund creates a properly signed negative POS order that generates the corresponding accounting journal entries automatically — no manual adjustment is needed.
Vizion Tools | vizion_barcode_refund_flow
Available on Odoo App Store · Community · Enterprise · Odoo.sh
viziontools.com
Please log in to comment on this module