Продажи со склада поставщика WildBerries. Взаимодействие с АПИ из 1С

09.01.22

Учетные задачи - Розничная торговля

Взялся я тут делать интеграцию с АПИ нового проекта Диких Ягод - Продажи со склада поставщика (ПССП). Это было нелегко. Никто же не читает инструкцию (уже аж 7 версии!), а зря! Для начала сделал получение списка товаров и обмен остатками.

Скачать файлы

Наименование Файл Версия Размер
Продажи со склада поставщика WildBerries. Взаимодействие с АПИ из 1С
.epf 21,62Kb
151
.epf 2.0 21,62Kb 151 Скачать
Продажи со склада поставщика WildBerries. Взаимодействие с АПИ из 1С УТ 10.3 обычные формы
.epf 43,25Kb
65
.epf 43,25Kb 65 Скачать

 

Внимание

Статья сильно устарела, новая по ссылке Интеграция с API WIldberries. Что нового в 2022 во взаимодействии 1С и Вайлдберриз

 

Целых 3 API

Для начала оказалось, что у Вайлдберриз аж 3 АПИ:

1) АПИ Контент (позволяет авторизоваться и получить карточки товаров, а также загрузить описания и фото)

https://suppliers.wildberries.ru/remote-wh-site/api-content.html
Для его работы сильно помогла публикация //infostart.ru/public/1316698/

2) API Stock&Price - обмен остатками на складе

Для его работы требуются отдельные токены АПИ, получаемые в настройках ЛК.

https://suppliers.wildberries.ru/marketplace-pass/api-access

Если вы их забудете и не скопируете сразу при получении(как я), то придется недельку подождать ответа ТП. Видимо, такой же дикой как ягоды, потому что ну "гениальное" же решение показать токены ровно 1 раз в ЛК а дальше написать "Токены уже предоставлены. Для повторного получения токенов необходимо обратиться в техническую поддержку." 

Также не забудьте, что токен занимает целых 64 символа и не обрезается у вас.


3) API Orders - работа с заказами и сборочными заданиями.

Эту часть я дополню позже.

Подготовка к обмену товарами/остатками

Я исходил из того что в ЛК уже есть сколько-то загруженных товаров, через Ексель или созданных вручную. Возможно позже допишу обработку для создания товаров из 1С.

Для работы со вторым АПИ остатков требуется знать Код размера (chrtId) и  Артикул WB (nmId) для каждой номенклатуры. Можно их получить, кроме работы с АПИ, просто выгрузив Ексель из перечня номенклатуры поставщика (https://suppliers.wildberries.ru/analytics/nomenclatures) и из него загрузить в дополнительные реквизиты номенклатуры. Но мы же не ищем легких путей? Поэтому написал код получения всех товаров из АПИ. Но, кстати, загрузку из Ексель (точнее csv) тоже оставил.

В процессе работы с АПИ контент для получения номенклатуры столкнулся с такой ошибкой: передавал валидный Json в метод card/list но приходила ошибка доступ запрещен "code":-32603,"message":"access denied"


Оказалось, нужно передавать  SupplierID вовсе не тот что получается из АПИ по методу suppliers/getID а из раздела Спецификаций в ЛК полученный по кнопке "получить uuid". Это кстати было в Инструкции написано! Полезно иногда читать мануал.

Кстати говоря чтобы получить WbToken и нормально с ним работать надо сделать логин 3 раза (о да!)

1) сначала получить пинкод смс и смс-токен с помощью метода
/passport/api/v2/auth/login_by_phone
2) потом с этим смс-токеном и пинкодом получить куки со значением WBToken
/passport/api/v2/auth/login
кстати да кроме куки тут в ответе ничего нет
3) потом можно "запомнить" этот WBToken отправив его на 
/passport/api/v2/auth/grant
в ответ возвращается еще один токен (аутентификации или как я его назвал основной)
и вот его мы отправляем вместе с куки WBToken на passport/api/v2/auth/login в виде
{
  "country": "RU",
  "device": "test",
  "token": "основной"
}
Теперь с токеном аутентификации можно запрашивать обновление через cookies того самого ВБТокен. Дописал для этого процедуру ОбновитьВБТокенПоОсновному

Запрос номенклатуры

Следующий прикол на который я наткнулся, запросив наконец-то карточки номенклатуры методом LIST (https://content-suppliers.wildberries.ru/card/list) - ограничение лимита по 100 штук, даже если я хочу 999 и явно поставил лимит. Блин мы в 2020, у меня мощный канал интернета, у вас в Диких Ягодах наверняка Дико Производительный Сервер на Golang, если я хочу получить сразу 999 карточек, так дайте мне их блин. Но нет, прилетает 100 штук, и приходится запрашивать еще раз.

Дальше понятно, получаем номенклатуру в Json, находим ее по артикулу и записываем в регистр дополнительные сведения данные по chrtId и nmId. Далее эти сведения нам пригодятся при обмене остатков.

Обмен остатков

Получаем остатки по нужному складу и цены по нужному виду цен. Данные по chrtId и nmId получаем из регистра ДополнительныеСведения. Кстати, если заносить их из файла выгрузки Ексель - тоже можно, есть у меня функция ЗанестиВДопРеквизиты. Только пересохраните Ексель в CSV, так с ним проще работать.

Дальше произошло чудо - сразу возникает ошибка "token is not valid". Причем я пробовал оба, и тестовый и рабочий. Это кажется возникало если данные по ценам были в 0. Или еще json is not valid без каких-то пояснений. 

Я долго смотрел на разницу примера, приведенного у Диких Ягод, и своего тестового json и не мог ничего увидеть. Потом понял - цены были с дробной частью, а ДЯ требуют int. Поправил, получил  "token is not valid", оказалось что у меня обрезался токен до 50 символов. Поправил, получил успех, остатки обновились. 

Создаем номенклатуру

Для начала попробовал создать номенклатуру без фото. Есть метод АПИ https://content-suppliers.wildberries.ru/card/batchCreate

Но думаете там все так просто? Как бы не так! 

Создать-то карточку получается, вот только в ответе АПИ поля nmId и chrtId, которые дальше нужны для обмена остатками в API Stock&Price, приходят в 0 - не заполнены то есть! Подозреваю что карточка отправляется на модерацию, но пока точный ответ про это не получил. Поддержка отправляет писать в заспамленный телеграм чат.

Созданная таким образом карточка не появляется в "Аналитике - Отчет с перечнем номенклатур" и не выгружается в Ексель, однако появляется в разделе "Спецификации New". Но этот новый раздел нерабочий и из него карточка не открывается. 

Также не все просто оказалось с загрузкой фото - если просто установить тело из двоичных данных, вылезает ошибка upload file 'data' error: request has no multipart/form-data Content-Type. Тут мне помогла статья про формирование multipart/form-data из 1С //infostart.ru/public/20017/ - оказалось двоичные данные картинки нужно кодировать с помощью XMLСтрока. Тогда загрузка файла в Вайлдберриз заработала. 

Тестировал на УТ 11.1, платформа 8.3.11.

Иногда обработка работает не у всех - выдает ошибку "access denied" или "supplierID is not valid" - в таких случаях техподдержка отправляет искать помощь в заспамленный телеграм чат. К сожалению, эту проблему можно решать только на стороне WildBerries.

UPD1: добавил версию для УТ 10.3 на обычных формах.

UPD2: на текущий момент написан функционал обмена остатками и создания карточек

обработка wildberries api маркетплейс интеграция

См. также

Модули интеграции с маркетплейсами (WILDBERRIES + ОЗОН + ЯНДЕКС МАРКЕТ+СБЕРМЕГАМАРКЕТ) по схеме FBS для УТ 11, КА 2, ERP 2, УНФ

Маркетплейсы Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Расширения позволяют взаимодействовать с личными кабинетами маркетплейсов WILDBERRIES, ОЗОН, ЯНДЕКС.МАРКЕТ и СБЕРМЕГАМАРКЕТ по схеме: FBS. Основным приоритетом в данной разработке является простота запуска и использования, а так же увеличение скорости сборки и обклейки стикерами заказов при больших объемах отгрузок.

58800 руб.

22.03.2021    168108    999    1514    

512

Расширение для интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP

Маркетплейсы Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Расширение позволяет управлять своими аккаунтами ведущих маркетплейсов по принципу одного окна из своей базы 1С. Единый интерфейс для всех площадок. Отправка остатков по сопоставленным товарам по расписанию, гибкая настройка отправки.

49800 руб.

23.01.2023    28857    254    187    

115

Интеграция 1С с маркетплейсами Ozon и Wildberries для УТ10.3, КА 1.1, УПП 1.3

Маркетплейсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Розничная и сетевая торговля (FMCG) Россия Управленческий учет Платные (руб)

Готовая интеграция с Озон и Вайлдберриз для управляемых форм. Конфигурация встраивается в типовую УТ10.3, КА 1.x, УПП 1.3 или самописные конфигурации. Программа осуществляет выгрузку карточек товаров в ОЗОН/Wildberries, загрузку и синхронизацию ранее загруженных в ОЗОН/Wildberries карточек с номенклатурой в 1С, гибкую настройку синхронизации по номенклатуре, характеристикам, сериям и единицам измерения, а также загрузку отправлений ОЗОН/ Сборочных заданий Wildberries и создание на их основании документов в 1С и управление статусами отправлений ОЗОН/ Сборочных заданий Wildberries.<br> Два варианта документооборота: Заказ покупателя - Реализация и Внутренний заказ - Перемещение - Реализация. Минимальная платформа 8.3.10

49900 руб.

12.05.2021    84680    504    261    

251

SALE! 15%

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

33529 28500 руб.

21.04.2017    89858    105    39    

188

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

4800 руб.

27.02.2017    761682    4659    9495    

2780

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    165790    673    361    

385
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. zoikins 06.11.20 11:22 Сейчас в теме
СПАСИБО за статью!!! сейчас тоже занимаюсь этим вопросом, статья очень помогла , я то думала что достаточно получить токен только в ЛК (типа он один для всего)! занимаюсь загрузкой остатков - тоже token is not valid, но только на тестовом , на рабочем прошел статус ошибки 200 , но в ЛК нигде не видно остатка, а на сайте он появился :) пришлось посылать новый запрос с 0 количеством чтобы он ушел.
3. kiv1c 809 06.11.20 12:43 Сейчас в теме
(1) Да, если остатки обновлены в методе /stocks то кроме кода 200 ничего не приходит. а зачем еще один запрос отправили не понял?
4. zoikins 06.11.20 13:08 Сейчас в теме
(3)с тестовым URL у меня выгрузка не работает , а вот с рабочим заработала - и я выложила некорректный остаток , чтобы это исправить я выслала 0 остаток и все стало как было
152. пользователь 10.02.22 15:00
Сообщение было скрыто модератором.
...
2. kiv1c 809 06.11.20 11:56 Сейчас в теме
разобрался с ошибкой token is not valid - оказывается я поставил в свойствах реквизита длину строки 50 а токен 64 символа и обрезался!
5. kiv1c 809 13.11.20 16:39 Сейчас в теме
проблема с тем что в АПИ поля nmId и chrtId, которые дальше нужны для обмена остатками в API Stock&Price, приходят в 0 при создании - еще не решена.
6. Semfr 18.11.20 12:43 Сейчас в теме
Спасибо большое за пост! А на УТ 10.3, платформа 8.3.16 всё то же самое будет или надо тестировать?
42. unknown181538 151 23.11.20 15:26 Сейчас в теме
(6)
тформа 8.3.1
В любом случае, регистры-то в УТ10 другие. И в любой компании будут индивидуальные особенности, полагаю. У автора решение не претендует на универсальность. Сейчас вот под 10ю запилить пытаюсь, но разница конфигураций тут наименьшая из сложностей.
7. unknown181538 151 18.11.20 17:29 Сейчас в теме
Спасибо заранее! А то я уже испытал стресс от чтения инструкций.
Уточню, на всякий случай.
1) АПИ Контент. СМС достаточно будет получить 1 раз, и потом основной токен можно будет всегда использовать в дальнейшем?
2) API Stock&Price. На закладке "Доступ к АПИ" у меня уже написано "Токены уже предоставлены. Для повторного получения токенов необходимо обратиться в техническую поддержку.". Это значит, что токен уже потерян и нужно делать запрос в ТП? В техподдержку нужно звонить или писать куда-то? Куда придет этот токен?
8. unknown181538 151 18.11.20 18:09 Сейчас в теме
(7) 2) Отвечаю: откуда-то нашлись токены, думаю, что это для второго АПИ. Техподдержку я нашел.

При получении карточек получаю:
{"id":1,"jsonrpc":"2.0","error":{"code":-32603,"message":"access denied","data":{"err":"access denied","trKey":"accessDenied"}}}

Еще вопрос по ссылке https://suppliers.wildberries.ru/specification/client/index есть кнопка "создать токен". Что это за еще один токен?
10. unknown181538 151 18.11.20 18:59 Сейчас в теме
(8) Возможно, я глупые вопросы задаю, потому что сам отвечаю :) но может это кому и поможет. Возможно, моя проблема в том, что я не отправлял заявку на открытие доступа к API Content. Однако же токены с помощью обработки ТС получить удается. Но, возможно, они не рабочие, пока те не обработают мою заявку. В общем, отправил заявку, а там посмотрим.
13. kiv1c 809 19.11.20 10:58 Сейчас в теме
(8) да ошибка accessDenied тоже иногда возникает, помогает обновить токен
30. unknown181538 151 20.11.20 23:01 Сейчас в теме
(13) Мне пришло ответ из ТП, что API активирован. Однако ошибка не ушла. ВБТокен обновил - не помогло. Оставил заявку в ТП.
11. Semfr 18.11.20 19:36 Сейчас в теме
(7) По вашему второму вопросу. Токен выдается при его первом запросе и отображается прямо в личном кабинете, см картинку. Пи обновлении страницы пропадает. Так что надо обращаться к тому, кто его сгенерировал в первый раз - менеджер, админ, еще кто-то , кто имел доступ к личному кабинету поставщика.
Прикрепленные файлы:
unknown181538; +1 Ответить
12. unknown181538 151 18.11.20 21:12 Сейчас в теме
(11) ага. Понятно. Ну этот вроде был отловлен.
14. kiv1c 809 19.11.20 10:58 Сейчас в теме
(7) если получите Основной токен с его помощью можно "без регистрации и смс" обновлять ВбТокен
9. unknown181538 151 18.11.20 18:27 Сейчас в теме
По идее, я должен выгружать только товары, остатки которых изменились. Но получить с сайта остатки на складе поставщика я не вижу возможности.
Получается, что возможно только выгружать всю номенклатуру, либо "запоминать", что выгрузил в прошлый раз. Оба варианта как-то не очень...
15. kiv1c 809 19.11.20 11:00 Сейчас в теме
(9) ну по идее остатки можно получить с АПИ методом card/list
33. jenyavp 101 22.11.20 00:17 Сейчас в теме
(15)А как? потому что я тоже не нашла там полей Остаток и цена.
37. jenyavp 101 22.11.20 22:22 Сейчас в теме
(33)Сама нашла, это другое АПИ, сервис статистики.
16. marat3581525 20.11.20 10:14 Сейчас в теме
Автор, в описании ты пишешь:

"Созданная таким образом карточка не появляется в "Аналитике - Отчет с перечнем номенклатур" и не выгружается в Ексель, однако появляется в разделе "Спецификации New". Но этот новый раздел нерабочий и из него карточка не открывается."

Удалось решить данную проблему?
17. GAlexy 20.11.20 13:26 Сейчас в теме
(8) Удалось победить "err":"access denied" ? ТП должна включать доступ?
использую токен аутентификации и cookie: WBToken =
Получаю "err":"access denied" в методе /list
и
"err":"wrong supplier vendor code" в методе /create
Aspire1C; +1 Ответить
18. marat3581525 20.11.20 13:31 Сейчас в теме
(17)wrong supplier vendor code" в методе /create

Буквально сегодня столкнулся с такой проблемой.
Там в теле запроса для "params" надо добавить еще "supplierVendorCode". Более подробно можно увидеть в инструкции API, расположенной в разделе "Товары" - "Спцификации new".
Если честно, такое API конечно, по кусочкам везде раскидано...
23. kiv1c 809 20.11.20 15:12 Сейчас в теме
(18) ага я тоже офигел, только сегодня видимо добавили это поле supplierVendorCode
25. marat3581525 20.11.20 15:13 Сейчас в теме
(23) Удалось победить ошибку при открытии карточки товара, созданной через API?
19. marat3581525 20.11.20 13:33 Сейчас в теме
(17)
Получаю "err":"access denied" в методе /list


Видимо WB токен истек. Тебе надо его обновить, запросив cookies. Более подробно написано в описании этой статьи
43. unknown181538 151 24.11.20 15:59 Сейчас в теме
(19) ну я его обновлял, использую обработку из статьи. мне не помогает.
По плану ТП будет обрабатывать мой вопрос неделю! Кажется, это претендент на звание Самая Дикая ТП в мире!
20. GAlexy 20.11.20 14:41 Сейчас в теме
(19) я его при каждом запросе обновляю, прежде чем его обратно отослать. Каждый раз он приходит другой.
21. marat3581525 20.11.20 14:51 Сейчас в теме
(20) а supplier ID откуда берете?
22. GAlexy 20.11.20 14:59 Сейчас в теме
(21)
Прикрепленные файлы:
24. marat3581525 20.11.20 15:12 Сейчас в теме
(22) По описанию все делаете верно, скорее всего токен нерабочий. Попробуйте один раз авторизоваться через смс, потом получить основной токен и его продолжать использовать для WB токена.
26. kiv1c 809 20.11.20 15:25 Сейчас в теме
Итоги сегодняшнего эксперимента:
САМЫЙ УЖАСНЫЙ АПИ что я видел!

1)добавили новое поле supplierVendorCode нигде об этом не написав

2) запрос на создание карточек номенклатур в card/batchCreate все еще возвращает chrtId и nmId в 0, а они нужны дальше для обмена остатками

3) созданные карточки видны только в разделе "спецификации new" но при попытке их открыть - backend-errors.предмет не найден
andrkoss; +1 Ответить
44. andrkoss 25.11.20 12:12 Сейчас в теме
(26) с п. 3 не боролись?

У меня сегодня там появились карточки. Видимо, их из старых спецификаций скопировали. Причем написано, что карточки от 21.11. Они открываются. А созданный через АПИ - фиг.
50. marat3581525 30.11.20 11:46 Сейчас в теме
(44) Получилось победить ошибку, возникающую при открытии карточки, созданную через API?
51. andrkoss 30.11.20 12:32 Сейчас в теме
(50) Нет. Поддержка уникальная у ВБ, конечно...
45. andrkoss 25.11.20 12:17 Сейчас в теме
(26) У меня еще при попытке зайти в эту карточку вылазит: "Время сессии истекло! Пожалуйста, обновите страницу или перезайдите в Личный кабинет."
46. andrkoss 25.11.20 15:12 Сейчас в теме
(26) О, новый ответ на попытку редактировать - IsLockedCard
85. uAz1k 12.01.21 16:08 Сейчас в теме
(26) Можете чуть более подробно описать процесс создания карточки. Я не могу понять какие параметры обязательны, какие нет. Обязательно ли указывать в параметр "object" только те значения которые есть у WB, или я могу свое подставить? supplierVendorCode куда нужно добавить?
И да, API действительно очень сырой
27. GAlexy 20.11.20 15:45 Сейчас в теме
(24) если я меняю основной токен на рендомный, кука вообще не приходит.
Уже 100500 раз начинал сначала.
Скажите, от СП требуется включение на доступ по АПИ?
28. GAlexy 20.11.20 16:39 Сейчас в теме
Кукис в файл сохраняете или парсите заголовок?
29. marat3581525 20.11.20 16:51 Сейчас в теме
(28) Заголовок. Скачай обработку этой статьи, там все указано.
31. user1496685 20.11.20 23:35 Сейчас в теме
мамочки. Так мне и придется по-старинке на склад отгружать(((( Сейчас заплачу
32. jenyavp 101 21.11.20 22:53 Сейчас в теме
Воспользовалась вашей обработкой, спасибо, это ускорила процесс. У меня была проблема такая же как у (8),
получила токен, куки, но при получении товаров https://content-suppliers.wildberries.ru/card/list ошибка.
Дело было в учетной записи. Я для себя, как для разработчика создавала дополнительную учетку, и прикрепляла номер к нему. И токен был не рабочий, но вот когда я использовала номер основной учетки, со всеми правами, токен сработал и успешно получилось список товаров.
36. jenyavp 101 22.11.20 16:20 Сейчас в теме
успешно получилось список товаров
(32)
удалось получить список товаров
38. GAlexy 23.11.20 09:17 Сейчас в теме
(32) Подтверждаю. Нужно использовать телефонный номер первый, указанный при регистрации.
Спасибо jenyavp
39. kiv1c 809 23.11.20 14:14 Сейчас в теме
Новая неделя - новые проблемы.
теперь появляется ошибка "wrong supplier vendor code"
card.validate.supplierVendorCode
похоже дело в лишнем пробеле
40. unknown181538 151 23.11.20 14:50 Сейчас в теме
Отправил по одному товару остаток. Вроде как успешно отправился, но на сайте не обновился. Он сразу должен обновиться, или нужно какое-то время выждать?
Если я отправляю пустую цену-цена останется та же, что и была? Ибо цены у нас на сайте ставят, и в 1С нету нужной цены.
41. GAlexy 23.11.20 15:17 Сейчас в теме
(39) Как писал (26)
"jsonrpc": "2.0",
"params": {
"card": {
"supplierVendorCode":"BlaBla",
47. comfortbaby 25.11.20 16:08 Сейчас в теме
Нам тоже нужна такая интеграция... программиста штатного нет
48. пользователь 27.11.20 11:35
Сообщение было скрыто модератором.
...
49. user1491021 27.11.20 13:04 Сейчас в теме
Теперь с токеном аутентификации можно запрашивать обновление через cookies того самого ВБТокен. Дописал для этого процедуру ОбновитьВБТокенПоОсновному
Обновление через cookies того самого ВБТокен как часто нужно выполнять и для чего.
И если при получении списка номенклатуры получаем ответ "access denied" дело в неправильной авторизации или SupplierID неправильный. Беру его по кнопке "Получить uiid"
52. GAlexy 30.11.20 13:37 Сейчас в теме
53. пользователь 30.11.20 16:23
Сообщение было скрыто модератором.
...
54. пользователь 30.11.20 16:36
Сообщение было скрыто модератором.
...
55. Senpasi 01.12.20 00:07 Сейчас в теме
Подскажите, пожалуйста, с api по заказам пока у всех глухо или я косячу?
Простой get с токеном на suppliers-orders.wildberries.ru/api/v1/orders?date_start=2020-11-30T20:59:55+03:00 отдает ошибку на стороне ВБ - 500 "У нас проблемы. Попробуйте позже"

Уже думаю с suppliers.wildberries.ru/marketplace-api/api/private/portal/v1/gather_tasks попробовать дергать, что бы хоть как-то резервирование остатка проходило.
56. evgenrs 01.12.20 12:10 Сейчас в теме
Добрый день, подскажите, а можете переделать вашу обработку для унф 1.6?
57. givi-724 03.12.20 13:56 Сейчас в теме
Добрый день!

Да, обработка для УНФ 1.6 была бы очень актуальна !
99. kiv1c 809 18.02.21 11:00 Сейчас в теме
(57) а чем унф отличается принципиально? надо только переписать запрос получения остатков
58. Aspire1C 862 07.12.20 11:11 Сейчас в теме
У всех нормально работает?
У меня сегодня при попытке получить СМС на строке
ssl = Новый ЗащищенноеСоединениеOpenSSL();
HTTPСоединение = Новый HTTPСоединение("content-suppliers.wildberries.ru",,,,,, SSL);
Виснет режим предпряития и всё.
59. carapuzzz 10.12.20 16:15 Сейчас в теме
Подскажите кто уже разобрался с получением списка.

1.Чтобы все заработало нужно создать Заявка на API Content (Склад поставщика)? после того как ее выполнят получить токен через смс и по этому токену получать WBToken. далее смс авторизация уже не будет нужна?

2.По методу https://content-suppliers.wildberries.ru/card/list какие параметры обязательны, скажем если я хочу получить весь справочник, а передает только 100 штук, предполагаю что должен быть параметр типа страница с которой надо получать. Кроме каких то фильтров непонятных в их запросе есть еще
"query": { // Пагинаци "limit":10, "offset": 20} это и есть подобие страниц, если да то как это использовать?
60. unknown181538 151 14.12.20 14:18 Сейчас в теме
(59) 1. По идее - да. Но у меня вот ошибка accessDenied.
61. carapuzzz 14.12.20 18:03 Сейчас в теме
с получением списка и прохождения авторизации разобрался, но это только начало, создавать новые карточки через апи этот еще тот квест, с отдачей остатков и получением заказов тоже есть свои заморочки.
62. GAlexy 15.12.20 14:04 Сейчас в теме
Я не могу залить остатки. nmId и chrtId получаю из excel списка номенклатуры (через card/list тоже можно). Через API Stock&Price получаю ответ 200, но остатки и цены не меняются. Могу поменять только через excel "Загрузить файл с остатками".
ЧЯДНТ?
63. carapuzzz 17.12.20 09:23 Сейчас в теме
(62) остатки в ЛК не меняются, но фактически они меняются. народ пишет что надо зайти как покупатель на сайт ВБ и в корзине эти остатки будет видно, я пока не дошел до данного этапа.
64. Stas84 18.12.20 14:18 Сейчас в теме
(63) Все верно сказал. Нужно смотреть через корзину как обычный покупатель. Заметил интересный глюк. Менеджер через ексель установила остаток 1, поменять обратно на 0 не получается через ексель, если по АПИ я ставлю 1, на сайте остаток меняется на 2, если 0, меняется на 1. Такое ощущение, что ексель и АПИ не связанные вещи
65. Stas84 18.12.20 14:21 Сейчас в теме
1. Подскажите чем обработка за 4 старт мони отличается от той что за 3 ? Интересует реализация авторизации через СМС для Контент АПИ, чтобы получить список товаров, остатки я обновлять научился.
2. При обновлении остатков на что влияет параметр цена? Передавал разные значения, цена так и не изменилась. На витрине остается цена и скидка та которую установили в ЛК
67. carapuzzz 18.12.20 17:47 Сейчас в теме
(65)Цена не на что не влияет ХЗ зачем она там вообще, я без нее передаю и все работает.
66. carapuzzz 18.12.20 17:46 Сейчас в теме
(64)ВБ работает в двух режимах: 1 СКЛАД ВБ, 2 СКЛАД поставщика.
Остатки в корзине суммируются если скажем для Склада ВБ = 2, для склада поставщика 3, корзина покажет 5.
1 у тебя это скорее всего остаток режима Склада ВБ.
68. carapuzzz 18.12.20 18:01 Сейчас в теме
//шаг1 получить постоянный токен
//НомерТелефона - строго тот что указывался при регистрации ЛК как основной
//смс приходят на любые телефоны но вот токен генерит левый
Процедура ПолучитьТокенНажатие(НомерТелефона)
	
	Стр = Новый Структура;
	Стр.Вставить("phone", НомерТелефона);
	Стр.Вставить("is_terms_and_conditions_accepted", Истина);
	ТекстОтвета = ПолучитьДанные("content-suppliers.wildberries.ru", "/passport/api/v2/auth/login_by_phone", Стр);
	
	Сообщить(ТекстОтвета);
	
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ТекстОтвета);
	Ответ = ПрочитатьJSON(Чтение);
	Чтение.Закрыть();

	Токен = Ответ.token;
	
КонецПроцедуры

//шаг2 получить постоянный токен
//КодИзСМС - код из смс что пришла на телефон указанный ранее
//Токен - токен который был получен в процедуре ранее
Процедура ПолучитьWBTokenНажатие(КодИзСМС, Токен)
	
	options = Новый Структура;
	options.Вставить("notify_code", КодИзСМС);
	Стр = Новый Структура;
	Стр.Вставить("token", Токен);
	Стр.Вставить("options", options);
	
	Заголовки = Неопределено;
	ТекстОтвета = ПолучитьДанные("content-suppliers.wildberries.ru", "/passport/api/v2/auth/login", Стр, Заголовки);
	
	Сообщить(ТекстОтвета);
	
	WBtok = Заголовки.Получить("set-cookie");
	Поз = СтрНайти(WBtok, "max-age");
	WBtok = Сред(WBtok, 1, Поз-3);
	
	Заголовок2 = Новый Соответствие();
	Заголовок2.Вставить("Content-Type", "application/json");
	Заголовок2.Вставить("Cookie", WBtok);
	ТекстОтвета = ПолучитьДанные("content-suppliers.wildberries.ru", "/passport/api/v2/auth/grant",, Заголовок2);
	Сообщить(ТекстОтвета);
	
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ТекстОтвета);
	Ответ = ПрочитатьJSON(Чтение);
	Чтение.Закрыть();

	ГлавныйТокен = Ответ.token;

	Стр = Новый Структура;
	Стр.Вставить("country", "RU");
	Стр.Вставить("device", "");
	Стр.Вставить("token", ГлавныйТокен);
	
	Заголовок2 = Новый Соответствие();
	Заголовок2.Вставить("Content-Type", "application/json");
	Заголовок2.Вставить("Cookie", WBtok);
	ТекстОтвета = ПолучитьДанные("content-suppliers.wildberries.ru", "/passport/api/v2/auth/login", Стр, Заголовок2);
	
	Сообщить(ТекстОтвета);
	
КонецПроцедуры

Функция ПолучитьДанные(Сервер, Ресурс, ВхДанные=Неопределено, Заголовки=Неопределено)
	
	Если ВхДанные=Неопределено Тогда
		ДанныеJSON = "";	
	Иначе
		Запись = Новый ЗаписьJSON;
		Запись.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет));
		ЗаписатьJSON(Запись, ВхДанные);
		ДанныеJSON = Запись.Закрыть();
	КонецЕсли;
	
	SSL = Новый ЗащищенноеСоединениеOpenSSL();
	HTTP =  Новый HTTPСоединение(Сервер,,,,,600, SSL);
	
	Если Заголовки = Неопределено Тогда
		ЗаголовокHTTP = Новый Соответствие();
		ЗаголовокHTTP.Вставить("Content-Type", "application/json");
	Иначе
		ЗаголовокHTTP = Заголовки;
	КонецЕсли;
	
	ЗапросHTTP = Новый HTTPЗапрос(Ресурс, ЗаголовокHTTP);
	
	Если ЗначениеЗаполнено(ДанныеJSON) Тогда
		ЗапросHTTP.УстановитьТелоИзСтроки(ДанныеJSON);
	КонецЕсли;
	
	HTTPОтвет = HTTP.ОтправитьДляОбработки(ЗапросHTTP);
	Если Заголовки=Неопределено Тогда 
		Заголовки = HTTPОтвет.Заголовки;
	КонецЕсли;
	
	Ответ = HTTPОтвет.ПолучитьТелоКакСтроку();
	
	Возврат Ответ;

КонецФункции
Показать
Iva_Irina_Iva; +1 Ответить
69. carapuzzz 18.12.20 18:04 Сейчас в теме
кому надо авторизацию, код выше так получается ГлавныйТокен, просто копируйте процедуры во внешнюю обработку там думаю разберетесь

для получения временного токена(WBТокен ) для работы используем этот главныйТокен

Процедура ОбновитьТокенНажатие()
	
	Стр = Новый Структура;
	Стр.Вставить("token", ГлавныйТокен);
	Заголовки = Неопределено;
	ТекстОтвета = ПолучитьДанные("content-suppliers.wildberries.ru", "/passport/api/v2/auth/login", Стр, Заголовки);
	
	WBtok = Заголовки.Получить("set-cookie");
	Поз = СтрНайти(WBtok, "max-age");
	WBТокен = Сред(WBtok, 1, Поз-3);

КонецПроцедуры
Показать
Iva_Irina_Iva; +1 Ответить
70. user844865 19.12.20 20:08 Сейчас в теме
Не у кого не было проблем с получение постоянного ключа? У меня на отправке запроса /passport/api/v2/auth/grant зависает и всё
71. machneff 44 23.12.20 16:17 Сейчас в теме
Слушайте писал обмен с API OZON, так голова не пухла! Мне интересно есть ли герой, который настроил обмен с WB полностью? обновление остатков, цен, карточек, картинок, заказов?
72. Iva_Irina_Iva 25.12.20 07:31 Сейчас в теме
Кто разобрался с прохождением авторизации, подскажите, все верно делаем?! Шаг 1, получаем смс на номер, который указан в визитке у контактного лица. Далее шаг 2, полученный токен и смс в шаге 1 отправляем для получения WBToken, но приходит пустой { "token": "" }, у кого то было подобное?
73. Iva_Irina_Iva 25.12.20 15:32 Сейчас в теме
(72) Если парсить заголовок, то там должен быть set-cookie? Вопрос, если такого заголовка нет?
74. GAlexy 28.12.20 12:21 Сейчас в теме
(73)
//НУЖЕН:
curl_setopt($cu,CURLOPT_HEADER,true);

//ПАРС:
$out = explode(PHP_EOL,curl_exec($cu));
$WBToken = str_replace('set-cookie: ','',explode(';',$out[7])[0]);

// ВМЕСТО $cu ВАША ПЕРЕМЕННАЯ
77. Iva_Irina_Iva 29.12.20 10:06 Сейчас в теме
(74) Если честно, не поняла что Вы мне написали. Внесла твой телефон в визитку (на тот телефон, которые внесен при регистрации смс не приходят). Получила смс и токен первым шагом, получаю вторым шагом WbToken, он должен быть в заголовках, но там его нет. Делаю все в Postman. Возвращаемые заголовки прикрепила, wbToken там не вижу.
Прикрепленные файлы:
78. GAlexy 29.12.20 10:13 Сейчас в теме
(77)
(на тот телефон, которые внесен при регистрации смс не приходят)
Его нужно поставить в "настройка - визитка" тода смс придет.
81. Iva_Irina_Iva 29.12.20 11:03 Сейчас в теме
(78) Поставили, все равно не приходит.
75. LifeStyle 28.12.20 14:41 Сейчас в теме
Здравствуйте! Скачал вашу обработку для примера. JSON в текстовый файл создаю. Но все время ошибка.

Все время возвращается ошибка json is not valid. Что может быть? Спасибо.
76. Iva_Irina_Iva 29.12.20 09:50 Сейчас в теме
(75) Такая же ошибка при передаче остатков.
{
"token": "111",
"data": [
{
"nmId": 9641619,
"stocks":[
{
"chrtId": 31855256,
"quantity": 1,
"storeId": 111
}
]
}
]
}
ошибка {"error": "json is not valid","errorDetails": ""}, тело запроса копирую из инструкции и подставляю свои значения
token Беру из ЛК меню Товары - Спецификации - Создать токен.
Специалист по API WB написал "Если вы уже работаете по обычной схеме, значит уже умеете загружать товар. Вот тогда можно отдельно загружать остатки для работы по схеме Продажа со склада поставщика и там свои сервисы, адреса сервисов и токены, которые можно получить прямо в ЛК". Товар у нас уже заведен, продается по схеме FBO, поэтому по API его не создаем.
Если удастся решить ошибку "json is not valid" напишите, пожалуйста.
79. GAlexy 29.12.20 10:16 Сейчас в теме
(76)
"json is not valid"
Проверьте json тут https://jsonlint.com/
Iva_Irina_Iva; +1 Ответить
80. Iva_Irina_Iva 29.12.20 10:44 Сейчас в теме
(79) при проверке Valid JSON. Скорее всего токен не тот. Беру из ЛК как написал специалист WB по API. Получить WBToken пока не получается.
82. GAlexy 29.12.20 13:10 Сейчас в теме
(76)
"json is not valid"

У Вас "price": int нету

{
"chrtId": int,
"price": int,
"quantity": int,
"storeId": int
},
83. uAz1k 06.01.21 14:05 Сейчас в теме
Возможно пригодится, получение Cookie для работы с API Content. Файл для httpClient в PHPStorm

### Шаг 1: Отправка SMS кода на телефон и получения токена в ответе для шага 2
POST https://content-suppliers.wildberries.ru/passport/api/v2/auth/login_by_phone
Content-Type: application/json

{
  "phone": "",
  "is_terms_and_conditions_accepted": true
}

### Шаг 2: Отправка верификационного SMS кода на сервер вместе с токеном из предыдущего ответа и получение Cookie для доступа к методам API
POST https://content-suppliers.wildberries.ru/passport/api/v2/auth/login
Content-Type: application/json

{
  "token": "",
  "options":{
    "notify_code": ""
  }
}

### Дальнейшие шаги позволяют отбновлять Cookie без запроса кода на телефон
### Шаг 3: Отправка Cookies из предыдущего ответа для получения токена
POST https://content-suppliers.wildberries.ru/passport/api/v2/auth/grant
Content-Type: application/json
Cookie: WBToken=

### Шаг 4: Добавление токена из предыдущего запроса в список разрешенных
POST https://content-suppliers.wildberries.ru/passport/api/v2/auth/login
Content-Type: application/json
Cookie: WBToken=

{
  "country": "RU",
  "device": "Test",
  "token": ""
}

### Обновление Cookie (шаг 2) без SMS c токеном (шаг 3)
POST https://content-suppliers.wildberries.ru/passport/api/v2/auth/login
Content-Type: application/json

{
  "token": ""
}

###
Показать
Прикрепленные файлы:
_wildberies_contentAPI_auth.http
84. Alex_Japanese_Student 454 11.01.21 12:12 Сейчас в теме
ограничение лимита по 100 штук, даже если я хочу 999 и явно поставил лимит. Блин мы в 2020, у меня мощный канал интернета, у вас в Диких Ягодах наверняка Дико Производительный Сервер на Golang, если я хочу получить сразу 999 карточек, так дайте мне их блин. Но нет, прилетает 100 штук, и приходится запрашивать еще раз.


и у озона тоже кругом лимиты на запросы. 2021 год, да, как же можно больше 100 карточек раздавать (((
86. bestuzhev 679 26.01.21 11:36 Сейчас в теме
Не получается никак отправить остаток товара постоянно возвращается с сервера
<Response [500]> {'success': False, 'errors': 'Internal server error'}
Уже мозг сломал.....
87. sinto 26.01.21 22:10 Сейчас в теме
Привет. Братик, а ты заказ не разрулил? Мне пишет дата плохого формата, я копировал из мурзилки уже. АААААА! нервничаю )
88. sinto 27.01.21 09:45 Сейчас в теме
92. Vo-Va 723 16.02.21 00:04 Сейчас в теме
(88) подскажите, как победили дату?
100. sinto 21.02.21 11:20 Сейчас в теме
(92)
(94)

Сделал с преобразлванием даты таким вот форматом

ДатаЗаказаНачалоСтрокой = Формат(ДатаНач, "ДФ=yyyy-MM-ddT00:00:00Z");
ДатаЗаказаКонецСтрокой = Формат(ДатаНач, "ДФ=yyyy-MM-ddT23:59:59Z");
Dempingator; user1374747; +2 Ответить
94. sdvig 14 17.02.21 21:37 Сейчас в теме
(88)Коллега, призываем, поделись как дату удалось победить?
89. sinto 29.01.21 10:00 Сейчас в теме
Добрый день. И все таки ) Кто-нибудь разбирался с заказами? Вопрос такой. Собрал техническую часть, теперь бы потестить. Как можно оттестировать и при этом не создавать рабочих заказов, иначе же санкции будут, если не отработать рабочий заказ... Тестовый URL в описании АПИ Ордерс вижу, но не знаю как оно работает. То есть на запрос списка заказов - отвечает 204 кодом, то есть заказов нет. Как с этим работать?
102. sinto 21.02.21 11:24 Сейчас в теме
(89)

тут отбой. Сделал заказы.
user1374747; +1 Ответить
104. AnnyGirl 13 26.02.21 09:55 Сейчас в теме
(102) Добрый день подскажите как победили. Как и где создаются тестовые заказы?
106. sinto 27.02.21 12:56 Сейчас в теме
(104) на живых заказах оттестил )
90. user923728 32 07.02.21 22:03 Сейчас в теме
3) API Orders - работа с заказами и сборочными заданиями.
Эту часть я дополню позже.


Когда ждать эту часть?
98. kiv1c 809 18.02.21 10:58 Сейчас в теме
(90) пока я к ней не приступил. и учитывая количество ошибок в АПИ даже и не планирую...
91. supermagnit 15.02.21 10:14 Сейчас в теме
Я блин в шоке... Выходит без программиста никак не получится зайти на платформу и отгружать со своего склада(((
97. kiv1c 809 18.02.21 10:56 Сейчас в теме
(91) есть варианты через ексель делать обмен остатками.
Оставьте свое сообщение