Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Sales
  3. Custom Sale Order Sequence | Quotation vs Sale Order Numbering for Odoo v 19.0
  4. Sales Conditions FAQ

Custom Sale Order Sequence | Quotation vs Sale Order Numbering for Odoo

by Sheetal Chauhan
Odoo

$ 15.97

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
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
LicenseOPL-1
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
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
LicenseOPL-1
Versions 17.0 18.0 19.0
  • Description
  • License
Odoo 17 · 18 · 19  |  Community & Enterprise

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.

✓ Your prefix, your suffix ✓ Quote and order can look different ✓ Override any number, anytime
2modes
Continuous or state-based
3resets
Never · Monthly · Yearly
0gaps
Postgres row-level locking
0setup
Custom sequence works on install
✔
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 SO/00008. Old numbers never change. No collisions, no surprises, no migration script.

Two modes, one switch

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.

CONTINUOUS

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?"

S00001 → S00001 · on confirmation
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.

QT/00001 → S00001 · same counter, new prefix
Built for actual work

Built around how people actually use sale orders.

✥
Type anything. It just works.

Want SO/2026/ as a prefix? Type it. Want -EXPORT as a suffix? Done. Whatever fits your company — that's the format.

☷
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.

Visual tour

See it in action.

01 · ON THE APPS PAGE

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
Custom Sale Order Sequence on the Odoo Apps page
02 · OPEN THE MENU

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
Sales Configuration menu showing Sale Order Numbering
03 · CONTINUOUS 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
Configuration form in Continuous numbering mode showing style, format and reset
04 · STATE-BASED 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
Configuration form in State-based numbering mode showing Quotation and Sale Order cards
05 · CONTINUOUS MODE — CREATE A QUOTE

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
New quotation in Continuous mode showing the prefix
Confirm ↓
06 · CONTINUOUS MODE — CONFIRM

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)
Confirmed Sale Order in Continuous mode with number unchanged
07 · STATE-BASED MODE — CREATE A QUOTE

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
New quotation in State-based mode showing the QT prefix
Confirm ↓
08 · STATE-BASED MODE — CONFIRM

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)
Confirmed Sale Order in State-based mode with prefix flipped and chatter log
09 · THE BUTTON

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
Set Custom Number button visible in the sale order top bar
10 · THE WIZARD

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
Set Custom Number wizard with reason field
Apply ↓
11 · NUMBER UPDATED

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
Sale Order showing the new custom number and chatter audit log
How it works

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.

STEP 01

Activate the module

Apps → search Custom Sale Order Sequence → Activate. A default config is set up for you automatically.

STEP 02

Open the config

Sales → Configuration → Sale Order Numbering. Pick a style, set the prefix and length. The preview updates as you type.

STEP 03

Hit save

Save when the preview looks the way you want. The next quote uses the new format — existing records stay as they are.

STEP 04

That's it

Carry on creating quotes the way you always did. Confirm them, cancel them, override individual numbers — the rest is automatic.

Compatibility

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.

Odoo 17 / 18 / 19
Community & Enterprise
sale_management
Only dependency
OPL-1
Commercial license
No-gap counter
Postgres row-level lock
Common questions

Everything you'd want to ask before installing.

Q1 Does it work on Community and Enterprise editions?

Yes. The only dependency is sale_management — a core Community module shipped with every Odoo install.

Q2 What happens to my existing sale orders after install?

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.

Q3 If I pick 3 digits and reach 999, what happens?

It grows: 999 → 1000 → 1001. Never loops back to 001, never collides. The format just gets one digit wider. Your auditor will thank you.

Q4 Can two users get the same number at the same time?

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.

Q5 Does each company get its own counter?

Yes. Each company has its own config and its own counter. Switch companies in the top bar — the right settings load automatically.

Q6 Will it break native Odoo features?

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.

Q7 Who can use Set Custom Number?

Administrators and Sale Sequence Managers can use it. By default that's just the system admin — but you can promote any user: Settings → Users & Companies → Users → pick a user → set Sale Sequence to Manager. They'll see the button next time they open a sale order.

Q8 What happens if I uninstall the module?

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.

Get in touch

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.

WhatsApp +91 9870090524
OPL-1  ·  v 19.0.1.0.0  ·  For Odoo 17 / 18 / 19  ·  © 2026
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

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with