Руководство по XML-экспорту Воспользоваться конструктором ссылок
В данном руководстве описывается экспорт из базы данных toysi.ua. Не имеет значения куда вы будете импортировать полученные данные. В руководстве упоминается маркетплейс Prom.ua, но лишь потому, что им многие пользуются и на его примере рассмотрены две серьёзные проблемы импорта.
Параметры в ссылке на XML, влияющие на его содержимое. Правила составления ссылки Рекомендованная ссылка, отдающая XML Проблема открывания XML в программе Excel. Параметр excel Проблемы импорта нескольких XML от разных поставщиков в магазин Prom.ua Проблема пересечения диапазонов порядковых номеров товаров. Параметр shift Проблема обновления наличия. Параметр out_of_stock Параметр category Параметр production Параметр cats Параметр vendor_code Параметр download Параметр user Параметр promo_action Параметр margin_ukr Параметр margin_import Параметр margin_action Параметр margin_cats Параметры price_from и price_to Параметр round Параметр at_least Параметр in_stock Параметры vendor, country, video Параметр key Параметр param Параметр picture Параметр offer_id Параметр description Параметр glue Параметр prefix Параметр lwh Параметр lang Параметр many_lang Параметр assembly Параметр count Параметр selling_type Параметр opt_price Параметр prom_cat Параметр rrc Описание формата XML-файла Альтернативный экспортcategory - ограничивает XML товарами из определенной категории или набора категорий;
production - позволяет ограничить XML товарами с категории "Импорт" или "Украина";
cats - добавляет в каждый товар тег <cats> с текстовым представлением категории и подкатегории данного товара;
vendor_code - позволяет выбрать, что будет в XML-теге <vendorCode>: артикул производителя или наш код товара (артикул нашего склада);
out_of_stock - позволяет включить в XML товары, которые ушли из наличия в последние 7 дней;
download - позволяет начать скачивание на диск, вместо отображения в браузере;
excel - позволяет решить проблему открывания в программе Excel;
shift - позволяет задать смещение id;
user - позволяет получить в XML цены с учетом персональной скидки;
promo_action - позволяет отключить акционные скидки;
margin_ukr - позволяет увеличить цены на украинские товары;
margin_import - позволяет увеличить цены на импортные товары;
margin_action - позволяет увеличить цены на акционные товары;
margin_cats - позволяет увеличить цены на выбраные категории;
price_from - позволяет задать нижний порог цен, для включения товаров в XML;
price_to - позволяет задать верхний порог цен, для включения товаров в XML;
round - позволяет округлять цены в XML;
at_least - ограничивает XML товарами, которых в наличии хотя бы at_least штук;
in_stock - добавляет в XML тег <quantity_in_stock> с минимальным числом остатка товара;
vendor - добавляет в XML тег <vendor> с названием бренда;
country - добавляет в XML тег <country> с названием страны производителя;
video - добавляет в XML тег <video> со ссылкой на видео;
param - выносит свойства товара в отдельные теги <param>, убирает свойства из описания товара;
picture - позволяет задать максимальное количество фотографий товара;
offer_id - задает код единственного товара, который будет выдан в XML;
description - позволяет исключить товары без описаний;
lang - позволяет получить названия и описания товаров на украинском языке;
many_lang - добавляет в XML дополнительные теги <name_ua> и <description_ua> с названием и описанием товаров на украинском языке;
assembly - позволяет добавить к товарам цену за сборку;
count - позволяет получить количество товаров;
selling_type - указывает, к какой категории товар относится: розница или опт и розница;
opt_price - добавляет в XML дополнительные теги с указанием оптовой цены на товар;
prom_cat - связывает наши категории с категориями Prom.ua;
rrc - позволяет исключить товары, в которых указана рекомендованная розничная цена;
Подробное описание всех параметров смотрите ниже. Параметры в ссылке следуют после символа ?
Пары параметр=значение (всегда строчными буквами) могут следовать в любом порядке и разделяются между собой символом &
Пробелов в ссылке быть не должно. Пример составления ссылки с тремя параметрами:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&out_of_stock=2&category=31216
https://toysi.ua/feed-products-residue.php?vendor_code=prom&vendor=yes&out_of_stock=2&shift=9000000&key= ваш-ключ
Свой ключ доступа вы можете найти в личном кабинете, в разделе API. Внимание : если ранее Вы пользовались ссылкой без параметра shift, то, перед началом использования рекомендованной ссылки, удалите из своего магазина на Prom.ua все наши товары, чтобы избежать их дублирования. Если вы используете другое значение этого параметра, то продолжайте его использовать. Параметр shift позволяет решить проблему пересечения диапазонов порядковых номеров товаров. Об этом обязательно прочитайте ниже. О параметре vendor_code тоже стоит прочитать ниже - возможно вы захотите его изменить, если вам нужны артикулы производителей. Если вам нужен XML на украинском языке, добавьте параметр lang=ukr
Чтобы открыть XML, откройте программу Excel, откройте меню "Открыть" и выберите XML-файл, который вы скачали на диск (см. описание параметра download). В диалоговом окне выбора способа открытия выберите "XML-таблица". Новые версии программы, начиная с Excel 2010, не позволяют открыть как "XML-таблица" из-за наличия в файле ссылки на схему документа. Из соображений безопасности, схема документа запрещена.
Чтобы решить эту проблему, добавьте в ссылку на XML параметр
excel=hide_dtd.
Это исключит из файла заголовок
<!DOCTYPE yml_catalog SYSTEM "shops.dtd"> и Excel сам создаст схему документа.
Имейте в виду, что использование в ссылке параметров picture или param, приведет к тому, что в каждом товаре может быть по несколько тегов <picture> или <param> с разными значениями, из-за чего Excel, открывая XML как таблицу, сделает для каждого такого товара по несколько почти одинаковых строк, отличающихся только значениями picture или param. Такое дублирование товаров в таблице может быть крайне неуместным для решения ваших задач.
Пример ссылки на XML:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&excel=hide_dtd
В справке Prom.ua этот атрибут товара — id — описан так: "Уникальный порядковый номер товара/услуги в файле импорта (ID), по которому в дальнейшем будет выполняться обновление данной позиции". В качестве id мы используем код товара (о том, чем код товара отличается от артикула, читайте в описании параметра vendor_code).
Если у двух ваших поставщиков id пронумерованы в одном и том же диапазоне (например от 1 и дальше по порядку), то при импорте файла второго поставщика, товары первого, по идее не должны, но обновятся информацией второго поставщика из-за того, что в файлах обоих поставщиков есть одинаковые id.
Эту проблему можно игнорировать, если вы не обновляете цены по файлу XML, или если при каждой продаже сверяете цену с сайтом поставщика. Однако неправильное обновление наличия или других атрибутов товаров будет вам постоянно досаждать.
Первый способ решения - делать последовательный импорт файлов от поставщиков не на Prom.ua, а в другую базу данных, которая умеет работать с множеством поставщиков - позволяет выбрать поставщика при импорте. В этой базе данных каждому товару будет присваиваться уникальный id. Из этой базы данных вы сможете делать экспорт файла с товарами всех поставщиков для импорта на Prom.ua. Но для этого у вас должна быть такая база данных.
Второй способ решения (если у вас нет общей базы данных со всеми товарами).
Разнесите диапазоны id поставщиков, чтобы они не пересекались. Например вы выяснили, что у первого поставщика id нумеруются по порядку от 1 и врядли id когда-либо превысит 200000. Вам нужно сделать так, чтобы в файле второго поставщика (который тоже нумерует товары с 1) ко всем id прибавилось число 200000, то есть, сместить диапазон id на 200000. Для третьего поставщика сместить на 400000 и т.д.
На портале Prom.ua нет никаких опций импорта для организации такого смещения. Возможно, потому, что это сложно для понимания и, при неправильном использовании, может приводить, например, к повторному импорту тех же товаров но с другими id или к обновлению не тех товаров, которые должны обновиться. Для смещения диапазона id вам надо либо использовать какую-то специальную программу, чтобы перед импортом второго поставщика заменять в файле все id на id+200000, либо попросить поставщика организовать для вас выдачу готового XML, в котором id будут принадлежать строго определенному диапазону, который вам нужен. Во многих случаях, для поставщика это не должно вызвать больших технических сложностей. Если ваш поставщик формирует XML динамически, он может предусмотреть специальный параметр в ссылке для значения смещения id и прибавлять это смещение к id в момент скачивания XML.
В ссылке на наш XML этот параметр называется shift. Пример ссылки на XML:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&shift=9000000
Значение shift не должно превышать 2 миллиарда. Если вы планируете использовать этот параметр, указывайте всегда одно и то же значение, и предварительно удалите из магазина наши товары, импортированные без смещения id.
В нашей базе данных товары нумеруются от 10000 и, на момент написания руководства, последний номер товара не превышает 135000.
Если вы импортируете в один и тот же магазин Prom.ua несколько файлов подряд, нужно использовать настройку импорта"Статус товаров, которых нет в файле" выбрав вариант "Оставить без изменений".
Иначе при импорте второго файла, все товары из первого файла, которых нет во втором, станут скрытыми, удаленными или "нет в наличии" (в зависимости варианта, который вы выберете).
Если вы выберете "Оставить без изменений", то для того, чтобы обновилось наличие и некоторые товары получили статус "нет в наличии", нужно чтобы эти товары присутствовали в XML-файле и были отмечены как "нет в наличии" - XML-атрибут available должен быть равен пустой строке. Но обычно поставщики включают в XML только товары, которые есть в наличии для сокращения размера файла и исключения давно не продаваемых позиций. Мы поступаем так же, но для задачи последовательного импорта на Prom.ua мы сделали специальный параметр в ссылке на XML.
Параметр out_of_stock=2 позволяет включить в XML не только товары в наличии, но и товары, которые ушли из наличия в последние 2 дня. Допустимые числа: от 1 до 7. (Устаревшее значение out_of_stock=latest интерпретируется как 2 дня). При использовании параметра out_of_stock, у вас обновится наличие товаров даже если вы отметите настройку импорта на Prom "Статус товаров, которых нет в файле" = "Оставить без изменений". Отмечайте также настройку-флажок "Загрузить позиции в наличии/гарантированное наличие/под заказ", чтобы Prom не добавлял в магазин товары, ушедшие с наличия. Чтобы не пропустить обновление наличия товаров, уходящих с остатка, вам нужно делать импорт не реже, чем раз в Х дней (выбранное вами число). Иначе какие-то товары в вашем магазине могут навечно остаться в наличии.
Полная ревизия наличия
- получение всех когда-либо ушедших из наличия товаров для выключения их в вашем магазине (если они там есть).
Для этого скопируйте свою обычную ссылку на XML, удалите в ней параметр category, пропишите в параметре
out_of_stock=total_revision
Это приведет к следующему:
1) для сокращения объема XML, сервер выдаст в XML только товары "нет в наличии" (около 80 тыс) и описаний товаров не будет в XML.
2) около 2 тыс. товаров, навсегда снятых с продажи, будут с названием "снят с продажи" и будут без картинки.
Настройки импорта Prom при импорте ссылки с параметром out_of_stock=total_revision
1) в разделе "Информация, которую нужно обновить" отметьте только один флажок - "Наличие".
2) отметьте флажок "Загрузить позиции в наличии/гарантированное наличие/под заказ", чтобы Prom не добавлял в магазин товары, а только "выключал" наличие.
3) "Статус товаров, которых нет в файле" - "Оставить без изменений", чтобы не трогать товары других ваших поставщиков.
4) "Автоматическое обновление ссылки" - "Никогда".
Это однократная процедура, после нее вернитесь к использованию своей обычной ссылки на XML (без total_revision).
При использовании
out_of_stock
(с любым значением), параметр at_least игнорируется. А если
out_of_stock=total_revision
, то игнорируются также фильтры price_from, price_to, description=not_empty, чтобы выдать максимальное число товаров для ревизии наличия. Однако, параметр
category
работает - ограничивает XML категориями, поэтому его лучше убрать при ревизии, потому что, на складе Тойси,
товар могли переместить в другую категорию (когда он был еще в наличии), и это могло стать причиной того, что он исчез из вашего XML,
отфильтрованного по категории, а позже товар ушел из наличия, но, не попадая в XML, в вашем магазине остался в наличии навсегда.
Пример ссылки на XML:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&out_of_stock=3
Этот параметр может работать в одном из двух режимов: "выдать только перечисленные" или "исключить перечисленные". Совместить оба режима невозможно и это бессмысленно.
1. Режим "выдать только перечисленные". Это фильтр по категории, он ограничивает XML товарами из определенной категории или набора категорий, включая все их дочерние категории всех уровней вложенности. Номера всех активных в данный момент категорий магазина с примерами параметра category можно найти по этой ссылке: https://toysi.ua/feed-products-categories.php
Пример ссылки на XML для категории Пазлы (её номер 99075):
https://toysi.ua/feed-products-residue.php?vendor_code=prom&category=99075
Чтобы передать серверу в параметре category целый набор категорий, нужно перечислить их идентификаторы через запятую (без пробелов). Если вы хотите сделать фильтр для более 20 категорий, ссылка на XML получится очень длинной. Длина ссылки ограничена возможностями протокола http, поэтому, если ссылка очень длинная, указывайте параметр category в конце ссылки и тестируйте, попадают ли в XML товары из последней категории набора.
Пример ссылки на XML для категорий Пазлы, Конструкторы, Детский транспорт:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&category=99075,99058,99064
(Товар может принадлежать только одной категории, поэтому "Новинки", "Акция" и "Бренды" не являются категориями и не представлены в XML. Это временные списки товаров, принадлежащих разным категориям. Акция - список товаров со скидкой. Новинки - список недавних новых поступлений. Бренды - список товаров популярных брендов.)
2. Режим "исключить перечисленные". Чтобы указать список категорий, которые вы не хотите видеть в XML, нужно перечислить их через запятую и в начале этого перечисления добавить минус , означающий режим "исключить перечисленные".
Пример ссылки на XML, из которого нужно исключить категории Уценка, Пазлы, Конструкторы со всеми подкатегориями:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&category=-51995,99075,99058
Если указать параметр production=import или production=ukraine то XML будет ограничена товарами из категории "Импорт" или "Украина", что соответствуют фильтру на сайте.
Пример ссылки на XML:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&production=import
Если указать параметр cats=yes , в каждый товар будет добавлен тег <cats> с текстовым представлением категории и подкатегории данного товара. Например: <cats>Товары для мальчиков|Радиоуправляемые модели|Вертолеты</cats>. Некоторые магазины не могут успешно импортировать дерево категорий из тега <categories>, но, при этом, в настройках импорта позволяют выбрать для импорта категории любой тег товара и выбрать разделитель подкатегорий. Для таких магазинов и предусмотрен тег <cats> и разделитель |
Пример ссылки на XML:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&cats=yes
Позволяет выбрать, что будет в XML-теге <vendorCode>: артикул производителя (неуникальный) или наш код товара (так называется уникальный артикул нашего склада - мы намеренно уходим от слова артикул, чтобы не путать с артикулом производителя).
Значение параметра vendor_code=sku (не заглавные буквы, а строчные!) предписывает записать в <vendorCode> артикул производителя, то есть нашего поставщика. Внимание: он не уникальный! У двух товаров разных производителей может быть одинаковый артикул производителя. И даже у двух товаров одного производителя может быть одинаковый артикул. Артикул может быть пуст. Вообще-то, аббревиатура SKU в переводе означает «складская учётная единица», идентификатор товарной позиции. Однако, название тега vendorCode говорит о производителе, а не о продавце, поэтому названием sku здесь обозначен артикул производителя, то есть нашего поставщика.
Значение параметра vendor_code=prom предписывает записать в <vendorCode> наш уникальный код товара , а артикул производителя дописать в конец названия товара, чтобы поиск Prom.ua мог найти ваши товары и по артикулу производителя. Значение параметра vendor_code=prom здесь имеет такой смысл: XML будет использоваться за пределами магазина Toysi, выступающего в роли конечного поставщика, а значит, продавец, заказывая товар, должен работать с «кодами товаров» Toysi.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom
Мы рекомендуем vendor_code=prom и самый главный аргумент такой: артикулы производителей не уникальны, они могут повторяться у многих товаров, а для однозначной идентификации товара нужно использовать код товара. К тому же, в нашей базе данных есть около 500 товаров с пустым артикулом.
Если параметр vendor_code не указать в ссылке или указать неправильное значение (включая неправильный регистр символов - заглавные вместо строчных), то вместо XML-тега <vendorCode> будет тег <vendor_code> (не соответствующий формату YML) и в нем будет артикул производителя. Это устаревшее поведение ссылки, оставленное в целях обратной совместимости для старых клиентов.
позволяет начать скачивание на диск, вместо отображения в браузере. Используйте его только если вы хотите сохранить XML на локальный компьютер. Пример ссылки на XML:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&download=to_disk
позволяет получить в XML цены с учетом персональной скидки. Значение параметра
user
- это ваш "идентификатор пользователя API", который вы можете посмотреть в личном кабинете, на странице
https://toysi.ua/contact_info/?api=info
Пример ссылки на XML:
https://toysi.ua/feed-products-residue.php?vendor_code=prom&user=1000003479
Обратите внимание: некоторые товары магазина имеют предел максимальной скидки 5% или 0%. Даже если ваша персональная скидка выше, скидки на такие товары будут рассчитаны по их максимально допустимым скидкам.
позволяет отключить акционные скидки. В период действия акций, на ряд товаров цены снижены. Если в ссылке на XML указать параметр promo_action=off , то изначальные цены акционных товаров лишатся своих скидок - им будут присвоены цены, которые были до начала акции. А к этим изначальным ценам потом будет применена ваша персональнальная скидка (если использовать параметр user ), а потом будут применены наценки margin_cats, margin_ukr, margin_import, margin_action. Параметр promo_action удобно использовать в паре с margin_action для уравнивания наценки на акционные товары.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&promo_action=off
позволяет увеличить цены на украинские товары. Если в параметре передать дробное число меньше 1, то это число будет воспринято как процент наценки. Например: margin_ukr=0.02 предписывает увеличить цены на 2%, то есть умножить цены на 1.02.
Если в параметре передать число большее или равное 1, то это число будет воспринято как фиксированная наценка. Например: margin_ukr=1.01 предписывает прибавить ко всем ценам 1.01 грн. При использовании параметров автоматической наценки, если цена с наценкой меньше, чем рекомендованная розничная цена (в случае ее наличия), будет выгружена рекомендованная розничная цена товара в поле price и oldprice.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&margin_ukr=0.1
Если в ссылке на XML указан параметр user , то наценка будет применяться к цене, учитывающей вашу персональную скидку.
позволяет увеличить цены на импортные товары. Работает аналогично параметру margin_ukr. При использовании параметров автоматической наценки, если цена с наценкой меньше, чем рекомендованная розничная цена (в случае ее наличия), будет выгружена рекомендованная розничная цена товара в поле price и oldprice.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&margin_import=0.1
позволяет увеличить цены на акционные товары. Если margin_action не указан в ссылке или равен 0, то к акционным товарам применяются обычные наценки margin_ukr и margin_import. А если указан, то к акционным товарам, вместо margin_ukr и margin_import , применится наценка margin_action. Этот параметр удобно использовать совместно с параметром promo_action=off, отключающим акционные скидки. Значение наценки margin_action нужно указывать так, как описано в описании параметра margin_ukr. Если в ссылке на XML указан параметр user , то наценка будет применяться к цене, учитывающей вашу персональную скидку. При использовании параметров автоматической наценки, если цена с наценкой меньше, чем рекомендованная розничная цена (в случае ее наличия), будет выгружена рекомендованная розничная цена товара в поле price и oldprice.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&margin_action=0.1
позволяет увеличить цены на товары, которые находятся в указаных категориях, а также на товары, которые находятся в подкатегориях. Если margin_cats указан, то к выбраным категориям товаров, будет применена указаная наценка, а наценки margin_ukr, margin_import и margin_action будут проигнорированы. Но если товары не находятся в указаной в margin_cats категории, то к товарам могут применяться margin_ukr, margin_import и margin_action. Значение наценки margin_cats нужно указывать так, как описано в описании параметра margin_ukr, с указанием в начале id категории и, через нижнее подчеркивание, величины наценки. Категории нужно перечислять через запятую. Если в ссылке на XML указан параметр user , то наценка будет применяться к цене, учитывающей вашу персональную скидку. При использовании параметров автоматической наценки, если цена с наценкой меньше, чем рекомендованная розничная цена (в случае ее наличия), будет выгружена рекомендованная розничная цена товара в поле price и oldprice.
Чтобы передать серверу в параметре margin_cats целый набор категорий, нужно перечислить их идентификаторы через запятую (без пробелов). Если вы хотите сделать фильтр для более 20 категорий, ссылка на XML получится очень длинной. Длина ссылки ограничена возможностями протокола http, поэтому, если ссылка очень длинная, указывайте параметр category в конце ссылки и тестируйте, попадают ли в XML товары из последней категории набора.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&margin_cats=99064_10.05,99074_0.02
В этом примере к товарам с категории "Детский транспорт" будет применена наценка в размере 10.05 грн. Цены товаров с категории "Настольные игры, пазлы" будут увеличены на 2%, то есть умножены на 1.02.
позволяют задать нижний и верхний предел цен, для включения товаров в XML. Значение должно быть целым числом.
Например:
price_from=20
означает, что XML будет содержать товары с ценами >= 20 грн. А
price_to=1000
означает, что XML будет содержать товары с ценами <= 1000 грн. Речь идет об изначальной цене, то есть, наценки
margin_cats,
margin_ukr,
margin_import,
margin_action
применяются
после
фильтрации по цене.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&price_from=20&price_to=1000
Если в ссылке на XML указан параметр user , то пределы price_from и price_to будут относительно цены, учитывающей вашу персональную скидку.
Если указать этот параметр, то дробные цены будут округлены до целых чисел одним из трех способов:
round=up
- в большую сторону.
round=down
- в меньшую сторону.
round=math
- по правилам округления (если дробная часть больше или равна 0.5, то в большую сторону, иначе - в меньшую).
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&round=math
ограничивает XML товарами, которых в наличии хотя бы at_least штук или больше.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&at_least=10
Если вы используете at_least совместно с параметром out_of_stock , то, несмотря на at_least , XML может содержать некоторые товары, которых вообще нет в наличии. Это объясняется тем, что параметр out_of_stock предписывает включать в XML товары, которые ушли из наличия в последние 7 дней. out_of_stock необходим для присвоения статуса "нет в наличии" (в вашем магазине) товарам, которые закончились. Подробнее о нем читайте выше.
Если указать параметр in_stock=min , в XML будет добавлен тег <quantity_in_stock> с минимальным числом остатка товара на складе. Внимание: это не точное количество на складе, а минимальное число из интервала типа "50...100 шт." (так описаны остатки в теге <ostatok>). Например, при текстовом описании остатка "более 100 шт." в теге <ostatok>, в теге <quantity_in_stock> будет число 100. При "50...100 шт." — число 50.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&in_stock=min
Если указать параметр vendor=yes , в XML будет добавлен тег <vendor> с названием бренда.
Если указать параметр country=yes , в XML будет добавлен тег <country> с названием страны производителя товара.
Тег video не соответствует стандарту YML. Если указать параметр
video=watch
, в XML будет добавлен тег вида
<video>https://www.youtube.com/watch?v=ZXJuJQVrgbI</video> (обычная ссылка на Youtube).
Если указать параметр
video=embed
, в XML будет добавлен тег вида <video>https://www.youtube.com/embed/ZXJuJQVrgbI</video>
(ссылка такого вида обычно используется для встраивания в страницу сайта).
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&vendor=yes&country=yes&video=embed
Свой ключ доступа вы можете найти в личном кабинете, в разделе API.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&key=bb95a93c946acd
Если указать параметр
param=yes
, то свойства товара исчезнут из описания товара и будут вынесены в отдельные теги:
<param name="Габариты">49 x 58 x 15 см</param> - это габариты в упаковке
<param name="Вес">2965 г</param> - это вес в упаковке
<param name="Страна регистрации бренда">Китай</param>
<param name="Страна-производитель товара">Китай</param>
<param name="Цвет">Разноцветный</param>
<param name="Материал">Комбинированный</param>
<param name="Упаковка">Коробка</param>
<param name="Комплектация">Плита, поднос, чайник, сковородка, кастрюля</param>
<param name="Питание">2 x Батарейки АА (не входит в комплект)</param>
<param name="Возраст">4 года</param>
Имейте в виду, что в некоторых маркетплейсах есть свой строго определенный набор названий характеристик (свойств),
наши названия могут не совпадать с ними и из-за этого свойство может игнорироваться маркетплейсом.
Иногда в панели маркетплейса можно создавать свои свойства товара.
Если вы открываете XML в Excel, имейте в виду, что, при использовании параметра param, в каждом товаре может быть по несколько тегов <param>, из-за чего Excel, открывая XML как таблицу, сделает для каждого такого товара по несколько почти одинаковых строк, отличающихся только значениями param. (К тому же, Excel добавит столбец с названиями параметров). Такое дублирование товаров в таблице Excel может быть крайне неуместным для решения ваших задач.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom¶m=yes
В XML никогда не выдаются товары без фотографий. У товара может быть максимум 20 фотографий. Параметр picture позволяет ограничить в XML максимальное количество фотографий каждого товара. Без использования этого параметра, выдается только одна фотография. Если вы открываете XML в Excel, имейте в виду, что, при использовании параметра picture, в каждом товаре может быть по несколько тегов <picture>, из-за чего Excel, открывая XML как таблицу, сделает для каждого такого товара по несколько почти одинаковых строк, отличающихся только значениями picture. Такое дублирование товаров в таблице может быть крайне неуместным для решения ваших задач.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&picture=20
задаёт код единственного товара, который будет выдан в XML. Если вы используете параметр shift, то вместе с offer_id , нужно обязательно указывать и параметр shift, чтобы toysi мог вычесть значение shift из offer_id и вычислить таким образом код товара в базе toysi. При использовании offer_id , товар будет выдан в XML, даже если его нет в наличии (как при out_of_stock). Но, при обработке XML, обязательно предусматривайте случай пустого тега <offers></offers> (XML без товаров), потому что сотрудник toysi в любой момент может по каким-то причинам запретить продажу указанного товара (и выдачу в XML) или же товар отсеится параметрами самой ссылки: price_from, price_to, at_least, category и пр.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&offer_id=132871
description=not_empty позволяет исключить из XML товары без описаний
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&description=not_empty
По умолчанию, названия и описания в XML выдаются на русском языке, но если добавить в ссылку параметр lang=ukr , то названия категорий, названия товаров, описания товаров, свойства товаров и названия свойств (см. параметр param), а также тег <keywords> будут на украинском языке. Кроме того, тег <url> будет содержать ссылку на украинскую страницу товара.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&lang=ukr
Если добавить в ссылку параметр many_lang=true , то дополнительно будут добавлены теги <name_ua>, <keywords_ua> и <description_ua>с названием и описанием товаров на украинском языке. Нужно учитывать, что дополнительные теги <name_ua>, <keywords_ua> и <description_ua> не будут добавлены, если добавить в ссылку параметр lang=ukr.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&many_lang=true
Дает возможность задать дополнительные параметры, которые будут отображены в конце названия товара. Ниже приведен список параметров, которые можно добавить в название.
vendorcode - артикул производителя товара.
id - код товара (без суммирования с shift, не путать с атрибутом id тега <offer>, на который влияет параметр shift).
vendor - название бренда.
country - cтрана-производитель товара.
color - цвет.
material - материал.
packaging - упаковка.
age - возраст.
Параметры нужно вводить через нижнее подчеркивание в том порядке, в котором Вы бы хотели видеть их в названии.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&glue=material_color_id
Пример сформированного названия: Железная дорога "Мой 1-й поезд" Пластик Красный (10331)
Параметр prefix используется совместно с параметром glue=id и дает возможность добавить префикс в начало кода товара, который будет отображен в названии товара.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&glue=vendor_id_age&prefix=TS
Если указать параметр
lwh=yes
, то будут добавлены теги:
<param name="Длина в упаковке (см)">49</param>
<param name="Ширина в упаковке (см)">29</param>
<param name="Высота в упаковке (см)">30.5</param>
<param name="Длина без упаковки (см)">15.5</param>
<param name="Ширина без упаковки (см)">20.4</param>
<param name="Высота без упаковки (см)">12</param>
Имейте в виду, что в некоторых маркетплейсах есть свой строго определенный набор названий характеристик (свойств),
наши названия могут не совпадать с ними и из-за этого свойство может игнорироваться маркетплейсом.
Иногда в панели маркетплейса можно создавать свои свойства товара.
Если вы открываете XML в Excel, имейте в виду, что, при использовании параметра param, в каждом товаре может быть по несколько тегов <param>, из-за чего Excel, открывая XML как таблицу, сделает для каждого такого товара по несколько почти одинаковых строк, отличающихся только значениями param. (К тому же, Excel добавит столбец с названиями параметров). Такое дублирование товаров в таблице Excel может быть крайне неуместным для решения ваших задач.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&lwh=yes
Добавляет к товарам цену за сборку, которая действует на Toysi на данный момент. Для этого нужно добавить в ссылку параметр assembly=true. Также нужно учитывать, что цена за сборку добавляеться после всех наценок и персональной скидки.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&assembly=true
Для того, чтобы вывести количество товаров, которое будет присутствовать в выгрузке, нужно добавить в ссылку параметр count=true. В независимости от наличия других параметров XML структура не формируеться, а выводиться число - это номенклатура товаров на данный момент. С течением времени это число может изменяться, так как некоторые товары уходят с наличия, или появляются новые.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?vendor_code=prom&count=true
Указывает к какой категории относится товар. Параметр selling_type может равняться "r" или "u". selling_type = "r" - указывает, что товар продается в розницу. selling_type = "u" - указывает, что товар продается оптом и в розницу.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?selling_type=r
Позволяет задать оптовые цены на товары. Для этого нужно указать три параметра: opt_price, selling_type и opt_quantity. Если в параметре opt_price передать дробное число меньше 1, то это число будет воспринято как процент скидки. Например: opt_price=0.02 предписывает уменьшить цены на 2%, то есть умножить цены на 0.98. Если в параметре opt_price передать число большее или равное 1, то это число будет воспринято как фиксированная скидка. Например: opt_price=1.01 предписывает отнять от всех цен 1.01 грн. Параметр selling_type должен равняться "u". Также вместе с параметрами opt_price, selling_type нужно обязательно указывать параметр opt_quantity - это число товаров, при заказе которых начинает действовать оптовая цена. Праметр opt_quantity должен быть целым числом, больше 1. В противном случае оптовая цена добавлена не будет. Нужно учитывать, что оптовая цена формируется после применения всех скидок и наценок.
После указания параметров
opt_price,
selling_type
и
opt_quantity
будут добавлены теги:
<prices>
<price>
<value>30.5</value>
<quantity>15</quantity>
</price>
</prices>
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?opt_price=0.9&selling_type=u&opt_quantity=2
Для импорта товаров на Prom.ua мы рекомендуем указивать параметр prom_cat = "1". Это нужно для отображения в xml привязки наших категорий к категориям Prom.ua. Если же не указывать этот параметр, то наши товари на Prom.ua могут быть размещены в произвольных категориях.
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?prom_cat=1
позволяет исключить товары, в которых указана рекомендованная розничная цена. Для этого в ссылке нужно указать rrc = "off".
Пример ссылки на XML: https://toysi.ua/feed-products-residue.php?rrc=off
Обычно XML содержит только товары, которые есть в наличии, за исключением случая использования GET-параметра out_of_stock, описанного выше. При использовании out_of_stock, товары, которых нет в наличии, можно отличить по пустому атрибуту available тега <offer>. Если же товар есть в наличии, то available="true".
XML в кодировке UTF-8 и соответствует формату, описанному по ссылке
https://toysi.ua/feed-products-yml.html
Однако, для описания товаров используются только теги:
vendorCode, url, oldprice, price, currencyId, categoryId, picture, name, description, keywords.
Чтобы были теги
vendor, country, quantity_in_stock, param
, их нужно включить (см. GET-параметры vendor, country, in_stock, param, описанные выше).
Тег oldprice присутствует лишь для некоторых товаров во время действия акций.
Тег description может содержать html-теги.
Тег currencyId всегда содержит значение UAH.
В XML присутствуют еще некоторые теги.
delivery и pickup - всегда содержат true.
Теги, не соответствующие YML-формату:
date - дата нового поступления (например: 2017-12-31). Значение тега есть только у товаров из недавних"приходов", иначе тег пустой. Если этот тег вызывает ошибки при импорте XML, избавьтесь от него, добавив в ссылку GET-параметр yml=strict
isImport - если true, то товар импортный, если false, то украинский. Если этот тег вызывает ошибки при импорте XML, избавьтесь от него, добавив в ссылку GET-параметр yml=strict
ostatok - содержит остаток в текстовом виде. Примеры значений: 0 или 2 шт. или 5...10 шт. или 10...50 шт. или 50...100 шт. или более 100 шт. Если этот тег вызывает ошибки при импорте XML, избавьтесь от него, добавив в ссылку GET-параметр yml=strict
cats - см. описание параметра cats.
video - см. описание параметра video.
Ссылка на документ с описанием устаревшего API товаров https://toysi.ua/xAPI/API.docx