Стандартна задача - імпорт з exel в drupal commerce.
У моєму прикладі один товар відповідає одній ноді. Тому всі подальші прийоми і код використовуються срого з цією умовою.
Є для цього кілька модулів які допомагають імпортнуть дані спочатку в Product Variation. а потім вже в Product Display. Ми їх вивчили і вирішили останоіться на зв'язці Feeds. Commerce Feeds, Feeds Rules, Feeds Tamper, Feeds Excel
Коротенько про кожному модулі:
Feeds - дозволяє імпортувати дані в акі суті як User, Node, Taxonomy term. Дополніельную модулі розширюють список підтримуваних для імпорту сутностей.
Commerce Feeds - розширює список сутностей feeds - доавляет можливість імпорту товарів (product variation), профілів покупців і т.д. дивіться на скрині нижче
Feeds Rules - розширює функціонал модуля Rulers. Додає кілька умов пов'язаних з feeds. Одне з яких - закінчення імпорту, яке нам надалі прігодліться. Дивіться скрін нижче
Feeds Tamper - модуль дозволяє робити обробку даних перед тим як заповнити імпортованого поля. У нашому випадку, я його використовував для обрізання прогалин і заповнення Мулто полів.
Feeds Excel - добавляеn можливість імпорту з exel.
1. Створюємо два імпорту. Один для товарів (product variation), інший для відображень (Product display).
2. Зв'язок цих результату імпорту за унікальним значенням, яке знаходиться в імпортуємо EXEL файлі
3.Запуск імпорту Product display після закінчення імпорту Product variation
4. Заповнюємо поле картинок товарів множетвенним значеннями.
Створюємо перший імпорт Product variation
Створюємо другий імпорт Product
В останньому скрині в якості унікального значення ми сіпольуем SKU - артикул товару. Але в стандартному постачанні Feeds це поле не вийде використовувати як унікальне - немає там такої можливості. Тому на придеться трохи написати коду. По полю SKU м шукатимемо Ноди товари і оновлювати їх.
Нам потрібен буде свій модуль і в ньому реалізуємо один едіснвенний хук і одну функцію.
Важливо. Машинне ім'я для Ноди товарів product_display. Ім'я модуля vanshop_basic
Невеликі пояснення по коду: Ми об'явлеяем field_product: sku можливість бути унікальним значенням, і реалізуємо функцію по якій повертаємо nid Ноди відповідної товару по field_product: sku. Якось так. Знову ж таки, повторюся. Ця магія може бути застосована тільки коли кожен товар має свою ноду.
Тепер буде відбувається следуюещее:
1. Ми іпортіруем спочатку Product variation
2. Потім імпортуємо Product
3. Зв'язок між ними буде по полю SKU.
Тобто в і ці два імпорту ми завантажуємо один і той же файлик ексель і за допомогою нього створюємо або оновлюємо товари і їх відображення.
Кінець першої частини. Будуть питання пишіть.