Archive for the ‘Sales management’ Category

Safety Stock and reorder points in OpenERP

Curves of the cycle service level & fill rate ...

Image via Wikipedia

Safety Stock is the level of stock maintained to mitigate the risk of stockouts. Do you have safety stock in OpenERP? It depends. If you are running a manufacturing operation, and you manufacture to stock or build to order while keeping raw material inventory on-hand, you are actually using safety stocks. Chances are, if you don’t have safety stock you will run risks of stockouts and customer service deterioration.

Do you have a module or something like that in OpenERP? Actually no. And there might be a reason for that. But we will not go into that, we will show how to manage safety stocks and reorder points in OpenERP.

What you do have in OpenERP is the possibility of defining Minimum Stock Rules in your products. You need to do so if you are planning on using the MRP module. Actually it is mandatory to have minimum stock rules for all the raw material that you need in order to manufacture products. And you need to have minimum stock rules for your work-in-progress components in place when you build to stock work-in-progress components, or products.

The Minimum Stock Rules form allows you to define two quantities for your product. First the minimum quantity. This is a number that when it is reached by the virtual inventory, OpenERP creates a procurement in order to increase the stock of the product up to the Maximum Quantity amount (which is the second quantity in the Minimum Stock Rule).

And if you think about it, since all you need is to calculate your minimum and maximum quantities for your product, you don’t need to calculate your safety stock since it is already taken care of by the minimum quantity.

Now, how do you calculate your minimum quantity? You can do it with the following formula in LibreOffice:

Minimum Quantity = NORMINV(Service Level, Average Demand During Lead Time, Standard Deviation of Demand During Lead Time)

It’s a simple formula that can be used in LibreOffice or PostgreSQL (you need to install pgnumerics though, not a big deal)

Service level is the % of orders that you are planning to fulfill. If you are planning on satisfying average demand, you need to set it to 50%. If you are planning on satisfying 95% of your orders, you need to set it at 95%.

Average and Standard Deviation of Demand during lead time are quite straight-forward parameters. In order to calculate them you need to take all your orders you took during a period of time, and then calculate its average and standard deviation.

The minimum quantity  is composed of two components, the safety inventory piece and the lead-time demand piece. Lead-time demand can be calculated as the average demand you have for that product, and the safety stock can  be calculated as

Safety Stock = Minimum Quantity – Lead Time Demand

At this moment we are developing a module that calculates Minimum Quantity, Safety Stock and Lead Time Demand. We will keep you posted on this.



What is a product in OpenERP?

Supply chain diagram black arrow - flow of mat...

Image via Wikipedia

A product in OpenERP can be many things at the same time. They can be either products to be sold, raw material or componentes purchased from suppliers, or work in progress pieces needed in the manufacturing process.

  • A product that can be sold is a product that will be listed on the products list when you are creating a sales order.
  • A product that is raw material is a product used in the manufacturing process and is procured from suppliers

You specify whether a product can be sold or purchased in the product form:

There is a third option that is not listed in the product definition form, and it is the fact that a product can be a work-in-progress component of the manufacturing process. In order to do that, you need to create a product and keep the “Can be sold” and “Can be purchased” check boxes unchecked. What is important to keep in mind is the Supply Method, where you have two options, “Buy” or “Produce”. If you specify “Buy” the product will be purchased from suppliers. If you specify “Produce”, a production order will be created in order to procure this component.

This  is important to keep in mind when you are importing information from another system. Most of the times you will import the products to be sold or the raw material to be procured, but we forget to import or create the work-in-progress components. We realize this problem when we try to create production orders, since those orders will require Bill of Materials that are missing the required work-in-progress components.

On a next post, I will cover my experiences so far with importing data into OpenERP,


OpenERP module of the day: account_invoice_salesman

February 3, 2011 1 comment

Last week a customer asked us how to enter the salesman information on the invoice. He needed to keep track of which salesman was selling what. My instant answer was “you could do that with analytic accounts”, but told him I would check it. And I found the account_invoice_salesman module.

This module can be downloaded from the  documentation page. No need to use bazaar for this. You can either download it with your browser or with this command (in case you are using Linux)

# wget

Next step is to import the module and install it. The installation is quite straightforward and does not need any configuration. What does module do? Two things

  1. Creates the user_id field in the account.invoice class, with the “Salesman” label. This field references the res.users class, so each salesman nees to have a user created in OpenERP
  2. Adds the Salesman field to the account_invoice form

Below is a screenshot of the invoice form


OpenERP for Retail and Industrial Management book review

January 24, 2011 8 comments
A Picture of a eBook

Image via Wikipedia

I bought the book on Amazon. You might wonder why should I purchase the book when I can download the e-book which is free? Well, two reasons. The first reason is I do enjoy reading printed books. I don’t think reading books on tablets matches my experience reading a paper book. The other reason is convenience, I can take it anywhere and read it on subways, trains, whereever.

The book is written by Fabien Pinckaers, who started the OpenERP project. This is a very good reason for reading this book. You get to understand the system from the point of view of the person who developed the system. You get to know how the system is supposed to work, which saves you a lot of time.

The first chapter covers the Installation of OpenERP. Covers Windows and Linux. You can skip this chapter since you will find more updated information on the documentation section of the OpenERP website or the community forums.

The second chapter is a Guided Tour. You can skip the chapter but I suggest against it, since it not only covers the user interface and its usage, but also covers third-party add-ons with lots of functionality that are really handy. For instance, I got to know the product_expiry product which is really handy for products that have an expiration date.

The third chapter covers a real case. It is a very simple case, but helps you understand how the system works. Actually, it is the first thing you need to know when you are taking your first steps in OpenERP. The chapter guides you on the different steps of buying products from suppliers, stocking those products in the warehouse and selling them to your customers. It’s OpenERP 101.

 The fourth chapter covers sales management. From sales quotations, packaging, alerts, invoicing, deliveries and price management (including rebates). Does not cover the financial management of sales, CRM nor analytical accounts. They are covered in the e-book version of the book.

The fifth chapter covers Purchasing. It’s a short and concise book on how to create purchase orders, quotations, receipt notes and invoices from suppliers. It is a good read before reading the next chapter.

Stock Management. Covers the product creating, and the warehouse management, involving the operations for entering and delivering products to/from your warehouses. Also covers the stock valuation and traceability, which is becoming critical in the logistics operation.

Manufacturing is the next chapter. Starts with the Bill of Materials and guides you from there. From BoM you create production orders, which are covered in detail, to the different routings available for the different products. This introduces you to WorkCenters and the different operations involved in the manufacture of your product. This might be the most important chapter in the book and has many examples of its operation.

The last three chapters; Process, System administration and configuration, and Methodology. If you work with OpenERP you should read these chapters, but you should complement it with further reading, for instance the memento presentations available on Slideshare.

Well, to finish this post, I highly recommend this book. And after reading the book you should read the e-book, which has additional chapters on CRM and Analytic Accounts (for example). It is not a definite guide, but it is an excellent first step on OpenERP.


First steps in OpenERP 6.0. Creating and configuring the company

Polish OpenERP screenshot

Image via Wikipedia

The best way to know OpenERP is to try it. Developing a proof of concept. That is how you will get to know what are the possibilities of this system, what it takes to configure it, get a good grasp on the community and the time it takes to implement it. You can do it alone or guided with a consultant. Both ways work, a consultant will save you a lot of time.

So, how do you start? Well, the first step is to install it and have it running. I will not go into the details on how to install it, I can only recommend buying a VPS Linux server (there are two or three which have are excellent and are affordable). Then you can follow the detailed steps on how to install OpenERP on the documentation pages.

What I am going to talk about now is what you should do first in order to know the system. This is covered in the OpenERP book in the First Steps in OpenERP. You should read it (I encourage you to buy the book since it is an excellent read and for $40 it will save you lots of hours). The idea is to configure a system that buys products from suppliers (and pays them), manages the stocks of those products and sells those products to customers (while collecting their payments). Pretty much what every other company in this world does in order to make a living.

What should we do first? Well, I assume you already have OpenERP up and running. So we are going to set up the company. You do this by selecting the Administration > Configuration > Companies menu (in OpenERP 6.0):

Click on Companies and you will see the list of the companies already configured in your system. Click on the New Button to create a new one. You will see a form like this:

This form has a header and six tabs. On the header you only need to enter the Company name. Then in the General Information tab you should be able to enter the main currency for the company (more on this in later posts), header and footer information and the company logo (which will be printed in the many forms that are used by OpenERP).

You have two more tabs for customizing the Header and footer, along with its internals. We will not get into those items at this time. If you go to the Configuration tab you should be able to configure some parameters for the system, such as the Timesheet range or the Reserve Profit/Loss account. But this is taken care of in more detail in the Parameters section of the system. Same with the Other tab.

Skip the Other and Overdue Payments tabs since they are not necessary to configure by now.

After you have configured the company, you can go to the next section, which is configuring account types. But we will go into that in a latter post.


Pricelists in OpenERP

December 29, 2010 Leave a comment

A customer asked us on what he was able to do with pricelists on OpenERP, so we decided to take a look at that functionality. So this post will cover what I learnt today regarding pricelists in OpenERP.

As stated by the tipo you can find in the Pricelist list view; “A pricelist contains rules to be evaluated in order to compute the purchase or sale price for all the partners assigned to a pricelist. Pricelists have several versions (2010, 2011, Promotion of February 2010, etc.) and each version has several rules. Example: the customer price of this category of product will be based on the supplier price multiplied by 1.80”

You can find the pricelist functionality in the Sales > Configuration > Pricelists menu. Clicking on that item, will show you two options, Pricelists and Pricelist Versions.

OpenERP 6.0 Main Menu

OpenERP 6.0 Main Menu

Click on the New button and you will see the New Pricelist Form

In this form we will enter the pricelist name, whether it is a sales or purchase pricelist, whether it is active or not, and its currency. In this example I will enter “Brazilian pricelist”, select BRL as the currency, and click save. The idea is to have a pricelist that applies to the computer products sold on the brazilian currency, the Real.

After saving the pricelist, we are ready to enter the pricelist versions. The pricelist version determines which rules of the pricelist will be applied when a sale or purchase invoice is entered by the user. These rules can be simple or become quite complex. We will cover some of them.

First you need to enter the pricelist version name, along with its start date, end date and active status. After entering that information, you can enter the rules. These rules apply mostly to products and its categories.

We will enter a new rule to illustrate how this work. The idea is to change the sale price to 150% of the cost price for all items of the Computer Stuff category, in case the quantity sold is greater than 100 items.

We create the new rule by clicking on the New button in the Version form. A new form will popup where we will enter the rule name, we will select the product, product template and product category that applies to the rule, and we will enter the minimum quantity that applies to the rule and its computation rule. We save the form and that’s all we need to do. Doing so we can enter different rules that cover the complexities that might apply to pricelists.

You can also apply pricelists to partners. On the partner form, select the Sales & Purchases tab, and you will be able to select which pricelist applies to that customer/supplier.