$ 10.03
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Inventory (stock) • Point of Sale (point_of_sale) • Discuss (mail) • Invoicing (account) |
| Lines of code | 474 |
| Technical Name |
sp_pos_refund_restriction |
| License | OPL-1 |
| Website | https://softprimeconsulting.com/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Inventory (stock) • Point of Sale (point_of_sale) • Discuss (mail) • Invoicing (account) |
| Lines of code | 474 |
| Technical Name |
sp_pos_refund_restriction |
| License | OPL-1 |
| Website | https://softprimeconsulting.com/ |
POS Refund Restriction
Secure & Controlled POS Refunds with Role-based Access and Rule Validation.
✨ Key Features
Refund Access Control
Allow refunds only to authorized POS users.
Manager Approval
Restrict refund action until a manager validates.
Refund Reason Mandatory
Refund action requires a reason for accountability.
Order-Level Validation
Prevents refund unless original order data matches.
User Role Based Rules
Different rules for cashier, supervisor, and manager.
POS Config Level Control
Enable or disable refund restriction per POS session.
⭐ Smart Refund Logic (Damage / Scrap / Size Issue Handling)
Odoo’s default POS **treats every refund the same way**. No matter the reason—damage, customer
mistake, size issue, or product defect—Odoo increases inventory for every returned item.
🚫 Limitations in Odoo Default
- Refund always increases stock, even for broken or unsellable items
- No option to classify refunds as *damage* or *scrap*
- Leads to inaccurate inventory and misleading stock availability
- No proper tracking of product loss or quality issues
✅ How Our Module Improves This
- Damage Product → Creates a Scrap Entry and does NOT increase stock
- Size Issue / Exchange / Other valid reasons → Behaves like Odoo default and increases stock
- Accurate inventory reporting even with high return volume
- Transparent & traceable refund categories for audits
⏳ Refund Days Restriction
Implement a powerful safeguard that limits refunds based on the number of days after purchase.
This prevents misuse, fraud, and unauthorized returns on very old orders.
📌 Odoo Default Behavior
- No built‑in restriction on refund date
- Old orders (even months old) can be refunded anytime
- Increases risk of system misuse and incorrect stock adjustments
✅ What Our Module Adds
- Set a specific number of Refund Days per employee
- Refund allowed only if order date is within the allowed window
- Refunds on older orders are automatically blocked
- Enhanced security, accountability, and inventory accuracy
📌 Installation
- Place the module inside your Odoo
addonsfolder. - Update the app list from Apps menu.
- Search and install POS Refund Restriction.
- Open POS → Settings to configure access rules.
🔎 Detailed Step-by-Step Flow
A clean visual walkthrough of the complete POS Refund Process
Go to Employees → Settings and configure Refund Days allowed for the employee.

Open POS Config and activate Login with Employees. Assign employee rights (Basic / Advanced).

Inside POS session click Actions then select Refund to begin the return workflow.
Choose the POS order to refund, enter the quantity to be returned and click Refund.
Enter PIN, select Refund Type (Damaged / Not Damaged), and provide Refund Reason.

Not Damaged: Inventory
increases normally.
Damaged: System creates Scrap Entry (no stock increase).
For damaged products, select "Defected/Damaged". After confirming, inventory will NOT increase and Scrap Entry will be created automatically. .
All refunded orders appear under Point of Sale → Orders → Refunded Orders.
For damaged refunds, scrap entries are auto‑generated in Inventory → Operations → Scrap.

Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module