$ 15.97
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Sales (sale_management)
• Discuss (mail) • Invoicing (account) |
| Lines of code | 585 |
| Technical Name |
custom_sale_order_sequence |
| License | OPL-1 |
| Versions | 17.0 18.0 19.0 |
Sale order sequences,
your way.
Stop letting Odoo decide what your sale order sequence looks like. Pick the prefix, pick the length, and decide whether the sequence changes the moment a quote becomes an order.
|
✔
|
Existing data stays safe
Already have sale orders? We skip past them automatically.
On install, the module scans your existing sale orders and sets the counter to start past them. If your database already has 7 orders, your first new order is |
Two ways to number. Pick the one that fits how you work.
Some teams want the same number from quotation to invoice. Others want quotes and orders to look obviously different. One radio button switches between the two — change your mind any time.
One sequence, end to end.
The quote, the confirmation email, the invoice — everything carries the same sequence number. Customers don't get confused. Your accounts team never asks "which one is the real order?"
| RECOMMENDED |
|
STATE-BASED
|
Two sequences, one shared counter.
Quotes get a QT/ sequence, confirmed orders switch to S. Different prefix, same counter. Scan a list and you instantly know what's a draft offer and what's a real sale.
Built around how people actually use sale orders.
|
✥
Type anything. It just works.
Want |
☷
Pick how wide the number looks.
001, 0001, or 00001 — your call. After 999 the format just adds one more digit. Numbers stay unique forever — never recycled, never duplicated. |
↺
Reset in your timezone, not the server's.
Yearly, monthly, or never. When the new period starts where you are, the next quote starts at 1. No surprises at midnight UTC. |
|
❖
See the next five numbers as you type.
Edit the prefix — the preview updates right there. Save only when it looks the way you want. No surprises after the fact. |
🔒
One-off numbers, when you need them.
Got a special case? An admin opens the Set Custom Number wizard, types anything they like. It's logged to the chatter for audit. The main counter is untouched. |
☼
Every company runs its own counter.
Switch the company in the top bar, you get that company's settings and counter. No cross-company collisions, ever. |
See it in action.
Find it in the Apps catalogue.
Apps → search Custom Sale Order Sequence → click Activate. The module installs in seconds and a default config is created automatically.
|
odoo · /odoo/apps · Custom Sale Order Sequence
|
One click from the Sales menu.
Sales → Configuration → Sale Order Numbering. The new menu sits right at the top of the Configuration list, before any of the standard Odoo items.
|
odoo · Sales · Configuration · Sale Order Numbering
|
Set everything from one screen.
All three sections in a single view — numbering style, prefix/length/suffix, and counter reset. The live preview on the right updates the moment you type.
|
odoo · Sale Order Numbering · Continuous numbering
|
Switch the radio — two cards appear.
Flip to state-based mode and the form reveals two side-by-side cards: one for Quotation, one for Sale Order. Each gets its own prefix and length, but they share the same running counter.
|
odoo · Sale Order Numbering · State-based numbering
|
Step 1: create a quote.
With Continuous numbering active, a new quotation opens with your prefix and suffix already applied — for example SO/2026/001/IN. This is what the customer sees on the PDF you send them.
|
odoo · Sales · Quotation · SO/2026/001/IN · Continuous mode
|
Step 2: confirm — the number stays the same.
Hit Confirm. The quote becomes a Sale Order, but the number is still SO/2026/001/IN. One number from quote to invoice — no surprises for the customer, no confusion for accounts.
|
odoo · Sales · Sale Order · SO/2026/001/IN (unchanged after confirm)
|
Step 1: create a quote — it's clearly a quote.
With State-based numbering active, the new quotation opens with your Quotation prefix — for example QT/2026/00013. Anyone scanning the list knows immediately it's a draft offer, not a confirmed sale.
|
odoo · Sales · Quotation · QT/2026/00013 · State-based mode
|
Step 2: confirm — the prefix flips automatically.
Hit Confirm. The prefix swaps from QT/2026/00013 to SO/2026/00013 — same counter, different prefix. The chatter logs the change with full audit detail.
|
odoo · Sales · Sale Order · SO/2026/00013 (was QT/2026/00013)
|
Set Custom Number lives in the top bar.
Open any sale order — administrators and Sale Sequence Managers see a Set Custom Number button next to Confirm. Regular sales users don't see it, so the day-to-day workflow stays clean.
|
odoo · Sale Order · top bar · Set Custom Number button
|
Type the number, add a reason, hit apply.
Clicking the button opens a small wizard with the current number, a field for the new value, and an optional reason. The reason ends up in the chatter so the audit trail is complete.
|
odoo · Sale Order · Set Custom Number wizard
|
New number in place. Counter untouched.
The order's name is replaced with what you typed. The chatter shows who changed it, from what, to what, and the reason — a complete audit entry. The global counter keeps running as if nothing happened.
|
odoo · Sale Order · number updated · chatter audit entry
|
From install to first quote in under a minute.
No setup wizard, no preferences page. The module ships with sensible defaults and you can tweak them whenever you like.
Activate the module
Apps → search Custom Sale Order Sequence → Activate. A default config is set up for you automatically.
Open the config
Sales → Configuration → Sale Order Numbering. Pick a style, set the prefix and length. The preview updates as you type.
Hit save
Save when the preview looks the way you want. The next quote uses the new format — existing records stay as they are.
That's it
Carry on creating quotes the way you always did. Confirm them, cancel them, override individual numbers — the rest is automatic.
Built for Odoo 17, 18 & 19. Zero extra dependencies.
Install, refresh, done. No setup wizard, no external services, no Enterprise-only modules. Just the standard Odoo Sales module.
Everything you'd want to ask before installing.
Yes. The only dependency is |
Nothing. Old orders keep their original numbers — we never touch existing records. On install, the module scans your existing orders and starts the new counter past them, so your first new order continues from where you were. No collisions, no migration risk. |
||||
It grows: |
No. The counter is protected by a row-level Postgres lock — even if two people create quotes at the exact same moment, each one gets a unique number. |
||||
Yes. Each company has its own config and its own counter. Switch companies in the top bar — the right settings load automatically. |
No. The module only changes how sale order names are generated. Reports, integrations, eCommerce, POS, invoicing — all of them just read the new number and carry on, exactly as before. |
||||
Administrators and Sale Sequence Managers can use it. By default that's just the system admin — but you can promote any user: |
Existing orders keep the names they already have — the custom numbers are stored as plain text on each record. New orders go back to Odoo's default numbering. Clean removal, no data loss. |
Demo, support & customisation — straight from the author.
Hit me directly for installation help, custom prefixes, or a tailored deployment. Response within 24 hours on weekdays.
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