Добавление и редактирование товаров в каталоге
Этот метод устарел. Вместо него используйте POST businesses/{businessId}/offer-mappings/update.
Добавляет товары, указанные в запросе, в ваш каталог товаров и редактирует уже имеющиеся товары.
Информацию о товарах нужно передать в теле POST-запроса.
У каждого товара должен быть ваш SKU — уникальный код, который вы используете для идентификации товара:
- Чтобы добавить в каталог новый товар, укажите в параметре
shopSku
ваш SKU, которого еще нет в каталоге. - Чтобы отредактировать товар из каталога, укажите в параметре
shopSku
ваш SKU этого товара в каталоге.
В обоих случаях в запросе нужно передать полное описание товара, даже если вы хотите изменить только несколько характеристик.
Если вы знаете, какой карточке товара на Маркете соответствует ваш товар, укажите ее идентификатор (SKU на Маркете) во входном параметре mapping. Получить SKU на Маркете рекомендованной карточки товара можно с помощью запроса POST campaigns/{campaignId}/offer-mapping-entries/suggestions или через кабинет. Если SKU на Маркете не указан, сотрудники Маркета сами подберут или создадут подходящую карточку товара, либо у него появится статус NEED_CONTENT
(нужно найти карточку или создать ее самостоятельно) в выходных данных запроса GET campaigns/{campaignId}/offer-mapping-entries.
Перед публикацией товары проходят модерацию. Если в одном из отправленных товаров найдена ошибка, ответ на запрос будет иметь HTTP-код 400 Bad Request, и ни один из товаров не отправится на модерацию. При этом если вы не передадите все обязательные параметры для какого‑либо товара, после модерации у него появится статус NEED_INFO
(в описании товара не хватает информации) в выходных данных запроса GET campaigns/{campaignId}/offer-mapping-entries.
В одном запросе можно добавить не более 500 товаров.
Данные в каталоге обновляются не мгновенно
Это занимает до нескольких минут.
⚙️ Лимит: 5 000 товаров в минуту |
---|
Request
POST
https://api.partner.market.yandex.ru/campaigns/{campaignId}/offer-mapping-entries/updates
Path parameters
Name |
Description |
campaignId* |
Type: integer<int64> Идентификатор кампании в API и магазина в кабинете. Каждая кампания в API соответствует магазину в кабинете. Чтобы узнать идентификаторы своих магазинов, воспользуйтесь запросом GET campaigns. ℹ️ Что такое кабинет и магазин на Маркете
Min value: |
Body
application/json
{
"offerMappingEntries": [
{
"offer": {
"name": "Ударная дрель Makita HP1630, 710 Вт",
"shopSku": "string",
"category": "string",
"vendor": "LEVENHUK",
"vendorCode": "VNDR-0005A",
"description": "string",
"id": "string",
"feedId": 0,
"barcodes": [
46012300000000
],
"urls": [
"string"
],
"pictures": [
"string"
],
"manufacturer": "string",
"manufacturerCountries": [
"string"
],
"minShipment": 0,
"transportUnitSize": 0,
"quantumOfSupply": 0,
"deliveryDurationDays": 0,
"boxCount": 0,
"customsCommodityCodes": [
"string"
],
"weightDimensions": {
"length": 65.55,
"width": 50.7,
"height": 20,
"weight": 1.001
},
"supplyScheduleDays": [
"MONDAY"
],
"shelfLifeDays": 0,
"lifeTimeDays": 0,
"guaranteePeriodDays": 0,
"processingState": {
"status": "UNKNOWN",
"notes": [
{
"type": "ASSORTMENT",
"payload": "string"
}
]
},
"availability": "ACTIVE",
"shelfLife": {
"timePeriod": 0,
"timeUnit": "HOUR",
"comment": "string"
},
"lifeTime": {
"timePeriod": 0,
"timeUnit": "HOUR",
"comment": "string"
},
"guaranteePeriod": {
"timePeriod": 0,
"timeUnit": "HOUR",
"comment": "string"
},
"certificate": "string"
},
"mapping": {
"marketSku": 0,
"modelId": 0,
"categoryId": 0
},
"awaitingModerationMapping": {
"marketSku": 0,
"modelId": 0,
"categoryId": 0
},
"rejectedMapping": {
"marketSku": 0,
"modelId": 0,
"categoryId": 0
}
}
]
}
Name |
Description |
offerMappingEntries* |
Type: UpdateOfferMappingEntryDTO[] Информация о товарах в каталоге. В теле запроса можно передать от одного до 500 товаров. Обязательный параметр.
Max items: Min items: |
UpdateOfferMappingEntryDTO
Список товаров.
В теле запроса можно передать от одного до 500 товаров.
Обязательный параметр.
Name |
Description |
awaitingModerationMapping |
Type: OfferMappingDTO Информация о карточке товара на Маркете, проходящей модерацию для данного товара |
mapping |
Type: OfferMappingDTO Информация о карточке товара на Маркете. Если параметр не указан, сотрудники Маркета сами подберут или создадут подходящую карточку товара, либо у него появится статус |
offer |
Type: MappingsOfferInfoDTO Информация о товаре из каталога. |
rejectedMapping |
Type: OfferMappingDTO Информация о последней карточке товара на Маркете, отклоненной на модерации для данного товара |
OfferMappingDTO
Информация о текущей карточке товара на Маркете.
Name |
Description |
categoryId |
Type: integer<int64> Идентификатор категории для текущей карточки товара на Маркете. |
marketSku |
Type: integer<int64> SKU на Маркете — идентификатор карточки товара на Маркете. При первом запросе marketSku привязывает товар к карточке Маркета. В дальнейшем изменить SKU через отправку запроса нельзя, для этого нужно обратиться в службу поддержки. Min value: |
modelId |
Type: integer<int64> Идентификатор модели для текущей карточки товара на Маркете. Например, две лопатки разных цветов имеют разные SKU на Маркете (параметр |
MappingsOfferInfoDTO
Базовая информация о товарах в каталоге.
Name |
Description |
availability |
Type: OfferAvailabilityStatusType Планы по поставкам:
Значения по умолчанию:
Enum: |
barcodes |
Type: string[] Указывайте в виде последовательности цифр. Подойдут коды EAN-13, EAN-8, UPC-A, UPC-E или Code 128. Для книг указывайте ISBN. Для товаров определенных категорий и торговых марок штрихкод должен быть действительным кодом GTIN. Обратите внимание: внутренние штрихкоды, начинающиеся на 2 или 02, и коды формата Code 128 не являются GTIN. Что такое GTIN Example: |
boxCount |
Type: integer<int32> Сколько мест (если больше одного) занимает товар. Параметр указывается, только если товар занимает больше одного места (например, кондиционер занимает два места: внешний и внутренний блоки в двух коробках). Если товар занимает одно место, не указывайте этот параметр. |
category |
Type: string Категория товара в вашем магазине. Значение будет использовано для определения категории товара на Маркете в случае, если вы не передали категорию в параметре Указывайте конкретные категории — например, набор ножей лучше отнести к категории Столовые приборы, а не просто Посуда. Выбирайте категории, которые описывают товар, а не абстрактный признак — например, Духи, а не Подарки. Значение будет использовано для определения категории товара на Маркете в случае, если вы не передали категорию в параметре |
certificate |
Type: string Номер документа на товар. Перед указанием номера документ нужно загрузить в кабинете продавца на Маркете. Инструкция |
customsCommodityCodes |
Type: string[] Список кодов товара в единой Товарной номенклатуре внешнеэкономической деятельности (ТН ВЭД). Обязательный параметр, если товар подлежит особому учету (например, в системе «Меркурий» как продукция животного происхождения или в системе «Честный ЗНАК»). Может содержать только один вложенный код ТН ВЭД.
|
deliveryDurationDays |
Type: integer<int32> Срок, за который продавец поставляет товары на склад, в днях. |
description |
Type: string Подробное описание товара: например, его преимущества и особенности. Не давайте в описании инструкций по установке и сборке. Не используйте слова «скидка», «распродажа», «дешевый», «подарок» (кроме подарочных категорий), «бесплатно», «акция», «специальная цена», «новинка», «new», «аналог», «заказ», «хит». Не указывайте никакой контактной информации и не давайте ссылок. Можно использовать теги:
Оптимальная длина — 400–600 символов. Max length: |
feedId |
Type: integer<int64> Идентификатор фида. |
guaranteePeriod |
Type: TimePeriodDTO Информация о гарантийном сроке: в течение какого периода (в годах, месяцах, днях, неделях или часах) возможны обслуживание и ремонт товара или возврат денег, а изготовитель или продавец будет нести ответственность за недостатки товара. Обязательный параметр, если у товара есть гарантийный срок. Внимание Если у товара есть гарантийный срок, а вы не укажете его, товар будет скрыт с Маркета. |
guaranteePeriodDays |
Type: integer<int32> Гарантийный срок товара: сколько дней возможно обслуживание и ремонт товара или возврат денег, а изготовитель или продавец будет нести ответственность за недостатки товара. |
id |
Type: string Ваш SKU — идентификатор товара в вашей системе. Правила использования SKU:
Что такое SKU и как его назначать Min length: Max length: Pattern: |
lifeTime |
Type: TimePeriodDTO Информация о сроке службы: в течение какого периода (в годах, месяцах, днях, неделях или часах) товар будет исправно выполнять свою функцию, а изготовитель — нести ответственность за его существенные недостатки. Обязательный параметр, если у товара есть срок службы. Внимание Если у товара есть срок службы, а вы не укажете его, товар будет скрыт с Маркета. |
lifeTimeDays |
Type: integer<int32> Этот параметр устарел. Вместо него используйте Срок службы: сколько дней товар будет исправно выполнять свою функцию, а изготовитель — нести ответственность за его существенные недостатки. |
manufacturer |
Type: string Изготовитель товара: компания, которая произвела товар, ее адрес и регистрационный номер (если есть). Необязательный параметр. |
manufacturerCountries |
Type: string[] Список стран, в которых произведен товар. Обязательный параметр. Должен содержать хотя бы одну, но не больше 5 стран.
|
minShipment |
Type: integer<int32> Минимальное количество единиц товара, которое вы поставляете на склад. Например, если вы поставляете детское питание партиями минимум по 10 коробок, а в каждой коробке по 6 баночек, укажите значение 60. |
name |
Type: string Составляйте название по схеме: тип + бренд или производитель + модель + особенности, если есть (например, цвет, размер или вес) и количество в упаковке. Не включайте в название условия продажи (например, «скидка», «бесплатная доставка» и т. д.), эмоциональные характеристики («хит», «супер» и т. д.). Не пишите слова большими буквами — кроме устоявшихся названий брендов и моделей. Оптимальная длина — 50–60 символов. Example: Max length: |
pictures |
Type: string[] Ссылки (URL) изображений товара в хорошем качестве. Можно указать до 30 ссылок. При этом изображение по первой ссылке будет основным. Оно используется в качестве изображения товара в поиске Маркета и на карточке товара. Другие изображения товара доступны в режиме просмотра увеличенных изображений. Обязательный параметр. Должен содержать хотя бы один вложенный параметр |
processingState |
Type: OfferProcessingStateDTO Информация о статусе публикации товара на Маркете. |
quantumOfSupply |
Type: integer<int32> Добавочная партия: по сколько единиц товара можно добавлять к минимальному количеству minShipment. Например, если вы поставляете детское питание партиями минимум по 10 коробок и хотите добавлять к минимальной партии по 2 коробки, а в каждой коробке по 6 баночек, укажите значение 12. |
shelfLife |
Type: TimePeriodDTO Информация о сроке годности: через какое время (в годах, месяцах, днях, неделях или часах) товар станет непригоден для использования. Например, срок годности есть у таких категорий, как продукты питания и медицинские препараты. Обязательный параметр, если у товара есть срок годности. Внимание Если у товара есть срок годности, а вы не укажете его, товар будет скрыт с Маркета. |
shelfLifeDays |
Type: integer<int32> Этот параметр устарел. Вместо него используйте Срок годности: через сколько дней товар станет непригоден для использования. |
shopSku |
Type: string Ваш SKU — идентификатор товара в вашей системе. Правила использования SKU:
Что такое SKU и как его назначать Min length: Max length: Pattern: |
supplyScheduleDays |
Type: DayOfWeekType[] Дни недели, в которые продавец поставляет товары на склад.
Enum: |
transportUnitSize |
Type: integer<int32> Количество единиц товара в одной упаковке, которую вы поставляете на склад. Например, если вы поставляете детское питание коробками по 6 баночек, укажите значение 6. |
urls |
Type: string[] URL фотографии товара или страницы с описанием на вашем сайте. Переданные данные не будут отображаться на витрине, но они помогут специалистам Маркета найти карточку для вашего товара. Должен содержать один вложенный параметр url.
|
vendor |
Type: string Название бренда или производителя. Должно быть записано так, как его пишет сам бренд. Example: |
vendorCode |
Type: string Артикул товара от производителя. Example: |
weightDimensions |
Type: OfferWeightDimensionsDTO Габариты упаковки и вес товара. |
OfferAvailabilityStatusType
Планы по поставкам:
ACTIVE
— поставки будут.INACTIVE
— поставок не будет: товар есть на складе, но вы больше не планируете его поставлять. Через 60 дней после того, как товар закончится на складе, этот статус изменится наDELISTED
.DELISTED
— архив: товар закончился на складе, и его поставок больше не будет. Если товар вернется на склад (например, покупатель вернет заказ), этот статус изменится наINACTIVE
.
Type |
Description |
Enum: |
TimePeriodDTO
Временной отрезок с комментарием. Требования к содержанию комментария зависят от контекста использования параметра и указаны в описании поля, которое его содержит.
Name |
Description |
timePeriod* |
Type: integer Продолжительность в указанных единицах. |
timeUnit* |
Type: TimeUnitType Единица измерения. Enum: |
comment |
Type: string Комментарий. |
OfferProcessingStateDTO
Информация о статусе публикации товара на Маркете.
Name |
Description |
notes |
Type: OfferProcessingNoteDTO[] Причины, по которым товар не прошел модерацию. |
status |
Type: OfferProcessingStatusType Статус публикации товара Enum: |
DayOfWeekType
День недели:
MONDAY
— понедельник.TUESDAY
— вторник.WEDNESDAY
— среда.THURSDAY
— четверг.FRIDAY
— пятница.SATURDAY
— суббота.SUNDAY
— воскресенье.
Type |
Description |
Enum: |
OfferWeightDimensionsDTO
Габариты упаковки и вес товара.
Если товар занимает несколько коробок, перед измерением размеров сложите их компактно.
Name |
Description |
height* |
Type: number Высота упаковки в см. Example: |
length* |
Type: number Длина упаковки в см. Example: |
weight* |
Type: number Вес товара в кг с учетом упаковки (брутто). Example: |
width* |
Type: number Ширина упаковки в см. Example: |
TimeUnitType
Единица измерения времени:
HOUR
— час.DAY
— сутки.WEEK
— неделя.MONTH
— месяц.YEAR
— год.
Type |
Description |
Enum: |
OfferProcessingNoteDTO
Причины, по которым товар не прошел модерацию.
Name |
Description |
payload |
Type: string Дополнительная информация о причине отклонения товара. |
type |
Type: OfferProcessingNoteType Тип причины, по которой товар не прошел модерацию. Enum: |
OfferProcessingStatusType
Статус публикации товара:
READY
— товар прошел модерацию. Чтобы разместить его на Маркете, установите для него цену.IN_WORK
— товар проходит модерацию. Это занимает несколько дней.NEED_CONTENT
— для товара без SKU на МаркетеmarketSku
нужно найти карточку самостоятельно (через API или кабинет продавца на Маркете) или создать ее, если товар еще не продается на Маркете.NEED_INFO
— товар не прошел модерацию из-за ошибок или недостающих сведений в описании товара. Информация о причинах отклонения возвращается в параметреnotes
.REJECTED
— товар не прошел модерацию, так как Маркет не планирует размещать подобные товары.SUSPENDED
— товар не прошел модерацию, так как Маркет пока не размещает подобные товары.
Type |
Description |
Enum: |
OfferProcessingNoteType
Тип причины, по которой товар не прошел модерацию:
ASSORTMENT
— товар производится в разных вариантах. Каждый из них нужно описать как отдельный товар (входной параметрoffer-mapping-entry
запроса POST campaigns/{campaignId}/offer-mapping-entries/updates или строка в каталоге, если вы загружаете товары через кабинет продавца на Маркете).CANCELLED
— товар отозван с модерации по вашей инициативе.CONFLICTING_INFORMATION
(ранее ошибочноCONFLICTING
) — вы предоставили противоречивую информацию о товаре. Параметры, которые нужно исправить, указаны в параметреpayload
.DEPARTMENT_FROZEN
— правила размещения товаров в данной категории перерабатываются, поэтому товар пока не может пройти модерацию.INCORRECT_INFORMATION
— информация о товаре, которую вы предоставили, противоречит описанию от производителя. Параметры, которые нужно исправить, указаны в параметреpayload
.LEGAL_CONFLICT
— товар не прошел модерацию по юридическим причинам. Например, он официально не продается в России или у вас нет разрешения на его продажу.NEED_CLASSIFICATION_INFORMATION
— информации о товаре, которую вы предоставили, не хватает, чтобы отнести его к категории. Проверьте, что правильно указали название, категорию, производителя и страны производства товара, а также URL изображений или страниц с описанием, по которым можно идентифицировать товар.NEED_INFORMATION
— товар раньше не продавался в России и пока не размещается на Маркете. Для него можно создать карточку. Подробнее см. в разделе Работа с карточкой товара Справки Маркета для продавцов.NEED_PICTURES
— для идентификации товара нужны его изображения. Отправьте URL изображений товара в запросе POST campaigns/{campaignId}/offer-mapping-entries/updates или загрузите обновленный каталог через кабинет продавца на Маркете.NEED_VENDOR
— неверно указан производитель товара.NO_CATEGORY
,NO_KNOWLEDGE
— товары из указанной категории пока не размещаются на Маркете. Если категория появится, товар будет снова отправлен на модерацию.NO_PARAMETERS_IN_SHOP_TITLE
— товар производится в разных вариантах, и из указанного названия непонятно, о каком идет речь. Параметры, которые нужно добавить в название товара, указаны в параметреpayload
.NO_SIZE_MEASURE
— для этого товара нужна размерная сетка. Отправьте ее в службу поддержки или вашему менеджеру. Требования к размерной сетке указаны в параметреpayload
.UNKNOWN
— товар не прошел модерацию по другой причине. Обратитесь в службу поддержки или к вашему менеджеру.
Type |
Description |
Enum: |
Responses
200 OK
Статус выполнения операции.
Body
application/json
{
"status": "OK"
}
Name |
Description |
status |
Type: ApiResponseStatusType Тип ответа. Enum: |
400 Bad Request
Запрос содержит неправильные данные.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. |
status |
Type: ApiResponseStatusType Тип ответа. Enum: |
ApiErrorDTO
Общий формат ошибки.
Name |
Description |
code* |
Type: string Код ошибки. |
message |
Type: string Описание ошибки. |
401 Unauthorized
В запросе не указаны данные для авторизации.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. |
status |
Type: ApiResponseStatusType Тип ответа. Enum: |
403 Forbidden
Данные для авторизации неверны или доступ к ресурсу запрещен.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. |
status |
Type: ApiResponseStatusType Тип ответа. Enum: |
404 Not Found
Запрашиваемый ресурс не найден.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. |
status |
Type: ApiResponseStatusType Тип ответа. Enum: |
420 Method Failure
Превышено ограничение на доступ к ресурсу.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. |
status |
Type: ApiResponseStatusType Тип ответа. Enum: |
423 Locked
К ресурсу нельзя применить указанный метод.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. |
status |
Type: ApiResponseStatusType Тип ответа. Enum: |
500 Internal Server Error
Внутренняя ошибка сервера.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. |
status |
Type: ApiResponseStatusType Тип ответа. Enum: |
Что такое GTIN
GTIN — это уникальный номер, присвоенный товару в единой международной базе GS1. Из этого номера получается штрихкод формата EAN, UPC или ISBN.
Как убедиться, что товар есть в базе
Проверить код можно на странице проверки на сайте ассоциации GS1. Если товар не находится, запросите код GTIN у вашего поставщика.
Как получить GTIN для своих товаров
Чтобы получить коды GTIN, производителю нужно вступить в ассоциацию GS1 и зарегистрировать товары.