Practical tips for installing Odoo

4) Configuration of modules

Let’s move on to the next milestone during installation – the re-configuration of existing modules.

We will review the most important and most popular configuration options for each main module. This does not mean, however, that all other options are unimportant. But the number of configurations, meanings, and possible combinations is too comprehensive to discuss all of them without exceeding the scope of this blog.


If you take a closer look at the process, you will notice the use of „Leads,“ which is an important extension. Creating leads is a sort of pre-qualification. In other words, the retrieval of inquiries to an info mail address, contact forms via the website, or the import of unqualified addresses. If this feature is activated, an additional option is available once you configure an incoming mail address. Besides, Odoo will later show you the separate menu item „Prospects,“ which you can use to revise, pre-qualify them, and convert them into “Opportunities.”


“Sales” is the first module with a very extensive configuration. Fortunately, there are some very informative options or categories that will unlock additional features. However, we will only discuss the most important ones below.


This feature activates Odoo’s Variant Management Module. But you should be careful here: just because your employees talk a lot about variants, it does not necessarily mean you have a “variant issue.” You should ask yourself, why should I activate this option at all?

To answer that, we need to have a look at the purpose of this function. Let us see what is going on behind the scenes:

Activated or not, the creation of products in Odoo is basically separated into two models, product template and product. However, only the product is linked to all related documents, not the product template. On the surface, the menu implies that a product is created, but technically, the user only creates a template. In turn, this will lead to the actual creation of a product.

The transition itself is so smooth that it is hard to see the difference, even if no variants are activated and although the data structure is already available. In other words, variants are ordered, sold, delivered, and invoiced even without the activation of the variant module.

Once you activate variants, the structure becomes visible and easy to configure, so you may define attributes and values that are then used to create products. In addition, products are named automatically.

The integration of the Ecommerce Module is another crucial factor. Here, only the product templates are on display and not the individual variants per product. Otherwise, a user would be flooded with a multitude of features while searching for a particular product. Once he has found the product, he can view all details and conveniently select the desired variant.


In summary, variants help with product maintenance and the actual product search. But this feature is not really necessary, either. If products, for example, are administered via an external PIM (if there are only a few variants and there is no shop available), you should consider carefully before activating it, since the feature will only make your system more complicated. In Odoo, Export and Import are potent tools that easily allow for mass updates and maintenance in external lists.

As we have already wanted to make clear in some of our previous blogs, there is one basic principle that especially applies to IT: Less is more!! The system will remain more stable and provide better control.

Units of Measure

We have discussed this particular feature in previous blogs and the first part of this series of blogs. You should only activate it if a translation exists between different purchasing units regarding sales. It is not necessary to display individual units.

Price lists

This is another quite powerful feature in Odoo. As far as I am aware, there is no installation that did not require its set-up. However, that does not necessarily mean that there isn’t one somewhere. In a nutshell, the feature is about adjusting a product’s standard sales prices for customers or distribution channels. The function is available in two varieties. One shows a somewhat simpler display and maintenance where you can enter products and their respective prices. You are also able to adjust validity periods. The more extended version allows you to create pricing rules that have to be met before a price, a discount, or a formula for price calculation is applied.

Since I have started working with Odoo, which is to say since 2007 (when Odoo still was known as TinyERP 4.2), this function has been available and for many years only in the „Advanced Version“ (as it is called today). The simplified version has only been introduced together with the eCommerce Module. Basically, the calculation and complexity are always the same, but – depending on the selected option – it is presented in a more straightforward or more complicated way.

And since I am used to it after all these years, I feel at home in the Advanced Version and keep installing it.

In combination with the multi-currency option in the Finance Module, price lists will take over the control of the currency for the customer. However, you can also define rules that allow the setting of a fixed price. You can use it, for example, to determine an amount in another currency to avoid strange values due to the current exchange rate, to allow the setting of a discount rate, or to combine discounts, surcharges, and rounding up or down.

Product groups, major products (we have used their technical term „product templates“ above), and variants that are may now be combined with the ordered quantity and a validity period.

The feature may also be used quite conveniently to set up „general pricing conditions regarding the customer,“ regardless of whether it is a trading company, a manufacturer, or a service provider.

Customer Addresses

In general, it is possible to create or maintain subordinate addresses or contact persons for companies or contacts, and to differentiate between invoicing or delivery addresses. But when you create an offer or an order, you do not have much control over this process, since there is only one field „customer“ on display, while alternate addresses are loaded and used only in the background.

It is more comfortable by far to live without this feature if you only have one deviating invoicing or delivery address, or only a deviating invoicing address without a delivery address, because the customer is a service provider and the delivery address may have been entered in the commentary field in the offer. Otherwise, it should be activated by all means.

Sales Warnings

This feature is a small function with a significant impact. Customers often ask how a delivery stop could be initiated. The answer to this question is: with this feature!

Using it, you can enter a „Warning“ or „Blocking“ message. In the first option, a pop-up window with a pre-formulated text appears as soon as an offer is created for this customer. If you select a blocking message, another pre-configured text appears, but you are not allowed to enter an offer.

This function may also be activated for purchasing, deliveries, invoices, and products.

Pro-Forma Invoice

Actually, this function does not have to be explained, as the name is more than speaking. Proforma invoices are receipts that do not require payment and are a popular means of proving the value of goods for customs, free sample shipments, exchanges of goods, replacement deliveries and, of course, prepayment.

However, since there are still Odoo 8 users around, here is a brief explanation. In Odoo 8 there was an invoice workflow that could be used to determine for each order whether an invoice should be created before or after delivery. Both generated an invoice. A big disadvantage, because if the customer did not pay, the invoice also had to be booked out. Since workflows have been abolished from Odoo 9, a standard means has been used here.

An additional document type "Proforma" is added to offers and orders, which can be printed at any time regardless of the status.

A note at the end: If a payment is made and booked for this purpose, Odoo will recognize the unbalanced payment immediately after the creation of the merchant invoice and display it directly on the invoice, so that both transactions can be balanced quickly and easily with one another and the process is completed is.

Invoicing Policy

This is a very important option that can be configured per product so that Odoo can automatically identify billable order items. The setting here only sets the standard value that should be taken into account when creating a new product.


Although there are not as many options here as in Sales, Inventory or Finance, by far, I still do not want to discuss every single one of them, but rather focus on functions that are discussed the most and that we consider essential.

Purchase or Approval

If you have a policy that not everyone is allowed to order, if you have a dual control principle or release levels in place in your purchasing department, you should activate this feature. Since release levels are a rather complicated issue, Odoo only offers the possibility to enter a value, above which a manager needs to approve to convert a request for quotation into a purchase order.

This leads us to the inevitable questions of what to enter if you are only able to specify a value, and how to map release levels without additional programming in the standard version?

In answer to the first question:

you should enter the lowest possible value, since you intend to avoid random orders, after all.

You should be familiar with the levels of who is allowed to release what and when independent of a technical solution to this issue. Therefore, the technical solution is the lowest threshold value required by an administrative user or a manager role. This set-up may be communicated very transparently, using internal notes addressed to a manager (how this works will be discussed in detail in a separate blog). If the order volume exceeds the release limit of the role, it may be forwarded to the next user via another note.

Although this is presented in a very transparent and comprehensible manner, possible reservations are quite understandable here. If you have a problem with this procedure, additional programming cannot be avoided. In this case, however, we advise you to take care when defining a solution. Remember, technology does not protect you against misuse, no matter which department you are working in.

Purchase Agreements

This is probably the most robust and most comprehensive extension in the Odoo Purchase Module. The solution is extremely flexible and covers considerably more possible business transactions than the name might suggest.

We will discuss separately which applications and solutions it may be used for. However, before we go into a few details to get an impression of what this tool can do, let’s take a look at the settings options an administrator has when creating types of sales agreements:

Sales contracts are the links between requests for quotation and purchase orders. Three freely combinable options form the essential core. They may be used to control purchase agreements’ behavior during the creation of contracts, and also when creating and assigning requests for quotation and actual orders.

Selection type

In „exclusive“ mode, several requests for quotations may be generated for one contract. As soon as the first one is confirmed, and converted into a purchase order all other related requests are automatically canceled. If you select the 2nd option, they remain in the system and may be either confirmed or need to be canceled manually.


If you select the option „Use lines of agreement,“ the sales agreement’s positions are added to the order, e.g., product, product description, and unit price. Otherwise, the lines will remain blank, and you have to add the order lines manually. This does not mean, by the way, that you cannot add products that have not been part of the original contract to your order manually. You may do that at any time.


If you have selected the option „Use quantities of agreement“ in combination with the previous point, then the quantities for each product, as specified in the contract, will be added automatically. Alternatively, the respective quantity is set as a default value, as soon as a product specified in the contract is selected.

With the option „Set quantities manually“, the standard value for a quantity of agreement is 0 and has to be added manually by the purchaser.

In combination, you can cover any conceivable application with these options, such as

1) Tender

Any tender follows the same pattern: one or several products have to be procured. The order volume is quite significant, and the products and their required quantities are listed and sent to various candidates. Responses are collected, recorded, and evaluated, and one candidate is awarded the contract.

To do this, you create a sales agreement type „Tender“ and select the options „Exclusive,“ „Contract items,” and “Quantity.” Since contracts also require approval, the tender is put together using products, descriptions, and quantities. There is, theoretically, no reason not to enter prices and their values as well, to map the scope of the tender internally. Since this information is not communicated to the supplier in any case, it may serve as a guideline.

It is essential to leave the name of the supplier in the sales agreement empty since this information is not yet known. After a manager role has approved the sales agreement (i.e., the tender), the pop-up button „create request” appears. This button is used to create new purchase requests, where all products and their quantities are transferred automatically. The field for the supplier remains empty, which is, after all, the purpose of the exercise, since the new candidate is still unknown.

Communication is thus document-related and performed separately for each supplier. Tenders may be compared and evaluated using pivot tables. All other requests are canceled as soon as the request for quotation of the „vendor“ is confirmed.

It remains open, of course, whether this is a single or multiple order(s), or whether we are talking about a tender or a new master agreement. If necessary, the process may be easily adapted.

2) Master agreement

Standard purchase prices for vendors and their respective scale prices are filed directly with the product. The first entry in the list usually is the preferred vendor or the preferred scale prices. But, depending on the purchase volume, a purchase price deviating from the standard purchase price may be agreed on. It would be possible, of course, to file that with the product, but then it would be confusing a) to distinguish between the standard price and the negotiated price, and b) the price would be based on an agreed purchase volume the fulfillment of which should be evaluable separately.

Alternatively, you can create a new purchase agreement type, where you can allow “multiple inquiries” to make neither items nor quantities automatically available.

It is, of course, relevant here to enter the vendor in the newly created agreement – in contrast to the tender.

Consequently, products and quantities are inputted or added as needed. As mentioned before, you can add products to the purchase order that are not listed in the agreement.

In the contract, you may view and thus compare the quantity already ordered separately from the quantity listed in the agreement.

3) Call-off agreement

It is difficult to distinguish between a master agreement and a call-off agreement since they are quite similar. The main difference is, however, that there a date-dependent call-offs that are usually quite specific.

To create a call-off agreement, you need to create a new sales agreement with the setting „multiple requests” and using positions. If the same quantities are called off every time, you should also use quantities; if not, it makes more sense to leave the settings on manual input.

If you create an agreement of this type – and don’t forget to enter the vendor here as well – you can create a complete copy of the agreement as an order request, using the button „new order.“ Here, the call-off date is filed, and the quantities are adjusted accordingly.

4) Maintenance agreements

This does not refer to a maintenance contract with a customer, but to maintenance you procure as a customer. It is perhaps questionable whether it is really necessary to create a sales agreement. But if this is a recurring document containing services that may have to be reviewed repeatedly, it might make sense to create a separate purchase contract. The purchase of a janitorial service, for example, may be created as a maintenance contract. In this case, you select multiple inquiries, product, and quantity. Subsequently, you create a request for each billing cycle and confirm it.

Now you have to select between two alternative options:

Option 1)

If you choose this option, draft invoices are created together with the new agreement. You can now agree with the accounting department that a draft invoice is confirmed and paid as soon as it becomes available for the respective month. If you are not satisfied with the services of your janitor, the draft invoices are deleted.

Option 2)

Here, the draft invoices are not created immediately, but only when the janitor’s monthly bill is received. In other words, if you are not satisfied with these services, the order has to be canceled. As a consequence, Accounting cannot assign the incoming invoice to an order, and it becomes evident that there is a problem.

The janitor is, of course, just an example. The question, which of the two options is better can only be answered based on the given situation.

These are only a few examples, and there are many more. The applications described here may be configured individually for each process based on the requirements. It is also important to remember that internal wording and interpretation may differ from Odoo’s wording and interpretation. As we have described already, this is an issue you should not underestimate during implementation, and it is undoubtedly completely independent of the system. It should be said, however, that it is entirely impossible to find a term that fits every situation. At the end of the day, it is only functionality, and the targeted results that count, not the terms. You can get used to any term and incorporate it into your internal usage.

Drop Shipping

Fortunately, this is another extension that is easy to explain, if an explanation is required at all since the name should speak for itself.

With the dropshipping feature, Odoo introduces another document type for the inventory that symbolizes the transfer of goods from the vendor directly to the customer. The process is, however, a little different.

After a quotation has been confirmed, the delivery is generated and scheduled, and the process can be included in your needs assessment. Dropshipping is activated either per product or per order line. A request for quotation per vendor will now be generated for each product or each sales order line. Only if these have been confirmed and turned into an order, the delivery note will be created. This delivery note will now be visible, as well as accessible, in the order itself.

For trading companies, I generally activate this feature since it becomes an issue in most cases.

8 June, 2020
share article
Sign in to leave a comment
VAT change in Odoo
A short How-to regarding the change of value-added tax rates in Odoo