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

Материал из Insales Wiki
Перейти к: навигация, поиск
м
Строка 6: Строка 6:
 
     javascript - здесь можно указать javascript-код, который будет исполнен на странице выбора способа доставки при оформлении заказа.
 
     javascript - здесь можно указать javascript-код, который будет исполнен на странице выбора способа доставки при оформлении заказа.
  
При оформлении заказа покупатель после ввода адреса переходит на шаг выбора способа доставки. На этом этапе система InSales отправляет на внешний URL (задается в настройках внешнего способа оплаты в InSales) GET запросом следующие параметры:
+
При оформлении заказа покупатель после ввода адреса переходит на шаг выбора способа доставки. На этом этапе из браузера на внешний URL отправляется jsonp запрос со следующими параметрами:
  
 
     price - Цена заказа в рублях. Например, "1200.0".
 
     price - Цена заказа в рублях. Например, "1200.0".
Строка 12: Строка 12:
 
     region - Регион доставки в формате [http://ru.wikipedia.org/wiki/%D0%9A%D0%9B%D0%90%D0%94%D0%A0 КЛАДР]. Пример, "обл Московская" или "г Москва".
 
     region - Регион доставки в формате [http://ru.wikipedia.org/wiki/%D0%9A%D0%9B%D0%90%D0%94%D0%A0 КЛАДР]. Пример, "обл Московская" или "г Москва".
 
     city - Город доставки. Например, "Долгопрудный" или "Москва".
 
     city - Город доставки. Например, "Долгопрудный" или "Москва".
 +
    zip - Индекс
 +
    callback - Имя функции
  
В случае если доставка по указанным параметрам возможна, ожидается ответ с ценой доставки в рублях, например, "650.0". Если же доставка невозможна, то ответом должен быть текст ошибки, например, "В данный регион доставка не осуществляется". При успешном ответе, данный способ доставки вместе с ценой будут предложены для выбора покупателю на ряду с другими настроенными способами.
+
Пример:
 +
 
 +
 
 +
Запрос:
 +
GET user_url?callback=jQuery16204684495358521503_1361805225262&city=Архара&price=5000&region=обл+Амурская&weight=110&zip=123456
 +
 
 +
 
 +
Примеры ответов:
 +
 
 +
 
 +
1) Доставка возможна
 +
<pre>
 +
  jQuery16204684495358521503_1361805225262({delivery_price: 100})
 +
</pre>
 +
 
 +
 
 +
2) Доставка в данный регион не возможна
 +
<pre>
 +
  jQuery16204684495358521503_1361805225262({error: 'Current carrier is not available!'})
 +
</pre>
 +
 
 +
 
 +
3) Переданы не все данные
 +
<pre>
 +
  jQuery16204684495358521503_1361805225262({error: 'Fail, not all data sent!'})
 +
</pre>
 +
 
 +
Ответ должен представлять строчку с вызовом переданной в параметре callback функции, которой в качестве аргумента передается json объект с указанными параметрами.
 +
 
 +
ОЧЕНЬ ЖЕЛАТЕЛЬНО устанавливать в заголовке ответа 'Content-Type: application/json' или 'Content-Type: text/javascript' или 'Content-Type: application/javascript'

Версия 06:16, 26 февраля 2013

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

Настройка на стороне 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!'})

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

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