Community mailing list archives

Re: Orderpoints adjustment based on a previous period of sales

Marcelo Bello
- 08/15/2014 10:21:26

As Luis Mileo ( wrote recently (after someone posted a question about integration with eazystock), there is an ongoing effort to develop a module to integrate V7 with Lokad's Salescast (, go look for their salescast product).

Before I explain more about the Lokad integration and where it stands, for those of you tackling this problem I would like to share the results of my research when I was looking for cloud-based inventory opts solutions:

- Lokad Salescast
- Eazystock
- Blue Ridge
- Valogix
- Goods4Cast
- JustEnough
- Logility (for larger enterprises)
- SAS Inventory Management

      I currently use Lokad on my legacy ERP and think it is awesome. Also, this is the kind of functionality that one should REALLY leave to the professionals in the field, a good inventory optimization tool can save a lot of money in inventory, a built-in semi professional tool will do us no good IMO.

     I did not test all these solutions, I chose Salescast because their website is the most informative, they explain in detail how their optimization algorithm works (without revealing it, of course) and they offer great documentation that enables one to integrate with their system with about 20 hours of work, it is that easy. Also, they offer a free plan which is a great incentive to get started. They are also very honest about what to expect from their solution, while they do claim to have the best algorithm out there, they also explain in their docs all the shortcomings of demand forecasting (most other vendors only tell you the good part which is fishy because as anyone with some statistics background will know, there is no silver bullet). Go read their docs online if you are interested in learning more.

     Anyhow, about the Lokad<->Odoo integration for V7. I am the user, KMEE is the company developing it. This is how the module will work:

  1. The module will extract the information from the Odoo database, generating the files Lokad_Items.tsv and Lokad_Orders.tsv;
  2. The module will append the contents of a static and optional "Lokad_Orders_Legacy.tsv" file into Lokad_orders.tsv, which will contain order history from legacy systems (so a new Odoo user which did not migrate the data from his old ERP can still use Salescast with all the sales history from day one. Keep in mind that a sales history of 1-2 years is required for a good output);
  3. Odoo uploads Lokad_Orders.tsv and Lokad_Items.tsv by FTP to Lokad's servers (very easy);
  4. The user manually logs in to and start a new Salescast run; (this step can be automated)
  5. The user receives the results from Salescast in a spreadsheet (free version only supports export to Excel) and the user will manually create a csv file with two columns (ProductID and ReorderPoint) and upload this file to Odoo; (this step can also be automated)
  6. Odoo will read the reorder point data for each product and will update MinStockLevel and MaxStockLevel in this way:
    MinStockLevel = ReorderPoint
    MaxStockLevel = ReorderPoint + LotMultiplier (where LotMultiplier = Minimum Order Quantity)
  7. From this point on, Odoo takes care of the rest of the work;

Challenges / unsolved cases:

A. How to deal with multiple stock locations?
The module does not currently support multiple stock locations. Ideally, we will need to set for each product on each stock location: Service Level and Lead Time.
Example: One central warehouse receives products from a supplier with lead time = 30 days and sends products to other stock locations once a week. For the central warehouse, LeadTime = 30 days, for the other ones LeadTime = 7 days. 
One can also have different ServiceLevels for each stock location, specially in businesses where it is ok to serve orders from a different location as long as the product is available somewhere in the system. This is not the case for a grocery store but is the case for lots of businesses, specially B2B ones.

However, there are other challenges to multiple stock locations that will need to be addressed (we can discuss this in another thread if there is interest in this work)

B. The module does not currently exports Tags and Events.
These are important (go read their docs to understand what they are). Events are important specially to signal campaigns and stock outs. Tags can be important in fashion-related segments where for instance there can be a surge in sales of anything in blue color so Salescast can pickup correlations of various properties of a product and infer upcoming increases in demand from those correlations;


Is anyone interested is helping with this effort? Lokad Salescast is a great tool, it is affordable and easy to work with. An inventory opts tool is a must have for many many companies.

Best regards,


On 15 Aug 2014 08:10, "Thorsten Vocks" <> wrote:

we have developed a module for a electronic goods retailer in 2010 (v5). 
The basic idea was to dynamically update stock.warehouse.orderpoint rules (min/max) and suppliers 
delivery lead times in OpenERP. 

Inside of our first specification sheets we wanted to develop advanced rules based on theory about EOQ (economic order quantity). Finally we delivered a module with simplified rules and formulas. 

The calculator takes into account real consumption in history (from sale orders), forecasted consumption (stock_planning). In case of no history / future data it was possible to define some default values manually to allow proper calculation. It is very difficult to say if the module is generic enough, although It was formerly an official "certified module". Unfortunately it was never migrated to V6.

Here is the main V5 launchpad repository:

This specification below is the base ground:

More advanced specifications we have not implemented due to complexity:

also interesting and as i remember used by OpenERP as source of knowledge:

Best regards

Thorsten Vocks
Dipl. Kaufmann (FH)
Porscheweg 4-6
49661 Cloppenburg

Phone: +49 4471 8409000
Fax: +49 4471 84090009


2014-08-15 3:13 GMT+02:00 Marc Cassuto <>:
Hello All,

thanks for the answers.
For sure we will submit all the idea and discuss the specifications with our customer
(manufacturing company); then provide you all the result.


Marc Cassuto, Ing. MBA Itil

Consultant solutions ERP
T: 514-276-5468 #180

From: "pedro baeza" <>
To: "Community" <>
Sent: Thursday, August 14, 2014 9:48:27 AM
Subject: Re: Orderpoints adjustment based on a previous period of sales

As Ana has told, we are working on that just now, so until further notice from OCA, anyone interested, please give us your approach and requirements to see if it's met with our approach, and any collaboration is welcome.


2014-08-14 15:39 GMT+02:00 Ana Juaristi <>:

Hello everybody

Just to tell you that included on manufacturing solution we are working on ( odoomrp ) part of this functionality is included to be built but i see here very interesting ideas we did not take in mind.
We focused it like a new object where we could import product, quantities and data taking several criteria from other objects in order to create new procurements with them.

We have got a few more modules that we are going to build from now to december almost defined and technically focused but from begining of the project we are wanting to share requirements, technical focus and to have community opinion about our aproach.
We are waiting Oca to open access to an environment where we could write/publish all this detailed information in english but i'm afraid summer time is not very good to have resources that can make it quickly.
Anyway I think even if this topic is not the same, it's totally related to how and where publish odoo  documentation since if we publish from begining, from requirements and we make the module after, big part of documentation would be already made when module itself is available.
We are ready to invest on this. We have got a dedicated team (functional and technical) focused on mrp solution but this solution must include other areas as procurements, logistics, sales, purchases and so on mandatory way. We are ready also to share knowledge and even include other community members on project.  We only need defining the tools to use and the rules to follow. That's all.
So OCA board people... (Nhomar,eric, joel, maxime... Other all) How should we go? To start publishing on odoo pad as mentioned in other threath? To wait until things are more defined? To open directly our odoomrp environment to people?
Please let us know!!!

Thank you:

El 14/08/2014 14:38, "Quentin THEURET" <> escribió:

On 14/08/14 13:59, Peter Langenberg wrote:
> This kind of forecasting is not simple, it's can be different for
> different kind of companies (eg. company who has seasons sales -->
> chrismas, newyear .., or swimsuites for the summer, ski boots for the
> winter).
> It would also be nice that the parameters could be tuned automatic, so
> eg. slowmovers minimum stocks could be (proposed ?) reduced ... and so
> on ...


Indeed, there are some different kinds of forecasting procurements like 
procurements based on what have been sold, procurements based on what 
have been consumed (for manufacturing companies), procurements based on 
what have been going out of stocks (pharmacy of hospital)…
For each of these kinds of procurements, we should define how compute 
the consumption (which dates interval, which documents…). We should also 
define if we should compute a safety stock, if we should take care of 
the delivery lead-time, etc.
So, it is a big deal to do that because there are many possibilities and 
many parameters.

But the question is not here :) For now, I don't know a module that do that.


+33 (0)6 33 23 20 84



Pedro Manuel Baeza Romero
617 26 40 63 ·

Servicios Tecnológicos Avanzados
C/ Santa Aurora, 6 - 3ºD - 13700 TOMELLOSO (C. Real) ·

Expertos en Odoo/OpenERP

  skype  facebook  twitter  linkedIn  Google+ 

eco No me imprimas si no es necesario. Protejamos el medio ambiente

CLAUSULA DE CONFIDENCIALIDAD: Este mensaje se dirige exclusivamente a su destinatario y puede contener información privilegiada o confidencial. Si no es Vd.el destinatario indicado, queda notificado de que la divulgación y/o copia sin autorización está prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. Serv. tecnol. avanzados - Pedro M. Baeza garantiza la máxima confidencialidad y seguridad de sus datos de conformidad con lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de carácter personal, pudiendo ejercitar los derechos de acceso, rectificación, cancelación y oposición comunicándolo por escrito a esta dirección: C/ San Sebastián, 9A – 13250, DAIMIEL, o mediante correo electrónico a

LEGAL DISCLAIMER: This electronic message is only for the indicated addresses. Its character is confidential, personal and not transferable and it is protected by law. Any revelation, dissemination, disclosure, alteration, printing, copying, transmission or use no permitted, total or partial, is prohibited and may be unlawful. If you have received this message by mistake, you have to notify it immediately to the person who has sent it and delete the original message and also the attached files without read or store.


Post to:

Post to: