Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

0. 65 18.01.21 08:30 Сейчас в теме
Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Восьмой 55 18.01.21 14:37 Сейчас в теме
Хороший гайд!
Однако не могли бы Вы пример обработки выложить?
2. jenyavp 65 19.01.21 05:34 Сейчас в теме
(1)К сожалению нет полноценной обработки, в которой были бы собраны все моменты. У меня это несколько обработок конфигурации, и вся логика работы HTTP соединений в общем модуле. Основной посыл статьи - показать последовательность действий для создания карточек .
3. tigrandis 218 20.01.21 00:31 Сейчас в теме
плохо что не реализовали все через расширение =(
4. jenyavp 65 20.01.21 07:25 Сейчас в теме
(3) в моем случае расширение и не требовалось, так как разработка ведется на чистой конфигурации + БСП . Эта база является промежуточным звеном, в котором хранятся логи запросов, сами данные (карточки, заказы поставки, продажи, остатки и прочее) с историей изменения, предполагается, что запросы в WB отправляются и загружаются с определенной периодичностью.
В рабочей базе запросы не в WB, а к этому промежуточному звену. Это снимает нагрузку с рабочей базы и дает возможность хранить историю запросов и данных, не меняя конфигурацию рабочей базы и не привязывается к определенной конфигурации.
5. solarcap 21.01.21 17:26 Сейчас в теме
По поводу update: экспериментально выяснилось, что если в card добавить id карточки, тогда апдейтит. После этого, если прочитать карточку, nmId у нее нулевой (видимо это означает нахождение на модерации). В этом состоянии повторно проапдейтить ее нельзя - возвращает такое: "blocked card cause: map[674e8301-....:None err:IsLockedCard]".
6. jenyavp 65 22.01.21 06:11 Сейчас в теме
(5)Спасибо!!
Попробовала, добавила тэг ID в структуру card, в ответ получила {"id":"d9018ee2-b709-465b-ab0e-79b4cefa0b69","jsonrpc":"2.0","result":{}}, я так понимаю, это означает, что обновление прошло успешно.

В личном кабинете Номенклатура обнулилась ( как вы и написали), и упало в статус Ошибки, потому что при обновлении не указала страну. Странно, конечно, работает update, по-хорошему перед тем как обновить, необходимо было проверить заполненность... ))
7. jenyavp 65 22.01.21 06:22 Сейчас в теме
(6) вот, кстати, способ удалить карточку. Карточку удалить дает только в том случае, если Номенклатура не заполнена. Если же заполнена, то только через Service Desk. Сначала обновить ее, Номенклатура обнуляется, и удалить через личный кабинет.
К слову, даже когда указала второй раз все верно по другой карточке по заполнению, все равно карточка упала в ошибку.
Текст ошибки "Характеристика: tech_size. Ошибка: Артикул с таким размером уже создан! Удалите позицию из спецификации и загрузите на нее баркод в разделе Загрузки - Загрузки баркодов.", хотя до этого проблем с артикулами не было и карточка была создана.
8. solarcap 22.01.21 09:19 Сейчас в теме
(7) Интересно, надо попробовать.
Мне тоже при апдейтах возвращает ошибку "Артикул с таким размером уже создан". Если сделать еще один апдейт с новым баркодом, то карточка сразу получает заполненный nmId, ошибки уходят (если ее перечитать после апдейта). Возможно что по аналогии с id карточки нужно добавлять соответствующие id номенклатур и вариаций. Подозреваю, что без id пытается создать новую вариацию, даже если id карточки и указано. Но это догадка, еще не проверял.
А как вы удаляете? delete с одним тегом {id}?
Восьмой; +1 Ответить
9. jenyavp 65 22.01.21 09:43 Сейчас в теме
(8) удаляю я через личный кабинет, программно не пробовала и не видела такого метода.
Имела ввиду, что удалить в личном кабинете не дает карточку, у которой заполнена номенклатура, а так хотя бы можно ее удалить из списка после обнуления номенклатуры без обращения в поддержку, которая обрабатывает запросы неделю.

Этот API - черный ящик :). Спасибо за идею, надо попробовать указать id номенклатуры и вариации, или еще как вариант указать их chrtId и nmId.
Восьмой; +1 Ответить
10. jenyavp 65 22.01.21 09:56 Сейчас в теме
(9) а ведь получилось, добавила теги chrtId и nmId и Номенклатура не обнулилась, и статус не поменялся. Крутяк!
Восьмой; +1 Ответить
11. solarcap 22.01.21 16:21 Сейчас в теме
(10) Точно, при указании chrtId и nmId апдейтит без проблем. Если указывать только id номенклатуры и вариации, то ругается как выше.
По удалению: есть метод /card/delete, работает аналогично cardById. Удаляет даже с заполненным nmId (во всяком случае через апи этих карточек больше не видно, а через кабинет я посмотреть не могу).
12. jenyavp 65 22.01.21 20:03 Сейчас в теме
(11) Спасибо Вам, вы прямо кладезь ценной информации. А фото как добавляли, по описанию в API У Вас все удачно получилось?
Восьмой; +1 Ответить
13. solarcap 23.01.21 17:27 Сейчас в теме
(12) Да какой там кладезь ) Документация отвратная, приходится шишки набивать, да по крупицам собирать. Про метод delete узнал из неофициальной группы в телеге: wildberriesApiForDev.
Фото еще не грузил, но чувствую тоже будут сюрпризы. Раньше (с месяц назад) в карточке приходили идентификаторы фото, как в документации указано, теперь получаешь карточку - а там url вместо идентификаторов.
Восьмой; +1 Ответить
26. user1544285 12.02.21 11:02 Сейчас в теме
(7)
Service Desk

jenyavp, пожалуйста, помогите мне разобраться! Я совсем новичок, все заполнила, но немного накосячила с бар-кодом. Теперь система не дает его изменить. А если добавляю второй бар-код, то выдает точно такую же ошибку: "Характеристика: tech_size. Ошибка: Артикул с таким размером уже создан! Удалите позицию из спецификации и загрузите на нее баркод в разделе Загрузки - Загрузки баркодов.".
Очень прошу Вас, расскажите пошагово про удаление карточки через Service Desk.
ЗАРАНЕЕ БЛАГОДАРЮ!!!
28. jenyavp 65 12.02.21 13:18 Сейчас в теме
(26) Здесь имеется ввиду, что в личном кабинете есть раздел Service Desk. Создаете инцидент на поддержку, что надо удалить такую то карточку. Они или сами отработают, или отправят вас в другой отдел. Service Desk - Создать заявку - Выбираете Поддержку и указываете, какую карточку надо удалить. Скрин прикладываете.

Можно также отправить запрос к API , если вы знаете CARD_ID,

https://content-suppliers.wildberries.ru/card/DELETE
Тело {
"id": 1,
"jsonrpc": "2.0",
"params": {
"cardID": "00000000-0000-0000-0000-000000000000", // ID карточки. Можно получить в ответе сервиса после создания карточки или методом "List", который рассмотрен ниже.
"supplierID": "00000000-0000-0000-0000-000000000000" // ID поставщика. Выдаётся при регистрации поставщика.
}
}
Как писали выше, удаляет даже если заполнена Номенклатура.
27. user1544299 12.02.21 11:17 Сейчас в теме
(7)
Service Desk

jenyavp, пожалуйста, помогите мне разобраться! Я совсем новичок, и это моя первая карточка))). Я все заполнила, но немного накосячила с бар-кодом. Теперь система не дает его изменить. А если добавляю второй бар-код, то выдает точно такую же ошибку: "Характеристика: tech_size. Ошибка: Артикул с таким размером уже создан! Удалите позицию из спецификации и загрузите на нее баркод в разделе Загрузки - Загрузки баркодов.".
Очень прошу Вас, расскажите пошагово про удаление карточки через Service Desk.
ЗАРАНЕЕ БЛАГОДАРЮ!!!
(7)
14. solarcap 27.01.21 12:45 Сейчас в теме
Остались нерешенные проблемы с загрузкой файла

Тоже не удалось побороть загрузку файлов, в ответ стабильно возвращает пустую структуру: "{ }" (при коде возврата = 200, если нет ошибок).
Причем не важно, разрешение ли 900x1200 или другое, кодировать ли тело методами xmlстрока() или base64строка(), формат фото (jpg,png), имя... Код возврата 200 и "{ }".
Можно предположить, что это и означает успешную загрузку, потому что при повторной загрузке на тот же самый идентификатор фото, сайт возвращает код 500 Internal Server Error (видимо идентификатор уже занят). Но update карточки с тегом photos в номенклатуре и с этим id имеет нулевой эффект. При чтение карточки после update фото нет (
15. jenyavp 65 28.01.21 05:44 Сейчас в теме
(14) да, именно так. Еще пробовала загружать как свойство номенклатуры type "Фото", units "image/jpg" value - идентификатор. При чтении карточки свойство это читает, в личном кабинете появляется подобие картинки, открываешь ее, а там переданная строка b64. Здесь видимо надо использовать еще метод получения url картинки по ее id. Можно в чате телеграмма поспрашивать..
Восьмой; +1 Ответить
17. solarcap 28.01.21 20:30 Сейчас в теме
(15)
Здесь видимо надо использовать еще метод получения url картинки по ее id.

Не слышал о таком. Думаю тут имеют место быть недоделки со стороны WB. Если id фото передавать при create, а не при update, то в этом случае это id присутствует при чтении карточки в photos. Только я не могу оценить это со стороны ЛК, нет туда быстрого доступа.
Возможно в этом теге photos обозначается нахождение фото на модерации, но сколько это должно длится по времени - вопрос.
20. solarcap 04.02.21 15:43 Сейчас в теме
(15)
При чтении карточки свойство это читает, в личном кабинете появляется подобие картинки, открываешь ее, а там переданная строка b64.

Похоже на то, что WB не может декодировать то, что ему присылают через xmlстрока или base64строка.
Я попробовал в ручном режиме загрузить через curl, как в примере документации. После загрузки возвращает все также {}, но зато файл, загруженный таким образом можно прицепить к карточке и это получилось ) Цеплял через update в секции Addin номенклатуры (там, где приходят url-ы имеющихся фото, только вместо url указывал идентификаторы).
Тут просто нужен какой-то работающий механизм загрузки, аналогичный curl.
21. jenyavp 65 05.02.21 11:05 Сейчас в теме
(16)
(20) То есть вы имеете ввиду, что загрузка самого файла не отрабатывает нормально, а не привязка?
22. solarcap 05.02.21 14:51 Сейчас в теме
(21) Да. Я перепробовал кучу разных вариантов загрузки из предлагаемых на инфостарте, но при привязке к карточке получаю примерно такой отлуп:
Response status code from ... is 500, resp body: photo index: 0. err: не удалось декодировать изображение cause: map[err:Ошибка загрузки фотографий. Пожалуйста, повторите позже]
А то, что загружено при помощи curl - привязывается.
30. jenyavp 65 02.03.21 21:53 Сейчас в теме
(22) Выложила обновление в конце статьи. Вы решили эту проблему с загрузкой фото? Вернулась к этой теме и удалось победить
31. solarcap 03.03.21 11:20 Сейчас в теме
(30) Интересно, я тоже пробовал этот способ из публикации 20017, но, видимо, где-то что-то недосмотрел, не взлетело.
Спасибо, попробую еще раз.
16. AnnyGirl 13 28.01.21 17:03 Сейчас в теме
Подскажите, можно ли получить полный список товарных категорий wildberies, а не только искать по наименованию?
18. solarcap 28.01.21 20:32 Сейчас в теме
(16) Не нашел такого. Вышел из положения, читая категории в цикле используя в качестве шаблона буквы русского алфавита.
AnnyGirl; +1 Ответить
19. jenyavp 65 29.01.21 07:19 Сейчас в теме
(18) Да, делала также. Циклом по алфавиту.
Восьмой; AnnyGirl; +2 Ответить
23. AnnyGirl 13 11.02.21 15:03 Сейчас в теме
Подскажите как подобрать нужный ТН ВЭД для товара. В нашей безе по ним инфы нет. В свойствах товарной категории это обязательный реквизит. Согласно тэгу "dictionary" нужно забирать из справочника "/tnved" но не понятно с какими параметрами туда обращаться.
25. jenyavp 65 11.02.21 21:55 Сейчас в теме
(23) Дополнила статью по этому вопросу.
24. jenyavp 65 11.02.21 21:16 Сейчас в теме
(23) надо добавить еще один параметр ?subject=Термосы это пример, то есть будет выглядеть так:


https://content-suppliers.wildberries.ru/ns/characteristics-configurator-api/content-configurator/api/v1/directory/tnved?subject=Термосы&pattern=&lang=ru&top=10
AnnyGirl; +1 Ответить
29. AnnyGirl 13 15.02.21 09:38 Сейчас в теме
32. AnnyGirl 13 03.03.21 16:23 Сейчас в теме
Добрый день. Коллеги подскажите те кому удалось продвинутся дальше создания карточек. Интересует вопрос касаемо остатков и цен. Где можно увидеть выгруженные данные по остаткам и цена? При выгрузке получаю ответ от сервера на запрос по выгрузке код 200, тело запроса пустое. И вроде все ок, но данных ни по ценам, не по остаткам в ЛК нет. Можно ли как то получить эту инфу по API или еще как?
33. jenyavp 65 03.03.21 21:22 Сейчас в теме
(32) по API вы это не увидите. Только в Личном кабинете в разделе Продажа со склада Продавца. И цены не меняет, кстати, этот вопрос уже задавали, только в отдаленном будущем. И цены вы увидите при получении данных по карточке. Там видно, все в описании API.
34. AnnyGirl 13 04.03.21 10:11 Сейчас в теме
(33)То есть цены можно обновить только обновив карточку товаров? А через "API Stock&Price" обновляются только остатки? А остатки как можно посмотреть или тоже только в ЛК, но там тоже пусто.
35. jenyavp 65 04.03.21 14:58 Сейчас в теме
(34) Цены по API нельзя никак обновить, только через ЛК. Остатки с нашего склада можно посмотреть в ЛК, если пусто, то значит вы туда ничего еще не добавили. Надо добавлять туда товары. Остатки со склада WB ( это те, которые вы привозили им для реализации) через API статистики. Выдается отдельный ключ для доступа. В обучении где то есть описание сервиса статистики.
36. jenyavp 65 05.03.21 06:02 Сейчас в теме
(35) Да. момент, через "API Stock&Price" как раз и добавляете в остатки со своего склада, если у вас в ЛК пусто, то значит в запросе где то ошиблись, может не те данные передали. К примеру, передавала данные, указывала id склада, данные карточки, но нулевые, в итоге тоже возвращает код 200 без ошибок.
37. enigmen 09.03.21 11:51 Сейчас в теме
Евгения, как с вами можно связаться?
38. jenyavp 65 11.03.21 05:48 Сейчас в теме
(37) вы можете писать вопросы в личные сообщения. Какой вопрос вас интересует?
39. enigmen 11.03.21 09:23 Сейчас в теме
(38) личное сообщение не отправляется. Хотел узнать работаете ли вы с самописными конфами, интеграции с веб-сервисами, зуп, типовая бух. Есть фронт задач, можем переговорить если интересно.
40. jenyavp 65 11.03.21 13:23 Сейчас в теме
(39) Добавила вас в друзья, все равно сообщение не отправляется. У меня на данный момент есть работа и времени, к сожалению, на другие задачи нет(.
41. enigmen 11.03.21 13:30 Сейчас в теме
42. G_103359985573713489861 05.04.21 23:29 Сейчас в теме
Здравствуйте ! Необходима интеграция 1С-Управление торговлей с ЛК Вайлдберриз в части отчетов по проданным КЗИ. Услуга нужна комплексная с удалённым доступом для всей необходимой настройки.
Оставьте свое сообщение
Вопросы с вознаграждением