Перейти к основному контенту

API Tomato - Корзина

Сохранение заказа в корзине
  • версия tomato-сервер 2.1.1.227
  • протокол RESTfull

GET: basket

Получение всех методов basket

POST: /api/v1/basket
Accept: application/json; charset=UTF-8

POST: basket/add

Добавление элемента в буфер сервера

POST: /api/v1/basket/add
Content-type: application/json; charset=UTF-8

параметры :
sid - идентификатор сессии, если web решение, то не надо передавать, возьмется cookie

body:

блюда:

  
  { 
    "items":[ {
      "dish_id": 123, 
      "type": "dish", 
      "sale": {"price":1000, "sum":2000, "quantity":20000}, 
      "modifiers": [{"id":123, "sale": {"price":1000, "sum":2000, "quantity":20000}}] 
    }, .., , ...
    
    ]
    }

комбо-блюда:

  {  
    "items":[{
      "dish_id": 124, 
      "type":"combo", 
      "sale": {}, 
      "dishes": [{
            "dish_id": 123, 
            "type": "dish", 
            "sale": {}, 
            "modifiers": [{"id":123, "sale": {}}]
       }]  
    }, ..., ..., ..
    }

type : [dish, combo]

Result:

  {
  "result":
  {
    "items":
    [{"uid":"1D0F5A42E0B444F28DEA1DE254A622AD","sum":111, "sum_extra":111},
     {"uid":"702A99F0C8F24BF2A5A3264B1F37D367","sum":111, "sum_extra":111}
    ]},
    "total": {"sum":111,"sum_extra":111}
  }

где,

  uid - иникальный идентификатор, GUID
  sum - сумма элемента
  extra_sum - дополнительная сумма элемента, может вызвана скидками, неверной цены на клиенте, вызванной не вовремя выполненной сихронизации клиента с сервером и т.д.

POST: basket/update/($uid)

Изменение данных элемена uid

POST: /api/v1/basket/update/($uid)
Content-type : application/json; charset=UTF-8

параметры :
sid - идентификатор сессии, если web решение, то не надо передавать, возьмется cookie

body:

смотри basket/add

передается один элемент!

 {    "dish_id": 123, 
      "type": "dish", 
      "sale": {"price":1000, "sum":2000, "quantity":20000}, 
      "modifiers": [{"id":123, "sale": {"price":1000, "sum":2000, "quantity":20000}}] 
 }

Result:

  { "result":{"uid":1D0F5A42E0B444F28DEA1DE254A622AD} }

GET: basket/get

Получить все сохраненные элементы корзины

GET: /api/v1/basket/get
Content-type : text/html
Accept : application/json; charset=UTF-8


параметры :
sid - идентификатор сессии, если web решение, то не надо передавать, возьмется cookie

Result:

  
  { 
    "result":{
      "items":
         [
         {"uid":"1D0F5A42E0B444F28DEA1DE254A622AD","item":{"dish_id":123, ...}},
         {"uid":"702A99F0C8F24BF2A5A3264B1F37D367","item":{"dish_id":124, ...}}, 
       ..] 
    }
  }

GET: basket/get/($uid)

Получить элемент корзины по uid

GET: /api/v1/basket/get/($uid)
Content-type : text/html
Accept : application/json; charset=UTF-8

uid - смотри /basket/add

параметры :
sid - идентификатор сессии, если web решение, то не надо передавать, возьмется cookie

Result:

{ 
  "result":{
      "uid":"1D0F5A42E0B444F28DEA1DE254A622AD", item:{"dish_id":123, ...}
  }
}

см. GET: basket/get


DELETE: basket/del

Удаление корзины

DELETE: /api/v1/basket/del
Content-type : application/json; charset=UTF-8
Accept : application/json; charset=UTF-8


параметры :
sid - идентификатор сессии, если web решение, то не надо передавать, возьмется cookie

Result:

{"result":[ud1,ud2...], "error":{}}

где, ud1,ud2… - массив удаленных элементов из корзины


DELETE: basket/del/($uid)

Удаление элемента корзины по uid

DELETE: /api/v1/basket/del/($uid)
Content-type : application/json; charset=UTF-8
Accept : application/json; charset=UTF-8

uid - смотри /basket/add

параметры :
sid - идентификатор сессии, если web решение, то не надо передавать, возьмется cookie

Result:

{"result":[ud1], "error":{}}

где, ud1 - удаленный элемент


POST: basket/push

Отправляем данные из корзины в учетную систему

POST: /api/v1/basket/push
Content-type : application/json; charset=UTF-8 
Accept : application/json; charset=UTF-8 

uid - смотри /basket/add

параметры :
sid - идентификатор сессии, если web решение, то не надо передавать, возьмется cookie

Result:

{"result":[ud1,ud2...], "error":{}}

где, ud1,ud2… - массив сохраненных элементов корзины

после basket/push корзина очищается

basket/save

Чтобы выйти за границы сессии надо сохранить корзину, теперь гость по номеру может передать корзину другому гостю, ресторану или воспользоваться номером для предварительного заказа


POST: basket/save

Сохранение корзины, выход корзины за текущую сессию, выдача номера

POST /api/v1/basket/save
Content-type: application/json; charset=UTF-8 
Accept: application/json; charset=UTF-8 


параметры :
sid - идентификатор сессии, если web решение, то не надо передавать, возьмется cookie
time - время(минуты), на которое будет сохранена корзина (если не передавать значение, то по умолчанию, 12 часов)

Result:

{"result": {"save_id":AB1234}}

GET: basket/save/($save_uid)

Получение сохраненной корзины по номеру

GET /api/v1/basket/save
Accept: application/json; charset=UTF-8