Перенесення товарів з іншої бази

При перенесенні товарів часто виникає проблема, яка породжена архітектурою, а саме: існують дві моделі, які відповідають за товар: 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


Перейдемо до зовнішніх ідентифікаторів


Імпортуємо файл


Зверніть увагу які стовбчики куди треба імпортувати.

Таким чином у товарам буде доданий зовнішній ІД зі старої бази, і тепер його можна використовувати при імпорті для посилання на товар.


Перенесення товарів з іншої бази
Володимир Карабанов 13 лютого 2023 р.
Поділитися цією публікацією
Теги
Архів
Як робити переклади в Odoo