Добавление и редактирование товаров в каталоге
Метод доступен для всех моделей.
Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке
- offers-and-cards-management — Управление товарами и карточками
- all-methods — Полное управление кабинетом
Этот метод устарел
Вместо него используйте POST businesses/{businessId}/offer-mappings/update.
Добавляет товары, указанные в запросе, в ваш каталог товаров и редактирует уже имеющиеся товары.
Информацию о товарах нужно передать в теле POST-запроса.
У каждого товара должен быть ваш SKU — уникальный код, который вы используете для идентификации товара:
- Чтобы добавить в каталог новый товар, укажите в параметре
shopSku
ваш SKU, которого еще нет в каталоге. - Чтобы отредактировать товар из каталога, укажите в параметре
shopSku
ваш SKU этого товара в каталоге.
В обоих случаях в запросе нужно передать полное описание товара, даже если вы хотите изменить только несколько характеристик.
Если вы знаете, какой карточке товара на Маркете соответствует ваш товар, укажите ее идентификатор (SKU на Маркете) во входном параметре mapping. Получить SKU на Маркете рекомендованной карточки товара можно через кабинет. Если SKU на Маркете не указан, сотрудники Маркета сами подберут или создадут подходящую карточку товара, либо у него появится статус NEED_CONTENT
(нужно найти карточку или создать ее самостоятельно) в выходных данных запроса POST businesses/{businessId}/offer-mappings.
Перед публикацией товары проходят модерацию. Если в одном из отправленных товаров найдена ошибка, ответ на запрос будет иметь HTTP-код 400 Bad Request, и ни один из товаров не отправится на модерацию. При этом если вы не передадите все обязательные параметры для какого‑либо товара, после модерации у него появится статус NEED_INFO
(в описании товара не хватает информации) в выходных данных запроса POST businesses/{businessId}/offer-mappings.
В одном запросе можно добавить не более 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> Идентификатор магазина в кабинете. Чтобы узнать идентификаторы своих магазинов, воспользуйтесь запросом 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 товаров. Обязательный параметр.
Min items: Max 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: Min items: |
boxCount |
Type: integer<int32> Сколько мест (если больше одного) занимает товар. Параметр указывается, только если товар занимает больше одного места (например, кондиционер занимает два места: внешний и внутренний блоки в двух коробках). Если товар занимает одно место, не указывайте этот параметр. |
category ⦸
|
Type: string Этот параметр устарел Вместо него используйте Категория товара в вашем магазине. |
certificate |
Type: string Номер документа на товар. Перед указанием номера документ нужно загрузить в кабинете продавца на Маркете. Инструкция |
customsCommodityCodes |
Type: string[] Список кодов товара в единой Товарной номенклатуре внешнеэкономической деятельности (ТН ВЭД). Обязательный параметр, если товар подлежит особому учету (например, в системе «Меркурий» как продукция животного происхождения или в системе «Честный ЗНАК»). Может содержать только один вложенный код ТН ВЭД.
Min items: |
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 товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов. Что такое SKU и как его назначать Min length: Max length: Pattern: |
lifeTime |
Type: TimePeriodDTO Информация о сроке службы: в течение какого периода (в годах, месяцах, днях, неделях или часах) товар будет исправно выполнять свою функцию, а изготовитель — нести ответственность за его существенные недостатки. Обязательный параметр, если у товара есть срок службы. У товара есть срок службы, а вы не укажете его Товар будет скрыт с Маркета. |
lifeTimeDays ⦸
|
Type: integer<int32> Этот параметр устарел Вместо него используйте Срок службы: сколько дней товар будет исправно выполнять свою функцию, а изготовитель — нести ответственность за его существенные недостатки. |
manufacturer |
Type: string Изготовитель товара: компания, которая произвела товар, ее адрес и регистрационный номер (если есть). Необязательный параметр. |
manufacturerCountries |
Type: string[] Список стран, в которых произведен товар. Обязательный параметр. Должен содержать хотя бы одну, но не больше 5 стран.
Min items: Max items: |
minShipment |
Type: integer<int32> Минимальное количество единиц товара, которое вы поставляете на склад. Например, если вы поставляете детское питание партиями минимум по 10 коробок, а в каждой коробке по 6 баночек, укажите значение 60. |
name |
Type: string Составляйте название по схеме: тип + бренд или производитель + модель + особенности, если есть (например, цвет, размер или вес) и количество в упаковке. Не включайте в название условия продажи (например, «скидка», «бесплатная доставка» и т. д.), эмоциональные характеристики («хит», «супер» и т. д.). Не пишите слова большими буквами — кроме устоявшихся названий брендов и моделей. Оптимальная длина — 50–60 символов. Example: Max length: |
pictures |
Type: string[] Ссылки (URL) изображений товара в хорошем качестве. Можно указать до 30 ссылок. При этом изображение по первой ссылке будет основным. Оно используется в качестве изображения товара в поиске Маркета и на карточке товара. Другие изображения товара доступны в режиме просмотра увеличенных изображений. Должен содержать хотя бы один вложенный параметр Min items: |
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 товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов. Что такое SKU и как его назначать Min length: Max length: Pattern: |
supplyScheduleDays |
Type: DayOfWeekType[] Дни недели, в которые продавец поставляет товары на склад.
Enum: Min items: |
transportUnitSize |
Type: integer<int32> Количество единиц товара в одной упаковке, которую вы поставляете на склад. Например, если вы поставляете детское питание коробками по 6 баночек, укажите значение 6. |
urls |
Type: string[] URL фотографии товара или страницы с описанием на вашем сайте. Переданные данные не будут отображаться на витрине, но они помогут специалистам Маркета найти карточку для вашего товара. Должен содержать один вложенный параметр url.
Min items: |
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[] Причины, по которым товар не прошел модерацию. Min items: |
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
Статус публикации товара:
UNKNOWN
— неизвестный статус.READY
— товар прошел модерацию. Чтобы разместить его на Маркете, установите для него цену.IN_WORK
— товар проходит модерацию. Это занимает несколько дней.NEED_INFO
— товар не прошел модерацию из-за ошибок или недостающих сведений в описании товара. Информация о причинах отклонения возвращается в параметреnotes
.NEED_MAPPING
— у товара нельзя создать карточку.NEED_CONTENT
— для товара без SKU на Маркете (marketSku
) нужно найти карточку самостоятельно (через API или кабинет продавца на Маркете) или создать ее, если товар еще не продается на Маркете.CONTENT_PROCESSING
— товар находится на модерации.SUSPENDED
— товар не прошел модерацию, так как Маркет пока не размещает подобные товары.REJECTED
— товар не прошел модерацию, так как Маркет не планирует размещать подобные товары.REVIEW
— принимается решение о размещении товара.CREATE_ERROR
— не удалось создать карточку товара.UPDATE_ERROR
— у карточки товара есть непримененные изменения.
Type |
Description |
Enum: |
OfferProcessingNoteType
Тип причины, по которой товар не прошел модерацию:
ASSORTMENT
— товар производится в разных вариантах. Каждый из них нужно описать как отдельный товар (параметрofferMappings
в запросе POST businesses/{businessId}/offer-mappings/update или строка в каталоге, если вы загружаете товары через кабинет продавца на Маркете).CANCELLED
— товар отозван с модерации по вашей инициативе.CONFLICTING_INFORMATION
(ранее ошибочноCONFLICTING
) — вы предоставили противоречивую информацию о товаре. Параметры, которые нужно исправить, указаны в параметреpayload
.OTHER
— товар не прошел модерацию по другой причине. Обратитесь в службу поддержки или к вашему менеджеру.DEPARTMENT_FROZEN
— правила размещения товаров в данной категории перерабатываются, поэтому товар пока не может пройти модерацию.INCORRECT_INFORMATION
— информация о товаре, которую вы предоставили, противоречит описанию от производителя. Параметры, которые нужно исправить, указаны в параметреpayload
.LEGAL_CONFLICT
— товар не прошел модерацию по юридическим причинам. Например, он официально не продается в России или у вас нет разрешения на его продажу.NEED_CLASSIFICATION_INFORMATION
— информации о товаре, которую вы предоставили, не хватает, чтобы отнести его к категории. Проверьте, что правильно указали название, категорию, производителя и страны производства товара, а также URL изображений или страниц с описанием, по которым можно идентифицировать товар.NEED_INFORMATION
— товар раньше не продавался в России и пока не размещается на Маркете. Для него можно создать карточку. Подробнее см. в разделе Работа с карточкой товара Справки Маркета для продавцов.NEED_PICTURES
— для идентификации товара нужны его изображения. Отправьте URL изображений товара в запросе POST businesses/{businessId}/offer-mappings/update или загрузите обновленный каталог через кабинет продавца на Маркете.NEED_VENDOR
— неверно указан производитель товара.NO_CATEGORY
,NO_KNOWLEDGE
— товары из указанной категории пока не размещаются на Маркете. Если категория появится, товар будет снова отправлен на модерацию.NO_PARAMETERS_IN_SHOP_TITLE
— товар производится в разных вариантах, и из указанного названия непонятно, о каком идет речь. Параметры, которые нужно добавить в название товара, указаны в параметреpayload
.NO_SIZE_MEASURE
— для этого товара нужна размерная сетка. Отправьте ее в службу поддержки или вашему менеджеру. Требования к размерной сетке указаны в параметреpayload
.SAMPLE_LINE
— товар не прошел модерацию из-за лишней строки.
Type |
Description |
Enum: |
Responses
200 OK
Статус выполнения операции.
Body
application/json
{
"status": "OK"
}
Name |
Description |
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
ApiResponseStatusType
Тип ответа. Возможные значения:
OK
— ошибок нет.ERROR
— при обработке запроса произошла ошибка.
Type |
Description |
Enum: |
400 Bad Request
Запрос содержит неправильные данные.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. Min items: |
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[] Список ошибок. Min items: |
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
403 Forbidden
Данные для авторизации неверны или доступ к ресурсу запрещен.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. Min items: |
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
404 Not Found
Запрашиваемый ресурс не найден.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. Min items: |
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
420 Method Failure
Превышено ограничение на доступ к ресурсу.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. Min items: |
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
423 Locked
К ресурсу нельзя применить указанный метод.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. Min items: |
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
500 Internal Server Error
Внутренняя ошибка сервера.
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "string",
"message": "string"
}
]
}
Name |
Description |
errors |
Type: ApiErrorDTO[] Список ошибок. Min items: |
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
No longer supported, please use an alternative and newer version.
Что такое GTIN
GTIN — это уникальный номер, присвоенный товару в единой международной базе GS1. Из этого номера получается штрихкод формата EAN, UPC или ISBN.
Как убедиться, что товар есть в базе
Проверить код можно на странице проверки на сайте ассоциации GS1. Если товар не находится, запросите код GTIN у вашего поставщика.
Как получить GTIN для своих товаров
Чтобы получить коды GTIN, производителю нужно вступить в ассоциацию GS1 и зарегистрировать товары.