订单行导入无法识别产品外部 ID?

Order Line Import not recognising Product External ID?

我正在尝试将采购订单导入 odoo 并解决了大部分问题,但是我无法使用外部 ID 更新产品列表。我可以使用数据库 ID 或产品名称,但是如果我尝试使用外部 ID,我会收到此错误:

在 table 上插入或更新 "purchase_order_line" 违反了外键约束 "purchase_order_line_product_id_fkey" 详细信息:[=20= 中不存在键 (product_id)=(644) ] "product_product"。在第 2 行和第 4 行之间

有人可以向我解释为什么会发生这种情况以及我必须做些什么来解决它吗?

我想问题是您使用的是 product.template 记录的 外部 XML ID 而不是 product.product 记录。

如果是这样,您的 product.product 记录可能不会有 外部 XML ID,因为它们是在数据库,或通过导入各自的产品模板,或为这些模板添加属性和属性值。

如果您有这个问题,您可以先导出产品,然后再为您的产品生成 外部 XML ID。如果您导出任何没有 外部 XML ID 的记录,该记录会自动生成并出现在您的导出文件中的 id 列下.因此,解决方法是 select 所有产品(或者最好只导出您将要使用的产品),导出它们,从中获取它们的 外部 XML ID导出的文件,并使用它们导入您的 purchase.order.line 记录。

这个解决方案的问题

  • 从一个数据库中获取的External XML ID不能与从其他不同数据库中获取的相同,尽管它们有相似的产品,因此生成的导入文件此方法适用于特定数据库,不适用于其他数据库。

  • 外部 XML ID 存储在数据库中,因此如果您生成数千个 ID,数据库将根据您出口的产品数量而增长。