As standard, Odoo has a single sequence number for all Quotations / Sales Orders. It’s quite easy to customize this so that there are different sequences for each types of order.
Start by enabling developer mode and navigate to Settings / Technical / Sequences
Create a new sequence (or copy an existing one):
- The name is for information only, but it should be meaningful.
- The Sequence Code [
consumer.sale.order] will be used later.
- Company can be left blank if you want numbering to be common across all companies, or you can specify different numbering for each company (if you do this, it is recommended to include part of the company name in the prefix, or have some other way of identifying the company).
- The prefix and suffix can be a combination of fixed elements and variables (year, month, day, time).
- You can have sub-sequences by date. This allows you to specify the numbering for each week / month / year.
- Sequence size needs to be large enough to cover the expected number of orders (3 = 1-999, 4 = 1-9,999, 5 = 1 – 99,999, etc.)
- Normally the step will be 1
- Next Number defaults to 1 but could be set to something else if you already have documents from an old system and don’t want to re-use those numbers.
- This is updated by Odoo as invoices are created.
Now we can start using it through an Automated Action
Navigate to Settings / Technical / (Automation) / Automated Actions and create a new Automated Action:
for record in records: if record.x_studio_order_type == "Consumer": ref = env['ir.sequence'].next_by_code('consumer.sale.order') record['name'] = ref
This example uses a new field for Order Type (it’s a selection field created using Odoo Studio), but it could be conditioned on any other field.
- We need to use the Sequence Code [
consumer.sale.order] that we defined earlier.
Now when we create a “Consumer” Sales Order it will use this numbering: