Загрузка каталога товаров

Внимание. Маркет постепенно перестает поддерживать XML. Поэтому мы рекомендуем переходить на JSON. Сейчас XML можно использовать, если добавить в запрос Content-Type: application/xml. Без этого будут ошибки.

С помощью партнерского API вы можете разместить товары на Маркете. Для этого вам нужно отправить информацию о товарах, получить для них идентификаторы Яндекса (SKU на Маркете) и указать их цены.

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

Шаг 1. Получите рекомендованные SKU на Маркете для ваших товаров

Примечание. Если вы уже получили для своих товаров SKU на Маркете, переходите к шагу 3.

Каждому товару, который вы хотите размещать на Маркете, должен быть сопоставлен идентификатор товара на Маркете. Он называется SKU на Маркете. Чтобы получить для ваших товаров рекомендованные SKU на Маркете, отправьте запрос POST /campaigns/{campaignId}/offer-mapping-entries/suggestions. Укажите в запросе как можно больше информации о товарах, чтобы они правильно сопоставились с товарами на Маркете.

В дальнейшем изменить SKU через отправку запроса нельзя, для этого нужно обратиться в службу поддержки.

Пример

Запросим рекомендованные SKU на Маркете для внешнего аккумулятора Xiaomi, фена Rowenta и DVD-плеера Hyundai:

curl -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: OAuth oauth_token="<токен>", oauth_client_id="<идентификатор>"' \
-d \
'{
  "offers":
  [
    {
      "name": "Xiaomi Mi Power Bank 2S 10000",
      "category": "внешние аккумуляторы",
      "vendor": "Xiaomi"
      "price": 1300
    },
    {
      "name": "Rowenta 8361",
      "vendor": "Rowenta",
      "price": 3849
    },
    {
      "name": "Hyundai H-DVD140",
      "category": "DVD-плееры"
      "price": 1500
    }
  ]
}' \
'https://api.partner.market.yandex.ru/v2'\
'/campaigns/10001/offer-mapping-entries/suggestions.json

Ответ (некоторые параметры опущены):

HTTP/1.1 200 OK
Date: Thu, 11 Oct 2018 09:41:40 GMT
Content-Type: application/json;charset=utf-8
...

{
  "status": "OK",
  "result":
  {
    "offers":
    [
      {
        "name": "Xiaomi Mi Power Bank 2S 10000",
        "category": "внешние аккумуляторы",
        "vendor": "Xiaomi",
        "price": 1300,
        "marketSku": 100285283734,
        "marketSkuName": 
          "Аккумулятор Xiaomi Mi Power Bank 2S 10000 серебристый",
        "marketCategoryName": "Универсальные внешние аккумуляторы",
        ...
      },
      {
        "name": "Rowenta 8361",
        "vendor": "Rowenta",
        "price": 5849,
        "marketSku": 100244767114,
        "marketSkuName": "Фен-щетка Rowenta CF 8361 черный",
        "marketCategoryName": "Фены и приборы для укладки волос",
        ...
      },
      {
        "name": "Hyundai H-DVD140",
        "category": "DVD-плееры",
        "price": 1500,
        "marketSku": 1884709705,
        "marketSkuName": "DVD-плеер Hyundai H-DVD140",
        "marketCategoryName": "DVD и Blu-ray плееры",
        ...
      }
    ]
  }
}

Для аккумулятора рекомендованный SKU на Яндексе — 100285283734, для фена — 100244767114, для DVD-плеера — 1884709705.

Шаг 2. Сверьте информацию от Маркета с вашим ассортиментом

Информацию о товаре на Маркете, полученную на шаге 1 вместе с рекомендованным SKU на Маркете, нужно сверить с информацией о товаре, который вы хотите разместить. При сверке обратите внимание на значения параметров market-sku-name (название товара на Маркете) и market-category-name (название категории товара на Маркете).

Если товар определен правильно

Сохраните рекомендованный SKU на Маркете (market-sku), чтобы использовать его на шаге 3.

Если товар определен неправильно
  • Проверьте, что товар относится к одной из категорий, представленных на Маркете.

  • Убедитесь, что вы предоставили наиболее полные и точные данные о товаре. Если вы не указали какую-либо информацию, вернитесь к шагу 1 и уточните входные данные запроса.

    Пример

    Аккумулятор из примера в шаге 1 определился неправильно: мы продаем только черный, а не серебристый. Добавим цвет во входной параметр name и повторим запрос по аккумулятору:

    curl -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: OAuth oauth_token="<токен>", oauth_client_id="<идентификатор>"' \
    -d \
    '{
      "offers":
      [
        {
          "name": "Xiaomi Mi Power Bank 2S 10000 черный",
          "category": "внешние аккумуляторы",
          "vendor": "Xiaomi",
          "price": 1300
        }
      ]
    }' \
    'https://api.partner.market.yandex.ru/v2'\
    '/campaigns/10001/offer-mapping-entries/suggestions.json'

    Ответ (некоторые параметры опущены):

    HTTP/1.1 200 OK
    Date: Thu, 11 Oct 2018 09:50:06 GMT
    Content-Type: application/json;charset=utf-8
    ...
    
    {
      "status": "OK",
      "result":
      {
        "offers":
        [
          {
            "name": "Xiaomi Mi Power Bank 2S 10000 черный",
            "category": "внешние аккумуляторы",
            "vendor": "Xiaomi",
            "price": 1300,
            "marketSku": 100285283735,
            "marketSkuName":
              "Аккумулятор Xiaomi Mi Power Bank 2S 10000 черный",
            ...
          }
        ]
      }
    }

    Теперь товар определен правильно, его рекомендованный SKU на Маркете — 100285283735.

  • Попробуйте найти товар в поиске Маркета. Если товар найдется, SKU на Маркете можно взять из URL его страницы. Он будет указан после «...sku=», например:

    https://market.yandex.ru/product--yandex-kniga/484830016?sku=484830016
  • Если советы не помогли, обратитесь к менеджеру сервиса за помощью или на шаге 3 отправьте информацию о товаре без SKU на Маркете.

Шаг 3. Загрузите товары на Маркет

Чтобы опубликовать ваши товары на Маркете, добавьте их в свой каталог с помощью запроса POST /campaigns/{campaignId}/offer-mapping-entries/updates. Для каждого товара укажите в запросе ваш SKU и SKU на Маркете, полученный на шаге 1, а также название, категорию, производителя, страны производства товара и URL изображений и страниц с описаниями товара. Это нужно, чтобы товары прошли модерацию.

Мы рекомендуем указывать для товаров SKU на Маркете, но это необязательно. Если SKU на Маркете не указаны, сотрудники Маркета могут подобрать или создать карточки для ваших товаров самостоятельно.

Пример

Разместим на Маркете внешний аккумулятор Xiaomi, фен Rowenta и DVD-плеер Hyundai:

curl -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: OAuth oauth_token="<токен>", oauth_client_id="<идентификатор>"' \
-d \
'{
  "offerMappingEntries":
  [
    {
      "offer":
      {
        "shopSku": "xiaomi-t0g95",
        "name": "Аккумулятор Xiaomi Mi Power Bank 2S 10000 серебристый",
        "category": "Универсальные внешние аккумуляторы",
        "manufacturer": "Xiaomi",
        "manufacturerCountries":
        [
          "Китай"
        ],
        "urls":
        [
          "https://market.yandex.ru/product--akkumuliator-xiaomi-mi-power-bank-2s-2i-10000/1959485170?sku=100285283734&cpa=0&glfilter=14871214%3A14897638_100285283734"
        ]
      },
      "mapping":
      {
        "marketSku": 100285283734
      }
    },
    {
      "offer":
      {
        "shopSku": "rowenta-kymzs",
        "name": "Фен-щетка Rowenta CF 8361 черный",
        "category": "Фены и приборы для укладки волос",
        "manufacturer": "Rowenta",
        "manufacturerCountries":
        [
          "Китай",
        ],
        "urls":
        [
          "https://market.yandex.ru/product--fen-shchetka-rowenta-cf-8361/12341872?sku=100244767114",
          "https://example.com/products/rowenta-cf-8361.html",
          "https://example.com/images/rowenta-kymzs-big.jpg"
        ]
      }
      "mapping": 
      {
        "marketSku": 100244767114
      }
    },
    {
      "offer":
      {
        "shopSku": "hyundai-176fj",
        "name": "Hyundai H-DVD140",
        "category": "DVD- и Bluray-плееры",
        "manufacturer": "Hyundai",
        "manufacturerCountries":
        [
          "Китай"
        ],
        "urls":
        [
          "https://example.com/products/hyundai-h-dvd140.html"
        ]
      },
      "mapping":
      {
        "marketSku": 1884709705
      }
    }
  ]
}' \
'https://api.partner.market.yandex.ru/v2'\
'/campaigns/10001/offer-mapping-entries/updates.json'

Ответ:

HTTP/1.1 200 OK
Date: Thu, 11 Oct 2018 11:15:42 GMT
Content-Type: application/json;charset=utf-8
...

{
  "status": "OK"
}

Шаг 4. Дождитесь модерации товаров

Перед размещением на Маркете товары должны пройти модерацию. Маркет проверяет, корректно ли описаны товары и соответствуют ли они SKU на Яндексе, если вы их указывали.

Чтобы узнать статус модерации, отправьте запрос информации о товарах в вашем каталоге GET /campaigns/{campaignId}/offer-mapping-entries. Результаты возвращаются постранично. Чтобы получить первую страницу, отправьте запрос без идентификатора страницы page_token. В дальнейшем используйте значение выходного параметра prev-page-token или next-page-token как идентификатор предыдущей или следующей страницы соответственно.

В ответе на запрос будет содержаться информация о товарах, прошедших, проходящих или не прошедших модерацию. Статус модерации товара можно определить по значению параметра processing-state/status:

Статус модерации товара Значение параметра status Дальнейшие действия

Прошел модерацию

READY

Установите для товара цену, как указано в шаге 5.

Проходит модерацию

IN_WORK

Повторите запрос через некоторое время. Обратите внимание, что информация о товаре может оказаться на другой странице.

Не прошел модерацию

NEED_CONTENT

Для товара не указан SKU на Маркете marketSku, и сотрудники Маркета не смогли привязать его к карточке. Найдите карточку товара самостоятельно (через API, как в шаге 1, или личный кабинет магазина) или создайте ее, если товар еще не продается на Маркете.

NEED_INFO

Вы указали для товара неверную или недостаточную информацию. В параметре notes будут указаны причины отклонения товара. Вернитесь к шагу 3 и уточните входные данные запроса.

SUSPENDED

Маркет пока не размещает товары данной категории, но начнет в ближайшее время. После этого товар автоматически отправится на модерацию, и статус изменится на IN_WORK. Чтобы уточнить сроки появления категорий товаров на Маркете, обратитесь в службу поддержки или к своему менеджеру.

REJECTED

В ближайшее время Маркет не планирует размещать товары данной категории. Если у вас есть вопросы по категориям товаров, размещаемым на Маркете, обратитесь в службу поддержки или к своему менеджеру.

OTHER

Товар не прошел модерацию по другой причине. Обратитесь в службу поддержки или к своему менеджеру.

Статус модерации товара Значение параметра status Дальнейшие действия

Прошел модерацию

READY

Установите для товара цену, как указано в шаге 5.

Проходит модерацию

IN_WORK

Повторите запрос через некоторое время. Обратите внимание, что информация о товаре может оказаться на другой странице.

Не прошел модерацию

NEED_CONTENT

Для товара не указан SKU на Маркете marketSku, и сотрудники Маркета не смогли привязать его к карточке. Найдите карточку товара самостоятельно (через API, как в шаге 1, или личный кабинет магазина) или создайте ее, если товар еще не продается на Маркете.

NEED_INFO

Вы указали для товара неверную или недостаточную информацию. В параметре notes будут указаны причины отклонения товара. Вернитесь к шагу 3 и уточните входные данные запроса.

SUSPENDED

Маркет пока не размещает товары данной категории, но начнет в ближайшее время. После этого товар автоматически отправится на модерацию, и статус изменится на IN_WORK. Чтобы уточнить сроки появления категорий товаров на Маркете, обратитесь в службу поддержки или к своему менеджеру.

REJECTED

В ближайшее время Маркет не планирует размещать товары данной категории. Если у вас есть вопросы по категориям товаров, размещаемым на Маркете, обратитесь в службу поддержки или к своему менеджеру.

OTHER

Товар не прошел модерацию по другой причине. Обратитесь в службу поддержки или к своему менеджеру.

Пример

Отправим запрос информации о товарах в вашем каталоге:

curl -i \
-H 'Authorization: OAuth oauth_token="<токен>", oauth_client_id="<идентификатор>"' \
'https://api.partner.market.yandex.ru/v2'\
'/campaigns/10001/offer-mapping-entries.json'\
'?page_token=4bwqd3PbW8whMcuL'

Ответ (некоторые параметры опущены):

HTTP/1.1 200 OK
Date: Thu, 11 Oct 2018 11:24:56 GMT
Content-Type: application/json;charset=utf-8
...

{
  "status": "OK",
  "result": 
  {
    "offerMappingEntries": 
    [
      {
        "offer": 
        {
          "shopSku": "xiaomi-t0g95",
          "name": "Аккумулятор Xiaomi Mi Power Bank 2S 10000 серебристый",
          "category": "Универсальные внешние аккумуляторы",
          "processingState":
          {
            "status": "READY"
          },
          ...
        },
        "mapping": 
        {
          "marketSku": 100285283734
        }
      },
      {
        "offer": 
        {
          "shopSku": "hyundai-176fj",
          "name": "DVD-плеер Hyundai H-DVD140",
          "category": "DVD и Blu-ray плееры",
          "processingState":
          {
            "status": "IN_WORK"
          },
          ...
        },
        "awaitingModerationMapping": 
        {
          "marketSku": 1884709705
        }
      },
      {
        "offer":
        {
          "shopSku": "rowenta-kymzs",
          "name": "Фен-щетка Rowenta CF 8361 черный",
          "category": "Фены и приборы для укладки волос",
          "processingState":
          {
            "status": "NEED_INFO",
            "notes":
            [
              {
                "type": "NEED_VENDOR"
              }
            ]
          },
          ...
        },
        "rejectedMapping":
        {
          "marketSku": 100244767114
        }
      }
    ],
    "paging": 
    {
      "nextPageToken": "lpNFv0aHA6mvJqBW"
    }
  }
}
Товар Значение параметра status Что значит

Внешний аккумулятор

READY

Аккумулятор прошел модерацию. Для него можно установить цену, как описано в шаге 5.

DVD-плеер

IN_WORK

DVD-плеер еще не прошел модерацию. Повторите запрос через некоторое время.

Фен

NEED_INFO

Фен не прошел модерацию. В параметре notes содержится причина NEED_VENDOR — неверно указан производитель товара. Вернитесь к шагу 3 и уточните входные данные запроса.

Товар Значение параметра status Что значит

Внешний аккумулятор

READY

Аккумулятор прошел модерацию. Для него можно установить цену, как описано в шаге 5.

DVD-плеер

IN_WORK

DVD-плеер еще не прошел модерацию. Повторите запрос через некоторое время.

Фен

NEED_INFO

Фен не прошел модерацию. В параметре notes содержится причина NEED_VENDOR — неверно указан производитель товара. Вернитесь к шагу 3 и уточните входные данные запроса.

Шаг 5. Установите цены на товары

Цена товара на Маркете зависит от того, по какой цене его готовы продавать вы и другие партнеры. Если один товар поставляют несколько партнеров, сначала будет отображаться предложение партнера, который выставил самую низкую цену. Когда товар от этого партнера будет распродан, начнет продаваться товар от партнера, указавшего более высокую цену. Другие партнеры могут часто менять цены, чтобы они были ниже ваших. Поэтому регулярно проверяйте цены для продвижения и обновляйте свои.

  1. Чтобы получить цены для продвижения, отправьте запрос POST /campaigns/{campaignId}/offer-prices/suggestions. В выходных данных для каждого товара будут содержаться цены разных типов. Подробнее см. в описании запроса, а также в Справке Маркета для моделей FBY, FBY+ и FBS.

    Пример

    Получим цены для продвижения для фена Rowenta (SKU на Маркете — 100244767114), который мы разместили на Маркете:

    curl -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: OAuth oauth_token="<токен>", oauth_client_id="<идентификатор>"' \
    -d \
    '{
      "offers":
      [
        {
          "marketSku": 100244767114
        }
      ]
    }' \
    'https://api.partner.market.yandex.ru/v2'\
    '/campaigns/10001/offer-prices/suggestions.json'

    Ответ:

    HTTP/1.1 200 OK
    Date: Thu, 11 Oct 2018 11:38:07 GMT
    Content-Type: application/json;charset=utf-8
    ...
    
    {
      "status": "OK",
      "result":
      {
        "offers":
        [
          {
            "marketSku": 100244767114,
            "priceSuggestion":
            [
              {
                "type": "DEFAULT_OFFER",
                "price": 6100.00
              },
              {
                "type": "BUYBOX",
                "price": 5950.00
              },
              {
                "type": "MIN_PRICE_MARKET",
                "price": 5249.00
              }
            ]
          }
        ]
      }
    }

    В выходных данных содержатся минимальная цена на Маркете (DEFAULT_OFFER) — 6100 рублей, цена Маркета для продвижения (BUYBOX) — 5950 рублей, минимальная цена на Маркете (MIN_PRICE_MARKET) — 5249 рублей.

  2. Чтобы установить новые цены на товары, отправьте запрос POST /campaigns/{campaignId}/offer-prices/updates. Во входных параметрах для каждого товара укажите SKU на Маркете и новую цену value.

    Чтобы продавать товар со скидкой, укажите для него новую цену value и старую цену discount-base (при показе она будет зачеркнута). Обратите внимание на требования к скидкам в Справке Маркетадля моделей FBY, FBY+ и FBS.

    Пример

    Укажем цены для двух товаров. Для аккумулятора Xiaomi (SKU на Маркете — 100285283734) укажем только новую цену, а для фена Rowenta (SKU на Маркете — 100244767114) — старую цену без скидки и новую цену со скидкой:

    curl -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Authorization: OAuth oauth_token="<токен>", oauth_client_id="<идентификатор>"' \
    -d \
    '{
      "offers": 
      [
        {
          "marketSku": 100285283734,
          "price": 
          {
            "currencyId": "RUR",
            "value": 1300.00
          }
        },
        {
          "marketSku": 100244767114,
          "price": 
          {
            "currencyId": "RUR",
            "value": 4900.00,
            "discountBase": 5300.00
          }
        }
      ]
    }' \
    'https://api.partner.market.yandex.ru/v2'\
    '/campaigns/10001/offer-prices/updates.json'

    Ответ:

    HTTP/1.1 200 OK
    Date: Thu, 11 Oct 2018 13:03:01 GMT
    Content-Type: application/json;charset=utf-8
    ...
    
    {
      "status": "OK"
    }

Другие способы работы с товарами

Управлять товарами, которые вы размещаете на Маркете, и ценами на них также можно в личном кабинете, с помощью Excel-шаблонов, YML‑файлов и модулей интеграции. Подробнее см. в разделах Справки Маркета для моделей FBY, FBY+ и FBS: