Загрузка отчета о продажах по реализации через api Wildberries (изм. от 29.01.24 включительно)

08.05.24

Интеграция - Маркетплейсы

Демонстрация кода для загрузки "Отчета о продажах по реализации WB" с описанием полей ответа.

Добрый день, недавно разбирался и ждал порцию новых транзакций от WB.

Как оказалось, на стороне сервиса была произведена смена версии api, старая v1 остается работать, но только для получения данных до 29 января.

Не буду долго лить воду, начнем по коду.

Интеграцию делаю через стандартные функции 1С без БСП, только код платформы.

1. Первое, что необходимо для получения статистики - получить токен на доступ к этой самой статистике.

Для этого необходимо войти в личный кабинет ВБ Партнеры под Владельцем кабинета, Профиль -

Настройки - Доступ к API, добавить новый ключ и указать ему право на доступ к статистике.

2. Соответственно сам код

Ограничения

Максимальный период запроса данных не более 30 дней

Каждый понедельник с 00.00 до 16.00 данный метод на профилактике =)

Входные данные:

У нас есть переменная КлючАПИ - здесь будет храниться наш ключ к апи

ДатаНачала - дата начала получения данных

ДатаОкончания - дата окончания получения данных

 

Сам код обхода периодов с учетом ограничений выглядеть в моем случае будет так:
 

&НаСервере
Процедура ЗагрузитьНаСервере()
	
	СекундВОдномДне = 86400;
	ОграничениеВДнях = 30;
	врДатаНачала = ДатаНачала;
	ДатаПереходаНаНовуюВерсиюАПИ = Дата("20240129");
	ИспользованиеНовойВерсииАПИ = Истина;
	Пока врДатаНачала <= ДатаОкончания Цикл
		
		ДатаНачалаТранзакций = НачалоДня(врДатаНачала);
		ДатаОкончанияТранзакций = ДатаНачалаТранзакций + ОграничениеВДнях * СекундВОдномДне;
		Если ДатаОкончанияТранзакций > ДатаОкончания Тогда
			
			ДатаОкончанияТранзакций = ДатаОкончания;
		КонецЕсли;
		
		Если ДатаНачалаТранзакций <= ДатаПереходаНаНовуюВерсиюАПИ Тогда
			
			ИспользованиеНовойВерсииАПИ = Ложь;
			Если ДатаОкончанияТранзакций > ДатаПереходаНаНовуюВерсиюАПИ Тогда
				
				ДатаОкончанияТранзакций = ДатаПереходаНаНовуюВерсиюАПИ;
			КонецЕсли;
		КонецЕсли;
		
		ДатаОкончанияТранзакций = КонецДня(ДатаОкончанияТранзакций);
		СписокТранзакций = МаркетПолучитьСтатистикуЗаПериод(ДатаНачалаТранзакций, ДатаОкончанияТранзакций, ИспользованиеНовойВерсииАПИ);
		// обрабатываем или перемещаем в единый массив транзакции
                врДатаНачала = ДатаОкончанияТранзакций + 1;// добавляем 1 секунду для перехода в следующий день
		
	КонецЦикла;
	
КонецПроцедуры

Для загрузки данных через апи "МаркетПолучитьСтатистикуЗаПериод" код привожу ниже.
 

// GET https://statistics-api.wildberries.ru/api/v5/supplier/reportDetailByPeriod
Функция МаркетПолучитьСтатистикуЗаПериод(Знач ПериодНачало, Знач ПериодОкончание, ИспользованиеНовойВерсииАПИ = Истина) Экспорт
	
	ОтветМассивТранзакций = Новый Массив();

	// создаем http соединение с таймаутом в 60 секунд
	Хост = "statistics-api.wildberries.ru";
	Таймаут = 60;
	ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;
	СоединениеHttp = Новый HTTPСоединение(Хост, , , , , Таймаут, ЗащищенноеСоединение);	
	
	КодОтветаУспех = 200;
	
	Заголовки = Новый Соответствие();
	Заголовки.Вставить("Authorization", КлючАПИ);
	Заголовки.Вставить("Content-Type", "application/json");
	
	rrdid = 0; // Уникальный идентификатор строки отчета из предыдущего запроса для продолжения получения данных
	limit = 100000; // максимально не может быть более 100000
	Если ИспользованиеНовойВерсииАПИ = Истина Тогда
		АдресРесурсаСтатический = "api/v5/supplier/reportDetailByPeriod";
	Иначе
		АдресРесурсаСтатический = "api/v1/supplier/reportDetailByPeriod";
	КонецЕсли;
	Пока Истина Цикл
		
		АдресРесурса = АдресРесурсаСтатический 
		+ "?dateFrom=" + Формат(ПериодНачало, "ДФ=гггг-ММ-ддTЧЧ:мм:сс") 
		+ "&dateTo=" + Формат(ПериодОкончание, "ДФ=гггг-ММ-ддTЧЧ:мм:сс") 
		+ "&rrdid=" + Формат(rrdid, "ЧН=0; ЧГ=") + "&limit=" + Формат(limit, "ЧГ=");
		
		ЗапросHttp = Новый HTTPЗапрос(АдресРесурса, Заголовки);
		Попытка
			
			ОтветHttp = СоединениеHttp.Получить(ЗапросHttp);
		Исключение
			
			ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
			ВызватьИсключение ТекстОшибки;
		КонецПопытки;
		
		Если Не ОтветHttp.КодСостояния = КодОтветаУспех Тогда
			
			ТекстОшибки = ОтветHttp.ПолучитьТелоКакСтроку();
			ВызватьИсключение ТекстОшибки;
		КонецЕсли;
		
		ЧтениеJSON = Новый ЧтениеJSON;
		ЧтениеJSON.УстановитьСтроку(ОтветHttp.ПолучитьТелоКакСтроку());
		МассивТранзакций = ПрочитатьJSON(ЧтениеJSON, Ложь);
		ЧтениеJSON.Закрыть();
		
		Если ЗначениеЗаполнено(МассивТранзакций) Тогда
			
			Для Каждого Транзакция Из МассивТранзакций Цикл
				
				ОтветМассивТранзакций.Добавить(Транзакция);
				rrdid = Транзакция.rrd_id;
			КонецЦикла;
		Иначе
			
			Прервать;
		КонецЕсли;
	КонецЦикла;
		
	Возврат ОтветМассивТранзакций;
	
КонецФункции

 

Теперь про сами транзакции, какие поля обрабатываю, какие виды транзакций.

В данный момент мои загрузчики сходятся полностью с детализированной сводкой по отчету внутри личного кабинета WB. (P.S. но так было не всегда, ох уж это разнообразие типов транзакций)

Внутри ответа в каждой строке для идентификации типа транзакции использую поле
"supplier_oper_name"

Единственное, все перевожу в верхний регистр, так как в старой версии были названия с большой буквы, в новой все с маленькой

НаименованиеТранзакции = ВРег(Транзакция.supplier_oper_name);

// список транзакций, которые встречал на данный момент

"ПРОДАЖА" - сама продажа

"ВОЗВРАТ" - начисление за возврат

"ЛОГИСТИКА" - оплата доставки до клиента и обратно при возврате

"ВОЗМЕЩЕНИЕ ИЗДЕРЖЕК ПО ПЕРЕВОЗКЕ" - внутренняя транзакция WB, не влияющая в данный момент на суммы выплат (на всякий случай проверяю в данный момент суммы внутри, вдруг что изменится)

"ЧАСТИЧНАЯ КОМПЕНСАЦИЯ БРАКА" - начисление за брак/потерю товара

"КОМПЕНСАЦИЯ ПОДМЕНЕННОГО ТОВАРА" - начисление за брак/потерю товара

"УДЕРЖАНИЕ" - разновидность штрафов

"ШТРАФ" - разновидность штрафов

"ШТРАФЫ" - разновидность штрафов

"ХРАНЕНИЕ" - хранение товара

"КОРРЕКЦИЯ ПРОДАЖ" - корректировка для продажи

"КОРРЕКТНЫЙ ВОЗВРАТ" - корректировка для возврата

"АВАНСОВАЯ ОПЛАТА ЗА ТОВАР БЕЗ ДВИЖЕНИЯ" - начисления за товар который лежит на складах и не продается

Поля с суммами
Транзакция.ppvz_for_pay - сумма продажи, в рублях

Транзакция.delivery_rub - сумма которую вб забирает за доставку (приходит как положительная)

Транзакция.penalty - сумма штрафов (приходит как положительная)

Транзакция.additional_payment - доплаты (приходит как положительная)

Транзакция.storage_fee - стоимость хранения (приходит как положительная, в некоторых транзакциях может отсутствовать поле)

Транзакция.deduction - прочие удержания/выплаты (приходит как положительная, в некоторых транзакциях может отсутствовать поле)

Поля которые использую при загрузке

Транзакция.shk_id - штрихкод отправления числом

Транзакция.rr_dt - дата начисления

Транзакция.realizationreport_id - уникальный номер отчета

Транзакция.rrd_id - уникальный номер транзакции внутри отчета

Транзакция.supplier_oper_name - тип транзакции (продажа/возврат)

Транзакция.barcode - код номенклатуры

Не рассчитываю на уникальность или супер знания, но верю, что данная статья поможет кому-то сократить время разбора ответов и получения данных по апи от сервиса WB.

Спасибо всем за внимание.

Дополнение от 08.05.2024
Все остается прежним, кроме того что теперь у метода v5
// GET https://statistics-api.wildberries.ru/api/v5/supplier/reportDetailByPeriod

wb статистика 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    188218    1049    1622    

575

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

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

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

49800 руб.

23.01.2023    32181    304    189    

133

Интеграция 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. Два варианта документооборота: Заказ покупателя - Реализация и Внутренний заказ - Перемещение - Реализация. Минимальная платформа 8.3.10

49900 руб.

12.05.2021    88108    554    272    

264

Интеграция с маркетплейсами МегаМаркет, Wildberries, OZON, ЯндексМаркет, VK, Avito, Леруа Мерлен, Aliexpress, Dostavista

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

Полноценный обмен со всеми маркетплейсами: МегаМаркет, Wildberries, Яндекс.Маркет, OZON, VK, ALI, Авито. Так же подключили сервис Dostavista, автоматическая отправка заказов на доставку. Данный модуль позволяет полностью интегрировать 1С:УТ11.4/11.5, 1С:КА 2.4/2.5 и 1С:ERP 2.4/2.5 по API с Wldberries, Яндекс.Маркет, OZON, ALI, VK и МегаМаркет. 1С:Розница 2.3/УНФ 1.6 и выше с МегаМаркет. Схемы работы: ВИТРИНА + ДОСТАВКА, ЗАКАЖИ И ЗАБЕРИ + ВИТРИНА, ДОСТАВКА СИЛАМИ ПРОДАВЦА, ЭКСПРЕСС-ДОСТАВКА. Модуль зарегистрирован в Реестре программного обеспечения, а также являемся технологическими партнерами МегаМаркет, что говорит о гарантиях использования решения.

60000 руб.

09.10.2020    53348    132    81    

113

Модуль интеграции 1С и Wildberries+Яндекс Маркет+СберМегамаркет по схеме FBO+FBS для УТ 11, КА, ERP, УНФ

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

Расширение позволяет работать из 1С с площадкой Wildberries, Яндекс Маркет (без публикации базы), СберМегамаркет по Схеме FBS и FBO В FBO реализован механизм сборки коробов по штрих кодам в Wildberries. Отличительная особенность легкая настройка и информативный управленческий учет! Всего через 15 минут вы сможете полностью автоматизировать свои продажи на WB, ЯМ, Мегамаркет и узнать какую итоговую выручку вы получаете за вычетом всех комиссий ВБ, ЯМ, Мегамаркет. Исключите штрафы за продажу товара отсутствующего на складе и не своевременную передачу кодов маркировок, легкий и интуитивно понятный интерфейс позволит перенести всю работу с площадкой в 1С. Есть Демо.

30000 руб.

17.07.2023    8596    38    19    

31

SALE! 20%

SynchroSber - полноценный модуль API интеграции с маркетплейсом Мегамаркет (СберМегаМаркет) для 1С УТ 11.X, КА 2.X, ERP 2.X, УНФ 1.6, 3.0 (возможность работы как с публикацией, так и без публикации базы)

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

Расширение SynchroSber полноценный информационный обмен (остатки, цены, заказы) между маркетплейсом Мегамаркет (СберМегаМаркет) (megamarket.ru) и 1С:Управление торговлей 11.4, 11.5, ERP Управление предприятием 2.4, 2.5, Комплексная автоматизация 2.4, 2.5, 1С:Управление нашей фирмой 1.6, 3.0 через API интерфейс. Модуль API интеграции с маркетплейсом Мегамаркет интегрируется в 1С без каких-либо изменений вашей конфигурации. Поддержка 1C облачных сервисов Scloud.ru и 1С:Готовое рабочее место.

19920 15936 руб.

24.01.2022    36764    96    76    

93
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. smit1c 106 20.03.24 08:44 Сейчас в теме
WB уже несколько месяцев не может починить свой reportDetailByPeriod,
постоянно какие-то ошибки....
2. ix5s 129 20.03.24 10:06 Сейчас в теме
(1)тут не поспоришь, вроде сейчас пока пару недель стабильно)
3. muratov86 21.03.24 12:08 Сейчас в теме
Вам выдаёт отчёты за февраль?
4. ix5s 129 21.03.24 12:24 Сейчас в теме
5. muratov86 21.03.24 14:48 Сейчас в теме
(4) теперь там технические работы до 22.03.2024)
6. ix5s 129 21.03.24 15:39 Сейчас в теме
(5)
22.03.2024

Попробовал тоже, "message": "Технические работы до 22 марта, 9:00"
Что то не идет у них с v3) подождем, поправят
7. GODCRM 10 04.04.24 09:25 Сейчас в теме
БлагоДарю, вовремя, от Души 🙏
8. ovt256 10.04.24 10:29 Сейчас в теме
Детализированный отчет о продажах, выгруженный в Эксель, имеет 370 строк (транзакций), а массив, полученный по АПИ за тот же период - всего 58.
Кто-нибудь сталкивался с подобным расхождением в количествах строк?
9. user1311046 11.04.24 13:55 Сейчас в теме
(8) Да, столкнулись. По api 136 000 строк, по отчету ВБ 170 000 должно быть.
И они молчат, говорят нам, что мы криво выгружаем... по их инструкции.
Обновленная БП 3.0.150.39 не может загрузить отчеты с февраля.
10. ovt256 12.04.24 12:47 Сейчас в теме
(9) Это странно, учитывая что остальные отчеты у меня выгружаются полностью, а грузится не полностью именно февральский отчет. Тут явно дело не в наших кривых руках...
11. user1311046 12.04.24 13:23 Сейчас в теме
(10) Уже устали бороться с их службой поддержки.
Они ссылаются, что мы не изучили api.
Просим выгрузить их самих этот недостающий кусок и доказать, что у них это работает. А они молчат в ответ.
Период который выгружается некорректно 02.26-03.03

Зашел менеджер, сказал что и проблемы с отчетом за апрель возникли.
12. ix5s 129 08.05.24 10:29 Сейчас в теме
Поправил обращение на API, теперь у WB v5 у метода, так же теперь метод отдает пустоту если нет данных, хотя болжен возвращать null и в понедельник в технический перерыв не уходит.

GET https://statistics-api.wildberries.ru/api/v5/supplier/reportDetailByPeriod
Оставьте свое сообщение