При перенесенні товарів часто виникає проблема, яка породжена архітектурою, а саме: існують дві моделі, які відповідають за товар: product.template (меню Товари) та product.product (меню Варіанти товару).
Тому при експорті з бази частина властивостей прив'язана до product.template (зображення, категорії тощо), а частина до product.product (продажі, залишки тощо).
Ці моделі не просто пов'язані, вони пов'язані через делегування. Для читачів, що не знайомі з програмуванням під odoo, поясню, що об'єукти цих моделей завжди існують в парі (ну точніше у одного product.template може бути декілька product.product), тобто при створенні product.template йому обов'язково створиться product.product, і так само для product.product (якщо явно не вказати product.template, який вже існує).
Проблема імпорту в тому, що ми не можемо імпортувати product.template без створення product.product.
Візьмемо приклад товарів для переносу
Заливаємо варіанти без імпорту товарів (product_tmpl поля)
Ми отримали варіанти товару, до яких створились товари (запис в product.template) експортуємо нові записи з варіантів товарів (product.product) нової бази, щоб отримати зв'язок зовнійшній ІД варіанту та ІД БД товару
Використаємо формулу, щоб отримати зв'язок ІД в БД та зовнішнього ІД товару
=VLOOKUP(A2,$Sheet2.A:G, 7,0)
Також потрібно розділити Назву модуля (символи до крапки) та значення коду (значення після крапки) за допомогою формул
=LEFT(C2,FIND(".",C2)-1)
=RIGHT(C2, LEN(C2) - FIND(".",C2))
Нам також знадобиться колонка (назвемо її model) що буде містити назву моделі product.template
Перейдемо до зовнішніх ідентифікаторів
Імпортуємо файл
Зверніть увагу які стовбчики куди треба імпортувати.
Таким чином у товарам буде доданий зовнішній ІД зі старої бази, і тепер його можна використовувати при імпорті для посилання на товар.