This is the documentation for older versions of Odoo (formerly OpenERP).

See the new Odoo user documentation.

See the new Odoo technical documentation.

Database Setup

You will create all the elements in the database that you need to carry out the use case. These are specified in the functional requirements.

Configuring Accounts

You need to start off with a minimal set of accounts, and to do that you will need a couple of account types. You can structure your accounts into a chart at any time (and, in fact, you can structure them into several additional charts at the same time as you will see in the chapter Configuring Accounts from A to Z), so you do not need to be concerned unduly about structure.

Account Types

Create account types using Accounting ‣ Configuration ‣ Accounts ‣ Account Types and then clicking the Create button. You will need the following four types, the first of which is shown in figure New Account Type.

Defining Account Types

Acc. Type Name


P&L / BS Category

Deferral Method







Profit & Loss (Income Accounts)




Profit & Loss (Expense Accounts)




Balance Sheet (Assets Accounts)



New Account Type


Create accounts using Accounting ‣ Configuration ‣ Accounts ‣ Accounts and then clicking the Create button.

You need accounts to handle the purchase and sales orders that have not yet been paid, two more for the receipt and shipping of goods, and one for the payment and receipt of funds. And one 'organizing' account that is just a view of the other five. So you will need the following six accounts, one of which is shown in New Account.

Defining Accounts



Internal Type


Account Type


Minimal Chart









0 Minimal Chart






0 Minimal Chart






0 Minimal Chart






0 Minimal Chart






0 Minimal Chart




New Account

The Account Type entry is taken from the list of types that you just created. Although it looks a bit like a text box, it does not behave in quite the same way. A single Del or Backspace keystroke is all you need to delete the whole text, and when you type the name (or part of the name), you still need to associate that text with the entry by clicking the Search More.


You now define some default properties, so that you do not have to think about which account is used for which transaction every time you do something. The main new properties are the four that associate accounts payable and receivable to partners, and expenses and income to product categories.

Create properties using Settings ‣ Technical ‣ Parameters ‣ Configuration Parameters and then clicking the create button. You may have Technical rights to be able to access this menu.

Defining Properties






Account Payable


(account.account) AP Payable


Account Receivable


(account.account) AR Receivable


Expense Account


(account.account) P Purchases


Income Account


(account.account) S Sales


Mistakes in configuring accounts and properties

It is easy to make mistakes in configuring accounts and their properties, but the consequences are not immediately obvious. You will mostly discover mistakes when trying to make a Purchase or Sale Order (see later, for example, Purchase Order), where the accounts are required fields or, if you are diligent, when you set up Partners.

If you configure them correctly at this stage, then fields will be completed automatically and you will never know a thing. If you do not configure all this correctly, then you will not be able to save the order form until you have corrected the problem or until you manually set the accounts.

Since this configuration is quite tedious, you would do best by finding a certified Chart of Accounts that has already been set up to meet your needs, if you can find one.

Configuring Journals

You will also need to configure some journals, which are used to record the transactions from one account to another when invoices are raised and then paid. Create journals from the menu Accounting ‣ Configuration ‣ Journals ‣ Journals and then click the Create button.

Defining Journals

Journal Name



Entry Sequence

Default Debit Account

Default Credit Account

Purchase Journal



Purchase Journal

P Purchases

P Purchases

Sale Journal



Account Default Sales Journal

S Sales

S Sales

Bank Journal



Account Journal

C Cash

C Cash


Mistakes in configuring journals

It is easy to make mistakes in configuring the journals, too, and the consequences are also not immediately obvious. You will mostly discover mistakes when creating an invoice (which happens at different points in the process, depending on your configuration). In this example, validating a Purchase Order creates a draft invoice (see later, again for example, Purchase Order), where a journal is required.

As with accounts and properties, if you configure them correctly at this stage, then the fields will be completed automatically and you will never know a thing. If you do not configure all this correctly, then there will be errors with the order form or corresponding draft invoice, until you have corrected the problem or until you manually set the journal.

Configuring the Main Company

In case you had chosen to Skip Configuration Wizards when you first created the database, you may configure your company information in the following manner. Start configuring your database by renaming the Main Company from its default of Your Company to the name of your own company or (in this case) another example company. When you print standard documents such as quotations, orders and invoices you will find this configuration information used in the document headers and footers.

To do this, click Sales ‣ Address Book ‣ Customers and search for only company there, which is Your Company . This gives you a read-only form view of the company, so make it editable by clicking the Edit button to the upper left of the form.


Editable form in the web-client

When toggling from the list view to the form view of an item, you can generally click its name in the list view to show a non-editable view. You can toggle between editable and non-editable once you are in form view.

Change the following:

  • Name : Ambitious Plumbing Enterprises ,

  • Add Contact : George Turnbull .

Before you save this, look at the partner's accounting setup by clicking the tab Accounting. The fields Account Receivable and Account Payable have account values in them that were taken from the account properties you just created. You do not have to accept those values: you can enter any suitable account you like at this stage, although OpenERP constrains the selection to ones that make accounting sense.

Back at the first tab, General, change any other fields you like, such as the address and phone numbers, then Save. This changes one Contact for the Partner, which is sufficient for the example.

From the MAIN MENU, click Settings ‣ Companies ‣ Companies and edit the only entry there:

  • Company Name : AmbiPlum ,

  • Partner : should already show Ambitious Plumbing Enterprises ,

  • Custom Footer : Ticked ,

  • Report Footer : Best Plumbing Services, Great Prices , Ambitious our Registered Company Details .

Figure Changing company details shows the effect of this. You can also change various other company-wide parameters for reports and scheduling in the other tabs, and you can upload a company logo of a specific size for the reports. Click Save to store this.


Changing company details

You can leave the currency at its default setting of EUR Or you can change it in this Company and the two default Pricelists (Sales ‣ Configuration ‣ Pricelists ‣ Pricelists) if you feel compelled to do that.



The examples in this book are in USD and EUR. You, the reader, could use your home currency (perhaps CAD, CNY, GBP, or Rs) in their place.

Creating Partner Categories, Partners and their Contacts

You will now create a suppliers category and a customers category. Partner categories are useful for organizing groups of partners but have no special behavior that affects partners, so you can assign them as you like. Then you will define one supplier and one customer, with a contact for each.

To do this, use the menu Sales ‣ Configuration ‣ Address Book ‣ Partner Tags and click Create to open a new form for defining Partner Categories. Define the two categories that follow by just entering their Category Name and saving them:

  • Suppliers ,

  • Customers .

Then create two partners from the menu Sales ‣ Sales ‣ Customers. Click on the Create button to open a blank form and then add the following data for the first partner first:

  • Name : Plumbing Component Suppliers ,

  • Customer checkbox : unchecked ,

  • Supplier checkbox : checked ,

  • add Suppliers to the Tags field by selecting it from the selection list,

  • then save the partner by clicking the Save button.

Figure New Partner Form shows the result.


New Partner Form

For the second partner, proceed just as you did for the first, with the following data:

  • Name : Smith and Offspring,

  • Customer checkbox : checked,

  • Supplier checkbox : unchecked,

  • add Suppliers in the Categories field,

  • Save the form.

To check your work, you can go to the menu Sales ‣ Configuration ‣ Address Book ‣ Partner Tages and click on each category in turn to see the companies in the category.


Multiple Partner Categories

If this partner was also a supplier, then you would add Suppliers to the categories as well, but there is no need to do so in this example. You can assign a partner to multiple categories at all levels of the hierarchy.

Creating Products and their Categories

Unlike partner categories and their assigned partners, product categories do have an effect on the products assigned to them – and a product may belong to only one category. Under the main menu link Warehouse or Sale, select the menu Configuration ‣ Products ‣ Products Categories and click Create to get an empty form for defining a product category.

Enter Radiators in the Name field. You will see that other fields, specifically those in the Accounting Properties section, have been automatically filled in with values of accounts and journals. These are the values that will affect products – equivalent fields in a product will take on these values if they, too, are blank when their form is saved. Click Save.


Property Fields

Properties have a rather unusual behavior. They are defined by parameters in the menus in Settings ‣ Technical ‣ Parameters ‣ Configuration Parameters, and they update fields only when a form is saved, and only when the fields are empty at the time the form is saved. You can manually override any of these properties as you need.

Property fields are used all over the OpenERP system and particularly extensively in a multi- company environment. There, property fields in a partner form can be populated with different values depending on the user's company.

For example, the payment conditions for a partner could differ depending on the company from which it is addressed.



UOM is an abbreviation for Unit of Measure. OpenERP manages multiple units of measure for each product: you can buy in tons and sell in kgs, for example. The conversion between each category is made automatically (so long as you have set up the conversion rate in the product form first).


Managing Double Units of Measure

The whole management of stock can be carried out with double units of measure (UOM and UOS – for Unit of Sale). For example, an agro-food company can stock and sell ham by piece, but buy and value it by weight. There is no direct relationship between these two units, so a weighing operation has to be done.

This functionality is crucial in the agro-food industry, and can be equally important in fabrication, chemicals and many other industries.

Now create a new product through the Warehouse or Sale menu:

  1. Go to Product ‣ Products and click New.

  2. Create a product – type Titanium Alloy Radiator in the Name field.

  3. Search for Category field to select the:guilabel:Radiators category.

  4. The Product Type field should be assigned as Stockable Product. The fields Procurement Method, Supply method, Default Unit Of Measure, and Purchase Unit Of Measure should also stay at their default values.

  5. Enter 57.50 into the Cost Price field and 132.50 into the Sale Price field.


    Product Form

  6. Click the Accounting tab, then click Save and observe that Accounting Properties here remain empty. When product transactions occur, the Income and Expense accounts that you have just defined in the Product Category are used by the Product unless an account is specified here, directly in the product, to override that.

  7. Once the product is saved, it changes to a non-editable state. If you had entered data incorrectly or left a required field blank, an error message would pop-up, the form would have stayed editable and you would need to click from tab to tab to find a field colored red that would have to be correctly filled in.

Stock Locations

Click Warehouse ‣ Inventory Control ‣ Location Structure to see the hierarchy of stock locations. These locations have been defined by the minimal default data loaded when the database was created. You will use this default structure in this example.

OpenERP has three predefined top-level location types , Physical Locations and Partner Locations that act as their names suggest, and Virtual Locations that are used by OpenERP for its own purposes.

  1. From the Main Menu click on Warehouse ‣ Configuration ‣ ‣ Locations to reach a list view of the locations (not the tree view).

  2. Click on the name of a location, such as Physical Locations/Your Company to open a descriptive form view. Each location has a Location Type and a Parent Location that defines the hierarchical structure. While you are here you should change the location's name to Ambitious Plumbing Enterprises , since it was named before you changed the company name.

  3. From the Main Menu click Warehouse ‣ Configuration ‣ Warehouses to view a list of warehouses. There is only the one at the moment, which should also be renamed from Your Company to Ambitious Plumbing Enterprises .

A Warehouse contains an input location, a stock location and an output location for sold products. You can associate a warehouse with a partner to give the warehouse an address. That does not have to be your own company (although it can be); you can easily specify another partner who may be holding stock on your behalf.


Location Structure

Each warehouse is composed of three locations Location Input, Location Output, and Location Stock. Your available stock is given by the contents of the Location Stock and its child locations.

So the Location Input can be placed as a child of the Location Stock, which means that when Location Stock is interrogated for product quantities, it also takes account of the contents of the Location Input. Location Input could be used as a goods-in QC location. The Location Output must never be placed as a child of Location Stock, since items in Location Output, which can be considered to be packed ready for customer shipment, should not be thought of as available for sale elsewhere.

Setting up a Chart of Accounts

You can set up a chart of accounts during the creation of a database, but for this exercise you will start with the minimal chart that you created (just a handful of required accounts without hierarchy, tax or subtotals).

A number of account charts have been predefined for OpenERP, some of which meet the needs of national authorities (the number of those created for OpenERP is growing as various contributors create and freely publish them). You can take one of those without changing it if it is suitable, or you can take anything as your starting point and design a complete chart of accounts to meet your exact needs, including accounts for inventory, asset depreciation, equity and taxation.

You can also run multiple charts of accounts in parallel – so you can put all of your transaction accounts into several charts, with different arrangements for taxation and depreciation, aggregated differently for various needs.

Before you can use any chart of accounts for anything, you need to specify a Fiscal Year. This defines the different time periods available for accounting transactions. You can create a Fiscal Year from Accounting ‣ Configuration ‣ Periods ‣ Fiscal Years. Click on the Create button to open a blank form and then add the following data:

  • Fiscal year : Fiscal Year X 2013 ,

  • Code : FY2013 ,

  • Start Date : 01/01/2013 ,

  • End Date : 12/31/2013 ,

  • Click on Create Monthly Periods Button.

  • then save the Form by clicking the Save button.

Figure Fiscal Year shows the result.


Fiscal Year


Fiscal year

In many countries, the fiscal year corresponds to a calendar year. That may not be the case in other countries. Start Date is a first date of your fiscal year and End Date is a last Date of your fiscal year. By clicking Create 3 Months Periods you can create a periods quarterly.

Click Accounting ‣ Charts ‣ Charts of Accounts to open a Chart of Accounts form where you define exactly what you want to see. Click Open Charts to accept the defaults and see a hierarchical structure of the accounts.

Make a Backup of the Database

If you know the super-administrator password, make a backup of your database using the procedure described in Managing Databases. Then restore it to a new database: testing .

This operation enables you to test the new configuration on testing so that you can be sure everything works as designed. Then if the tests are successful, you can make a new database from openerp_ch03 , perhaps called liveor production, for your real work.

From here on, connect to this new testing database logged in as admin if you can. If you have to make corrections, do that on openerp_ch03 and copy it to a new testing database to continue checking it.

Or you can just continue working with the openerp_ch03 database to get through this chapter. You can recreate openerp_ch03 quite quickly if something goes wrong and you cannot recover from it but, again, you would need to know your super-administrator password for that.