Подключение внешнего способа доставки (для разработчиков интеграций)

Материал из Insales Wiki
Перейти к: навигация, поиск

Специальный способ оплаты создается в разделе Настройки -> Доставка.

Настройка на стороне InSales:

   url - адрес внешнего сервиса, куда будут отправлены данные для расчета стоимости доставки.
   javascript - здесь можно указать javascript-код, который будет исполнен на странице выбора способа доставки при оформлении заказа.

При оформлении заказа, покупатель, после ввода адреса переходит на шаг выбора способа доставки. На этом этапе из браузера на внешний URL отправляется jsonp запрос со следующими параметрами:

   price - Цена заказа в рублях. Например, "1200.0".
   weight - Вес заказа в килограммах. Например, "1.5".
   region - Регион доставки в формате КЛАДР. Пример, "обл Московская" или "г Москва".
   city - Город доставки. Например, "Долгопрудный" или "Москва".
   zip - Индекс
   callback - Имя функции

Пример:


Запрос: GET user_url?callback=jQuery16204684495358521503_1361805225262&city=Архара&price=5000&region=обл+Амурская&weight=110&zip=123456


Примеры ответов:


1) Доставка возможна

  jQuery16204684495358521503_1361805225262({delivery_price: 100})


2) Доставка в данный регион не возможна

  jQuery16204684495358521503_1361805225262({error: 'Current carrier is not available!'})


3) Переданы не все данные

  jQuery16204684495358521503_1361805225262({error: 'Fail, not all data sent!'})

4) Иная ошибка

  jQuery16204684495358521503_1361805225262({error: 'My text message'})

или, если это просто предупреждение, можно вернуть и стоимость доставки

  jQuery16204684495358521503_1361805225262({error: 'My text message', delivery_price: 100})

В последнем случае под способом доставки будет выведено ваше сообщение.

Ответ должен представлять строчку с вызовом переданной в параметре callback функции, которой в качестве аргумента передается json объект с указанными параметрами.

ОЧЕНЬ ЖЕЛАТЕЛЬНО устанавливать в заголовке ответа 'Content-Type: application/json' или 'Content-Type: text/javascript' или 'Content-Type: application/javascript'