Как настроить интеграцию 1С с API маркетплейса «Эпицентр»?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

Рассмотрим подробнее задачу подключения конфигурации на базе 1С к маркетплейсу «Эпицентр» через API. Разработчики часто сталкиваются с проблемой, когда при попытке отправить запрос (например, на получение списка категорий) сервер возвращает ошибку {"message":"No route configured"} или статус ответа 404. Проанализируем ситуацию и выясним причину, а также разберем по шагам правильную реализацию HTTP-запроса и особенности работы с данным API.

Исправление ошибки маршрутизации и правильный код HTTP-запроса

В исходном варианте ошибка возникает из-за неверного формирования URL-адреса и параметров самого запроса. Для отправки корректного GET-запроса к защищенному ресурсу необходимо правильно настроить HTTPСоединение с использованием ЗащищенноеСоединениеOpenSSL и передать необходимые заголовки авторизации.

Посмотрим на пример полностью рабочего кода для получения списка категорий:


Сайт = "api.epicentrm.com.ua";
Адрес = "v2/pim/categories?filter%5BhasChild%5D=false";

// Создаем защищенное соединение
Соединение = Новый HTTPСоединение(Сайт,,,,,, Новый ЗащищенноеСоединениеOpenSSL());

// Формируем заголовки
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Bearer ВАШ_ТОКЕН_АВТОРИЗАЦИИ");
Заголовки.Вставить("accept", "application/json");

// Создаем и отправляем запрос
HTTPЗапрос = Новый HTTPЗапрос(Адрес, Заголовки);
HTTPОтвет = Соединение.Получить(HTTPЗапрос);

// Получаем ответ в виде строки
СтрокаJSON = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить(СтрокаJSON);

Обработка полученного JSON ответа

Так как публичное API (Merchant API) Эпицентра работает в формате JSON, нам потребуется десериализовать полученный ответ для дальнейшей работы со структурами в 1С. Разберем по шагам, как это сделать при помощи объекта ЧтениеJSON:


ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);

// Читаем JSON в структуру 1С
СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);

// После этого можно обходить коллекции и массивы в цикле
ЧтениеJSON.Закрыть();

Важные нюансы интеграции с API Эпицентра

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

  1. Получение реального токена авторизации (Bearer token). В примерах из публичных инструкций (wiki-страниц) часто используются тестовые токены. Для реального обмена вам потребуется боевой токен. Его нужно генерировать в кабинете продавца: перейдите в «Настройки», далее «Настройки компании», затем «Дополнительные настройки» и активируйте тумблер «Подключение к API по заказам». Только пользователи с ролью «Администратор компании» могут сгенерировать данный ключ.
  2. Форматы данных (JSON или XML). В экосистеме Эпицентра используются оба формата, но для разных задач. Для управления товарами, ценами, остатками и обработки заказов (Merchant API) используется REST-архитектура и формат JSON. Формат XML применяется преимущественно для электронного документооборота (EDI) — передачи ТТН и работы со складами по схемам cross-docking.
  3. Скрытые данные покупателя в новых заказах. По правилам маркетплейса API не возвращает полные данные клиента (ФИО, адрес) в момент первичного получения заказа. Эти данные появятся только после перевода заказа в статус «Подтверждено продавцом». Поэтому в алгоритмах 1С необходимо закладывать двухэтапную синхронизацию: сначала создание документа-черновика без адреса для резервирования товара, затем отправка подтверждения через API и повторный запрос для получения логистических данных.
  4. Специфика статусов оплаты. Если клиент оплачивает товар на сайте картой, средства временно «замораживаются». Однако в ответе API статус оплаты может оставаться false вплоть до полного завершения сделки. Разработчику необходимо учесть это, чтобы система 1С не блокировала отгрузку таких заказов в ожидании флага успешной оплаты.
  5. Работа с часовыми поясами. Все даты и время в API Эпицентра передаются в стандарте UTC. При загрузке заказов или обновлении статусов в 1С необходимо конвертировать это время, прибавляя локальное смещение. В противном случае документы могут формироваться с неверными датами (например, заказ от 1:00 ночи может записаться предыдущим днем).

Возможности автоматизации

После успешной базовой настройки соединения (которую мы рассмотрели выше), вы сможете автоматизировать целый ряд рутинных процессов. Актуальное публичное API позволяет 1С автоматически передавать актуальные остатки и цены, оперативно менять статусы заказов, а также передавать созданные трек-номера (ТТН) логистических служб прямо в карточку заказа маркетплейса, что избавляет менеджеров от двойной работы.

← На главную