Редактирование карточек товаров
POST /content/v2/cards/updateБаза: https://content-api.wildberries.ru · Модуль: items · Раздел: Карточки товаров · Документация спецификации ↗
Метод обновляет данные карточек товаров. Также используйте его, чтобы добавлять новые размеры и документы.
Карточка товара перезаписывается при обновлении. Поэтому в запросе нужно передать в том числе те параметры карточки, которые вы не собираетесь обновлять. Их значения можно получить в списке карточек товаров и списке карточек товаров в корзине.
При обновлении карточки объект documents также полностью перезаписывается. Передавайте в запросе данные всех документов, которые должны остаться в карточке, включая документы без изменений.
С помощью этого метода нельзя обновлять или удалять:
- баркоды размеров товара. Можно только добавить дополнительные баркоды
- параметры
photos,videoиtags - цены товаров. Цену можно задать, только если вы добавляете новые размеры При добавлении нового размера укажите его цену через параметр
price. Если в запросе не указанprice, цена размера будет0— в этом случае изменить её можно будет с помощью методов: - Установить цены и скидки, если у товара
"editablePriceSize":false - Установить цены для размеров, если у товара
"editablePriceSize":trueГабариты товаров можно указать только всантиметрах, вес товара с упаковкой — вкилограммах.
Одним запросом можно отредактировать максимум 3000 карточек товаров (nmID). Максимальный размер запроса 10 Мб. Если ответ Успешно (200), но какие-то карточки не обновились, проверьте список несозданных карточек товаров. Синхронизация данных с сервисами может занимать до 30 минут. В течение этого времени невозможно добавить остатки на склады и настроить цены.
Чтобы прикрепить документы к карточке товара, передайте данные документов в объекте запроса documents. Чтобы внести изменения в прикрепленный к карточке документ, передайте id документа и его данные в объекте запроса documents. Получить id документа вы можете в списке карточек товара. После изменения документа или добавления нового документа карточка повторно отправляется на проверку.
Проверка документов выполняется асинхронно и может занимать до 3 дней. Вы можете изменить карточку снова до завершения текущей проверки. При этом проверка запустится повторно, а карточка сохранит текущий статус до завершения новой проверки. Если карточка была доступна для продажи до обновления документа, она будет доступна и до получения нового результата проверки. Если карточка уже была заблокирована, то после обновления данных она останется заблокированной до получения положительного результата повторной проверки.
Результаты проверки отображаются в списке карточек товаров, объект documents:
- результат по каждому документу в полях
verdictобъектаitems. Еслиverdictне возвращается в ответе — проверка документа ещё не завершена - итоговый общий результат по карточке в поле
overallVerdict. При общей проверке карточки учитываются не только результаты проверки документов, но и другие данные. Например, наличие обязательной маркировки и сведения из внешних реестров. ЕслиoverallVerdictне возвращается в ответе — проверка карточки ещё не завершена
Типы документов, которые вы можете добавить для товара, указаны в характеристиках предмета.
При этом не все документы, которые вы можете добавить, обязательны и проходят проверку — вы самостоятельно определяете, какие разрешительные документы требуются для товара в соответствии с законодательством.
Лимит запросов на один профиль продавца:
| Период | Лимит | Интервал | Всплеск |
|---|---|---|---|
| 1 мин | 10 запросов | 6 сек | 5 запросов |
Тело запроса
application/json — схема object[], необязательно
nmIDinteger<int64>(обязательно) — Артикул WBvendorCodestring(обязательно) — Артикул продавцаkizMarkedboolean— Подтверждение, что на товар нанесён обязательный код маркировки Честного знака: -true— продавец подтверждает, что на товар нанесён обязательный код маркировки. -false— продавец не подтверждает, что на товар нанесён обязательный код маркировки. Передайте в запросеtrue, чтобы подтвердить наличие на товаре обязательного кода маркировки. Карточка товара не пройдёт проверку, если нет подтверждения продавца о том, что обязательный код маркировки нанесён на товар. Чтобы проверить, является ли код маркировки Честного знака обязательным, используйте метод Список карточек товаров, поле ответаneedKizbrandstring— Брендtitlestring— Наименование товараgtinstring— Дополнительный GTIN. Укажите этот параметр, если тот же GTIN вы ранее указывали в одной из карточек товара в параметреskus. Нельзя указывать один и тот же GTIN вskusдля разных карточек или размеров товаров. Только для продавцов из РФdescriptionstring— Описание товара. Максимальное количество символов зависит от категории товара Стандарт — 2000, минимум — 1000, максимум — 5000 Подробно о **правилах заполнения карточки товара** в Справочном центре на портале продавцовdimensionsobject— Габариты и вес товара **c упаковкой**. Укажите всантиметрахикилограммахдля любого товара. Синхронизация новых данных с сервисом может занимать до 30 минутlengthinteger<int64>— Длина, смwidthinteger<int64>— Ширина, смheightinteger<int64>— Высота, смweightBruttonumber— Вес, кг Количество знаков после запятой <=3
documentsobject— Разрешительные документы карточки товараitemsobject[]— Список разрешительных документов и их данныеidstring— ID документа, прикреплённого к карточке. Укажитеid, чтобы внести изменения в прикреплённый ранее документ. ID документа указан в списке карточек товаров. Чтобы добавить новый документ, указыватьidне нужно.typeinteger<int64>— Тип документа. Типы документов, которые вы можете добавить для товара, указаны в характеристиках предмета — полеcharcID. Возможные типы документов: -1— Сертификат соответствия. Можно указать дляcharcID: 15001136, 15001137, 15001138 -2— Декларация о соответствии. Можно указать дляcharcID: 15001135, 15001137, 15001138 -3— Свидетельство о государственной регистрации (СГР). Можно указать дляcharcID: 62945173, 15000785, 15004302 -4— Регистрационное удостоверение (РУ) на медицинские изделия. Можно указать дляcharcID: 15001574, 15002355, 15002356, 15002357 -5— Регистрационное удостоверение Республики Беларусь. Можно указать дляcharcID: 15003071, 15003939 -7— Данные о регистрации пестицида. Можно указать дляcharcID: 15003924, 15003925 -8— Данные о регистрации агрохимиката. Можно указать дляcharcID: 15003920, 15003921 -9— Регистрационное удостоверение (РУ) на лекарственные препараты. Можно указать дляcharcID: 1897013, 15004284numberstring— Номер документаproductNumberstring— Дополнительный номер документаtradeNamestring— Торговое наименованиеapplicantstring— Представитель изготовителя медицинского изделияstartDatestring— Дата и время начала срока действия документаendDatestring— Дата и время окончания срока действия документаisEndlessboolean— Бессрочный ли документ: -true— да, документ бессрочный -false— нет, у документа есть срок действия
excludeDocumentsboolean— Подтверждение продавца, что для товара не требуются разрешительные документы: -true— продавец подтверждает, что документы не требуются. Все значения, переданные вdocuments, будут заменены на пустые значения -false— продавец не подтверждает, что документы не требуются Обязательность документов проверяется при создании и изменении карточки товара. Если для товара требуются документы и указано значениеtrue, карточка не пройдёт проверку
characteristicsobject[]— Характеристики товара. Можно получить методом Характеристики предметаidinteger<int64>(обязательно) — ID характеристикиvalueobject(обязательно) — Значения характеристики. Тип данных — массив строк или число — зависит от типа характеристики, см. описание поляcharcTypeв методе Характеристики предмета. Допустимое количество значений отображено в полеmaxCountтого же метода
sizesobject[](обязательно) — Массив размеров Для безразмерного товара всё равно нужно передавать данный массив без параметров (wbSize и techSize), но с баркодомchrtIDinteger<int64>— ID размера для данного артикула WB Обязателен к заполнению для существующих размеров Для добавляемых размеров не указываетсяtechSizestring— Размер товара (например, XL, S, 45)wbSizestring— Российский размер товараpriceinteger<int64>— Цена товара, ₽ Указывается при добавлении размераskusstring[]— Баркоды
Ответы
| Код | Описание | Схема |
|---|---|---|
200 | Успешно | responseItemList |
400 | Неправильный запрос | responseBodyContentError400 |
401 | Не авторизован | object |
402 | Требуется платёж | object |
403 | Доступ запрещён | responseBodyContentError403 |
413 | Превышен лимит объёма данных в запросе | PostV2CardsUpdateResponse413 |
429 | Слишком много запросов | object |
Структура 200:
dataobject— Данные ответаerrorboolean— Флаг ошибкиerrorTextstring— Описание ошибкиadditionalErrorsobject— Дополнительные ошибки- один из вариантов:
object,string,object
- один из вариантов:
Структура 400:
dataobject— Данные ошибкиerrorboolean— Флаг ошибкиerrorTextstring— Описание ошибкиadditionalErrorsobject— Дополнительные ошибки
Структура 401:
titlestring— Заголовок ошибкиdetailstring— Детали ошибкиcodestring— Внутренний код ошибкиrequestIdstring— Уникальный ID запросаoriginstring— ID внутреннего сервиса WBstatusnumber— HTTP статус-кодstatusTextstring— Расшифровка HTTP статус-кодаtimestampstring— Дата и время запроса
Структура 402:
titlestring— Заголовок ошибкиdetailstring— Детали ошибки. Ошибка возвращается только сервисам из Каталога решений для бизнеса
Структура 403:
dataobject— Данные ошибкиerrorboolean— Флаг ошибкиerrorTextstring— Описание ошибкиadditionalErrorsstring— Дополнительные ошибки
Структура 413:
titlestring— Заголовок ошибкиdetailstring— Детали ошибкиcodestring— Внутренний код ошибкиrequestIdstring— Уникальный ID запросаoriginstring— ID внутреннего сервиса WBstatusnumber— HTTP статус-кодstatusTextstring— Расшифровка HTTP статус-кода
Структура 429:
titlestring— Заголовок ошибкиdetailstring— Детали ошибкиcodestring— Внутренний код ошибкиrequestIdstring— Уникальный ID запросаoriginstring— ID внутреннего сервиса WBstatusnumber— HTTP статус-кодstatusTextstring— Расшифровка HTTP статус-кодаtimestampstring— Дата и время запроса
Примеры вызова
Аргументы показаны именами параметров — подставьте свои значения. Языки, в клиенте которых этой операции нет, не показаны.
from wb_api_client.items import Configuration, ApiClient
from wb_api_client.items.api import ItemsApi
cfg = Configuration(access_token="<ваш JWT WB>")
api = ItemsApi(ApiClient(cfg))
result = api.post_v2_cards_update(post_v2_cards_update_request_inner=...)
print(result)import {
Configuration,
ItemsApi,
} from "@valeryverkhoturov/wb-api-client/items";
const cfg = new Configuration({});
cfg.setAccessToken("<ваш JWT WB>");
const api = new ItemsApi(cfg);
const { data } = await api.postV2CardsUpdate(postV2CardsUpdateRequestInner);
console.log(data);import (
"context"
"fmt"
wbitems "github.com/ValeryVerkhoturov/wb-api-client-go/items"
)
cfg := wbitems.NewConfiguration()
cfg.SetAccessToken("<ваш JWT WB>")
client := wbitems.NewAPIClient(cfg)
result, _, err := client.ItemsAPI.PostV2CardsUpdate(context.Background()).Execute()
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", result)import io.github.valeryverkhoturov.wbapi.items.ApiClient;
import io.github.valeryverkhoturov.wbapi.items.SecretString;
import io.github.valeryverkhoturov.wbapi.items.api.ItemsApi;
ApiClient client = new ApiClient();
client.setAccessToken(new SecretString("<ваш JWT WB>"));
ItemsApi api = new ItemsApi(client);
System.out.println(api.postV2CardsUpdate(postV2CardsUpdateRequestInner));use ValeryVerkhoturov\WbApiClient\Items\Configuration;
use ValeryVerkhoturov\WbApiClient\Items\SecretString;
use ValeryVerkhoturov\WbApiClient\Items\Api\ItemsApi;
use GuzzleHttp\Client;
$config = (new Configuration())
->setAccessTokenSecret(new SecretString('<ваш JWT WB>'));
$api = new ItemsApi(new Client(), $config);
print_r($api->postV2CardsUpdate());#Использовать "wb-api-client"
Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<ваш JWT WB>");
Клиент = Новый ItemsApi(Настройки);
Сообщить(Клиент.PostV2CardsUpdate(Тело).Тело);using ValeryVerkhoturov.WbApiClient.Items.Api;
using ValeryVerkhoturov.WbApiClient.Items.Client;
var config = new Configuration();
config.AccessTokenSecret = new SecretString("<ваш JWT WB>");
var api = new ItemsApi(config);
Console.WriteLine(api.PostV2CardsUpdate());use wb_api_client::items::apis::{configuration::Configuration, items_api};
#[tokio::main]
async fn main() {
let mut cfg = Configuration::new();
cfg.set_access_token("<ваш JWT WB>");
let result = items_api::post_v2_cards_update(&cfg, post_v2_cards_update_request_inner).await;
println!("{:#?}", result);
}