Odoo CMS - a big picture

Complete Overview of Sales and CRM in Odoo 10

Hieu Le

Odoo improves their ERP system through the release of new versions to maximize their customers satisfaction, as well as to grab more market share. In this post I am going to highlight the main changes in module Sales and CRM in Odoo 9 & 10 in comparison with Odoo 8.


Menu Sales Settings was moved under Sales menu. Before, all settings of several modules were handled in one place Menu Settings > Configuration. Now each module has its own Settings menu. Below is the one for Sales module located at Sales > Configuration > Settings.


Workflows in Sales, Purchases, and many other modules are going to be completely removed. Instead, we will use Python code. I wrote about it in the article ODOO 10 WORKFLOWS PARTIAL REMOVAL


In Odoo 8, I need button Update to recalculate Taxes and Total Amount after making some changes in Order Lines or Invoice Lines.

Button Update on Sales Order form in Odoo 8

In Odoo 9 & 10, the amount of money is automatically recalculated and updated if there are changes on Order Lines. I am on Odoo Runbot master branch on 05 Sep 2016, the button is still there. It’s strange because a couple of weeks ago, it was not. Anyway, I do not need that button, I think Odoo will remove it once they will release Odoo 10 next month.

Button Update should have not existed in Odoo 10


Since Odoo 9, Odoo have simplified the Sales Price List (no more Price List Versions) and removed Purchase Price List. For more details and examples, you can read my article PRICE LIST IN ODOO 9 & 10 - SIMPLIFICATION OF PRICELIST.


Before, Mass Mailing, Mailing Lists, Events, Campaigns, Survey are in the main menu Marketing. Now they have their own menu:  Lead Automation, Events, Mass Mailing, Surveys.

Menu Lead Automation (Marketing Campaigns) in Odoo 10


Separate menu items for each feature Lead Automation, Events, Mass Mailing, Surveys


It is convenient to know the related Customer Invoice status right from the Sales Order form thanks to a new field ‘Invoice Status’.

Field Invoice Status on Sales Order form in Odoo 10

Besides, field ‘Incoterms’ now appears on Invoice form. By default, it is populated from the related Sales Order. To show it, I need to activate an option in User Settings ‘Display Incoterms on Sales Order and related Invoice’. Basically, Incoterms are trade terms published by the International Chamber of Commerce (ICC) that are commonly used in both international and domestic trade contracts. I do not have much knowledge in Business, I need to read more about what Incoterms are.


Field Incoterm on Customer Invoice form in Odoo 10


In Odoo 8, I do it on Sales Order form > tab Other Information. There are 3 types:

  • On Demand: create an invoice from the sales order when needed.

  • On Delivery Order: create an invoice from the delivery order when the products have been delivered.

  • Before Delivery: create an invoice from the sales order and must be paid before the products can be delivered.


There is a comment to explain that it is more logical if we do the Invoicing Policy in Product. Odoo have implemented it since Odoo 9. Now I can set the Invoicing Policy on Product form.

  • Ordered quantities: invoice based on the quantity the customer ordered.

  • Delivered quantities:  invoice based on the quantity the vendor delivered.


I do a test by selling 2 products with different Invoicing Policy:

  • Bacardi: Ordered quantities

  • Baileys: Delivered quantities

I create and confirm a Sales Order: 



Then I deliver 1 product Bacardi and 0 product Baileys:

I create an Invoice for the Sales Order and check the result: the system invoiced 2 products Bacardi although I delivered only 1 because my customer ordered 2 items. And no product Baileys was invoiced because its Invoicing Policy is Delivered quantities and I delivered 0 items. So it works as expected.


In Odoo 8, the feature is called Contract Management. Firstly I activate it in Settings, technically it installs the module account_analytic_analysis. 


Then I had to manually create or renew them:


In Odoo 10, it is an Enterprise feature called ‘Subscription’. You can read more about it here and try it on Odoo Runbot as well.



Some cool features have been added to PoS module.

  • Restaurant floor planning:

  • Register customers:

  • Split bills:

  • Loyalty cards and rewards system:



There are several changes and improvements in Odoo CRM. Regarding the terms, Leads and Opportunities are now called Pipelines. Field Next Activity (firmly Next Action in Odoo 8) on Pipeline form has options (Email, Call, Task ...), I can create more items as I want.


In the Community version, menu Sales > Phone Calls > Logged Calls was removed. But in the Enterprise version, there is a new feature VoIP Integration (Asterisk). 

There is also another new Enterprise feature Lead Scoring allows you to give a score to your leads based on specific criteria - the higher the value, the more likely the prospect is ready for sales. Read more: How to do efficient Lead Scoring?

By the way, I am checking some CRM modules and see that some do not exist in Odoo 10 source code on Github (master branch). For the moment, I do not know the reason why Odoo did that. Maybe they merged some modules, maybe not. I raised a question in Odoo Help forum here. After that, Fabien explained it in a discussion here. The main reasons are that in Odoo 10, we have a few more specific modules that does the job much better, according to the needs: Maintenance Request, Quality Alerts, Helpdesk.

  • Claim_from_delivery: create a claim from a delivery order, Adds a Claim link to the delivery order. 

  • Crm_claim: track your customers/suppliers claims, fully integrated with the email gateway so that you can create automatically new claims based on incoming emails.

  • Crm_helpdesk: Like records and processing of claims, Helpdesk and Support are good tools to trace your interventions.

  • Crm_mass_mailing: Link module mass mailing with the marketing mixin from crm. → I think this will be merged into module marketing_campaigns. 

  • Crm_partner_assign: This modules lets you geolocate Leads, Opportunities and Partners based on their address. Once the coordinates of the Lead/Opportunity is known, they can be automatically assigned to an appropriate local partner, based on the distance and the weight that was assigned to the partner. → I think this module was merged into module website_crm_partner_assign

  • Crm_profiling: This module allows users to perform segmentation within partners.