Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

[求助]如何用csv批量导入产品库存



  • 在产品物料列表看到有个“实际库存”项,便想入非非,看在csv导入产品时能否一同导入产品实际库存数。

    在csv里添加“实际库存”字段,导入提示unknow,添加“库存”仍然unknow,难道真的没有办法了吗?


  • 管理员

    点击库存管理-库存盘点,使用所附的模板导入货品期初库存。注意时间的格式。



  • tong 谢谢你的附件。还有个问题:csv里只有产品名称一项,如果系统里产品名称重复的话,我试过,默认导入的是同样名称产品中的第一种产品。能否解决?



  • 详细情况是这样的,导入盘点单的时候只有一项产品物料名称,但是我的系统里有很多相同名称的产品,导入时默认导入到第一个该名称的产品上去,我希望导入的时候不仅仅指用一个产品物料名称在加上产品编码和产品物料系列,这样导入后就tiny不会区分不出来了


  • 管理员

    在不改源代码的前提下建议你为这些有相同的Code和Name的产品定义不同的条形码(EAN),在准备导入资料时产品名称部分填条形码(EAN)。事实上产品名称部分可以填产品的Code,Name或者EAN,三者之一,可以混用。

    实际操作中,每个产品的Code应该还是唯一比较合理。

    [[i] 本帖最后由 digitalsatori 于 2008-5-10 23:06 编辑 [/i]]


  • 管理员

    把代码分析的过程说一下(有兴趣的话就可以按这个思路去修改代码来达到你的目的):
    数据的导入操作实际上最终是由服务器目录下/osv/orm.py中的import_data函数,在其下还有process_liness函数。仔细看的话下面这段代码是我们上述问题的关键:

    res2 = self.pool.get(relation).name_search(cr, uid, line[i], [], operator='=')
    

    它的意思是通过调用对象所定义的name_search函数并将结果存在res2变量中,对于我们这里的例子这个对象就是product.product. 所以我们打开product.py文件(你应该知道在哪里的吧)
    看到name_search是这样的:
    [code]def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=80):
    if not args:
    args=[]
    if not context:
    context={}
    ids = self.search(cr, user, [('default_code','=',name)]+ args, limit=limit, context=context)
    if not len(ids):
    ids = self.search(cr, user, [('ean13','=',name)]+ args, limit=limit, context=context)
    if not len(ids):
    ids = self.search(cr, user, [('default_code',operator,name)]+ args, limit=limit, context=context)
    ids += self.search(cr, user, [('name',operator,name)]+ args, limit=limit, context=context)
    result = self.name_get(cr, user, ids, context)
    return result[/code]
    这段代码的意思应该不难懂,由此得出了我上贴所诉的内容。



  • 不懂python,粗略看了一下,看来所有导入的数据都得有一个不重复字段了,否则就会出现问题。也就是说,虽然系统里未规定必须有主键字段(GUID是内部使用的),但是要想用导入功能,某个“导入”字段必须能唯一确定一条数据库记录。

    可以这样理解么?



  • 完全可以改写一下name_search函数,让他来匹配 code+Name+Variant。ajax79有没有兴趣做点尝试。



  • 我更不懂python,按照我的胡乱理解,现在的tiny是通过'default_code''ean13'与'name'来确认产品?

    至于如何改为code+Name+Variant就完全没有想法,不会是简单的把'ean13'改为'Variant'吧。

    还请admin好人做到底吧。


Log in to reply