| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Point of Sale (point_of_sale) • Discuss (mail) • Inventory (stock) |
| Lines of code | 747 |
| Technical Name |
pos_credit_limit_request |
| License | OPL-1 |
| Website | https://idealitsetup.com/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Point of Sale (point_of_sale) • Discuss (mail) • Inventory (stock) |
| Lines of code | 747 |
| Technical Name |
pos_credit_limit_request |
| License | OPL-1 |
| Website | https://idealitsetup.com/ |
POS Credit Limit Request & Approval
Enforce customer credit limits at the Point of Sale with a controlled manager approval workflow
Overview
This module turns Odoo's silent customer credit limit into a hard, auditable control at the Point of Sale. When a cashier tries to close a credit (pay-later) order for a customer whose limit is exceeded — or who has no limit configured at all — the payment is blocked and a bilingual popup appears. From the same popup the cashier can request a new limit, which the manager reviews and decides on in the backend. Approvals update the customer's limit automatically and the POS is notified in real time.
Use Case: Retail and wholesale shops that grant credit terms to specific customers but want strict enforcement at the till, plus a clean, audited flow for raising those limits on the fly.
Key Features
| ✔ Hard block on credit sales — When the customer's credit limit would be exceeded, POS payment cannot be validated. |
| ✔ Block when no limit is set — Customers paying on credit must have a configured limit; otherwise the sale is blocked with a clear message. |
| ✔ Cash sales untouched — Only triggered for payment methods that create customer debt (split-transactions). Cash/card sales pass through unchanged. |
| ✔ Bilingual popup — All cashier-facing messages appear in both English and Arabic. |
| ✔ Touch-friendly request form — Large +/- stepper buttons and quick amount presets (+500, +1,000, +2,000, +5,000, +10,000). |
| ✔ Manager approval workflow — Pending / Approved / Rejected states with chatter, approver, decision date, and reason tracking. |
| ✔ Real-time POS notification — Cashier gets a sticky notification the moment the manager approves or rejects the request. |
| ✔ No duplicate requests — Only one pending request per customer; the popup shows the existing request details instead of creating a second one. |
| ✔ Partner limit locked — Credit limit and "Partner Limit" checkbox are read-only on the partner form. Changing them is only possible through the approval flow (enforced at model level). |
| ✔ "Request Credit Limit Change" button — Added directly to the partner form for backend-originated requests. |
| ✔ Dedicated security group — POS Credit Limit Manager group controls who can approve/reject. |
How It Works
| Step 1 – Cashier validates a credit order: The POS detects that a credit (pay-later) payment method is used and the customer either has no limit or will exceed it. |
| Step 2 – Popup is shown: The order is blocked. The popup lists the current limit, current used amount, order total, and projected total. |
| Step 3 – Cashier requests a new limit: Using the touch-friendly stepper or quick-amount buttons, the cashier enters a requested limit and optional reason, then submits. |
| Step 4 – Manager reviews in backend: The request appears under Point of Sale → Credit Limit Requests with full customer context. Manager clicks Approve or Reject. |
| Step 5 – Approval updates the partner: On approval the partner's credit limit is raised automatically and the Partner Limit flag is enabled. |
| Step 6 – POS is notified live: A bus notification reaches the open POS session. The cashier sees the result and can finalize the sale. |
Screens
1. Bilingual Block Popup with Touch-Friendly Request Form
Cashier selects a customer with no credit limit and tries to pay on credit. The order is blocked and the bilingual popup appears with a big +/- stepper and quick amount buttons.
2. Duplicate Protection — Existing Pending Request
If a pending request already exists for the customer, the popup displays its reference, requested amount, submitter and date — no duplicate is created.
3. Manager Backend — Approve / Reject
All requests land in a dedicated menu with state badges: Pending Approval, Approved, Rejected. Full audit trail with requester, approver, and timestamps.
4. Partner Credit Limit Locked
On the partner form, the credit limit is locked. Changing it is only possible through an approved request — enforced at both view and model level.
Security Groups
| Group | Permissions |
|---|---|
| POS Credit Limit – User | Read and create credit limit requests. |
| POS Credit Limit – Manager | Approve / Reject requests. Edit and delete requests. |
Technical Information
| Attribute | Value |
|---|---|
| Technical Name | pos_credit_limit_request |
| Version | 18.0.1.0.0 |
| Odoo Compatibility | Odoo 18 Community & Enterprise |
| Dependencies | point_of_sale, account |
| Category | Point of Sale |
| License | OPL-1 |
| Languages | English & Arabic (bilingual UI) |
Frequently Asked Questions
|
Q: Does this module block cash sales? A: No. Only payment methods marked with split_transactions (on-account / pay later) trigger the check. Cash and card payments are untouched. |
|
Q: What happens to the existing partner credit limit field? A: It becomes read-only on the partner form for every user. The only way to change it is through an approved request, which is enforced at the model level as well — not just the UI. |
|
Q: Can a cashier create multiple requests for the same customer? A: No. If a pending request already exists the popup displays its reference, requested amount, and submitter, with a prompt to wait for the manager's decision. |
|
Q: Do approvals require accounting invoices? A: No. Approvals work directly on the partner record. For accurate "current credit used" values, ensure POS credit sales are invoiced (standard Odoo behavior). |
|
Q: Does the cashier need to refresh POS after approval? A: No. A live bus notification updates the customer record inside POS. The cashier simply retries the payment. |
Contact & Support
$90 USD
Includes installation help, bug fixes, and email support.
| Developer: | Ahmed Magdy |
| Email: | qarsan4@gmail.com |
| Website: | idealitsetup.com |
| WhatsApp: | +966 50 981 8413 |
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