Главная » IS-Kiosk » Интеграция сторонних систем в IS-Kiosk » 1С в IS-Kiosk » Описание формата обмена данными с 1С в IS-Kiosk » 2.3 - Отправка данных об оформляемом заказе с помощью web-сервиса (API v2)
Назад

2.3 - Отправка данных об оформляемом заказе с помощью web-сервиса (API v2)

Номер статьи: 0000531

2.3.1        Общее описание

web-сервис должен быть развёрнут со стороны back-офиса (со стороны 1С).

https-методы web-сервиса необходимы для получения номера заказа со стороны back-офиса, возможности загрузки заказа на кассе, а также для перехода на обмен данными с back-офисом без использования файлов (при оплате заказа и загрузки заказа на кассе).

Ответ от сервера приходит в формате json

2.3.2       Команда отправки сохранённого (неоплаченного) заказа

Отправка сохранённого (неоплаченного) заказа в back-офис (1С) и получение его номера (создание заказа).
POST

https://server/CreateOrder

Request body:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       988.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

~        00086        1.0      76.00      76.00          0 000000    0.00% 0000000000000

~        00087        2.0       0.00       0.00          0 000000    0.00% 0000000000000

        00130         2.0     800.00     800.00          0 000000    0.00% 0000000000000"

}
Описание параметров:

  1. "order" - информация о заказе - текст в формате 1С (АРМ)

Пункты:

Ответ:

  1. "orderNum" – присвоенный 1С номер созданного заказа

Пример ответа от сервера:

{

"orderNum": "L100-000000137"

}

Метод используется для проверки связи с web-сервисом и проверки корректности сформированного заказа.

Метод используется для сохранения заказа в back-офисе (1С) с присвоением ему уникального номера заказа.

Номер заказа будет использоваться для загрузки заказа на кассе, если выбран соответствующий способ оплаты.

Метод будет вызываться на Киоске и на Кассе перед началом оформления заказа (до вызова оплаты по к/карте, до оформления на ФР)

Примечание:

В back-офисе при обработке этого метода рекомендуется резервирование позиций заказа для последующего корректного предоставления back-офисом информации о наличии товара при работе со стоп-листом.


2.3.3        Команда закрытия заказа в back-офисе (1С)

Отправка оплаченного заказа в back-офис (1С).

POST

https://server/CloseOrder

Request body:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       988.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

~        00086        1.0      76.00      76.00          0 000000    0.00% 0000000000000

~        00087        2.0       0.00       0.00          0 000000    0.00% 0000000000000

        00130         2.0     800.00     800.00          0 000000    0.00% 0000000000000

Оплата 2       988.00 $NDQ0NDQ0NDQ0NDQ0NDQ0NCAgICAgMDAwMSAgICAgICAgICAgICAgICAgMTU2MSAgICAgICAgICAgICAgICAgMTUuMDkuMjMgMDA6MDA6MDA=$",

   "orderNum": "L100-000000137",

"promoCode": "1A2B3C4D5E6F7"

}

Описание параметров:

  1. "order" - информация о заказе - текст в формате 1С (АРМ)

Пункты:

  1. Формат заголовка документа
  2. Формат товарных позиций документа
  3. Формат модификаторов товарных позиций
  4. Формат типа оплаты документа
  5. "orderNum" - номер заказа, полученный в команде отправки сохранённого (неоплаченного) заказа, если метод вызывался.
  6. "promoCode" – ранее применённый к заказу промокод. Необязательный параметр.

Передаётся после успешного применения промокода к заказу с помощью команды применения промокода к заказу. Необходимо для информирования 1С об использовании промокода.

Метод используется для отметки в back-офисе 1С факта оплаты заказа.

Метод можно использовать без предварительного вызова CreateOrder, тогда в 1С заказ сохраняется сразу как оформленный.

Метод будет вызываться на Киоске и на Кассе после успешной оплаты заказа.

Ответ:

  1. "orderNum" – присвоенный 1С номер заказа

Пример ответа от сервера:

{

"orderNum": "L100-000000137"

}

2.3.4        Команда отмены заказа в back-офисе (1С)

В случае ошибки при оформлении заказа (например, при печати чека на ФР), заказ должен быть отменён.

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

Также команда отмены заказа вызывается, если Клиент вручную отменил заказ, либо если система автоматически отменила заказ по истечении таймаута бездействия работы с заказом.

 

Если номер ещё не был присвоен заказу, то вызывается метод с передачей параметра "order":

POST

https://server/CancelOrder

Request body:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       318.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

Оплата 2       318.00 $NDQ0NDQ0NDQ0NDQ0NDQ0NCAgICAgMDAwMSAgICAgICAgICAgICAgICAgMTU2MSAgICAgICAgICAgICAgICAgMTUuMDkuMjMgMDA6MDA6MDA=$",

"promoCode": "1A2B3C4D5E6F7"

}

Описание параметров:

Пункты:

 

Если номер уже присвоен заказу, то вызывается метод с параметром "orderNum":

POST

https://server/CancelOrder

Request body:

{

   "orderNum": "L100-000000137",

"promoCode": "1A2B3C4D5E6F7"

}

 

Описание параметров:

  1. "orderNum" - номер заказа, полученный в команде отправки сохранённого (неоплаченного) заказа или команде закрытия заказа в back-офисе.
  2. "promoCode" – ранее применённый к заказу промокод. Необязательный параметр.

 

Ответ:

  1. "resultCode" – код ошибки. 0 – успешное выполнение команды.
  2. "resultText" – текст ошибки, если метод завершился ошибкой.

 

Пример ответа от сервера:

{

   "resultCode": 0,

   "resultText": ""

}

 

Примечание:

В back-офисе при обработке этого метода рекомендуется отмена резервирования позиций заказа для последующего корректного предоставления back-офисом информации о наличии товара при работе со стоп-листом.

 

2.3.5        Команда загрузки заказа из back-офиса (1С)

Метод используется для загрузки заказа из back-офиса (1С) для оформления оплаты или возврата.

GET

https://server/1c/LoadOrder?orderNum={orderNum}&operation={operation}

 

Описание параметров:

  1. "orderNum" – номер заказа, полученный в методе CreateOrder (или CloseOrder).
  2. "operation" – тип операции (1 - загрузка заказа для оплаты, 2 - загрузка заказа для возврата.

 

Ответ:

"order" – заказ, найденный по номеру в back-офисе (1С) заказе - текст в формате 1С (АРМ)

Пункты:

"promoCode" – применённый к заказу промокод. Необязательное поле.

 

Пример ответа от сервера:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       988.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

~        00086        1.0      76.00      76.00          0 000000    0.00% 0000000000000

~        00087        2.0       0.00       0.00          0 000000    0.00% 0000000000000

        00130         2.0     800.00     800.00          0 000000    0.00% 0000000000000

Оплата 2       988.00 $NDQ0NDQ0NDQ0NDQ0NDQ0NCAgICAgMDAwMSAgICAgICAgICAgICAgICAgMTU2MSAgICAgICAgICAgICAgICAgMTUuMDkuMjMgMDA6MDA6MDA=$",

"promoCode": "1A2B3C4D5E6F7"

}

 

Примечание

Методы CreateOrder, затем CloseOrder будут вызываться и для тех заказов, где выбран способ оплаты "Оплата на кассе".

2.3.6        Команда запроса стоп-листа

Аналогично команде API v1

2.3.7        Команды для оформления возврата

Для выполнения возврата заказ Киоск вызывает команды, аналогично командам при оплате заказа (CreateOrder и CloseOrder). В параметре order согласно Формату заголовка документа указывается признак возврата (TYPE=2), суммы документа отрицательные.

2.3.8        Команда модификации заказа (применение скидки или акции)

Отправка неоплаченного заказа в back-офис (1С) для получения скидок и/или акций для данного заказа.

POST

https://server/ModifyOrder

Request body:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       988.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

~        00086        1.0      76.00      76.00          0 000000    0.00% 0000000000000

        00130         2.0     800.00     400.00          0 000000   50.00% 0000000000000",

"promoCode": "1A2B3C4D5E6F7"

}

Описание параметров:

  1. "order" - информация о заказе - текст в формате 1С (АРМ)

Пункты:

  1. "promoCode" – ранее применённый к заказу промокод с помощью команды применения промокода к заказу.

Ответ:

  1. "order" – изменённый заказ в результате применения скидок и/или акций, настроенных в back-офисе (1С) - текст в формате 1С (АРМ).
  2. "promoCode" – ранее применённый к заказу промокод. Необязательное поле.

 

Пример ответа от сервера:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       756.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

~        00086        1.0      76.00      38.00          0 000000   50.00% 0000000000000

        00130         2.0     800.00     400.00          0 000000   50.00% 0000000000000",

"promoCode": "1A2B3C4D5E6F7"

}

Метод используется для модификации заказа.

При любом изменении неоплаченного заказа back-офис (1С) может начислить или удалить скидку на позицию или заказ.

 

2.3.9        Команда применения промокода к заказу

Отправка неоплаченного заказа в back-офис (1С) вместе со считанным промокодом для получения скидок и/или акций для данного заказа.

 POST

https://server/SetOrderPromoCode

Request body:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       988.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

~        00086        1.0      76.00      76.00          0 000000    0.00% 0000000000000

        00130         2.0     800.00     800.00          0 000000    0.00% 0000000000000",

"promoCode": "1A2B3C4D5E6F7"

}

Описание параметров:

  1. "order" - информация о заказе - текст в формате 1С (АРМ)

Пункты:

  1. "promoCode" – применяемый к заказу промокод.

Для отмены промокода необходимо вызвать метод с пустым значением параметра "promoCode".

Ответ:

  1. "order" – заказ в результате применения или отмены промокода. В случае ошибки исходное состояние заказа - текст в формате 1С (АРМ).
  2. "promoCode" – применённый к заказу промокод. В случае ошибки применения промокода поле может быть не передано или быть пустым.
  3. "resultCode" – код ошибки. 0 – успешное выполнение команды.
  4. "resultText" – текст сообщения для вывода клиенту на экран в случае успешного применения промокода (если поле пустое – сообщение о применении промокода не выводится) или текст ошибки, если метод завершился ошибкой.

Пример ответа от сервера при успешном применении промокода:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       794.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

~        00086        1.0      76.00      76.00          0 000000    0.00% 0000000000000

        00130         2.0     800.00     400.00          0 000000   50.00% 0000000000000",

"promoCode": "1A2B3C4D5E6F7",

   "resultCode": 0,

   "resultText": "Ваш промокод успешно применён к заказу"

}

 

Пример ответа от сервера при ошибке применения промокода:

{

"order": "Чек 00000895/000000 13.08.18 18:41:00 1       988.00 000000 Администратор      

        00089         1.0     318.00     318.00          0 000000    0.00% 0000000000000

~        00086        1.0      76.00      76.00          0 000000    0.00% 0000000000000

        00130         2.0     800.00     800.00          0 000000    0.00% 0000000000000",

   "resultCode": -1,

   "resultText": "Промокод '1A2B3C4D5E6F7' не может быть применён"

}

Просмотры: 21