Імпорт товарів з exel в drupal commerce

Стандартна задача - імпорт з 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), профілів покупців і т.д. дивіться на скрині нижче

Імпорт товарів з exel в drupal commerce

Feeds Rules - розширює функціонал модуля Rulers. Додає кілька умов пов'язаних з feeds. Одне з яких - закінчення імпорту, яке нам надалі прігодліться. Дивіться скрін нижче

Імпорт товарів з exel в drupal commerce

Feeds Tamper - модуль дозволяє робити обробку даних перед тим як заповнити імпортованого поля. У нашому випадку, я його використовував для обрізання прогалин і заповнення Мулто полів.

Feeds Excel - добавляеn можливість імпорту з exel.

1. Створюємо два імпорту. Один для товарів (product variation), інший для відображень (Product display).

2. Зв'язок цих результату імпорту за унікальним значенням, яке знаходиться в імпортуємо EXEL файлі

3.Запуск імпорту Product display після закінчення імпорту Product variation

4. Заповнюємо поле картинок товарів множетвенним значеннями.

Створюємо перший імпорт Product variation

Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce

Створюємо другий імпорт Product

Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce
Імпорт товарів з exel в drupal commerce

В останньому скрині в якості унікального значення ми сіпольуем SKU - артикул товару. Але в стандартному постачанні Feeds це поле не вийде використовувати як унікальне - немає там такої можливості. Тому на придеться трохи написати коду. По полю SKU м шукатимемо Ноди товари і оновлювати їх.

Нам потрібен буде свій модуль і в ньому реалізуємо один едіснвенний хук і одну функцію.

Важливо. Машинне ім'я для Ноди товарів product_display. Ім'я модуля vanshop_basic

Невеликі пояснення по коду: Ми об'явлеяем field_product: sku можливість бути унікальним значенням, і реалізуємо функцію по якій повертаємо nid Ноди відповідної товару по field_product: sku. Якось так. Знову ж таки, повторюся. Ця магія може бути застосована тільки коли кожен товар має свою ноду.

Тепер буде відбувається следуюещее:

1. Ми іпортіруем спочатку Product variation

2. Потім імпортуємо Product

3. Зв'язок між ними буде по полю SKU.

Тобто в і ці два імпорту ми завантажуємо один і той же файлик ексель і за допомогою нього створюємо або оновлюємо товари і їх відображення.

Кінець першої частини. Будуть питання пишіть.

Схожі статті