Полный справочник доступных методов API Shiptor.
API постепенно меняется, но с сохранением обратной совместимости, поэтому переписывать код, чтобы восстановить работоспособность со стороной Shiptor после изменения API, не придется.
Под габаритами товара в данном документе подразумеваются габариты коробки с товаром в разобранном виде.
От склада Shiptor (стандартная) — доставка от склада Shiptor.
Сквозная — прямой тип доставки, минуя склад Shiptor.
Экспорт — доставка от сортировочного склада Shiptor в Москве.
Особенности политики страхования
Заказы с наложенным платежом страхуются всегда, т.е. их оценочная стоимость должна быть больше или равна сумме наложенного платежа. Предоплаченные заказы могут быть не застрахованы, но их минимальная оценочная стоимость должна быть не меньше 10.
Визуализация интерфейсов админпанели интернет-магазина, которые связаны с модулем/интеграцией с Shiptor, а также клиентских интерфейсов (того, что видят покупатели магазина). Скачать файл с прототипами и комментариями к ним.
По сути, методы доставки — тарифы, доступные для конкретного клиента в конкретный момент. Они могут быть изменены, поэтому постоянно использовать один раз сохраненную таблицу тарифов (методов) нельзя.
О том, как с ними работать, читайте в пункте «Получение доступных тарифов (методов) доставки для клиента».
Методы API, описанные в документации, делятся на публичные (Public) и закрытые (Shipping и Private).
Для получения данных с открытой части сервиса Shiptor используются публичные методы API. К ним можно обращаться напрямую с front-end сайта (запросы из JS, AJAX и т.п.). Основное предназначение этих функций — справочный расчет стоимости доставки в интерфейсе сайта клиента по общим тарифам, представленным на сайте Shiptor, в т.ч. с учетом актуальных маркетинговых акций. Для них не требуется API-ключа и для запроса используется адрес https://api.shiptor.ru/public/v1.
Для обмена данными с Личным Кабинетом пользователя в Shiptor используются закрытые методы API, доступные только при отправлении запроса со стороны сервера клиента (server-side). Эти методы позволяют не только получать информацию по индивидуально настроенным методам и тарифам клиента, но и формировать запросы на действия в ЛК пользователя. В качестве адреса таких запросов к API используйте https://api.shiptor.ru/shipping/v1 и секретный API-ключ клиента («API токен для интеграции https://api.shiptor.ru/shipping/v1» в личном кабинете пользователя в Shiptor).
Если нужно получить данные из ЛК Shiptor с front-end, можно использовать публичные методы АPI, но также с использованием соответствующего API-ключа («API токен для https://api.shiptor.ru/public/v1» в личном кабинете пользователя в Shiptor).
Ниже идет описание, полностью посвященное работе модуля или интеграции на стороне сервера (server-side) через закрытые методы API. Помимо этого, оно поможет лучше понять принцип действия открытых методов API при реализации или доработке виджетов или другого функционала на front-end клиента.
Вариант 1: Получение населенного пункта в отдельном поле по части названия: suggestSettlement
Пользователь сайта начинает вводить название своего населенного пункта (далее НП), и система показывает ему предложения названий, указывая области и регионы, к которым относятся выводимые НП.
Свойство country_code в запросе к API позволяет получать подсказки НП по одной из трех стран: Россия, Беларусь и Казахстан. Если она не указана, в запросе вернутся подсказки по трем странам с приоритетом выдачи на Россию. Ограничение в выдаче — 100 подсказок.
Для последующих расчетов доставки и передачи совершенных заказов используется КЛАДР-код населенного пункта, возвращаемый этим методом. Он чаще используется, когда на стороне CMS уже есть определенный набор населенных пунктов со своими внутренними кодами. Чтобы получить правильный КЛАДР-код, необходимо установить взаимосвязи между выбранным покупателем населённым пунктом и его аналогом в API Shiptor.
Если используется система кэширования или любой другой способ хранения КЛАДР-кодов на стороне CMS, необходимо предусмотреть возможность периодического сброса сохраненных КЛАДР-кодов, поскольку они регулярно обновляются на стороне API Shiptor. Допускается использование внешнего сервиса (например, самого КЛАДР) для получения кодов от него, минуя этот метод. При этом важно не забывать о том, что с некоторыми системами у API Shiptor есть расхождения в части соответствия кодов для ряда населённых пунктов.
Количество символов передаваемого в Shiptor КЛАДР-кода должно быть равно 11. Если КЛАДР-код, хранимый на сайте, состоит более чем из 11 символов, то при передаче значения в Shiptor необходимо обрезать лишние символы, начиная с конца.
КЛАДР-код представляет из себя число с некоторым количеством значащих цифр иногда с ведущим нулем, поэтому необходимо исключать его преобразования к целому типу и использовать для хранения и манипуляций тип строковое.
Вариант 2. Ограничение выбора НП по областям, выбор НП из списка: getSettlements
Другой вариант выбора, когда получается справочник для страны, из которого можно последовательно выбрать регион, область и нужный НП. Этот способ подойдет для CMS без встроенных населенных пунктов или же для новых проектов, на которых можно полностью заменить встроенные населенные пункты на получаемые от API Shiptor. В API хранятся все типы местоположений, начиная от страны и заканчивая поселками. Общее количество единиц исчисляется десятками тысяч, поэтому для последовательной выборки используется постраничная навигация. Возможна фильтрация выборки по типу и КЛАДР-коду прямого родителя.
Получение данных:
Для расчета доставки по России, Казахстану и Беларуси используется метод calculateShipping. Оперируя параметром stock, Вы запрашиваете методы доставки от склада Shiptor или сквозные.
Для расчета доставки на экспорт используется метод calculateShippingInternational.
Внимание: на данный момент отправления с наложенным платежом доступны только по России! При расчете доставки в другие страны не указывайте наложенный платеж, иначе не будет доступных методов доставки.
Доставка рассчитывается в соответствии со значениями следующих параметров в запросе к API:
Подробнее о взаимодействии наложенного платежа и оценочной стоимости, а также их допустимых значениях см. «Наложенный платеж и объявленная ценность (страховка)».
Если в интернет-магазине не указаны вес и габариты товара, то следует предусмотреть возможность использования параметров по умолчанию для товара из админпанели модуля (например, 3 кг, 10×20×30 см)
Есть два примера упаковки товаров в посылке:
Товары в заказе A, B, C, D... с параметрами ДхШхВ и Весом.
Перемножаем ДхШхВ каждого товара, складываем и получаем суммарный объем sumV.
Извлекаем кубический корень из sumV = sumV^1/3.
Сравниваем sumV^1/3 с параметрами ДхШхВ каждого товара в заказе.
Если один из параметров у любого товара в заказе больше sumV^1/3, то:
вариант 1 посылки
ВЕС = Вес A + Вес B + Вес C + Вес D ...
Д=максимальный параметр ДхШхВ из массива товаров в заказе
Ш=(sumV/max параметр)^1/2
В=(sumV/max параметр)^½
Если кантовать посылку нельзя, указывайте максимальный параметр в найденном измерении.
Если один из параметров у любого товара в заказе меньше sumV^1/3, то:
вариант 2 посылки
ВЕС = Вес A + Вес B + Вес C + Вес D ...
Д=sumV^1/3
Ш=sumV^1/3
В=sumV^1/3
К итоговым габаритам и весу отправления можно при необходимости применять коэффициенты на упаковочный материал.
Стоит учитывать, что вышеуказанные формулы не дадут точных характеристик посылки, а только их приблизительные значения. Соответственно, можно самостоятельно модифицировать алгоритм под особенности своих бизнес-процессов, например:
Обработка данных
В ответе на запрос к API в поле methods возвращаются доступные методы доставки и их стоимость:
Еще возвращается время доставки, декларируемое с момента фактического получения посылки в обработку.
Выбранную пользователем доставку (method.id), а также, если это самовывоз, то обязательно выбранный ПВЗ (его id), надо сохранить для дальнейшей передачи в Shiptor вместе с составом заказа.
Чтобы информация о выбранном методе доставки и ПВЗ корректно отображалась в админ-панели сайта, нужно сохранить строковые значения этих переменных. Они должны обновляться после редактирования заказа и выбора нового метода доставки или другого ПВЗ.
Получение данных
Доступные точки самовывоза рассчитываются на основании следующих параметров:
Чтобы получить ПВЗ, доступные в указанном населенном пункте, запросите метод getDeliveryPoints. Полученные точки отобразите на карте, чтобы пользователь мог выбрать необходимый вариант. Лучше всего карту ПВЗ демонстрировать сразу при выборе пункта доставки со свойством «category»: «delivery-point». При запросе укажите тип оплаты, выбранной пользователем, габариты и вес заказа, чтобы получить список ПВЗ, которые соответствуют заявленным требованиям.
Если получить на данном этапе информацию по выбранному типу оплаты невозможно, то при обработке ответа следует выводить информацию по принимаемым платежам в списке (сбоку от карты) и во всплывающем окне (при наведении или щелчке по маркеру ПВЗ на карте).
Обработка данных
Карта обычно реализуется при помощи Яндекс.Карт с типичными маркерами точек. Основные поля, которые необходимо отображать для ПВЗ:
На карте желательны фильтры (чекбоксы), меняющие список отображаемых ПВЗ:
Если доставка подразумевает самовывоз, нельзя разрешать пользователю переходить к следующим этапам оформления заказа без выбора ПВЗ!
Необходимо предупреждать возникновение конфликтных ситуаций, когда платежная система не поддерживается в ПВЗ. Для этого воспользуйтесь следующими способами для схемы:
Наложенный платеж может быть принят в двух вариантах:
При формировании запросов и обработке данных стоит учитывать, что:
Получение данных
Обработка данных
Данный функционал желательно оформлять как чекбоксы в админ-панели модуля/интеграции. Так у пользователя будет возможность настраивать их по своему усмотрению.
На публичной части при выводе формы для выбора временного интервала следует предусмотреть ее скрытие в случае доставки на выходных или в праздничный день. После выбора клиентом временного диапазона надо будет сохранить его ID или строковое значение для последующей передачи данных вместе с заказом.
В ответе метода calculateShipping возвращается не только стоимость каждого способа доставки, но и ожидаемые сроки в рабочих днях.
Эти сроки необходимо выводить покупателю либо в варианте «рабочих дней», либо с преобразованием в календарные дни с учетом праздников и выходных. В админ-панели необходимо предусмотреть настройки по отображению и скрытию сроков доставки, а также возможность их увеличения.
Запрет на продолжение оформления заказа предусматривается для тех случаев, когда выбрана доставка почтой или курьером, но адрес получателя указан только частично. Пустые поля подсвечиваются, и выводится сообщение о необходимости их заполнения.
В карточке товара (страница товара) необходимо реализовать расчет стоимости доставки аналогичный странице оформления заказа, т.е. выводить список возможных вариантов доставки, стоимость и ожидаемый срок. При желании можно добавить карту точек самовывоза.
Для старта виджета используются данные по НП получателя и отправителя, если речь идёт о сквозной доставке. Они берутся из настроек административной панели. Опционально предусмотреть возможности:
Все настройки по расчету и отображению результата берутся из аналогичных настроек оформления заказа. Включая настройки приоритетных методов/тарифов доставки для указанного посетителем региона/города, сортировки и пр. Виджет должен автоматически производить перерасчет доставки в случае увеличения количества товара.
Если виджет реализуется в виде всплывающего окна или большого фрейма, необходимо предусмотреть возможность его открытия (старта) по кнопке и последующего закрытия. Это позволит избежать перекрытия основной информации по товару.
Перед настройкой модуля необходимо вывести поле для ввода API-ключа Shiptor и поясняющее сообщение к нему. После ввода ключа подгрузятся доступные методы доставки и клиент сможет создавать нужные ему профили со своими данными. На странице с общими настройками нужно вывести поля и чекбоксы, которые отвечают за настройку следующего функционала:
Отдельно нужны следующие настройки:
После получения/установки/активации модуля/интеграции клиент там же в админ-панели должен создать профили доставки (и в дальнейшем иметь возможность их редактировать), которые будут формироваться из доступных в данный момент методов доставки, предоставляемых API Shiptor.
Каждый созданный пользователем профиль позволяет клиенту многократно использовать одни и те же методы доставки с разными ограничениями, параметрами и настройками (например, DPD Курьер с разбивкой по регионам и с отдельными настройками для каждого из них).
Профиль должен не только включать один или несколько доступных методов доставки, но и содержать ряд дополнительных настроек, таких как:
При помощи профилей реализуются даже такие схемы, как сеть региональных складов клиента (интернет-магазина) по РФ, каждый из которых обслуживает свой регион и использует склад Shiptor в Москве (фулфилмент) со своими вариантами доставок внутри Москвы. Именно профили доставки определяют, какие типы доставок включены и применимы в каждом конкретном случае для покупателя интернет-магазина и указанного им населенного пункта.
У каждого зарегистрированного клиента Shiptor есть свой Личный кабинет с включенными в нем методами (тарифами) доставки. Их набор и тарифная сетка может быть индивидуально настроена администратором Shiptor.
Для получения всех доступных методов доставки конкретного клиента в текущий момент времени необходимо использовать запрос getShippingMethods.
Описание характеристик методов доставки, возвращаемых API Shiptor:
Уникальный идентификатор метода
Поскольку тарифы доставок могут быть изменены в любой момент (например, клиент будет переведен на персональные тарифы), нельзя привязываться к перечню ранее полученных ID методов доставки для клиента. При изменении тарифов они станут частично или полностью недоступными. Для определения метода доставки, к которому привязываются выбранные клиентом настройки профиля, надо использовать поле группы метода (семейства тарифов): group в ответе на запросы к getShippingMethods и calculateShipping.
Пример:
Клиент в модуле создал профиль доставки с DPD Курьер, сделал различные настройки.
Через некоторое время тарифы поменялись.
Чтобы провести миграцию настроек на новый тариф, нам надо определить какая служба доставки теперь соответствует DPD Курьер.
Для этого мы из новых доступным методов доставки выбираем метод с той же группой, что была ранее у DPD Курьер. И продолжаем работать с ней с теми же настройками, что и раньше.
Способы и типы доставок свойства category
Ориентируясь на значение в свойстве category, возвращаемом при запросах getShippingMethods и calculateShipping, можно определить тип доставки, способ получения отправления и способ отгрузки (для сквозных доставок).
Сквозные методы (регион-регион)
Пункт самовывоза — Пункт самовывоза: «delivery-point-to-delivery-point»
Дверь — Пункт самовывоза: «door-to-delivery-point»
Дверь — Дверь: «door-to-door»
Пункт самовывоза — Дверь: «delivery-point-to-door»
От склада Shiptor в Москве, в том числе и экспорт
В пункты самовывоза, постаматы: «delivery-point»
До двери: «to-door»
В отделение почты РФ: «post-office»
Получая справочник стран, регионов, районов и населенных пунктов, можно предлагать пользователю установить для них нужные ему ограничения. Метод для запроса справочника: getSettlements.
Один из возможных вариантов реализации ограничения
В момент отображения блока расчета и выбора доставки в оформлении заказа сравнивать указанные покупателем Населенный Пункт по базовой части КЛАДР и смотреть, в какой регион, район или город он входит. Таким образом можно выбрать Москву, Московскую область и остальную Россию как имеющие совершенно разные настройки доставки.
Как проверять принадлежность населенного пункта к области
КЛАДР Москвы начинается с 77, области — с 50, всё остальное — РФ.
Более подробную информацию можно найти на сайте kladr-rf.ru или в базе ФИАС.
Приоритетность профилей доставки позволяет установить сортировку выводимых видов доставки при оформлении заказа и использовать «доставку по умолчанию», то есть самую приоритетную в данном конкретном случае.
Профиль доставки по умолчанию:
В большинстве платформ предусмотрена возможность автоматического выбора первого по сортировке профиля доставки, отображаемого при оформлении заказа.
Если платформа такой возможности не предоставляет, то в настройках каждого профиля в админ-панели стоит предусмотреть чекбокс «доставка по умолчанию». Если выводятся несколько профилей с этой опцией, то выбирается первый по сортировке.
Пояснения по определению сквозных методов доставки читайте в п. «2.2 Получение доступных тарифов (методов) доставки для клиента».
Если выбран сквозной метод доставки, то в профиле автоматически должны появиться следующие настройки:
Для методов доставки «От склада» или «Экспорт» эти настройки не нужны.
Shiptor предлагает два способа взятия наложенного платежа :
Их доступность зависит от конкретного метода доставки.
Чтобы модуль/интеграция понимал, какие методы оплаты могут быть наложенным платежом и в каком случае он будет по карте, надо в админ-панели модуля/интеграции выводить список доступных в платформе способов оплаты с возможностью управления:
Если в системе нет доступных способов оплаты для определения их наложенным платежом, то такие способы оплаты необходимо создать.
После этого модуль/интеграция сможет корректно рассчитывать стоимость и возможность доставки для выбранного метода оплаты при оформлении или редактировании заказа.
Примечание о доступности наложенного платежа:
Расчет доставки за рубеж, исключая Беларусь и Казахстан, как и добавление таких посылок в Shiptor отличаются рядом особенностями. К ним относятся:
Добавление посылки на экспорт
Редактирование посылки на экспорт
Для редактирования экспортного отправления в Shiptor используйте метод editPackage__Export.
Интерфейс редактора в админ-панели должен соответствовать по функциональности странице оформления заказа. Минимальные требования к редактору по опциям:
Дополнительно можно расширить редактор следующими опциями:
Редактор должен позволять изменять заказ до передачи в Shiptor и после.
Клиенту необходимо предоставить возможность выбора места сохранения изменений: магазин, Shiptor или оба варианта.
Обратите внимание, что редактирование заказа после передачи и сохранения в Shiptor возможно только в следующих случаях:
Исходя из этого необходимо на стороне клиента отслеживать доступность редактирования переданных заказов и, если это невозможно, явно сообщать об этом, например информером:
«Редактирование заказа невозможно, так как статус заказа в Shiptor xxxxx. Пожалуйста, свяжитесь со своим менеджером в Shiptor для дополнительной консультации по данному вопросу».
Соответственно, желательно по заказу явно отображать информацию о:
Методы изменения заказов в Shiptor
Практически полностью повторяют структуру AddPackage, но добавляется ID изменяемого заказа в Shiptor.
В общем списке заказов, который отображает заказы, оформленные на методы Shiptor, должен присутствовать минимальный набор следующих полей:
Невыключаемые поля отображаются в таблице всегда, остальные можно скрыть через фильтр колонок. Важно для списка заказов предусмотреть возможность подбора по данным, введенным пользователем. Минимальная воронка на подбор должна опираться на невыключаемые поля.
Также можно расширить выводимую информацию, например следующими полями:
Подробнее о получении статусов в соответствующем пункте раздела Back-end.
Также в интерфейс управления списком должны быть добавлены следующие кнопки пакетных действий:
Над общим списком заказов должна выводиться информация о статусе передачи заказов в Shiptor, обновлении информации по ним, а также ссылка на лог обмена данными или текст, поясняющий, где его искать в навигации сайта/модуля/интеграции.
Необходимо выводить товарные остатки со склада в:
Актуально в том случае, если такая опция включена в админ-панели и у клиента подключена услуга фулфилмента в Shiptor. При проверке остатков на фулфилменте желательно иметь в списке товаров/карточке товара отдельное поле «Shiptor», чтобы там актуализировались остатки на складе Shiptor и не смешивались с остатками в магазине. Если магазин поддерживает несколько складов и записи каждого из них выделяются под синхронизацию с Shiptor, это поле не нужно.
Метод получения товарных остатков getProducts. При указании ShopArticle вернутся данные по конкретному товару, без него — по всем.
Поясняющий скриншот:
Отдельно нужен функционал синхронизации номенклатуры в каждом из направлений:
Заказ может передаваться в Shiptor в автоматическом или ручном режиме в зависимости от общих настроек в админ-панели или профилях доставки.
Для автоматической передачи необходимо предусмотреть разрешающие условия. Например, получение полной оплаты для предоплаченных заказов, наличие конкретного статуса системы для заказов с наложенным платежом или комбинацию условий.
Передача заказа в Shiptor производится не только с декларированием товаров из номенклатуры, ранее переданной в Shiptor, но и с декларированием услуг, включенных в заказ из ранее переданных или заведенных в личном кабинете Shiptor.
Перед передачей заказа надо проверить наличие в номенклатуре в ЛК Shiptor товаров и услуг, затронутых заказом, завести в номенклатуре Shiptor недостающие и только затем создать посылку.
Для уменьшения числа предварительных запросов перед передачей заказа в Shiptor можно у товаров на сайте клиента (в модуле или интеграции) завести флаг «номенклатура товара заведена в Shiptor» и «номенклатура услуги заведена в Shiptor». При загрузке номенклатуры отмечается соответствующее поле. Таким образом мы убираем необходимость предварительной проверки через запрос(ы) к Shiptor, выполняя его «локально» в базе клиента.
Если в модуле/интеграции дополнительное поле не заведено, то непосредственно перед сохранением заказа потребуется выполнять запросы на:
!Для добавления стоимости доставки в сохраняемый заказ рекомендуем использовать всегда одну и ту же услугу из номенклатуры, т.к. стоимость товаров и услуг в каждом заказе указывается независимо от их стоимости в номенклатуре Shiptor.
Для передачи заказов используются следующие методы:
От склада Shiptor/Сберлогистика
Сквозная доставка
!Мы рекомендуем при передаче сквозных отправлений группировать их по type + courier и соответственно передавать в виде пакета заказов (Packages), чтобы у службы доставки не было несколько заявок по одному отправлению в каждой.
Для автоматической передачи заказов дату отгрузки, интервал и флаг подтверждения брать из настроек профилей. Для ручной передачи можно выводить всплывающее окно с возможностью перевыбора.
Экспорт:
Комментарии к работе с методами
В departure / shipping_method и delivery_point указываются ID выбранной пользователем доставки и ID выбранного ПВЗ (если используется ПВЗ).
Если выбрана курьерская доставка, то поле delivery_point должно отсутствовать, иначе при передаче заказа в API Shiptor будет сгенерирована ошибка.
У товаров и услуг (то есть в блоках products и services) указывается актуальная для данного конкретного заказа цена. Таким образом можно использовать товары с плавающей ценой и различные виды доставки под одним артикулом и одним названием «Доставка» без необходимости постоянного переопределения в номенклатуре Shiptor.
Обратите внимание: для тестирования работы с посылками клиенты на фулфилменте при запросе AddPackage(s) могут использовать флаг no_gather: true и явно тестовые данные по отправлению. Это необходимо, когда на складе Shiptor уже заведена номенклатура с остатками, чтобы избежать автоматической сборки/отправки посылки.
Наложенный платеж (доступен только в РФ) указывается в поле cod. Если отсутствует, передавать 0.
Наложенный платеж должен быть строго равен сумме по товарам и услугам включенным в посылку.
Объявленная ценность указывается в поле declared_cost, и не может быть меньше 10 рублей (актуально на момент написания инструкции).
Правило соотношения этих двух полей: cod <= declared_cost. То есть наложенный платеж не может быть больше, чем объявленная ценность. Например, если магазин уже получил частичную оплату от покупателя за заказ, но хочет застраховать его полную стоимость, то указанный наложенный платёж становится меньше полной (застрахованной) стоимости на сумму предоплаты.
Если наложенный платеж по заказу будет осуществляться банковской картой, то при передаче заказа в Shiptor необходимо передавать флаг cashless_payment со значением true (строго булевского типа).
!Добавление стоимости услуги в заказ с наложенным платежом увеличивает общую стоимость относительно расчета доставки (calculateShipping выполняется по товарам) заказа и Shiptor снова ее пересчитывает (то есть появляется рекурсия). Для минимизации разницы в стоимости доставки для магазина и покупателя клиент может использовать опцию наценки в профилях доставки. Размер наценки можно уточнить на странице тарифов РКО.
Получение списка новых сгруппированных статусов выполняется функцией getStatusList.
Получение статуса для посылки выполняется функцией getPackage.
Для списка посылок: getPackages.
В поле result — current_status возвращается внутренний статус в Shiptor (полный перечень можно получить методом getStatusList).
В поле result — status (устаревшее) возвращается внутренний статус в Shiptor (new, checking-declaration, waiting-pickup и другие).
Отслеживать реальные статусы используемых служб доставки можно в следующих значениях:
«checkpoints»: [
{
«date»: «2016-10-25T12:10:04+03:00»,
«message»: «Отправлена из сортировочного центра»,
«details»: «Сортировочный пункт (Москва)»
},
],
Подробнее на скриншотах:
Напоминаем, что история операций над заказом в Shiptor получается из массива history в ответе функции getPackage:
Получение статусов прекращается для посылок в следующем состоянии в Shiptor:
Проверка рекомендуется для статусов:
В HTTP-заголовок при запросах AddPackage и AddPackages любых видов добавить 2 новых поля для статистики. Они должны отправляться в Shiptor при каждом таком запросе):
Полный лог запросов
Необходим чекбокс активации записи в лог.
Предусмотреть:
Лог ведётся в текстовом формате. В него сохраняются все запросы к серверу и все ответы/ошибки сервера в виде JSON (по аналогии с API https://shiptor.ru/doc/) для последующего анализа.
Лог передачи заказов
Можно предусмотреть вариант дополнительного краткого лога, фиксирующего только запросы к серверу и ответы/ошибки по методам добавления заказов в Shiptor.