Wildberries. Заполнение карточек товаров. Как получить значение справочников?
При программном создании карточек номенклатуры я столкнулся с тем, что документация (https://suppliers-portal.wildberries.ru/nsf/front/new-spec-micro-frontend/_assets/pkg_card_DOC.md) скромно умалчивает о важных аспектах получения справочников, без которых не создать карточку. Все примеры рабочие, если не открываются из документа, скопируйте в строку браузера.
Начнём с начала, сперва нужно получить поля объектов по ключевому слову:
1. Сперва нужно получить объект: https://content-suppliers.wildberries.ru/ns/characteristics-configurator-api/content-configurator/api/v1/config/get/object/list?pattern=Кроссовки&lang=ru &lang=ru . Обратите внимание на множественное число. Я долго пытался получить информацию по объекту Ложка и ничего не находил, нужно было писать Ложки. Язык поиска указываем обязательно &lang=ru.
Если угадали слово поиска, получаем это {
"additionalErrors": null,
"data": {
"Кроссовки": {
"name": "Кроссовки",
"parent": "Обувь"
}
},
Кроссовки это ключевое слово, с ним будем работать. Если слов несколько, то нужно выбрать нужное, смотри запрос «Ложки»
2. Нужно получить поля объектов:
name это то слово которое мы получили/выбрали в п1. В ответ получаем это:
{
"additionalErrors": null,
"data": {
"name": "Кроссовки",
"parent": "Обувь",
"addin": [
{
"isAvailable": true,
"required": true,
"useOnlyDictionaryValues": true,
"type": "Бренд",
"dictionary": "/brands"
},
{
"isAvailable": true,
"required": false,
"useOnlyDictionaryValues": false,
"type": "Описание"
},
{
"isAvailable": true,
"required": true,
"useOnlyDictionaryValues": true,
"maxCount": 10,
"type": "Комплектация",
"dictionary": "/contents"
},
…
Это свойства каждого поля:
- type": "Бренд" - это имя свойства
- "required": true - заполнение обязательно
- "useOnlyDictionaryValues": true – заполнение только из словаря, тут немного не точно, некоторые значения, в частности бренд можно заполнять не из словаря
- "dictionary": "/brands" – имя справочника из которого выбираем значения
- "isNumber": true, - значение число
- "units": [ "г" ] – единица измерения
Сперва идут свойства карточки товара, в структуре "nomenclature": { свойства номенклатуры, в структуре "variation": { свойства вариации (размера)
Все, список всех справочников можно получить (как сказано в документации)
Но в документации не сказано, как получать значения из этих справочников:
Предмет это то слово, которое было с п1 и никак иначе
В некоторых справочниках (небольших) можно не указывать параметры:
В других нужно указать предмет, и тут начинаются чудеса: в каждом справочнике параметры нужно указывать по-разному, и в документации я этого не нашёл
/tnved?lang=ru&pattern=&subject=Слово
/ext – тут указываем имя свойства из п2 и желательно подстроку
Для размера указываем ещё и пол, если в свойствах карточки размер обязателен
Очень позабавил справочник комплектация «/contents» если без параметров он выдаёт первые 10 элементов, которые совсем не нужны. Обязательно указываем параметр «pattern» и желательно «top»