Взялся я тут делать интеграцию с АПИ нового проекта Диких Ягод - Продажи со склада поставщика (ПССП).
Это было нелегко. Никто же не читает инструкцию (уже аж 7 версии!), а зря! Для начала сделал получение списка товаров и обмен остатками.
СПАСИБО за статью!!! сейчас тоже занимаюсь этим вопросом, статья очень помогла , я то думала что достаточно получить токен только в ЛК (типа он один для всего)! занимаюсь загрузкой остатков - тоже token is not valid, но только на тестовом , на рабочем прошел статус ошибки 200 , но в ЛК нигде не видно остатка, а на сайте он появился :) пришлось посылать новый запрос с 0 количеством чтобы он ушел.
(3)с тестовым URL у меня выгрузка не работает , а вот с рабочим заработала - и я выложила некорректный остаток , чтобы это исправить я выслала 0 остаток и все стало как было
В любом случае, регистры-то в УТ10 другие. И в любой компании будут индивидуальные особенности, полагаю. У автора решение не претендует на универсальность. Сейчас вот под 10ю запилить пытаюсь, но разница конфигураций тут наименьшая из сложностей.
Спасибо заранее! А то я уже испытал стресс от чтения инструкций.
Уточню, на всякий случай.
1) АПИ Контент. СМС достаточно будет получить 1 раз, и потом основной токен можно будет всегда использовать в дальнейшем?
2) API Stock&Price. На закладке "Доступ к АПИ" у меня уже написано "Токены уже предоставлены. Для повторного получения токенов необходимо обратиться в техническую поддержку.". Это значит, что токен уже потерян и нужно делать запрос в ТП? В техподдержку нужно звонить или писать куда-то? Куда придет этот токен?
(8) Возможно, я глупые вопросы задаю, потому что сам отвечаю :) но может это кому и поможет. Возможно, моя проблема в том, что я не отправлял заявку на открытие доступа к API Content. Однако же токены с помощью обработки ТС получить удается. Но, возможно, они не рабочие, пока те не обработают мою заявку. В общем, отправил заявку, а там посмотрим.
(7) По вашему второму вопросу. Токен выдается при его первом запросе и отображается прямо в личном кабинете, см картинку. Пи обновлении страницы пропадает. Так что надо обращаться к тому, кто его сгенерировал в первый раз - менеджер, админ, еще кто-то , кто имел доступ к личному кабинету поставщика.
По идее, я должен выгружать только товары, остатки которых изменились. Но получить с сайта остатки на складе поставщика я не вижу возможности.
Получается, что возможно только выгружать всю номенклатуру, либо "запоминать", что выгрузил в прошлый раз. Оба варианта как-то не очень...
"Созданная таким образом карточка не появляется в "Аналитике - Отчет с перечнем номенклатур" и не выгружается в Ексель, однако появляется в разделе "Спецификации New". Но этот новый раздел нерабочий и из него карточка не открывается."
Буквально сегодня столкнулся с такой проблемой.
Там в теле запроса для "params" надо добавить еще "supplierVendorCode". Более подробно можно увидеть в инструкции API, расположенной в разделе "Товары" - "Спцификации new".
Если честно, такое API конечно, по кусочкам везде раскидано...
(19) ну я его обновлял, использую обработку из статьи. мне не помогает.
По плану ТП будет обрабатывать мой вопрос неделю! Кажется, это претендент на звание Самая Дикая ТП в мире!
(22) По описанию все делаете верно, скорее всего токен нерабочий. Попробуйте один раз авторизоваться через смс, потом получить основной токен и его продолжать использовать для WB токена.
У меня сегодня там появились карточки. Видимо, их из старых спецификаций скопировали. Причем написано, что карточки от 21.11. Они открываются. А созданный через АПИ - фиг.
(26) Можете чуть более подробно описать процесс создания карточки. Я не могу понять какие параметры обязательны, какие нет. Обязательно ли указывать в параметр "object" только те значения которые есть у WB, или я могу свое подставить? supplierVendorCode куда нужно добавить?
И да, API действительно очень сырой
(24) если я меняю основной токен на рендомный, кука вообще не приходит.
Уже 100500 раз начинал сначала.
Скажите, от СП требуется включение на доступ по АПИ?
Воспользовалась вашей обработкой, спасибо, это ускорила процесс. У меня была проблема такая же как у (8),
получила токен, куки, но при получении товаров https://content-suppliers.wildberries.ru/card/list ошибка.
Дело было в учетной записи. Я для себя, как для разработчика создавала дополнительную учетку, и прикрепляла номер к нему. И токен был не рабочий, но вот когда я использовала номер основной учетки, со всеми правами, токен сработал и успешно получилось список товаров.
Отправил по одному товару остаток. Вроде как успешно отправился, но на сайте не обновился. Он сразу должен обновиться, или нужно какое-то время выждать?
Если я отправляю пустую цену-цена останется та же, что и была? Ибо цены у нас на сайте ставят, и в 1С нету нужной цены.
Теперь с токеном аутентификации можно запрашивать обновление через cookies того самого ВБТокен. Дописал для этого процедуру ОбновитьВБТокенПоОсновному
Обновление через cookies того самого ВБТокен как часто нужно выполнять и для чего.
И если при получении списка номенклатуры получаем ответ "access denied" дело в неправильной авторизации или SupplierID неправильный. Беру его по кнопке "Получить uiid"
Подскажите, пожалуйста, с 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 попробовать дергать, что бы хоть как-то резервирование остатка проходило.
У всех нормально работает?
У меня сегодня при попытке получить СМС на строке
ssl = Новый ЗащищенноеСоединениеOpenSSL();
HTTPСоединение = Новый HTTPСоединение("content-suppliers.wildberries.ru",,,,,, SSL);
Виснет режим предпряития и всё.
Подскажите кто уже разобрался с получением списка.
1.Чтобы все заработало нужно создать Заявка на API Content (Склад поставщика)? после того как ее выполнят получить токен через смс и по этому токену получать WBToken. далее смс авторизация уже не будет нужна?
2.По методу https://content-suppliers.wildberries.ru/card/list какие параметры обязательны, скажем если я хочу получить весь справочник, а передает только 100 штук, предполагаю что должен быть параметр типа страница с которой надо получать. Кроме каких то фильтров непонятных в их запросе есть еще
"query": { // Пагинаци "limit":10, "offset": 20} это и есть подобие страниц, если да то как это использовать?
с получением списка и прохождения авторизации разобрался, но это только начало, создавать новые карточки через апи этот еще тот квест, с отдачей остатков и получением заказов тоже есть свои заморочки.
Я не могу залить остатки. nmId и chrtId получаю из excel списка номенклатуры (через card/list тоже можно). Через API Stock&Price получаю ответ 200, но остатки и цены не меняются. Могу поменять только через excel "Загрузить файл с остатками".
ЧЯДНТ?
(62) остатки в ЛК не меняются, но фактически они меняются. народ пишет что надо зайти как покупатель на сайт ВБ и в корзине эти остатки будет видно, я пока не дошел до данного этапа.
(63) Все верно сказал. Нужно смотреть через корзину как обычный покупатель. Заметил интересный глюк. Менеджер через ексель установила остаток 1, поменять обратно на 0 не получается через ексель, если по АПИ я ставлю 1, на сайте остаток меняется на 2, если 0, меняется на 1. Такое ощущение, что ексель и АПИ не связанные вещи
1. Подскажите чем обработка за 4 старт мони отличается от той что за 3 ? Интересует реализация авторизации через СМС для Контент АПИ, чтобы получить список товаров, остатки я обновлять научился.
2. При обновлении остатков на что влияет параметр цена? Передавал разные значения, цена так и не изменилась. На витрине остается цена и скидка та которую установили в ЛК
(64)ВБ работает в двух режимах: 1 СКЛАД ВБ, 2 СКЛАД поставщика.
Остатки в корзине суммируются если скажем для Склада ВБ = 2, для склада поставщика 3, корзина покажет 5.
1 у тебя это скорее всего остаток режима Склада ВБ.
//шаг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Ответ.ПолучитьТелоКакСтроку();
Возврат Ответ;
КонецФункции
Слушайте писал обмен с API OZON, так голова не пухла! Мне интересно есть ли герой, который настроил обмен с WB полностью? обновление остатков, цен, карточек, картинок, заказов?
Кто разобрался с прохождением авторизации, подскажите, все верно делаем?! Шаг 1, получаем смс на номер, который указан в визитке у контактного лица. Далее шаг 2, полученный токен и смс в шаге 1 отправляем для получения WBToken, но приходит пустой { "token": "" }, у кого то было подобное?
(74) Если честно, не поняла что Вы мне написали. Внесла твой телефон в визитку (на тот телефон, которые внесен при регистрации смс не приходят). Получила смс и токен первым шагом, получаю вторым шагом WbToken, он должен быть в заголовках, но там его нет. Делаю все в Postman. Возвращаемые заголовки прикрепила, wbToken там не вижу.
(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" напишите, пожалуйста.
84.
Alex_Japanese_Student
44211.01.21 12:12 Сейчас в теме
ограничение лимита по 100 штук, даже если я хочу 999 и явно поставил лимит. Блин мы в 2020, у меня мощный канал интернета, у вас в Диких Ягодах наверняка Дико Производительный Сервер на Golang, если я хочу получить сразу 999 карточек, так дайте мне их блин. Но нет, прилетает 100 штук, и приходится запрашивать еще раз.
и у озона тоже кругом лимиты на запросы. 2021 год, да, как же можно больше 100 карточек раздавать (((
Не получается никак отправить остаток товара постоянно возвращается с сервера
<Response [500]> {'success': False, 'errors': 'Internal server error'}
Уже мозг сломал.....
Добрый день. И все таки ) Кто-нибудь разбирался с заказами? Вопрос такой. Собрал техническую часть, теперь бы потестить. Как можно оттестировать и при этом не создавать рабочих заказов, иначе же санкции будут, если не отработать рабочий заказ... Тестовый URL в описании АПИ Ордерс вижу, но не знаю как оно работает. То есть на запрос списка заказов - отвечает 204 кодом, то есть заказов нет. Как с этим работать?
Запрос:
"/api/v1/orders?date_start=2021-02-01T00:00:00+03:00&date_end=2021-02-15T00:00:00+03:00"
Ответ:
{"error":"Некорректный формат переданной даты."}
Что не так с датой? Уже голову сломал