Запрос GetSales предназначен для получения списка зарезервированных мест (внешних продаж).
Для получения данных о конкретной продаже рекомендуется использовать фильтр по коду внешней продажи – ReservationID. При указании ReservationID в ответ будет включена текстовая информация о содержании заказа, например, наименование зала, фильма и т.д.
Также возможно фильтровать данные по другим параметрам.
Для бэкофиса рекомендуется указывать номер кинотеатра – Theatres.
- Запрос может выполняться долго, особенно если не указан ReservationID.
- Некорректно составленный запрос может привести к формированию очень большого файла с ответом (на практике встречались XML-файлы размером до 60 МБ).
| Параметр | Описание | Формат | Пример |
|---|---|---|---|
| ServiceID | Идентификатор службы внешней продажи | Число | 1 |
| QueryCode | Код запроса, должен быть равен GetSales | Строка | GetSales |
| Version | Версия протокола | Число | 3 |
| Параметр | Описание | Формат | Пример |
|---|---|---|---|
| ReservationID | Код внешней продажи (рекомендуется для использования) | Строка | x054, m152, 2020.11.30_1 |
| CardCode | Номер карты (используется при необходимости проверки карты) | Строка | |
| DateList | День(дни) в формате DD.MM.YYYY. Зависит от ListType | Дата (можно несколько через запятую) | 30.11.2020 |
| Параметр | Описание | Формат | Пример |
|---|---|---|---|
| Theatres | Идентификатор(ы) кинотеатра(ов) | Числа через запятую | 2 |
| Halls | Идентификатор(ы) зала(ов) | Числа через запятую | 1 |
| Levels | Идентификатор(ы) яруса(ов) | Числа через запятую | 2 |
| Movies | Идентификатор(ы) фильма(ов) | Числа через запятую | 291 |
| Sessions | Идентификатор(ы) сеанса(ов) | Числа через запятую | 16984 |
| Параметр | Описание | Возможные значения | По умолчанию |
|---|---|---|---|
| ListType | Тип запроса |
|
Session |
| Encoding | Кодировка ответа | Windows-1251 | Windows-1251 |
| Archive | Способ передачи данных | 0 | 0 |
| Expect | Предельное ожидание ответа |
xml
<?xml version='1.0' encoding='Windows-1251' standalone='yes'?>
<XML>
<Result>Ok</Result>
<Error></Error>
<Remark></Remark>
<Data>
<!-- Данные о продажах -->
</Data>
</XML>
xml
<Data>
<Sales TheatreID="2">
<Reservation ID='2020.11.30_1'>
<Creation>30.11.2020 14:13:31</Creation>
<Expired>30.11.2020 14:28</Expired>
<Session ID='16984'>
<!-- Информация о кинотеатре, зале, фильме -->
<Date>30.11.2020</Date>
<Time>21:30</Time>
</Session>
</Reservation>
</Sales>
</Data>
Атрибуты:
Атрибуты:
Дочерние элементы:
Атрибуты:
Дочерние элементы:
Содержит один или несколько элементов <Level>.
Атрибуты:
Дочерние элементы:
Содержит один или несколько элементов <Place>.
Может представлять три типа объектов:
1. Место на сеансе (билет)
Атрибуты:
2. Продукт (бар)
Атрибуты:
3. Выставка
Атрибуты:
Общие атрибуты для всех типов:
Дочерние элементы <Place>:
| Элемент | Описание | Формат | Присутствует когда |
|---|---|---|---|
| <Approved> | Дата подтверждения | DD.MM.YYYY HH:mm:ss | Status = 2 |
| <Canceled> | Дата отмены | DD.MM.YYYY HH:mm:ss | Status = 3 |
| <Printed> | Дата печати | DD.MM.YYYY HH:mm:ss | Status = 4 |
| <Ticket> | Информация о билете | Для билетов | |
| <Sum> | Сумма | Атрибут Sum – в копейках | Всегда |
| <PrintPrice> | Сумма для печати | Атрибут Sum – в копейках | Для билетов |
| <AddPrice> | Дополнительная стоимость | Атрибут Sum – в копейках | При наличии |
| <ComissionSum> | Сумма комиссии | Атрибут Sum – в копейках | При наличии |
* Примечание: Элемент <Ticket> содержит:
URL:
text
http://server:port/ServiceID=1&QueryCode=GetSales&ReservationID=m152&Encoding=Windows-1251&Version=3
Ответ (сокращенный):
xml
<Reservation ID='m152'>
<Creation>13.01.2025 12:20:38</Creation>
<Expired>13.01.2025 12:21</Expired>
<Session ID='15819'>
<Theatre ID='2'>
<Hall ID='1'>
<Name><![CDATA[Зал1]]></Name>
<Levels>
<Level ID='3'>
<Name><![CDATA[Ярус1]]></Name>
<Places>
<Place Session='15819' Fragment='0' Row='2' Place='2' Status='2' Code='558658555572'>
<Approved>13.01.2025 12:20:46</Approved>
<Ticket ID='1'>Стандартный</Ticket>
<Sum Sum='10000'>100руб 00коп</Sum>
<ComissionSum Sum='1000'>10руб 00коп</ComissionSum>
</Place>
</Places>
</Level>
</Levels>
</Hall>
</Theatre>
<Movie ID='220'>
<Name><![CDATA[Большой красный пес Клиффорд]]></Name>
</Movie>
<Date>13.01.2025</Date>
<Time>14:35</Time>
</Session>
</Reservation>
URL:
text
http://server:port/ServiceID=1&QueryCode=GetSales&ReservationID=lk10&Encoding=Windows-1251&Version=3
Ответ (сокращенный):
xml
<Reservation ID='lk10'>
<Creation>06.11.2025 10:56:32</Creation>
<Expired>06.11.2025 10:57</Expired>
<Session ID='-1'>
<Theatre ID='2'>
<Hall ID=''>
<Name><![CDATA[]]></Name>
<Levels>
<Level ID='-1'>
<Name><![CDATA[]]></Name>
<Places>
<Place Product='1000519' Status='2'>
<Approved>06.11.2025 10:59:47</Approved>
<Sum Sum='36000'>360руб 00коп</Sum>
</Place>
</Places>
</Level>
</Levels>
</Hall>
</Theatre>
<Movie ID=''></Movie>
<Date>30.12.1899</Date>
<Time>00:00</Time>
</Session>
</Reservation>
URL:
text
http://server:port/ServiceID=1&QueryCode=GetSales&ReservationID=2024.07.31_03&Encoding=Windows-1251&Version=3
Ответ (сокращенный):
xml
<Reservation ID='2024.07.31_03'>
<Creation>31.07.2024 12:35:01</Creation>
<Expired>31.07.2024 12:36</Expired>
<Session ID='14779'>
<Theatre ID='2'>
<Hall ID='1'>
<Name><![CDATA[Зал1]]></Name>
<Levels>
<Level ID='3'>
<Name><![CDATA[Ярус1]]></Name>
<Places>
<Place Product='1002769' Status='2'>
<Approved>31.07.2024 12:35:13</Approved>
<Sum Sum='10000'>100руб 00коп</Sum>
</Place>
<Place Session='14779' Fragment='0' Row='1' Place='4' Status='2' Code='556540555572'>
<Approved>31.07.2024 12:35:13</Approved>
<Ticket ID='1'>Стандартный</Ticket>
<Sum Sum='10000'>100руб 00коп</Sum>
<ComissionSum Sum='1000'>10руб 00коп</ComissionSum>
</Place>
</Places>
</Level>
</Levels>
</Hall>
</Theatre>
<Movie ID='300'>
<Name><![CDATA[Восставшая из ада]]></Name>
</Movie>
<Date>31.07.2024</Date>
<Time>13:40</Time>
</Session>
</Reservation>
URL:
text
http://server:port/ServiceID=1&QueryCode=GetSales&Theatres=2&DateList=30.11.2020&Encoding=Windows-1251&Version=3
Особенности ответа:
Что рекомендуется использовать:
Чего следует избегать:
| Информация | С ReservationID | Без ReservationID |
|---|---|---|
| Название зала | + | – |
| Название фильма | + | – |
| Название яруса | + | – |
| Название типа билета | + | – |
| Детальная информация о продуктах | + | + |
Q: Почему запрос такой медленный?
A: Запрос выполняет сложные JOIN'ы в базе данных. Всегда используйте ReservationID для ускорения работы запроса.
Q: Можно ли получить информацию о нескольких продажах одним запросом?
A: Да, используйте фильтры (Theatres, DateList, ListType), но будьте осторожны с объемом данных.
Q: Почему для продуктов дата всегда 30.12.1899?
A: Это техническое значение по умолчанию, так как продукты не привязаны к конкретному сеансу.
Q: Какой максимальный размер ответа?
A: Теоретически не ограничен, но на практике рекомендуется избегать ответов больше 10 МБ.
| Код | Статус | Описание |
|---|---|---|
| 1 | Неподтвержденная | Резервация создана, но не подтверждена |
| 2 | Подтвержденная | Резервация подтверждена (оплачена) |
| 3 | Отмененная | Резервация отменена |
| 4 | Распечатанная | Билеты по резервации распечатаны |
Получение конкретной продажи:
text
ServiceID=1&QueryCode=GetSales&ReservationID={ID}&Encoding=Windows-1251&Version=3
Получение продаж за день по кинотеатру:
text
ServiceID=1&QueryCode=GetSales&Theatres=2&DateList=30.11.2020&ListType=Session&Encoding=Windows-1251&Version=3
Получение списка неподтвержденных продаж:
text
ServiceID=1&QueryCode=GetSales&Theatres=2&ListType=Creation&Encoding=Windows-1251&Version=3