DARTHARTH

Импорт нод из XML-ссылки в Drupal 9

Прилетела задача для своего сайта — добавить импорт нод из XML-фида для яндекс маркет. До этого сталкивался только с импортом из готовых CSV файлов, но тут был полный ступор из за структуры и от того, что это всё таки ссылка а не файл отдельный))) Вообщем проверяем, что у нас стоят расширения Feeds и Feeds Extensible Parsers. Оба модуля на момент написания статьи уже имели версии совместимые с девяткой.

Создаем наш тип потока данных. Переходим в Структура/Типы потоков данных и жмем на кнопку Добавить поток данных.

В открывшемся интерфейсе вводим название для нашего потока, после чего в Fetcher выбираем Download from url, тем самым мы указываем, что наш фид будет загружаться по ссылке.

В значении Parser выбираем XML, так как у нас XML-фид

Processor — Материал и Content type — имя типа данных для импорта на вашем сайте.

В настройках Import period выбираем частоту импорта (полезно для импорта и последующего обновления товаров из фидов).

В настройках Processor можно выбрать обновлять ли существующие ноды или нет, задавать владельца импортированных нод.

Жмем Save and add mapping и начинаем магию.

У нас открывается вкладка потока — Соответствия. Здесь мы будем выбирать данные из каких полей нашего XML фида будут имопртироваться в задаваемые поля нод нашего сайта.

Прежде всего нужно заполнить коле Контекст. Это своего рода путь в фиде до наших импортируемых значений. К примеру в моем фиде была примерно следующая структура

где данные нод были обёрнуты в блоки offer. Из этого примера значение коля контекст будет следующим

/yml_catalog/shop/offers/offer

То есть уже в offer находятся поля которые нам нужно импортировать в наши ноды.

Добаввив значение контекста выбираем цель и источник. Во всплывающем списке выбираем значение наших нод и слева от этого значения выбираем в списке New xpath source и прописываем название импортируемого поля.

На пример у моих нод есть поле Код товара и в фиде подобное поле тоже есть, соответственно я выбираю

значение vendorCode берем из нашего XML фида

Таким образом проставляем все нужные нам соответствия и жмем на Сохранить.

После этого можно идти в Content\Потоки данных, где жмем на Добавить RSS-ленту. В поле url ленты вводим ссылку на наш xml фид и прописываем название, после чего жмем Save and import.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll Up