Загрузка отчета о продажах по реализации через 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

Готовое решение

Загрузка отчета о продажах WildBerries для бухгалтера

Загрузка данных детализированного отчета о продажах WildBerries в 1С документ "Отчет комиссионера" для бухгалтера для следующих конфигураций 1С: БП 3.0; УНФ 3.0; УТ 10.3; УТ 11.4/11.5, КА 2.4/2.5 и ERP 2.4/2.5


wb статистика wildberries api запросы

См. также

SALE! 20%

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

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

58800 52920 руб.

22.03.2021    214509    1454    1791    

666

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

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

49800 руб.

23.01.2023    39653    485    196    

157

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

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

21100 руб.

12.05.2021    95678    660    273    

296

SALE! 20%

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

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

39900 31920 руб.

17.07.2023    11479    53    20    

40

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

Функциональное решение для торговли на всех популярных маркетплейсах. Работает со схемами FBO и FBS. Простое в использовании и установке, не вносит изменения в код программы. Существенно упрощает работу с товарным ассортиментом, обработку заказов с площадок, работу с поставками, а также ведение аналитики по продажам и остаткам.

119999 руб.

19.07.2024    1984    53    0    

3

SALE! 20%

Маркетплейсы Программист Пользователь Платформа 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    55873    119    81    

116
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. smit1c 106 20.03.24 08:44 Сейчас в теме
WB уже несколько месяцев не может починить свой reportDetailByPeriod,
постоянно какие-то ошибки....
2. ix5s 133 20.03.24 10:06 Сейчас в теме
(1)тут не поспоришь, вроде сейчас пока пару недель стабильно)
3. muratov86 21.03.24 12:08 Сейчас в теме
Вам выдаёт отчёты за февраль?
4. ix5s 133 21.03.24 12:24 Сейчас в теме
5. muratov86 21.03.24 14:48 Сейчас в теме
(4) теперь там технические работы до 22.03.2024)
6. ix5s 133 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 133 08.05.24 10:29 Сейчас в теме
Поправил обращение на API, теперь у WB v5 у метода, так же теперь метод отдает пустоту если нет данных, хотя болжен возвращать null и в понедельник в технический перерыв не уходит.

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