YML

Стандарт YML (Yandex Market Language) разработан Яндексом и основан на стандарте XML

Небольшой файл до 30MB формата YML можно загрузить штатными средствами через База - Импорт данных. Для загрузки YML следует выбрать в настройках тип файла - Яндекс (YML).

В режиме автоматического определения типа файла будет прочитаны первые строки файла, но на это будут потрачены ресурсы хостинга. При большом размере файла рекомендуется явно указывать тип файла - Яндекс (YML).

Выбрать тип файла YML

YML файл будет переведен автоматически в формат CSV и загружен с колонками "Артикул", "Наименование", "Краткое описание", "Большое изображение", "Подробное описание", "Склад", "Цена 1", "Вес", "ISO", "Каталог", "Путь каталога", "Характеристики", "Штрихкод", "Подтип", "Подчиненные товары", "Цвет", "Старая цена", "Длина", "Ширина", "Высота", "Внешний код". В режиме сопоставления полей можно будет отключить обработку ненужных полей.

Подтипы

Если используются группы товаров (размеры, цвет и т.д.), влияющие на цену и остаток, то следует включить режим обработки Подтипов в меню Настройки - Обмен данными.

Включить учет подтипов

Каталоги

Автоматическое создание каталогов

При загрузке YML-файла каталоги и подкаталоги будут созданы автоматически на основе колонки Путь каталога.

Ручное создание каталогов

Если автоматическое создание каталогов не требуется, то следует выполнить сопоставление полей и не использовать колонку Путь каталога. ID каталога в режиме сопоставления хранится в колонке Каталог. После создания товаров cледует сменить тип данных на Каталоги в левом меню и еще раз загрузить YML-файл. При ручном создании каталогов рекомендуется загрузить сначала каталоги, а потом товары, чтобы верно привязались характеристики.

Если импорт данных осуществляется с сервисов конструкторов сайтов (Tilda, InSales и т.д.), то необходимо увеличить размерность полей ID каталогов, для это в меню База - SQL запрос к базе следует выполнить команду:

ALTER TABLE `phpshop_categories` CHANGE `id` `id` BIGINT(33) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `phpshop_categories` CHANGE `parent_to` `parent_to` BIGINT(33) NOT NULL DEFAULT '0';
ALTER TABLE `phpshop_products` CHANGE `category` `category` BIGINT(33) NULL DEFAULT '0';

Возможность обрабатывать большие файлы формата YML зависит от тарифа хостинга и количества выделяемой памяти для работы сайта. Большие файлы формата YML можно импортировать через отдельную бесплатную утилиту PriceLoader, Q-Parser или через скрипт YML2CSV.

YML2CSV

С помощью консольного скрипта yml2csv.php можно обработать большие YML файлы более 30MB для сохранения YML файла в формат CSV и последующего использования его штатными средствами через База - Импорт данных. Скрипт yml2csv является частью модуля Задачи.

Формат запуска:

php phpshop/modules/cron/sample/yml2csv.php "https://example.ru/file.xml" outfile

В качестве первого аргумента нужно указать полный адрес YML-файла, во втором outfile указывается по желанию префикс результирующего файла csv (для одновременной обработки разных источников).

После выполнения скрипта в папке /phpshop/admpanel/csv/ будут созданы файлы товаров product.yml.csv и каталогов category.yml.csv

Запускать можно как через Терминал консоли, так и добавить задачу в Cron для периодической обработки YML-файла для обновления цен или остатков.

Результат выполнения через Cron на хостинге Beget

Last updated

Was this helpful?