Импорт нод из 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.