| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) • Inventory (stock) |
| Lines of code | 482 |
| Technical Name |
suite_consignment_cogs |
| License | LGPL-3 |
| Website | https://suitestate.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) • Inventory (stock) |
| Lines of code | 482 |
| Technical Name |
suite_consignment_cogs |
| License | LGPL-3 |
| Website | https://suitestate.com |
Consignment Settlement Ledger
Line-level matching between consigned customer-invoice outbounds and vendor settlement bills
Overview
Odoo's native consignment flow handles inventory valuation correctly: vendor-owned stock contributes zero value at delivery, so a customer invoice's COGS reflects only the own-stock portion. The consigned cost is recognised separately when the vendor's settlement bill is posted.
What is missing in native is the matching surface between those two events. This module adds a per-line settlement ledger that tracks each consigned outbound on a customer invoice and allows accounting to match it to the corresponding vendor bill, with status tracked automatically.
No configuration required. No new accounts created. The module activates on installation and is silent for invoices that contain no consigned stock.
Functionality
Customer invoice posted
For every invoice line that ships consigned stock, one ledger row is created per (invoice line × consigning vendor) combination, recording the outbound quantity in the invoice line's UoM. A notebook tab on the customer invoice form lists the settlement rows. A “Consignment Pending” flag is set on the invoice.
Vendor settlement bill
Accounting opens the settlement ledger from Accounting → Customers → Consignment Settlement, filters by vendor, pending status, or date range, and assigns the Vendor Bill on each row. The unit cost auto-fills from the first matching product line on the bill and remains editable. Each settled row turns green; the invoice's pending flag clears once all rows are matched to a posted bill.
Customer credit note (returns)
When a credit note is posted, the module creates proportional negative-quantity copies of the original invoice's ledger rows, anchored to the credit note. Each reverse row carries a link back to the originating row for traceability.
Workflow
- Receive vendor-owned stock with an owner on the receipt move (standard Odoo consignment flow).
- Sell mixed (own + consigned) units to a customer. Confirm and deliver.
- Post the customer invoice. Ledger rows are created automatically for the consigned portion.
- Create the vendor settlement bill through the standard vendor bill flow.
- Open the settlement ledger, assign the Vendor Bill on each row, verify the auto-filled product cost.
- For returns: post a customer credit note. Reverse ledger rows are created. Match each to a vendor credit when it arrives.
Permissions
The module reuses native Accounting groups. No new group is added.
| Group | Access on settlement ledger |
|---|---|
Invoicing (account.group_account_invoice) |
Read |
Accountant (account.group_account_user) |
Read / Write / Create |
Adviser (account.group_account_manager) |
Read / Write / Create / Delete |
Scope
Covered
- Per-line settlement ledger on customer invoices with consigned stock
- Vendor bill assignment and auto-filled product cost
- Proportional reverse rows on customer credit notes
- Pending / settled status tracking per row
- Anglo-Saxon and Continental valuation methods
- Multi-company and multi-currency
- Pure-consigned and mixed (own + consigned) sales
Not in scope
- Outbound consignment (own stock placed at customer locations).
- Splitting a single consigned outbound across multiple vendor bills.
- Automatic accrual at invoice posting — consignment cost recognition follows the vendor bill posting event.
- A vendor-bill matching wizard. Settlement is performed by selecting the bill on each ledger row.
Compatibility
- Odoo 19.0 (Community and Enterprise).
- Depends on:
mail,stock_account,sale_stock. - Works alongside
suite_inventory_accessfor cross-jumping from ledger rows to stock moves, but each module is fully independent.
License & support
Released under the GNU Lesser General Public License v3
(LGPL-3.0-or-later). The full license text is included in the
LICENSE file shipped with the module.
Maintained by SuiteState. For questions, bug
reports, or feature requests, visit
suitestate.com or contact
hello@suitestate.com.
Please log in to comment on this module