In this section you’ll see how to configure stock management to match your company’s needs. OpenERP can handle many different situations by configuring it to behave as required.
You’ve seen in the preceding sections that the whole of stock management is built on a concept of stock locations. Locations are structured hierarchically to account for the subdivision of a warehouse into sections, aisles, and/or cupboards. The hierarchical view also enables you to structure virtual locations such as production counterparts. That gives you a finer level of analysis.
Use the menu Stock Management ‣ Configuration ‣ Locations then click New to define new locations.
You should then give a name to your stock location. Now look at location types and localization.
The location must have one of the following types:
- View: shows that the location is only an organizational node for the hierarchical structure, and can’t be involved in stock moves itself. The view type is not usually made into a leaf node in a structure – it usually has children.
- Customer: destination for products sent to customers,
- Supplier: source of products received from suppliers,
- Internal: locations for your own stock,
- Inventory: the counterpart for inventory operations used to correct stock levels,
- Production: the counterpart for production operations; receipt of raw material and sending finished products,
- Procurement: the counterpart for procurement operations when you don’t yet know the source (supplier or production). Products in this location should be zero after the scheduler run completes.
You can have several locations of the same type. In that case your product, supplier and warehouse configurations determine the location that’s to be used for any given operation.
The counterparts for procurement, inventory and production operations are given by the locations shown on the product form. The counterparts of reception and delivery operations are given by the locations shown on the partner form. The choice of stock location is given by the configuration of the warehouse, linked to a Shop.
Each location can be given an address. That enables you to create a location for a customer or a supplier, for example. You can then give it the address of that customer or supplier. You should indicate to OpenERP on the partner form that it should use this location rather than the default location given to partner deliveries.
You’ll see in the chapter, Manufacturing, that it is possible to assign a location to a manufacturing workcenter. If this location is at a supplier’s you must give it an address so that OpenERP can prepare a delivery order for the supplier and a receive operation for the manufactured goods.
Creating a location specifically for a partner is also a simple solution for handled consigned stocks in OpenERP.
Consigned stock is stock that is owned by you (valued in your accounts) but is physically stocked by your supplier. Or, conversely, it could be stock owned by your customer (not valued by you) but stocked in your company.
To enable you to consolidate easily at a higher level, the location definition is hierarchical. This structure is given by the field Parent location. That also enables you to manage complex cases of product localization. For example, you could imagine the following scenario.
Example Structure for two warehouses¶
A company has a warehouse in Paris and in Bordeaux. For some orders you must deliver the products from Paris, and for others from Bordeaux. But you should also specify a fictitious warehouse that OpenERP uses to calculate if it should deliver products from Paris or from Bordeaux.
To do this in OpenERP, you’d create a third warehouse ‘France’ which consolidates the warehouses in Paris and Bordeaux. You create the following physical locations:
- Warehouses France
- Warehouse Paris
- Warehouse Bordeaux
- Warehouses France
OpenERP will then deliver the goods from the warehouse that has the ordered product in stock. When products are available in several warehouses, OpenERP will select the nearest warehouse. To formalize the notion of distance between warehouses you should use the geographic co-ordinates (X, Y, Z) of the different stores to enable OpenERP to search for the nearest goods.
The same co-ordinates could also be used to structure the shelves, aisles and interior rooms in a warehouse.
Accounting valuation in real time¶
If you have experience of managing with traditional software you’ll know the problem of getting useful indicators. If you ask your accountant for a stock valuation or the value added by production he’ll give you a figure. If you ask for the same figure from your stores manager you’ll get an entirely different amount. You have no idea who’s right!
In OpenERP the management of stock is completely integrated with the accounts, to give strong coherence between the two systems. The double-entry structure of locations enables a very precise correspondence between stocks and accounts.
Each stock movement also generates a corresponding accounting entry in an accounting journal to ensure that the two systems can stay in permanent synchronization.
To do that, set up a general account for each location that should be valued in your accounts. If a product goes to one location or another and the accounts are different in the two locations, Open ERP automatically generates the corresponding accounting entries in the accounts, in the stock journal.
If a stock move will go from a location without an account to a location where an account has been assigned (for example goods receipt from a supplier order), OpenERP generates an accounting entry using the properties defined in the product form for the counterpart. You can use different accounts per location or link several location to the same account, depending on the level of analysis needed.
You use this system for managing consigned stocks:
- a supplier location that is valued in your own accounts or,
- a location in your own company that isn’t valued in your accounts.
Case of structuring locations¶
You’ll see in the next part that linking locations lets you manage a whole series of complex cases in managing production efficiently:
- handling multiple operations for a customer order,
- tracking import and export by sea transport,
- managing a production chain in detail,
- managing rented products,
- managing consigned products.
To show these concepts, five cases of structuring and configuring these locations are given below. Many other configurations are possible depending on needs.
Handling customer orders¶
Customer orders are usually handled in one of two ways:
- item note (or preparation order), confirmed when the item is ready to send,
- delivery order (or freight note), confirmed when the transporter has delivered the item to a customer.
You use the following stock move in OpenERP to simulate these operations:
- Packing Note: Stock > Output,
- Delivery Order: Output > Customer.
The first operation is automatically generated by the customer order. The second is then generated by the stock management by showing that the Output location is linked to the Customer location. That then gives the two operations waiting. If the Output location isn’t situated beneath the stock location you then have to move the item from stock to the place that the item is prepared.
Some companies don’t want to work in two steps, because it just seems like extra work to have to confirm a delivery note in the system. You can then set the link mode to ‘Automatic’ to make Open ERP automatically confirm the second step. It’s then assumed the all the items have automatically been delivered to the customer.