Logistics mailing list archives

logistics@odoo-community.org

Avatar

Warehouse product location strategy

by
6it, Jean-Marc Dupont
- 16/11/2015 14:47:58
Hello everyone,

I need an advice from Odoo logistics experts :

How do you parameterize Odoo warehouse to manage default product location on warehouse stock, when receiving products and thus when delivering those products

Let's say we have 100 location in the warehouse stock
We would like to define default product location, category by category (and sometimes by product)

Do we have to create 100 routes and affect them to product categories or products (by the way, the widget used in product form for routes will display 100 check boxes !!!) ?
Is there other lighter solutions ?

Thank you in advance for your answers

PS : I tried to install the stock_product_location but I got an installation error :
Traceback (most recent call last):
  File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 537, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 574, in dispatch
    result = self._call_function(**self.params)
  File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 310, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 307, in checked_call
    return self.endpoint(*a, **kw)
  File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 803, in __call__
    return self.method(*args, **kw)
  File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 403, in response_wrap
    response = f(*args, **kw)
  File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 952, in call_button
    action = self._call_kw(model, method, args, {})
  File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 940, in _call_kw
    return checked_call(request.db, *args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 939, in checked_call
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/openerp/addons/base/module/module.py", line 446, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/openerp/addons/base/module/module.py", line 494, in _button_immediate_function
    registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/home/it-6it/aoe-dev_80/base/openerp/modules/registry.py", line 370, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/home/it-6it/aoe-dev_80/base/openerp/modules/loading.py", line 355, in load_modules
    loaded_modules, update_module)
  File "/home/it-6it/aoe-dev_80/base/openerp/modules/loading.py", line 255, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/home/it-6it/aoe-dev_80/base/openerp/modules/loading.py", line 176, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/home/it-6it/aoe-dev_80/base/openerp/modules/loading.py", line 118, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/home/it-6it/aoe-dev_80/base/openerp/tools/convert.py", line 901, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/home/it-6it/aoe-dev_80/base/openerp/tools/convert.py", line 987, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/home/it-6it/aoe-dev_80/base/openerp/tools/convert.py", line 853, in parse
    self._tags[rec.tag](self.cr, rec, n, mode=mode)
  File "/home/it-6it/aoe-dev_80/base/openerp/tools/convert.py", line 755, in _tag_record
    f_val = self.id_get(cr, f_ref)
  File "/home/it-6it/aoe-dev_80/base/openerp/tools/convert.py", line 832, in id_get
    res = self.model_id_get(cr, id_str, raise_if_not_found)
  File "/home/it-6it/aoe-dev_80/base/openerp/tools/convert.py", line 843, in model_id_get
    raise_if_not_found=raise_if_not_found)
  File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/openerp/addons/base/ir/ir_model.py", line 936, in xmlid_to_res_model_res_id
    return self.xmlid_lookup(cr, uid, xmlid)[1:3]
  File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "<string>", line 2, in xmlid_lookup
  File "/home/it-6it/aoe-dev_80/base/openerp/tools/cache.py", line 74, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/home/it-6it/aoe-dev_80/base/openerp/addons/base/ir/ir_model.py", line 926, in xmlid_lookup
    raise ValueError('External ID not found in the system: %s' % (xmlid))
ParseError: "External ID not found in the system: stock.view_normal_procurement_locations_form" while parsing /home/it-6it/aoe-dev_80/base/addons/stock_product_location/product_view.xml:5, near
<record model="ir.ui.view" id="product_normal_stock_loc_form_view">
      <field name="name">view.product.normal.stock.loc.form</field>
      <field name="model">product.product</field>
      <field name="inherit_id" ref="stock.view_normal_procurement_locations_form"/>
      <field name="type">form</field>
      <field name="arch" type="xml">
        <field name="loc_rack" position="before">
          <field name="property_stock_location" domain="[('usage','=','internal')]" attrs="{'readonly':[('type','=','service')]}"/>
        </field>
      </field>
    </record>



Jean-Marc DUPONT 

Agence Web, e-Commerce et Systèmes d'entreprise 

68, rue du Refuge - 84200 Carpentras

T. 06.24.91.02.03  -  04 84 25 17 94

Éditeur de la marque Provenc.io

1° marque e-Commerce 100% Provence




Follow-Ups