Присоединяйтесь!

Выгрузить каталог в формате Яндекс.Маркета с помощью API

Выгрузить каталог в формате Яндекс.Маркета с помощью API

С помощью API вы можете выгрузить список позиций из каталога продукции, который вы опубликовали в СБИС, в yml-формате. Он используется для обмена данными с Яндекс.Маркетом.

В результате запроса вернется ссылка. По ней можно скачать yml-файл с каталогом продукции, чтобы разместить его на сайте вашей организации.

Аутентификация

Перед тем как выгружать каталог, убедитесь, что он опубликован. После этого выполните аутентификацию в СБИС:

Выгрузить каталог

Чтобы выгрузить каталог, выполните POST-запрос.

Адрес для запроса: https://online.sbis.ru/service/.

В заголовке «X-SBISSessionID» передайте «sid» или токен доступа, которые получены после аутентфикации на сервере.

Параметры запроса

В таблице перечислены параметры, которые нужно передать на сервер в json-запросе.

* — обязательный параметр.

ПараметрТипОписаниеПример
Filter*RecordФильтр отбора номенклатуры для выгрузки
Filter.FolderRecordРаздел, из которого отбирается номенклатура. По умолчанию не задан, номенклатура берется из корня каталога
Filter.Folder.IdIntegerИдентификатор раздела
Filter.Folder.CodeStringКод раздела, из которого будет показана номенклатура. Это поле — первичный ключ для раздела. Номер запишется в фильтр «Folder.Id»
Параметр «Folder.Id» выше «Folder.Code» по приоритету
«X91254079462»
Filter.NomenclatureRecordФильтр для номенклатурных карточек
Filter.Nomenclature.ExcludeStringНазвание характеристики. Если параметр для карточки указан, карточка исключается из выгрузки.

Параметры:

  • «PROP_НазваниеХарактеристики» — указывает, что «НазваниеХарактеристики» нужно смотреть в обычных характеристиках;
  • «SPROP_НазваниеХарактеристики» — в служебных характеристиках;
  • «Да» — для логических характеристик.
Shop*RecordЗначения полей должны быть подставлены в одноименные теги
Shop.Name*StringКраткое название магазина, не более 20 символов.
В названии нельзя использовать слова, не относящиеся к наименованию магазина (например «лучший», «дешевый»), указывать телефон и другие параметры.

Название должно совпадать с опубликованным на сайте фактическим названием, иначе Яндекс.Маркет вправе изменить название без уведомления

«СБИС»
Shop.Company*StringПолное наименование компании-владельца магазина для внутренней идентификации. На сайте не публикуется«ООО «Компания Тензор»
Shop.Url*StringАдрес сайта главной страницы магазина, не более 50 символов. Допускаются кириллические ссылки«https://sbis.ru»
Shop.PlatformStringСистема управления контентом, на которой работает магазин (CMS)«СБИС»
Shop.VersionStringВерсия CMS«3»
Shop.AgencyStringНаименование агенства, которое оказывает техническую поддержку магазина и отвечает за работу сайта«ООО «Компания Тензор»
Shop.EmailStringКонтактный адрес разработчиков или агенства, которые поддерживают CMS«sbis@tensor.ru»
Category*RecordОбъект, который описывает название категории
Category.FieldStringСтрока для определения поля, которое содержит название выгружаемого раздела.

Параметры:

  • «PROP_НазваниеХарактеристики» — название смотреть в значении «НазваниеХарактеристики»;
  • «SPROP_НазваниеХарактеристики» — в значении служебной характеристики «НазваниеХарактеристики».

Если параметр пустой или название в результате перебора характеристик не определено, название берется из наименования раздела

«SPROP_Название для yandex»
Category.ReplacementsList[record]Упорядоченный массив объектов. Каждый объект состоит из полей:
  • «tmpl» — регулярное выражение для поиска;
  • «repl» — значение, на которое нужно заменить выражение.
«[{tmpl="^\d+\.\s+?", repl=""}]»
Offer*RecordОбъект, описывающий узел «offer» для товаров
Offer.Url*StringШаблон адреса для товара на сайте.

Можно указать параметры для замены:

  • «#ID#» — идентификатор номенклатуры («1153812»);
  • «#CODE#» — номномер номенклатуры («MacBookAir13_i5_1hz_8gb»);
  • «#CATEGORY_ID#» — идентификатор раздела-родителя;
  • «#CATEGORY_CODE#» — номномер раздела-родителя;
  • «#PATH_ID#» — путь от корня или папки Folder, состоящий из идентификаторов категорий («3345/2354235/23452345/»);
  • «#PATH_CODE#» — путь от корня или папки Folder, состоящий из номномеров категорий («Computers/Apple/MacBook/»).
Шаблон:
«https://sbis.ru/catalog/
#PATH_CODE##CODE#/
?utm_source=market.yandex&
utm_medium=cpc&
utm_campaign=market»

Результат:
«https://sbis.ru/catalog/
Computers/Apple/MacBook/
MacBookAir13_i5_1hz_8gb/?utm_source=market.yandex&
utm_medium=cpc&
utm_campaign=market»

Offer.NameRecordОписывает правила для формирования названия товара в предложении
Offer.Name.TmplStringШаблон названия товара для маркета.

Можно указать параметры для замены:

  • «#NAME#» — название товара;
  • «#SHORT_NAME#» — короткое наименование товара;
  • «#PROP_Названиехарактеристики#» — значение характеристики «НазваниеХарактеристики»;
  • «#SPROP_Названиехарактеристики#» — значение служебной характеристики «НазваниеХарактеристики».

Если параметр пуст или название в результате замен не определено, название берется из наименования товара

Шаблон:
«#PROP_Вид# #PROP_Бренд#
#SHORT_NAME#»

Результат:
«Мясорубка Filips HR2713/30»

Offer.Name.ReplacementsList[record]Упорядоченный массив объектов. Каждый объект состоит из полей:
  • «tmpl» — регулярное выражение для поиска;
  • «Replacement » — значение, на которое нужно заменить выражение.
«[{Template="^\d+\.\s+?", Replacement=""}]»
Offer.VendorStringСтрока для определения поля, которое содержит название производителя.

Параметры:

  • «PROP_НазваниеХарактеристики» — название смотреть в значении «НазваниеХарактеристики»;
  • «SPROP_НазваниеХарактеристики» — в значении служебной характеристики «НазваниеХарактеристики».

Если параметр пустой или название в результате перебора характеристик не определено, название берется из характеристики «Производитель»

«PROP_Производитель»
Offer.DeliveryStringНазвание характеристики, по которой определяется возможность доставки курьером или самовывоза.

Параметры:

  • true — можно доставить курьером;
  • false — доставить курьером нельзя;
  • «PROP_НазваниеХарактеристики» — название смотреть в значении «НазваниеХарактеристики»;
  • «SPROP_НазваниеХарактеристики» — в значении служебной характеристики «НазваниеХарактеристики».
false
Offer.PickupStringНазвание характеристики, по которой определяется возможность самовывоза из точки или само значение.

Параметры:

  • true — можно доставить курьером;
  • false — доставить курьером нельзя;
  • «PROP_НазваниеХарактеристики» — название смотреть в значении «НазваниеХарактеристики»;
  • «SPROP_НазваниеХарактеристики» — в значении служебной характеристики «НазваниеХарактеристики».
true
Offer.StoreStringНазвание характеристики, по которой определяется возможность самовывоза из магазина или само значение.

Параметры:

  • true — можно доставить курьером;
  • false — доставить курьером нельзя;
  • «PROP_НазваниеХарактеристики» — название смотреть в значении «НазваниеХарактеристики»;
  • «SPROP_НазваниеХарактеристики» — в значении служебной характеристики «НазваниеХарактеристики».
true
Offer.DescriptionStringШаблон для формирования описания предложения.

Параметры:

  • «#DESCRIPTION#» — описание из карточки номенклатуры;
  • «#PROP_НазваниеХарактеристики#» — описание нужно смотреть в значении «НазваниеХарактеристики»;
  • «#SPROP_НазваниеХарактеристики#» — описание нужно смотреть в значении служебной характеристики «НазваниеХарактеристики».
«#DESCRIPTION#
#PROP_Комплектация#
#PROP_Работа с ОФД#
#PROP_Поддерживаемое ПО#»
Offer.SaleNotesStringКонкретное значение для тега условий продаж или характеристики для его заполнения.

Параметры:

  • «текст с условием продажи»;
  • «PROP_НазваниеХарактеристики» — значение смотреть в «НазваниеХарактеристики»;
  • «SPROP_НазваниеХарактеристики» — в служебной характеристике «НазваниеХарактеристики».
«Предоплата 100%»
Offer.MinQuantityStringКонкретное значение для тега минимального заказа или характеристики для его заполнения.

Параметры:

  • «текст с условием заказа»;
  • «PROP_НазваниеХарактеристики» — значение смотреть в значении «НазваниеХарактеристики»;
  • «SPROP_НазваниеХарактеристики» — в служебной характеристике «НазваниеХарактеристики».
«Минимальное — 10шт.»
Offer.ManufacturerWarrantyStringНазвание характеристики, по которой определяется наличие гарантии или само значение.

Параметры:

  • true — есть гарантия;
  • false — нет гарантии;
  • «PROP_НазваниеХарактеристики» — значение смотреть в значении «НазваниеХарактеристики»;
  • «SPROP_НазваниеХарактеристики» — в служебной характеристике «НазваниеХарактеристики».
«PROP_Гарантия»

Результат

Ссылка для неавторизованного скачивания сгенерированного yml-файла. Сама ссылка на файл будет указана в поле «result».

Правила формирования

Выгрузить можно только те позиции, которые опубликованы в СБИС. Номенклатура берется либо от корня, либо от раздела заданного фильтром «Folder» («Folder.Code»).

Атрибуты «Shop»

Из входящего объекта «shop» формируются теги по заполненным полям объекта.

«Shop.Currencies»

В теге «Shop.Currencies» записывается константа «».

«Shop.categories»

  1. В качестве параметров «id» и «parentId» используется «@Номенклатура». У разделов, которые находятся в корне или в разделе фильтра «Folder», атрибут «parentId» не задается.
  2. Поле, которое содержит название категории для выгрузки, определяется по параметру «Category.Fields». Первое же поле раздела, которое содержит значение, дает название категории. Если «Category.Fields» отсутствует или название не определено, то название категории берется из наименования раздела.

«Shop.Offers»

Для каждого опубликованного товара в узле «Shop.Offers» создается отдельный узел «Offer» упрощенного типа.

Атрибуты «Offer»

  • «Offer@id» — в качестве значения указывается «@Номенклатура».
  • «Offer@available» — если товар заказной, значение false. Иначе — true.
  • «Offer@type» — при упрощенном описании не указывается.

«Offer.Url»

Ссылка на товар на сайте составляется с помощью значений шаблона, которые переданы в этом параметре.

«Offer.Name»

  1. Название составляется по шаблону из параметра «Offer.Name.Tmpl». Если есть пробелы в начале и в конце названия, они будут удалены. Если строка пустая, значение берется из названия товара.
  2. Полученное название обрабатывается массивом замен по регулярным выражениям из параметра «Offer.Name.Repls».
  3. Если итоговое значение пустое, значение берется из названия товара.

«Offer.Vendor»

Значение производителя определяется по характеристеке в параметре. Если значение пусто, проверяется значение «Производитель» без учета регистра.

«Offer.Price»

Значение цены в каталоге. Если цена не указана, товар выгружен не будет.

«Offer.CurrencyId»

Значение всегда «RUR».

«Offer.CategoryId»

Содержит идентификатор родительского раздела.

«Offer.Picture»

Если изображение есть, берется первое в списке и строится публичная ссылка, которая доступна неавторизованным пользователям.

«Offer.Delivery», «Offer.Pickup», «Offer.Store»

Проверяется соответствующий входной параметр. Если передано значение true или false, в документ будет записано их значение.

Если в значении указано название характеристики, проверяется ее заполнение:

  • не заполнено, текстовое или логическое «Нет», цифровое «0» — проставляется false;
  • если другое значение — true.
  • иначе — не заполняется.

«Offer.Description»

Проверяются шаблоны входящего параметра. Если значение характеристики не пустое и содержит текст html-типа, оно подставляется в виде шаблона «

НазваниеХарактеристики

ЗначениеХарактеристики».

Если в итоговом значении — «HTML» (есть «<Буква»), значение заключается между «».

«Offer.SaleNotes», «Offer.MinQuantity»

В теге указывается текст из входящего параметра или заполненное значение указанной характеристики.

«Offer.ManufacturerWarranty»

Проверяется соответствующий входной параметр. Если передано значение true или false, в документ будет записано их значение.

Если в значении указано название характеристики, проверяется ее заполненность:

  • не заполнено, текстовое или логическое «Нет», цифровое «0» — проставляется false;
  • если другое значение — true.
  • иначе — не заполняется.

«Offer.Country_of_origin»

Указывается название страны из атрибута «Страна». Атрибут берется из блока описания в карточке номенклатуры.

«Offer.Barcode»

Заполняется первым из списка штрихкодом типа «EAN13»,«EAN8» или «UPC», которые начинаются не с «2».

«Offer.Param»

Берутся все заполненные характеристики товара, кроме служебных и текста html-типа. Затем, характеристики заполняются в виде отдельных тегов. Характеристики из групп «С иконками», «Служебные» и «Выделенные характеристики» не учитываются.

«Offer.Weight»

Указывается вес в кг из блока «Размеры и весь» в карточке номенклатуры.

«Offer.Dimensions»

Если в блоке «Размеры и вес» указаны все 3 параметра (ДШВ — длина, ширина, высота), в теге указывается их значение в сантиметрах.

Формат: три положительных числа с точностью 0.001, разделитель целой и дробной части — точка («.»). Числа должны быть разделены символом «/», без пробелов.

Комментарий

  1. В зависимости от типа, значения характеристик считаются как:
    • логические — «Да»/«Нет»/Пусто;
    • списочные — перечисление выбранных значений через запятую («,»).
  2. Для логических тегов yml-файла значение false определяют:
    • логические характеристики — если отрицательные значение (false);
    • текстовые и списочные характеристики — если значение «Нет» (без учета регистра);
    • числовые характеристики — значение «0».
  3. В итоговый выходной yml-файл пустые теги не попадают.
  4. Файлы для разных витрин-агрегаторов могут генерироваться одновременно.
  5. Для названия характеристики из блока «Описание» в карточке номенклатуры используются префикс «PROP_».

Пример запроса

{
    "jsonrpc": "2.0",
    "protocol": 5,
    "method": "NomenclatureAPI.ExportYML",
    "params": {
        "Filter": {
            "Folder": {
                "Code": "X8186001"
            },
                        "Nomenclature": {
                                "Exclude": "PROP_Исключить из выгрузки"
                        }
        },
        "Shop": {
            "Name": "Бобров и сыновья",
            "Company": "ООО\"Бобров и сыновья\"",
            "Url": "https://biver123.ru/",
            "Platform": "СБИС",
            "Version": "3",
            "Agency": "ООО Компания Тензор",
            "Email": "sbis@tensor.ru"
        },
        "Category": {
            "Field": "PROP_Категория",
            "Replacements": [
                {
                    "Template": "^\\d+\\.\\s+?", 
                    "Replacement": "="
                }
            ]
        },
        "Offer": {
            "Url": "https://sbis.ru/catalog/#PATH_CODE##CODE#",
            "Name": {
                "Template": "#NAME#",
                "Replacements": [
                    {
                        "Template": "^\\d+\\.\\s+?", 
                        "Replacement": "="
                    }
            ]
            },   
            "Vendor": "PROP_Название производителя",
            "Delivery": "PROP_Возможность доставки",
            "Pickup": "PROP_Возможность самовывоза из точки",
            "Store": "PROP_Возможность самовывоза из магазина",
            "Description": "#DESCRIPTION#",
            "SaleNotes": "PROP_Условие продажи",
            "MinQuantity": "PROP_P_Минимальный заказ",
            "ManufacturerWarranty": "PROP_Гарантия",
            "Price": true,
            "CurrencyId": true,
            "CategoryId": true,
            "Picture": true,
            "Country_of_origin": true,
            "Barcode": true,
            "Param": true,
            "Weight": true,
            "Dimensions": true
            }
        },
    "id": 1
}
Скачать пример

Пример ответа

<?xml version='1.0' encoding='utf-8'?>
<yml_catalog date="2022-03-25 05:14">
  <shop>
    <offers>
      <offer available="true" id="10">
        <name>Утюг POLARIS PIR 2186 лайм</name>
        <url>https://sbis.ru/catalog/X8186001/X9867943</url>
        <price>5700.00</price>
        <currencyId>RUR</currencyId>
        <categoryId>9</categoryId>
        <picture>https://test-online.sbis.ru/fs-public/nomenclature_files/68d12e55-7c55-4a8d-8293-5ff7ee0f259b</picture>
        <vendor>Polaris</vendor>
        <delivery>true</delivery>
        <pickup>true</pickup>
        <store>true</store>
        <description>&amp;lt;![CDATA[[[&amp;#x27;p&amp;#x27;, {&amp;#x27;version&amp;#x27;: &amp;#x27;2&amp;#x27;}, [&amp;#x27;span&amp;#x27;, {&amp;#x27;style&amp;#x27;: &amp;#x27;text-align: left;&amp;#x27;}, &amp;#x27;Мощный утюг Polaris PIR 2186 отлично подойдет для горизонтального разглаживания заминов и складок, а так же для эффективного вертикального отпаривания вещей.&amp;#x27;]]]]]</description>
        <sales_notes>Без предоплаты</sales_notes>
        <manufacturer_warranty>true</manufacturer_warranty>
        <country_of_origin>Китай</country_of_origin>
        <weight>1</weight>
        <dimensions>35.700/15.200/19.700</dimensions>
        <barcode>5055539122704</barcode>
        <param name="Исключить из выгрузки">Нет</param>
        <param name="Категория">Бытовая техника</param>
        <param name="Название производителя">Polaris</param>
        <param name="Возможность доставки">Да</param>
        <param name="Возможность самовывоза из точки">Да</param>
        <param name="Возможность самовывоза из магазина">Да</param>
        <param name="Условие продажи">Без предоплаты</param>
        <param name="Минимальный заказ">1 шт.</param>
        <param name="Гарантия">1 год</param>
      </offer>
      <offer available="true" id="11">
        <name>Утюг POLARIS PIR 2285 голубой</name>
        <url>https://sbis.ru/catalog/X8186001/X224380</url>
        <price>5200.00</price>
        <currencyId>RUR</currencyId>
        <categoryId>9</categoryId>
        <picture>https://test-online.sbis.ru/fs-public/nomenclature_files/1c670292-74a3-4e63-ab4f-9708d32b5599</picture>
        <vendor>Polaris</vendor>
        <delivery>true</delivery>
        <pickup>true</pickup>
        <store>true</store>
        <description>&amp;lt;![CDATA[[[&amp;#x27;p&amp;#x27;, {&amp;#x27;version&amp;#x27;: &amp;#x27;2&amp;#x27;}, [&amp;#x27;span&amp;#x27;, {&amp;#x27;style&amp;#x27;: &amp;#x27;text-align: left;&amp;#x27;}, &amp;#x27;Благодаря прочной подошве из нержавеющей стали утюг обеспечивает более качественное глажение и более комфортное использование, так как к подошве прибора ничего не пригорает, а чистить ее легко и удобно.&amp;#x27;]]]]]</description>
        <sales_notes>Предоплата 100%</sales_notes>
        <manufacturer_warranty>true</manufacturer_warranty>
        <country_of_origin>Китай</country_of_origin>
        <weight>1</weight>
        <dimensions>35.000/15.000/19.000</dimensions>
        <barcode>5055539120748</barcode>
        <param name="Исключить из выгрузки">Нет</param>
        <param name="Категория">Бытовая техника</param>
        <param name="Название производителя">Polaris</param>
        <param name="Возможность доставки">Да</param>
        <param name="Возможность самовывоза из точки">Да</param>
        <param name="Возможность самовывоза из магазина">Да</param>
        <param name="Условие продажи">Предоплата 100%</param>
        <param name="Минимальный заказ">10 шт.</param>
        <param name="Гарантия">3 года</param>
      </offer>
    </offers>
    <categories>
      <category id="9">Бытовая техника</category>
    </categories>
    <name>Бобров и сыновья</name>
    <company>ООО&amp;quot;Бобров и сыновья&amp;quot;</company>
    <url>https://biver123.ru/</url>
    <platform>СБИС</platform>
    <version>3</version>
    <agency>ООО Компания Тензор</agency>
    <email>sbis@tensor.ru</email>
    <currencies>
      <currency id="RUR" rate="1"/>
    </currencies>
  </shop>
</yml_catalog>
Скачать пример
Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.