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:
Передается один элемент!
{ "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