Действия с заказом¶
Примечание
Все действия с заказом, кроме его создания, делаются по запросу PATCH /v2/resources/orders/:id
.
В один запрос одновременно может быть добавленно нескольно действий.
Все запросы на изменение конкретного заказа, должны делаться синхронно.
В случае получения запроса до конца обработки предыдущего,
будет возвращена ошибка 409 Conflict.
Это ограничение касается только работы с одним заказом, а работать одновременно с несколькими заказами можно.
В ответ на все PATCH запросы приходит обновленный объект заказа
Добавить информацию о покупателе¶
Запрос
PATCH
/v2/resources/orders/:id
¶
JSON Parameters:
- settings –
объект с одним ключом customer и соответствующим ему значением, содержащим:
- name (str)
- email (str)
- phone (str)
- lang (en|ru)
Ответ
HTTP/1.1 200 OK Content-Type: application/json
Пример запроса
PATCH /v2/resources/orders/5bacf64ea0eb2f000c45160a HTTP/1.1 Authorization: key 9bd8359943b545500278875r49c5b96d Content-Type: application/json { "settings": { "customer": { "email": "hello@world.ru", "lang": "ru", "name": "Ivan Ivanov", "phone": "+79991234576" } } }
Пример ответа
HTTP/1.1 200 OK Content-Type: application/json { "data": { "created_at": "2018-09-27 15:25:02", "event": "5b23b53b9c9b19000c6c4180", "expired_after": "2018-11-16 00:00:00", "id": "5bacf64ea0eb2f000c45160a", "number": 41564, "org": "5b0286ce517565000d9cb1ca", "origin": "api", "promocodes": [], "settings": { "customer": { "email": "hello@world.ru", "lang": "ru", "name": "Ivan Ivanov", "phone": "+79991234576" }, "invitation": false, "send_tickets": true }, "status": "executed", "tickets": [ ... ], "values": { ... }, "vendor": "5b0286ce517565000d9cb1ca", "vendor_data": {} }, "refs": { ... } }
Добавить произвольную информацию в объект заказа¶
Запрос
PATCH
/v2/resources/orders/:id
¶
JSON Parameters:
- vendor_data –
- order_id (str) (Необязательно) Номер заказа в системе распространителя. Максимальная длина 64 символа
- raw (object) Объект с произвольными полями.
Предупреждение
raw
- 20Ответ
HTTP/1.1 200 OK Content-Type: application/json
Пример запроса
PATCH /v2/resources/orders/5bacf64ea0eb2f000c45160a HTTP/1.1 Authorization: key 9bd8359943b545500278875r49c5b96d Content-Type: application/json { "vendor_data": { "order_id": "5bacf64ea0eb2f000c45160a", "raw": { "enable_call_to_customer": true, "call_counter": 3 } } }
Пример ответа
HTTP/1.1 200 OK Content-Type: application/json { "data": { "created_at": "2018-09-27 15:25:02", "event": "5b23b53b9c9b19000c6c4180", "expired_after": "2018-11-16 00:00:00", "id": "5bacf64ea0eb2f000c45160a", "number": 41564, "org": "5b0286ce517565000d9cb1ca", "origin": "api", "promocodes": [], "settings": { ... }, "status": "executed", "tickets": [ ... ], "values": { ... }, "vendor": "5b0286ce517565000d9cb1ca", "vendor_data": { "order_id": "5bacf64ea0eb2f000c45160a", "raw": { "enable_call_to_customer": true, "call_counter": 3 } } }, "refs": { ... } }
Отправка билетов покупателю на email¶
При значении true
билеты отправляет платформа ticketscloud на email
,
указанный в поле customer.
По умолчанию false
, тогда билеты генерируете и отправляете вы. Обязательное условие — наличие баркода.
Изменить email
можно только при статусе заказа executed
, для этого надо обновить данные customer
, точно так же как и при первичном добавлении.
Запрос
PATCH
/v2/resources/orders/:id
¶
JSON Parameters:
- settings –
- send_tickets (bool)
Ответ
HTTP/1.1 200 OK Content-Type: application/json
Пример запроса
PATCH /v2/resources/orders/5bacf64ea0eb2f000c45160a HTTP/1.1 Authorization: key 9bd8359943b545500278875r49c5b96d Content-Type: application/json { "settings": { "send_tickets": true } }
Пример ответа
HTTP/1.1 200 OK Content-Type: application/json { "data": { "created_at": "2018-09-27 15:25:02", "event": "5b23b53b9c9b19000c6c4180", "expired_after": "2018-11-16 00:00:00", "id": "5bacf64ea0eb2f000c45160a", "number": 41564, "org": "5b0286ce517565000d9cb1ca", "origin": "api", "promocodes": [], "settings": { "send_tickets": true, ... }, "status": "executed", "tickets": [ ... ], "values": { ... }, "vendor": "5b0286ce517565000d9cb1ca", "vendor_data": { ... } }, "refs": { ... } }
Примечание
У нас нет требований к дизайну билета, кроме наличия обязательной информации на нём.
- Билет должен содержать:
- баркод
- серия
- номер
- категория
- ряд-место (если с рассадкой)
- цена
- площадка (название-адрес)
- дата-время начала в часовом поясе площадки
- название мероприятия
- наименование юридического лица, инн, огрн, адрес (если не ИП)
Добавить промокоды к заказу¶
Регистр применяемых к заказу промокодов не важен
Запрос
PATCH
/v2/resources/orders/:id
¶
JSON Parameters:
- promocodes – (list of string)
Ответ
HTTP/1.1 200 OK Content-Type: application/json
Пример запроса
PATCH /v2/resources/orders/5bacf64ea0eb2f000c45160a HTTP/1.1 Authorization: key 9bd8359943b545500278875r49c5b96d Content-Type: application/json { "promocodes": [ "PROMO100" ] }
Пример ответа
HTTP/1.1 200 OK Content-Type: application/json { "data": { "created_at": "2018-09-27 15:25:02", "event": "5b23b53b9c9b19000c6c4180", "expired_after": "2018-11-16 00:00:00", "id": "5bacf64ea0eb2f000c45160a", "number": 41564, "org": "5b0286ce517565000d9cb1ca", "origin": "api", "promocodes": [ "5d664d392a4191909a568b40" ], "status": "executed", "tickets": [ { "barcode": null, "discount": "100.00", "extra": "46.12", "full": "946.12", "id": "5d664830b8a2cb5ce0576457", "nominal": "900.00", "number": 142278, "price": "1000.00", "serial": "BKC", "set": "5d6648306b23e8a5f90ef047", "status": "reserved" } ], "values": { "discount": "100.00", "extra": "46.12", "full": "946.12", "nominal": "900.00", "price": "1000.00", "sets_values": { "5d6648306b23e8a5f90ef047": { "discount": "100.00", "id": "5d6648306b23e8a5f90ef047", "nominal": "900.00", "price": "1000.00", "promocode": "5d664d392a4191909a568b40" }, "5d664830e4c685ae48bd2d3d": { "discount": "100.00", "id": "5d664830e4c685ae48bd2d3d", "nominal": "400.00", "price": "500.00", "promocode": "5d664d392a4191909a568b40" } }, "viral_promocodes": [] }, "vendor": "5b0286ce517565000d9cb1ca", "vendor_data": { ... } }, "refs": { "promocodes": { "5d664d392a4191909a568b40": { "code": "promo100", "discount": { "fix": "100.00" }, "id": "5d664d392a4191909a568b40", "viral": false } }, "sets": { "5d6648306b23e8a5f90ef047": { "id": "5d6648306b23e8a5f90ef047", "name": "Партер", "price": "1000.00", "with_seats": false } }, ... } }
Промокод может быть как на конкретную сумму, так и на процент:
{ ... "promocodes": { "5d66b9f9a80b147cadf87583": { "id": "5d66b9f9a80b147cadf87583", "code": "promo5%", "discount": { "percentage": "5%" }, "viral": false } } }
Ошибки при работе с промокодами¶
code | msg |
---|---|
promocode_not_found | Promocode not found |
promocode_already_used | Promocode already used |
promocode_limit_min_tickets | Need more tickets in order for promocode activation / Mimimum count of tickets in order for promocode activation is {} |
promocode_apply_info | Cant apply promocode by some reason |
Предупреждение
Успешность применения промокода не влияет на код ответа
Пример ошибки
{ "data": { ... }, "refs": { ... }, "errors": [ { "code": "promocode_not_found", "msg": "Promocode not found" } ], }