2.1 Работа с API-вызовами
Описание терминологии партнёрского API
Термин | Расшифровка |
---|---|
Мерчант | Интернет-магазин, который сотрудничает с Мегамаркетом |
Оффер | Торговое предложение Мерчанта на Мегамаркете о продаже конкретного товара по определенной цене. |
Заказ | Сделка купли-продажи Офферов, оформленная клиентом на Мегамаркете и состоящая из Отправлений от одного или нескольких Мерчантов. |
Отправление | Грузовые места, перемещаемые с торгового объекта Мерчанта на сортировочный центр Мегамаркета с конечной целью доставки клиенту в составе Заказа. В личном кабинете Мерчанта указано как «# заказа СберМегаМаркет». |
Идентификатор заказа Мерчанта | Номер заказа в системе учёта заказов Мерчанта. |
Грузовое место | Физически неделимый груз с нанесённой на него Этикеткой, состоящий из одного или нескольких Лотов и подготовленный к погрузке, транспортировке, хранению, выгрузке. |
Этикетка | Лист с сопроводительной информацией и штрих-кодов наклеенный на Грузовое место. |
Лот | Отдельная единица товара, входящая в состав Грузового места. |
Авторизация
- Для обращения к сервису Мегамаркета используется авторизационный токен. Его можно получить в личном кабинете, в разделе Настройки → Интеграция API → Авторизационный токен
- Для доступа к тестовой и рабочей среде необходимо использовать разные токены
- Для обращения к сервису Продавца в Мегамаркете необходимо предоставить ссылки на методы order/new, order/cancel. При отправке запросов, поддерживается тип базовой авторизации.
- На стороне Мегамаркет существует ограничение на отправку запросов. До 5 запросов в секунду на мерчанта
- Заголовок(header) запросов для работы с партнёрским API
--header
'Content-Type: application/json'
Запросы с User-agent типа 'User-Agent': 'python-requests/2.26.0' будут блокироваться нашей системой, так как считаются автоматическими
Отправка запросов на методы API
Продавца возможна только при помощи https. На вебхостинге, к которому обращается сервис API Мегамаркет должен быть установлен SSL-сертификат. Использование самоподписанных SSL-сертификатов недопустимо. Взаимодействие с API происходит при помощи POST-запросов.
Список и описание методов API
Методы, с помощью которых Мегамаркет выполняет обращение к Мерчанту
Наименование | Описание |
---|---|
Order/New | Создание и передача Отправления Продавцу |
Order/Cancel | Отмена Лотов со стороны Мегамаркет |
Методы, с помощью которых Мерчант выполняет обращение к Мегамаркету
Наименование | Описание |
---|---|
Order/Confirm | Подтверждение, что лоты заказа берутся в обработку мерчантом |
Order/Packing | Подтверждение мерчантом комплектации лотов в грузовые места |
Order/Shipping | Подтверждение мерчантом отгрузки грузовых мест |
Order/Reject | Отказ мерчанта от отгрузки лотов в отправлении (допускается в том числе частичная отмена) |
Sticker/Print | Запрос этикетки по номеру отправления |
URL методов в тестовой среде
Order/Confirm https://api-test.megamarket.tech/api/market/v1/orderService/order/confirm
Order/Packing https://api-test.megamarket.tech/api/market/v1/orderService/order/packing
Order/Shipping https://api-test.megamarket.tech/api/market/v1/orderService/order/shipping
Order/Reject https://api-test.megamarket.tech/api/market/v1/orderService/order/reject
Sticker/Print https://api-test.megamarket.tech/api/market/v1/orderService/sticker/print
Описание процесса обработки Заказов при помощи API
При появлении нового Заказа Мегамаркет отправляет мерчанту запрос order/new, который содержит номер Заказа, номер отправления, информацию по всем Лотам, содержащимся в отправлении, дату отгрузки, а также данные для печати этикетки.
- Продавец проверяет, какие лоты в отправлении он готов отгрузить, а какие не готов. После этого мерчант отправляет два запроса, order/confirm, в котором содержатся все лоты, которые мерчант готов отгрузить, и order/reject, в котором содержатся все лоты, которые мерчант отгрузить не готов. Если мерчант готов отгрузить все лоты, то отправляется только order/confirm, если мерчант не готов отгрузить все лоты, то отправляется только order/reject.
- После того как мерчант отправил order/confirm, он приступает к комплектации отправления. Комплектация подразумевает распределение лотов, входящих в отправление по грузовым местам (запрос order/packing), а также печать и наклеивание этикетки на каждое грузовое место (запрос sticker/print). Мерчант решает самостоятельно, сколько нужно сформировать грузовых мест для каждого отправления, а
также сколько лотов комплектовать в каждое из грузовых мест. ВАЖНО! В текущей реализации процесса отправка запроса на комплектацию отправления возможна только один раз. Если комплектация произведена некорректно (реальное распределение лотов по грузовым местам в отправлении/скомплектованное количество лотов не соответствует таковому в запросе order/packing), то заказ или будет исполнен частично, или вообще не доедет до клиента. В случае некорректного распределения лотов по грузовым местам при комплектации необходимо незамедлительно связаться со специалистами по работе с мерчанта. - После того как мерчант отправил order/packing и подтвердил комплектацию, мерчант передаёт скомплектованное отправление на отгрузку. После передачи отправления курьеру, мерчант отправляет
запрос order/shipping.
Бизнес-процесс обработки Заказов при помощи API
Общий шаблон запросов к API Мегамаркет
{ "data": { "token": "MerchToken" // данные запроса// }, "meta": {} }
Шаблон ожидаемого ответа от мерчанта в случае успешного выполнения запроса
{ "success": 1, "meta": {}, "data": { // результат выполнения операции// } }
Необходимо также передавать 200 ответ по HTTP.
Шаблон ожидаемого ответа от мерчанта в случае неуспешного выполнения запроса
{ "success": 0, "meta": {}, "error": { // свободный формат описания ошибки// } }
Важно передавать ответ с кодом, отличным от 200 по HTTP. В таком случае система будет инициировать повторную отправку запроса с периодичностью в N минут.
Подробное описание методов
Запросы, которые инициирует Мегамаркет обращаясь в систему Мерчанта
Запросы к мерчанту отправляются по https. Чтобы обезопасить API мерчанта от несанкционированных запросов, мерчант может включить аутентификацию по логину и паролю (Basic auth), и добавить параметры доступа в разделе ЛКМ «Настройки» - «Интеграция по API».
Ресурсы для интеграции
Наименование ресурса | Ссылка на ресурс | Пояснение |
---|---|---|
Тестовая Витрина | https://web.goodsteam.tech/ | Используется для оформления заказов на тестовом окружении. (Log - MerchantId Pass - 2gfb4y7NWBSSo1B) |