Интеграция учетной системы 1С с маркетплейсом Wildberries — одна из самых востребованных задач автоматизации в торговле. Разработчики часто сталкиваются с вопросом: где найти актуальную документацию по API, как устроен доступ к методам сервиса и какие особенности платформы 1С необходимо учитывать при проектировании обмена. Рассмотрим подробно официальные источники информации, правила работы с интерфейсом маркетплейса и типовую реализацию механизмов интеграции в среде 1С.
Для изучения методов взаимодействия с площадкой следует использовать официальный портал разработчиков маркетплейса. На этом ресурсе публикуется актуальная документация по всем контурам API:
Разберем по шагам, как устроена система безопасности при обращении к сервисам маркетплейса:
HTTP 401 или HTTP 403.Authorization для каждого обращения к серверу.Проанализируем технические нюансы, которые критически важно закладывать в алгоритмы 1С еще на этапе проектирования:
HTTP 429 Too Many Requests. В коде 1С необходимо предусмотреть паузы и повторную отправку пакетов при возникновении такой ситуации.HTTP 502, HTTP 503 или HTTP 504. Обязательно настраиваем явный таймаут в объекте HTTPСоединение, не допуская зависания сеанса.Посмотрим на практический пример программного кода для отправки запроса к API маркетплейса с использованием стандартных объектов платформы 1С. Для отправки данных задействуются HTTPСоединение, HTTPЗапрос и HTTPОтвет, а сериализация выполняется через ЗаписьJSON и ПрочитатьJSON.
Рассмотрим пример функции для отправки GET-запроса с авторизационным заголовком:
Функция ВыполнитьЗапросКМаркетплейсу(Сервер, ПутьКРесурсу, ТокенДоступа)
// Настраиваем защищенное соединение с явным указанием таймаута
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPСоединение(Сервер, 443, , , , 30, ЗащищенноеСоединение);
// Формируем запрос и передаем токен авторизации
Запрос = Новый HTTPЗапрос(ПутьКРесурсу);
Запрос.Заголовки.Вставить("Authorization", ТокенДоступа);
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Попытка
Ответ = Соединение.Получить(Запрос);
Исключение
ЗаписьЖурналаРегистрации("ИнтеграцияAPI", УровеньЖурналаРегистрации.Ошибка, , ,
"Сетевой сбой при обращении к " + ПутьКРесурсу + ": " + ОписаниеОшибки());
Возврат Неопределено;
КонецПопытки;
КодСостояния = Ответ.КодСостояния;
Если КодСостояния = 200 Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Возврат СтруктураОтвета;
Иначе
ЗаписьЖурналаРегистрации("ИнтеграцияAPI", УровеньЖурналаРегистрации.Предупреждение, , ,
СтрШаблон("Ошибка вызова API. Код: %1, Тело: %2", КодСостояния, Ответ.ПолучитьТелоКакСтроку()));
Возврат Неопределено;
КонецЕсли;
КонецФункции
При организации промышленного обмена с торговой площадкой придерживаемся следующих правил архитектуры: