Введение Интерфейс предназначен для транслирования информации по протоколу HTTP о событиях с кассовой станции на адрес, указанный в параметре драйвера. Основная задача - передача данных об изменениях в заказах и других событиях кассовой станции.
Есть два варианта настройки механизма отправки уведомлений:
Механизм подписок для версии 7.6.5.440 и старше Через интерфейс HTTP Order Notify для версий ниже 7.06.05.440 Схема работы После старта драйвер находится в ожидании событий от кассы, либо завершения работы кассового сервера.
События передаваемые драйвером идут в порядке поступления. На текущий момент размер очереди равен 256. При достижении максимального количества прием новых событий приостанавливается до освобождения места для события. Это необходимо для предотвращения переполнения памяти и аварийной остановки кассового сервера, если отправка сообщений невозможна.
Для каждого адреса подписки ведется своя очередь рассылки, так же как и свой файл логирования. При завершении работы кассового сервера оставшиеся в очереди события отправляться не будут.
Данные пытаются отправляться сразу при поступлении в драйвер. Времени ожидания события "приход данных" нет.
Драйвер загружается при старте кассового сервера. Независимо от наличия кассовой станции в очередь ставится сообщение о запуске кассового сервера с Situation="1". Событие аналогично старту кассы, но с ограниченным количество узлов.
Пример сообщения после загрузки и инициализации кассового сервера:
<?xml version="1.0" encoding="utf-8"?>
<a RestCode="199990093" DateTime="2020-01-14T15:38:23" Situation="1" seqnumber="1" guid="{9ECCB1B5-97EE-4B88-9840-8568F05586D0}" name="Started" ShiftNum="1" ShiftDate="2019-11-18T00:00:00">
<Server id="15002"/>
<Item/>
</a>
XML
В данном событии указан только идентификатор кассового сервера. Если адрес задан в свойствах кассового сервера, то он уведомляет драйвер о готовности к работе. Далее происходит это событие.
После старта кассовой станции в очередь ставится похожее сообщение, но с расширенным набором узлов:
<?xml version="1.0" encoding="utf-8"?>
<a RestCode="199990093" DateTime="2019-12-18T17:17:58" Situation="1" seqnumber="1" guid="{9ECCB1B5-97EE-4B88-9840-8568F05586D0}" name="Started" ShiftNum="1" ShiftDate="2019-11-18T00:00:00">
<Station id="15003" code="1" name="MM_CASH" NetName="MM_CASH_169058"/>
<Server id="15002" code="15002" name="MM_MID" NetName="MM_MID"/>
<Item/>
</a>
XML
В нем указана расширенная информация о кассовом сервере и данные о кассовой станции. Данный механизм позволяет разделить события загрузки кассового сервера и кассовой станции для их раздельной обработки.
Указанный в примере GUID не является константой.
Поддерживаемые команды, передающиеся драйвером в атрибуте Situation:
Situation Событие Описание 1 Started Запуск станции обслуживания Событие отправляется в момент запуска станции обслуживания (doscash.exe). Станция указывается в тэге Station передаваемого xml
Пример xml
<?xml version="1.0" encoding="utf-8"?><a RestCode="133820009" DateTime="2023-11-10T09:48:35" Situation="1" seqnumber="1" guid="{9ECCB1B5-97EE-4B88-9840-8568F05586D0}" name="Started" ShiftNum="347" ShiftDate="2023-09-25T00:00:00"> <Station id="15003" code="1" name="ST01" guid="{85755F28-063F-4FEB-86C2-10500FE25C3F}" NetName="ST01"/> <Server id="15001" code="15001" name="MIDSERVER" guid="{5C64169B-64A6-4F48-B621-2453EB4A8007}" NetName="MIDSERVER"/> <Item/></a>
2 Main Menu Переход на станции обслуживания в главное меню
Событие отправляется при переходе в главное меню на станции обслуживания.
Пример xml
<?xml version="1.0" encoding="utf-8"?><a RestCode="199990366" DateTime="2023-11-09T15:51:22" Situation="2" seqnumber="58" guid="{84560B45-DAE3-4AF6-A625-2A12D086D770}" name="Main Menu" ShiftNum="36" ShiftDate="2023-10-24T00:00:00"> <Station id="15002" code="1" name="ST01" guid="{CAFDC4EC-B585-4287-8BD4-AA23ACE9BAAF}" NetName="ST01"/> <Server id="15001" code="15001" name="MIDSERVER" guid="{FF0E6A0A-BFAC-43A7-8416-10E2FB181A22}" NetName="MIDSERVER"/> <Waiter id="1000005" code="4" name="stend" guid="{523122F5-1188-42E5-9F1C-5558CD59E2DA}"> <Role id="100004" code="4" name="Кассиры" guid="{7D9DBADD-BA02-4319-B104-75933735D21F}"/> </Waiter> <Item> <RefItem id="19" code="19" name="Главное меню" guid="{CD3E7840-95B6-4912-8C07-E520D6CA0190}"/> </Item></a>
3 Order Changed Изменение заказа
Событие отправляется в момент внесения изменения в заказ на станции обслуживания, ДО фактического сохранения заказа. В теле запроса передается xml с составом заказа и ChangeLog.
Пример xml
<?xml version="1.0" encoding="utf-8"?><a RestCode="133820009" DateTime="2023-11-10T18:26:10" Situation="3" seqnumber="15" guid="{8A4AB428-B1AB-4301-A400-A3B889A1F7CA}" name="Order Changed" ShiftNum="322" ShiftDate="2023-11-02T00:00:00"> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Server id="15014" code="15014" name="MIDSERVER" guid="{D212B690-760C-41C1-A0A9-1114C9BABC0F}" NetName="MIDSERV"/> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Order visit="655369548" orderIdent="256" guid="{B3884E04-D074-420E-9281-5E6FC74C12FC}" url="http://code.ucs.ru/qr?id=D212B690760C41C1A0A91114C9BABC0FB3884E04D074420E92815E6FC74C12FC5AF3417B " orderName="т7" locked="1" version="0" crc32="431150315" orderSum="4410" unpaidSum="4410" discountSum="0" totalPieces="1000" seqNumber="6" paid="0" finished="0" persistentComment="" nonPersistentComment="" openTime="2023-11-10T18:25:53"> <Creator id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Creator> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <OrderCategory id="10033" code="1" name="Основная" guid="{1E113335-9F76-4CDF-A860-96ADB5D33E77}"/> <OrderType id="1" code="1" name="Общий" guid="{839218BA-96AE-4480-9DC1-50C802E13840}"/> <Table id="100053" code="107" name="т7" guid="{733CD936-CA49-4C07-898A-FDDBA5D1D848}"/> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}"/> <ExternalProps> <Prop name="{71F830D3-2DE3-4F74-B8F6-0BF199291C86}" value="{BACC15A2-3973-4CD9-A267-B14E1454DF78}"/> <Prop name="{7DC7AF79-1D00-4573-BE8A-A02C6FA3B430}" value="E10"/> </ExternalProps> </Order> <Session uni="2" line_guid="{7BC291B3-F9B0-4A91-996D-E2E1C6EDAEBF}" state="1" sessionID="2" isDraft="0" remindTime="2023-11-10T18:21:00" startService="2023-11-10T18:26:08" printed="0" cookMins="5"> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}"/> <Author id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Author> <Creator id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Creator> <Course id="100256" code="2" name="Без времен" guid="{22BFE438-E362-445A-9EB6-4B9EEAAC2E33}"/> <Dish id="100021" code="33" name="Чай зеленый" guid="{DB4A4719-6147-4383-B22E-C6CFB7134285}" uni="4" line_guid="{9438E19B-F691-411E-A89A-0A8AA076432F}" state="1" price="4200" amount="4410" new="1" sortOrder="0" quantity="1000" srcQuantity="1000"> <Modi id="100100" code="100" name="С сахаром" guid="{08B95829-2C17-4BB4-804A-86205FFFDEFA}" uni="12" line_guid="{36F92D15-D55B-4C38-BA9C-61F51042BF37}" state="1" count="1"/> </Dish> <PriceScale id="1002492" code="2" name="Д" guid="{964DB26D-9013-409D-AD36-29A6DC2658BF}"/> <TradeGroup id="100266" code="2" name="Вечернее меню" guid="{5606E4A4-11EB-47C9-AAC1-B479066831EA}"/> </Session> <Item/> <ChangeLog> <Dish id="100021" code="33" name="Чай зеленый" guid="{DB4A4719-6147-4383-B22E-C6CFB7134285}" uni="4" line_guid="{9438E19B-F691-411E-A89A-0A8AA076432F}" state="1" price="4200" amount="0" new="1" sortOrder="0" quantity="1000" srcQuantity="1000" number="1" oldvalue="0" newvalue="1000" OldStrValue="0.000" NewStrValue="1.000"> <Oper id="475" name="Блюдо" guid="{61FC8058-B5E0-49D8-8E11-46D2F7EADB7F}"/> </Dish> <Modi id="100100" code="100" name="С сахаром" guid="{08B95829-2C17-4BB4-804A-86205FFFDEFA}" uni="12" line_guid="{36F92D15-D55B-4C38-BA9C-61F51042BF37}" state="1" count="1" number="2" oldvalue="0" newvalue="1" OldStrValue="0" NewStrValue="1" new="1"> <Oper id="476" name="Модификатор" guid="{A2C569C2-E342-4F3A-811A-20E31D9F5C74}"/> </Modi> </ChangeLog></a>
4 Order recalc Расчет заказа
Событие отправляется в момент перехода в режим расчета на кассе, в теле запроса передается xml с составом заказа и ChangeLog. 5 Print Receipt Печать чека
Событие отправляется перед печатью чека, в теле запроса передается xml с составом заказа и ChangeLog.
Пример xml
<?xml version="1.0" encoding="utf-8"?><a RestCode="133820009" DateTime="2023-11-10T18:28:18" Situation="5" seqnumber="26" guid="{F7A07E9D-D2EA-4865-9DFF-43C6EAF2A8C7}" name="Print Receipt" ShiftNum="322" ShiftDate="2023-11-02T00:00:00"> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Server id="15014" code="15014" name="MIDSERV" guid="{D212B690-760C-41C1-A0A9-1114C9BABC0F}" NetName="MIDSERV"/> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Order visit="655369548" orderIdent="256" guid="{B3884E04-D074-420E-9281-5E6FC74C12FC}" url="http://code.ucs.ru/qr?id=D212B690760C41C1A0A91114C9BABC0FB3884E04D074420E92815E6FC74C12FC5AF3417B " orderName="9548/1" version="3" crc32="431150315" orderSum="4410" unpaidSum="0" discountSum="0" totalPieces="1000" seqNumber="6" paid="1" finished="1" persistentComment="" nonPersistentComment="" openTime="2023-11-10T18:25:53" kdsstate="sent"> <Creator id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Creator> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <OrderCategory id="10033" code="1" name="Основная" guid="{1E113335-9F76-4CDF-A860-96ADB5D33E77}"/> <OrderType id="1" code="1" name="Общий" guid="{839218BA-96AE-4480-9DC1-50C802E13840}"/> <Table id="100053" code="107" name="т7" guid="{733CD936-CA49-4C07-898A-FDDBA5D1D848}"/> <GuestType id="1" code="1" name="Студенты" guid="{0FD823B9-1645-42A7-9028-C69A98CE190A}"/> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}"/> <Guests count="2"> <Guest guestLabel="1"/> <Guest guestLabel="2"/> </Guests> <ExternalProps> <Prop name="{71F830D3-2DE3-4F74-B8F6-0BF199291C86}" value="{BACC15A2-3973-4CD9-A267-B14E1454DF78}"/> <Prop name="{7DC7AF79-1D00-4573-BE8A-A02C6FA3B430}" value="E10"/> </ExternalProps> </Order> <Session uni="2" line_guid="{7BC291B3-F9B0-4A91-996D-E2E1C6EDAEBF}" state="6" sessionID="2" isDraft="0" remindTime="2023-11-10T18:26:32" startService="2023-11-10T18:26:08" readyTime="2023-11-10T18:26:00" printed="1" cookMins="5"> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}"/> <Author id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Author> <Creator id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Creator> <Course id="100256" code="2" name="Без времен" guid="{22BFE438-E362-445A-9EB6-4B9EEAAC2E33}"/> <Dish id="100021" code="33" name="Чай зеленый" guid="{DB4A4719-6147-4383-B22E-C6CFB7134285}" uni="4" line_guid="{9438E19B-F691-411E-A89A-0A8AA076432F}" state="6" price="4200" amount="4410" kdsstate="sent" paidAmount="4410" sortOrder="0" quantity="1000" srcQuantity="1000"> <Modi id="100100" code="100" name="С сахаром" guid="{08B95829-2C17-4BB4-804A-86205FFFDEFA}" uni="12" line_guid="{36F92D15-D55B-4C38-BA9C-61F51042BF37}" state="6" count="1"/> </Dish> <Pay id="1" code="1" name="Рубли" guid="{16D72549-14D8-4F31-9E2A-0A833D4F5EED}" uni="15" line_guid="{B14CDB9A-15BC-40CD-996F-3EC5C786C274}" state="6" amount="4410" basicSum="4410"/> <PriceScale id="1002492" code="2" name="Д" guid="{964DB26D-9013-409D-AD36-29A6DC2658BF}"/> <TradeGroup id="100266" code="2" name="Вечернее меню" guid="{5606E4A4-11EB-47C9-AAC1-B479066831EA}"/> </Session> <Session uni="101" line_guid="{1E23DFB2-A58E-44BC-BBB3-13319912E59A}" state="1" sessionID="101" isDraft="0" remindTime="2023-11-10T18:28:00" startService="2023-11-10T18:28:18" printed="0" cookMins="0"> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}"/> <Author id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Author> <Creator id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Creator> <Course id="100256" code="2" name="Без времен" guid="{22BFE438-E362-445A-9EB6-4B9EEAAC2E33}"/> <PriceScale id="1002492" code="2" name="Д" guid="{964DB26D-9013-409D-AD36-29A6DC2658BF}"/> <TradeGroup id="100266" code="2" name="Вечернее меню" guid="{5606E4A4-11EB-47C9-AAC1-B479066831EA}"/> </Session> <Session uni="1" line_guid="{E0A5B289-1395-436A-A8F3-D2E40BE92CAC}" state="6" sessionID="1" isDraft="0" remindTime="2023-11-10T18:26:23" startService="2023-11-10T18:25:53" printed="0" cookMins="0"> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}"/> <Author id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Author> <Creator id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Creator> <PrintCheck uni="3" line_guid="{77F95983-513A-44F9-8007-B9FBDCFCC383}" state="6" amount="4410" CheckNum="107282" GlobalFiscalID="12345:17:8:2023-11-10T18:26:32" deleted="0" printTime="2023-11-10T18:26:23" startTime="2023-11-10T18:26:17"> <Author id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Author> <Pay id="1" code="1" name="Рубли" guid="{16D72549-14D8-4F31-9E2A-0A833D4F5EED}" uni="15" line_guid="{B14CDB9A-15BC-40CD-996F-3EC5C786C274}" state="6" amount="4410" basicSum="4410"/> </PrintCheck> <PriceScale id="1002492" code="2" name="Д" guid="{964DB26D-9013-409D-AD36-29A6DC2658BF}"/> <TradeGroup id="100266" code="2" name="Вечернее меню" guid="{5606E4A4-11EB-47C9-AAC1-B479066831EA}"/> </Session> <Item ClassName="tPrintCheckItem" uni="3"/> <ChangeLog> <Dish id="100021" code="33" name="Чай зеленый" guid="{DB4A4719-6147-4383-B22E-C6CFB7134285}" uni="4" line_guid="{9438E19B-F691-411E-A89A-0A8AA076432F}" state="1" price="4200" amount="0" new="1" sortOrder="0" quantity="1000" srcQuantity="1000" number="1" oldvalue="0" newvalue="1000" OldStrValue="0.000" NewStrValue="1.000"> <Oper id="475" name="Блюдо" guid="{61FC8058-B5E0-49D8-8E11-46D2F7EADB7F}"/> </Dish> <Modi id="100100" code="100" name="С сахаром" guid="{08B95829-2C17-4BB4-804A-86205FFFDEFA}" uni="12" line_guid="{36F92D15-D55B-4C38-BA9C-61F51042BF37}" state="1" count="1" number="2" oldvalue="0" newvalue="1" OldStrValue="0" NewStrValue="1" new="1"> <Oper id="476" name="Модификатор" guid="{A2C569C2-E342-4F3A-811A-20E31D9F5C74}"/> </Modi> <PrintCheck uni="3" line_guid="{77F95983-513A-44F9-8007-B9FBDCFCC383}" state="1" amount="4410" unpaidSum="4410" CheckNum="0" deleted="0" startTime="2023-11-10T18:26:17" number="3"> <Oper id="420" name="Расcчитать чек" guid="{0695DA2C-170C-419B-AFDE-43C297C8988C}"/> </PrintCheck> <Pay id="1" code="1" name="Рубли" guid="{16D72549-14D8-4F31-9E2A-0A833D4F5EED}" uni="15" line_guid="{B14CDB9A-15BC-40CD-996F-3EC5C786C274}" state="1" amount="4410" basicSum="4410" number="4" new="1"> <Oper id="480" name="Оплаты" guid="{4AA77EE2-6D3C-4780-8EBD-5C7B9F4BC4CE}"/> </Pay> <PrintCheck uni="3" line_guid="{77F95983-513A-44F9-8007-B9FBDCFCC383}" state="1" amount="4410" CheckNum="0" deleted="0" startTime="2023-11-10T18:26:17" number="5" changed="1"> <Oper id="459" name="Закрыть чек" guid="{BFB33FC0-A377-4B22-A244-0371E4E5843F}"/> </PrintCheck> </ChangeLog></a>
6 Open Drawer Открытие денежного ящикаСобытие отправляется в момент открытия денежного ящика на кассе. В теле запроса передается xml с составом заказа
7 Print Report Печать отчетаСобытие отправляется в момент печати отчета. Распечатываемый отчет указывается в тэге Item/RefItem передаваемого xml.
Пример запроса
<a RestCode="199990001" DateTime="2023-11-07T09:42:29" Situation="7" seqnumber="9" guid="{6BD2F6E6-82EF-403E-8FBF-0C082BD26944}" name="Print Report" ShiftNum="1503" ShiftDate="2023-11-07T00:00:00"> <Station id="15015" code="5" name="MIDSERVER" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Server id="15014" code="15014" name="ST01" guid="{D212B690-760C-41C1-A0A9-1114C9BABC0F}" NetName="ST01"/> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item> <RefItem id="15" code="15" name="Общий сменный отчет" guid="{2AEF7412-A27E-4BE5-87A5-4B7617728FD6}"/> </Item></a>
8 Order Transfer Перенос блюдСобытие отправляется при переносе блюда из заказа в другой заказ. В теле запроса передается xml с составами заказов FromOrder и ToOrder, блюдо указывается в тэге ChangeLog/Dish .
Пример запроса
<?xml version="1.0" encoding="utf-8"?><a RestCode="133820001" DateTime="2019-11-12T11:45:29" Situation="8" seqnumber="16" guid="{6EE0F3CE-A621-4FA8-8134-87C35FC24E09}" name="Order Transfer" ShiftNum="268" ShiftDate="2019-09-13T00:00:00"> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Server id="15014" code="15014" name="MIDSERVER" guid="{D212B690-760C-41C1-A0A9-1114C9BABC0F}" NetName="MIDSERVER"/> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item/> <FromOrder visit="655368770" orderIdent="256" guid="{3DFB76EF-8A42-4672-9C9C-65D716109025}" url="http://code.ucs.ru/qr?id=D212B690760C41C1A0A91114C9BABC0F3DFB76EF8A4246729C9C65D716109025EC55E1D6 " orderName="т7.1" version="6" crc32="0" orderSum="0" unpaidSum="0" discountSum="0" totalPieces="0" seqNumber="27" paid="1" finished="0" persistentComment="" nonPersistentComment="" openTime="2019-11-11T15:54:39"> <Creator id="1" code="1" name="Administrator"> <Role id="100007" code="21" name="Администраторы"/> </Creator> <Waiter id="1" code="1" name="Administrator"> <Role id="100007" code="21" name="Администраторы"/> </Waiter> <OrderCategory id="10033" code="1" name="Основная"/> <OrderType id="10069" code="9001" name="не выбрано"/> <Table id="100053" code="107" name="т7"/> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> </FromOrder> <Session printed="1"> <Dish id="101763" code="38" name="Борщ" uni="402" line_guid="{5A21D86E-58AE-4411-AF0B-D0AD242F615C}" state="4" guid="{3A879988-32CB-4230-B9D0-A16FC961DAB3}" price="5000" amount="5000" kdsstate="sent" quantity="1000" srcQuantity="1000"> <Modi id="102705" code="49" name="Майонез" uni="406" line_guid="{6774BB31-3D54-4F8E-B502-28A833657686}" state="4" guid="{B94730AC-943A-4894-AF64-6618528ED799}" count="3" isDefault="1"/> </Dish> </Session> <ToOrder visit="655368769" orderIdent="256" guid="{22AED268-852B-4814-A099-8837872F2B46}" url="http://code.ucs.ru/qr?id=D212B690760C41C1A0A91114C9BABC0F22AED268852B4814A0998837872F2B46975EAD69 " orderName="т7" locked="1" version="7" crc32="-341457193" orderSum="15000" unpaidSum="15000" discountSum="0" totalPieces="2000" seqNumber="26" paid="0" finished="0" persistentComment="" nonPersistentComment="" openTime="2019-11-11T15:53:06"> <Creator id="1" code="1" name="Administrator"> <Role id="100007" code="21" name="Администраторы"/> </Creator> <Waiter id="1" code="1" name="Administrator"> <Role id="100007" code="21" name="Администраторы"/> </Waiter> <OrderCategory id="10033" code="1" name="Основная"/> <OrderType id="10069" code="9001" name="не выбрано"/> <Table id="100053" code="107" name="т7"/> <Station id="15015" code="5" name="ST01" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> </ToOrder> <ChangeLog> <Dish id="101763" code="38" name="Борщ" uni="402" line_guid="{5A21D86E-58AE-4411-AF0B-D0AD242F615C}" state="4" guid="{3A879988-32CB-4230-B9D0-A16FC961DAB3}" price="5000" amount="5000" kdsstate="sent" quantity="1000" srcQuantity="1000" number="1" changed="1"> <Oper id="255" name="Перенос блюд из заказа" guid="{6F82D5CD-3A36-4190-BEB0-F37B7D594741}"/> </Dish> </ChangeLog></a>
9 Quit Order Выход из заказаСобытие отправляется при выходе из заказа. В теле запроса передается xml с составом заказа.
10 Unregistered Конец сессии Событие отправляется в момент отмены регистрации на кассе. Работник передается в тэге Waiter
Пример XML
<?xml version="1.0" encoding="utf-8"?><a RestCode="199990366" DateTime="2023-11-09T15:51:43" Situation="10" seqnumber="61" guid="{F1BC366C-A009-4FFB-9D82-5493C6EF80FC}" name="Unregistered" ShiftNum="36" ShiftDate="2023-10-24T00:00:00"> <Station id="15015" code="5" name="MIDSERVER" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Server id="15014" code="15014" name="ST01" guid="{D212B690-760C-41C1-A0A9-1114C9BABC0F}" NetName="ST01"/> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item/></a>
11 New Order Создание заказа
Событие отправляется в момент создания заказа на кассе. В теле запроса передается xml с составом заказа.
12 Open Order Вход в редактор заказа
Событие отправляется в момент, когда на кассе существующий заказ открывается на редактирование. В теле запроса передается xml с составом заказа.
13 Save Order Сохранение заказа
Событие отправляется в момент сохранения заказа. В теле запроса передается xml с составом заказа.
14 Delete Receipt Удаление чека
Событие отправляется перед удалением чека. В теле запроса передается xml с составом заказа.
15 Print Bill Печать пречека
Событие отправляется перед печатью пречека. В теле запроса передается xml с составом заказа.
16 Undo Bill Отмена пречека
Событие отправляется перед отменой пречека. В теле запроса передается xml с составом заказа. Отменяемый пречек передается в тэге ChangeLog/PrintCheck
17 Main Selector Navigation Переход по группам меню на кассе
Событие отправляется в момент перехода между группами меню на кассе
18 Exit
Выход из программы
Событие отправляется в момент завершения приложения.
19 Confirm Save Order Подтверждение сохранения заказа
Событие отправляется перед сохранением заказа, в момент появления сообщения "Сохранить заказ?" на кассе. В теле запроса передается xml с составом заказа.
20 Order Props Changed Редактирование свойств заказа
Событие отправляется в момент закрытия формы Редактирований свойств заказа на кассе. В теле запроса передается xml с составом заказа.
21 Login Вход на кассу
Событие отправляется в момент логина на кассу. Работник указывается в тэге Waiter.
Пример
<?xml version="1.0" encoding="utf-8"?><a RestCode="133820009" DateTime="2023-11-10T18:25:49" Situation="21" seqnumber="3" guid="{81A89081-D394-4070-BD37-A8E54CCA7B56}" name="Login" ShiftNum="322" ShiftDate="2023-11-02T00:00:00"> <Station id="15015" code="5" name="MIDSERVER" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Server id="15014" code="15014" name="ST01" guid="{D212B690-760C-41C1-A0A9-1114C9BABC0F}" NetName="ST01"/> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item/></a>
22 Open window Открытие окна
Событие отправляется в момент открытия формы на кассе, открываемая форма указывается в тэге Item/RefForm
Пример
<?xml version="1.0" encoding="utf-8"?><a RestCode="133820009" DateTime="2023-11-10T18:28:19" Situation="22" seqnumber="29" guid="{10D5E4EE-F277-4AA4-83CD-75CCAEDF62C0}" name="Open window" ShiftNum="322" ShiftDate="2023-11-02T00:00:00"> <Station id="15015" code="5" name="MIDSERVER" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Server id="15014" code="15014" name="ST01" guid="{D212B690-760C-41C1-A0A9-1114C9BABC0F}" NetName="ST01"/> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item> <RefItem id="14" code="14" name="Выбор заказа" guid="{6FBCEB3B-B88E-43F2-9D9D-3025986851B9}"/> <Form id="14" code="14" name="Выбор заказа" guid="{6FBCEB3B-B88E-43F2-9D9D-3025986851B9}"/> <PrevForm id="7" code="7" name="Редактирование заказа" guid="{3D496F06-4D63-4BDB-AABA-4BBC0BAF5C9C}"/> </Item></a>
23 Close Drawer Закрытие денежного ящика
Событие отправляется в момент закрытия денежного ящика на кассе.
24 Start Print Receipt Начало печати чека
Событие отправляется перед началом печати чека. В теле запроса передается xml с составом заказа.
25 Slide PDS Card Применение карты лояльности
Событие отправляется в момент применения карты лояльности на кассе. В теле запроса передается xml с составом заказа и информация о карте Пример
<?xml version="1.0" encoding="utf-8"?><a RestCode="199990366" DateTime="2023-11-09T15:38:44" Situation="25" seqnumber="12" guid="{E4F45ED3-E64D-48B0-AFE8-7A258AF1421D}" name="Slide PDS Card" ShiftNum="36" ShiftDate="2023-10-24T00:00:00"> <Station id="15015" code="5" name="MIDSERVER" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Server id="15014" code="15014" name="ST01" guid="{D212B690-760C-41C1-A0A9-1114C9BABC0F}" NetName="ST01"/> <Waiter id="1" code="1" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="21" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Order visit="571016663" orderIdent="256" guid="{F64FE834-0332-42F8-BF59-3AC0F3E54786}" url="http://code.ucs.ru/qr?id=FF0E6A0ABFAC43A7841610E2FB181A22F64FE834033242F8BF593AC0F3E5478625EE6D08 " orderName="1495/1" locked="1" version="1" crc32="0" orderSum="0" unpaidSum="0" discountSum="0" totalPieces="0" seqNumber="20" paid="1" finished="0" persistentComment="" nonPersistentComment="" openTime="2023-11-09T15:38:40"> <Creator id="1000005" code="4" name="stend" guid="{523122F5-1188-42E5-9F1C-5558CD59E2DA}"> <Role id="100004" code="4" name="Кассиры" guid="{7D9DBADD-BA02-4319-B104-75933735D21F}"/> </Creator> <Waiter id="1000005" code="4" name="stend" guid="{523122F5-1188-42E5-9F1C-5558CD59E2DA}"> <Role id="100004" code="4" name="Кассиры" guid="{7D9DBADD-BA02-4319-B104-75933735D21F}"/> </Waiter> <OrderCategory id="10033" code="1" name="Основная" guid="{1E113335-9F76-4CDF-A860-96ADB5D33E77}"/> <OrderType id="10069" code="9001" name="не выбрано" guid="{73E244F8-F966-4E40-810A-6B4B77D3456D}"/> <Station id="15015" code="5" name="MIDSERVER" guid="{BD750BEA-A000-46C6-AB16-75505D28C747}" NetName="ST01"/> <Guests count="1"> <Guest guestLabel="1"/> </Guests> <ExternalProps> <Prop name="{71F830D3-2DE3-4F74-B8F6-0BF199291C86}" value="{BACC15A2-3973-4CD9-A267-B14E1454DF78}"/> <Prop name="{7DC7AF79-1D00-4573-BE8A-A02C6FA3B430}" value="A56"/> </ExternalProps> </Order> <Item> <CardInfo cardcode="10900123" maxamount="100000" amount="100000" maxdisc="0"> <Interface id="1000362" code="21" name="Киоск оплата на кассе" guid="{601054C8-C6A4-43C9-A8DE-7CB2B182DBAC}"/> <Discount id="0" code="0"/> <BonusType id="0" code="0"/> <Defaulter id="0" code="0"/> <DopInfo/> </CardInfo> </Item></a>
26 Correction check Печать чека коррекции
Событие отправляется в момент печати чека коррекции на кассе. В теле запроса передается xml с составом заказа
27 Добавление блюда в ограниченные
Событие записывается в момент добавления блюда в ограниченные.
Пример
<?xml version="1.0" encoding="utf-8"?> <a RestCode="199990539" DateTime="2025-10-16T11:02:48" Situation="29" seqnumber="10" guid="{70C60903-C878-4B3D-9B52-58E8E7087CDD}" name="Dish Rest Changed" sender_info="rk7" ShiftNum="10" ShiftDate="2025-10-15T00:00:00"> <Station id="15003" code="1" name="01 Главная касса" guid="{0EBA96B1-4CCC-40D0-A48D-8DF416C39E23}" NetName="TWCASH01"/> <Server id="15002" code="15002" name="Кассовый Сервер" guid="{0F0B4807-7FF8-42B9-9B0C-96443ED7F10F}" NetName="TW_MIDSRV"/> <Waiter id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="7" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item id="1002802" code="375" name="кашка 2" guid="{AB1A9717-09A3-4454-B390-1D0DC7AD2E4F}" quantity="1000" action="new"> <Author id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"/> </Item></a>
28 Изменение остатка
Событие записывается в момент изменения остатка.
Пример
<?xml version="1.0" encoding="utf-8"?> <a RestCode="199990539" DateTime="2025-10-16T10:43:45" Situation="29" seqnumber="3" guid="{70C60903-C878-4B3D-9B52-58E8E7087CDD}" name="Dish Rest Changed" sender_info="rk7" ShiftNum="10" ShiftDate="2025-10-15T00:00:00"> <Station id="15003" code="1" name="01 Главная касса" guid="{0EBA96B1-4CCC-40D0-A48D-8DF416C39E23}" NetName="TWCASH01"/> <Server id="15002" code="15002" name="Кассовый Сервер" guid="{0F0B4807-7FF8-42B9-9B0C-96443ED7F10F}" NetName="TW_MIDSRV"/> <Waiter id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="7" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item id="1002802" code="375" name="кашка 2" guid="{AB1A9717-09A3-4454-B390-1D0DC7AD2E4F}" quantity="3000" action="changed"> <Author id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"/> </Item></a>
29 Удаление блюда из ограниченных
Событие записывается в момент удаления блюда из ограниченных.
Пример
<?xml version="1.0" encoding="utf-8"?> <a RestCode="199990539" DateTime="2025-10-16T10:46:45" Situation="29" seqnumber="7" guid="{70C60903-C878-4B3D-9B52-58E8E7087CDD}" name="Dish Rest Changed" sender_info="rk7" ShiftNum="10" ShiftDate="2025-10-15T00:00:00"> <Station id="15003" code="1" name="01 Главная касса" guid="{0EBA96B1-4CCC-40D0-A48D-8DF416C39E23}" NetName="TWCASH01"/> <Server id="15002" code="15002" name="Кассовый Сервер" guid="{0F0B4807-7FF8-42B9-9B0C-96443ED7F10F}" NetName="TW_MIDSRV"/> <Waiter id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="7" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item id="1002802" code="375" name="кашка 2" guid="{AB1A9717-09A3-4454-B390-1D0DC7AD2E4F}" quantity="0" action="deleted"> <Author id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"/> </Item></a>
30 Добавление блюда в запрещенные
Событие записывается в момент добавления блюда в запрещенные.
Пример
<?xml version="1.0" encoding="utf-8"?> <a RestCode="199990539" DateTime="2025-10-16T10:59:34" Situation="29" seqnumber="8" guid="{70C60903-C878-4B3D-9B52-58E8E7087CDD}" name="Dish Rest Changed" sender_info="rk7" ShiftNum="10" ShiftDate="2025-10-15T00:00:00"> <Station id="15003" code="1" name="01 Главная касса" guid="{0EBA96B1-4CCC-40D0-A48D-8DF416C39E23}" NetName="TWCASH01"/> <Server id="15002" code="15002" name="Кассовый Сервер" guid="{0F0B4807-7FF8-42B9-9B0C-96443ED7F10F}" NetName="TW_MIDSRV"/> <Waiter id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="7" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item id="1002802" code="375" name="кашка 2" guid="{AB1A9717-09A3-4454-B390-1D0DC7AD2E4F}" prohibited="1" action="new"> <Author id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"/> <Reason id="1002718" code="7" name="тест 123" guid="{9579EDC5-6243-46D4-9C46-DB576700BDAD}"/> </Item></a>
31 Удаление блюда из запрещенных
Событие записывается в момент удаления блюда из запрещенных.
Пример
<?xml version="1.0" encoding="utf-8"?> <a RestCode="199990539" DateTime="2025-10-16T11:01:23" Situation="29" seqnumber="9" guid="{70C60903-C878-4B3D-9B52-58E8E7087CDD}" name="Dish Rest Changed" sender_info="rk7" ShiftNum="10" ShiftDate="2025-10-15T00:00:00"> <Station id="15003" code="1" name="01 Главная касса" guid="{0EBA96B1-4CCC-40D0-A48D-8DF416C39E23}" NetName="TWCASH01"/> <Server id="15002" code="15002" name="Кассовый Сервер" guid="{0F0B4807-7FF8-42B9-9B0C-96443ED7F10F}" NetName="TW_MIDSRV"/> <Waiter id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"> <Role id="100007" code="7" name="Администраторы" guid="{BC3C91C4-1899-464E-ABF0-ECDE9FE0066C}"/> </Waiter> <Item id="1002802" code="375" name="кашка 2" guid="{AB1A9717-09A3-4454-B390-1D0DC7AD2E4F}" prohibited="1" action="deleted"> <Author id="1" code="7" name="Администратор" guid="{D388DF80-FAFA-44EA-9D2C-348879E82F27}"/> <Reason id="1002718" code="7" name="тест 123" guid="{9579EDC5-6243-46D4-9C46-DB576700BDAD}"/> </Item></a>
Лицензирование интерфейса HTTP Order Notify Если требуется более одного подключения, необходимо лицензировать интерфейс HttpOrderNotify. Активировать лицензию следует начиная с версии 7.6.5.459 . Лицензия в системе лицензирования называется R-Keeper модуль Интерфейс уведомлений о заказах 12 мес ПО . Подробный процесс получения лицензии описан в статье Генерация лицензий без кода запроса
Интерфейс HTTP Order Notify HTTP Order Notify работает на стороне кассового сервера к которому подключена кассовая станция. Драйвер добавляется на кассовый сервер. Для корректной загрузки драйвера необходимо привязать к нему интерфейс для кассового сервера. Об этом ниже.
Для версий r_keeper младше 7.6.5 Добавьте драйвер HTTP Order Notify на кассовый сервер:
Параметры:
Название Описание и возможные значения Log File Путь к файлу, который будет использоваться в качестве лога действий драйвера. Может отсутствовать, но в этом случае будет затруднено выявление проблем при работе LogLevel
Уровень логирования, может принимать одно из трех значений:
0 - errors only — В этом режиме в лог попадают только самые важные сообщения (например информация о загрузке интерфейса), либо сообщения о произошедших ошибках: превышение количества событий в очереди, сбой отправки данных на HTTP сервер и т.п. 1 - input xmls and errors — В этом режиме в дополнение к режиму errors only добавляются некоторые важные сообщения, например старт отправки XML на адрес HTTP-сервера. 2 - max log — Наиболее полный режим логирования, содержит максимально подробную информацию о работе драйвера, включая входящие и исходящие XML, текущее состояние очереди отправки и др. DestURLs HTTP-адрес, на который будет производится отправка данных. Задается в общепринятом формате адресов URL. Может содержать только один адрес. При необходимости отправки данных на несколько HTTP-серверов для каждого из них должен быть добавлен свой драйвер HTTP Order Notify
Для загрузки драйвера кассовым сервером привяжите его к интерфейсу:
В менеджерской станции перейдите на вкладку сервис Нажмите на вкладку Интерфейсы В справочнике добавьте новый интерфейс и заполните параметры: Название Описание и значение [Название кассового сервера] выберите драйвер, добавленный на кассовый сервер Общее имя DLL укажите имя файла драйвера, всегда httpnotf.dll
4. Перезагрузите кассовый сервер
Для версии r_keeper 7.6.5 Параметры работы драйвера настраиваются в свойствах кассового сервера в разделе HTTP Order Notify
Параметры :
Название Описание и возможные значения Имя файла лога Путь к файлу, который будет использоваться в качестве лога действий драйвера. Может отсутствовать, но в этом случае будет затруднено выявление проблем при работе. К имени файла лога добавляется порядковый номер адреса в списке адресов, начиная с нуля. Т.е. если имя файла лога httpnotf.stk, то для первого адреса подписки имя файла будет httpnotf0.stk, для второго - httpnotf1.stk и т.д. Уровень лога
Уровень логирования, может принимать одно из трех значений:0 - Только ошибки — В этом режиме в лог попадают только самые важные сообщения (например информация о загрузке интерфейса), либо сообщения о произошедших ошибках: превышение количества событий в очереди, сбой отправки данных на HTTP сервер и т.п. 1 - XML и ошибки — В этом режиме в дополнение к режиму "Только ошибки" добавляются некоторые важные сообщения, например старт отправки XML на адрес HTTP-сервера 2 - Полная информация — Наиболее полный режим логирования, содержит максимально подробную информацию о работе драйвера, включая входящие и исходящие XML, текущее состояние очереди отправки и др. DestURLs HTTP-адреса, на которые будет производится отправка данных. Задаются в общепринятом формате адресов URL. Может содержать несколько адресов, разделенных точкой с запятой. На указание нескольких адресов действуют ограничения по лицензированию .
Значение параметра DestURLs используется только при старте кассового сервера. Изменив этот параметр, перезапустите кассовый сервер для изменения списка адресов. Чтобы список адресов изменился во время работы сервера, используйте механизм подписок.
Подробности настройки Http Order Notify
Для r_keeper 7.6.5 и старше Начиная с версии 7.6.5.371 настройки Http Order Notify переместились из Устройств в свойства кассового сервера . Порядок действий для этих версий такой:
В параметре драйвера DestURLs пропишите строку подключения в виде:https ://имя_пользователя :пароль_пользователя @адрес_сервера_KDS_PRO :порт_сервера_KDS_PRO /orderTaker Сохраните изменения Перезапустите кассовый сервер Если требуется указать несколько строчек подключения, их можно указать через точку запятой ";". Например: http://127.0.0.1:2121/api/httpNotify/postOrders;https://127.0.0.1:1234/orderTaker
Если используется несколько строчек подключения, необходимо пролицензировать свойство кассового сервера HTTP Order Notify. Подробнее читайте в статье Лицензирование .
Если строка DestURLs слишком длинная и по какой-то причине обрезается в свойстве кассового сервера, то можно использовать механизм подписок. Для подписки на отправку, чтобы кассовый сервер начал отправлять уведомления об изменениях заказа, нужно вызвать POST-запрос (любым удобным для вас способом, например с помощью Postman) к кассовому серверу:
https://127.0.0.1:8001/rk7api/v1/subscribe.xml?service=httpnotf&url=https://HTTP_KDS2:1@172.18.2.2:1234/orderTaker
где
Параметр Назначение service Наименование сервиса, должно быть httpnotf url url, на который нужно выполнять отправку уведомлений
Указанный в параметре url адрес будет добавлен к списку существующих адресов рассылки.
Пример строки: https://127.0.0.1:8010/rk7api/v1/subscribe.xml?service=httpnotf&url=http://192.168.0.222:2121/api/httpNotify/postOrders
Для отказа от подписки этого нужно вызвать DELETE-запрос
https://127.0.0.1:8001/rk7api/v1/subscribe.xml?service=httpnotf&url=https://HTTP_KDS2:1@172.18.2.2:1234/orderTaker
Переданный в параметре url адрес будет исключен из списка рассылок. Если в очереди оставались сообщения, то отправлены они не будут.
Для r_keeper младше 7.6.5
Если же у вас версия r_keeper меньше 7.6.5, то интерфейс HTTP Order Notify необходимо на кассовый сервер добавить самостоятельно. Инструкция ниже
Для работы KDS PRO требуется драйвер не ниже 18 версии. Поэтому, если ваша версия ниже — перед добавлением интерфейса на кассовый сервер, скачайте драйвер с FTP: ftp://ftp.ucs.ru/rk7/other/KDS_PRO/Extra_Files/httpnotf.udb Скопируйте файл httpnotf.udb с заменой в папку сервера справочников Перезапустите кассовый сервер Добавьте на кассовый сервер драйвер HTTP Order Notify:
Настройте драйвер для всех кассовых серверов по необходимости. В параметре драйвера DestURLs пропишите строку подключения в виде:https ://имя_пользователя :пароль_пользователя @адрес_сервера_KDS_PRO :порт_сервера_KDS_PRO /orderTaker
Имя пользователя и пароль указывать не обязательно. Вписывайте их только, если они есть в личном кабинете. Эти данные есть в личном кабинете, их описание ниже . Порт сервера находится в файле настроек kds_pro.config . Перейдите в Сервис > Интерфейсы и создайте новый интерфейс В разделе Файлы библиотек (DLL) выберите нужный ресторан и укажите драйвер кассовому серверу HTTP Order Notify Активируйте интерфейс и сохраните.
В версиях старше r_keeper 7.6.5 драйвер HTTP Order Notify работает только через механизм подписок, использование интерфейса не поддерживается.
Механизм подписок Для отправки кассовым сервером уведомлений об изменениях отправьте POST-запрос к кассовому серверу:
https://127.0.0.1:8001/rk7api/v1/subscribe.xml?service=httpnotf&url=https://HTTP_KDS2:1@172.18.2.2:1234/orderTaker
XML
где:
Параметр Назначение service Наименование сервиса, должно быть httpnotf url URL, на который необходимо выполнять отправку уведомлений
Указанный в параметре URL адрес будет добавлен к списку существующих адресов рассылки. На него будет сразу отправлено событие с name=Started .
Если количество адресов превысит доступное, то r_keeper выдаст ошибку "HttpOrderNotify: address URL is disabled, license check failed"
Получить список подключенных адресов можно get-запросом:
https://127.0.0.1:хххх/rk7api/v1/subscribe.xml?service=httpnotf
XML
Отказ от подписки Для отказа от подписки отправьте DELETE-запрос
https://127.0.0.1:8001/rk7api/v1/subscribe.xml?service=httpnotf&url=https://HTTP_KDS2:1@172.18.2.2:1234/orderTaker
XML
Переданный в параметре url адрес будет исключен из списка рассылок. Если в очереди оставались сообщения, то отправлены они не будут.
Примеры XML Авторизация на кассовой станции
<?xml version="1.0" encoding="utf-8"?>
<a RestCode="199990093" DateTime="2019-12-18T17:18:00" Situation="21" seqnumber="3" guid="{81A89081-D394-4070-BD37-A8E54CCA7B56}" name="Login" ShiftNum="1" ShiftDate="2019-11-18T00:00:00">
<Station id="15003" code="1" name="MM_CASH" NetName="MM_CASH_169058"/>
<Server id="15002" code="15002" name="MM_MID" NetName="MM_MID"/>
<Waiter id="1" code="7" name="Администратор">
<Role id="100007" code="7" name="Администраторы"/>
</Waiter>
<Item/>
</a>
XML
Создание нового заказа
<?xml version="1.0" encoding="utf-8"?>
<a RestCode="199990093" DateTime="2019-12-18T17:18:33" Situation="11" seqnumber="13" guid="{833F0492-E8ED-4F34-81BC-8A9F4D73A995}" name="New Order" ShiftNum="1" ShiftDate="2019-11-18T00:00:00">
<Station id="15003" code="1" name="MM_CASH" NetName="MM_CASH_169058"/>
<Server id="15002" code="15002" name="MM_MID" NetName="MM_MID"/>
<Waiter id="1" code="7" name="Администратор">
<Role id="100007" code="7" name="Администраторы"/>
</Waiter>
<Order visit="477823977" orderIdent="256" guid="{763C7F09-875A-438A-B6CB-25F7D3F74741}" url="http://code.ucs.ru/qr?id=209A9A2B872A4728BEC8F0B09C667E6A763C7F09875A438AB6CB25F7D3F74741B6995A91" orderName="8888888888" locked="1" version="0" crc32="0" orderSum="0" unpaidSum="0" discountSum="0" totalPieces="0" seqNumber="1" paid="1" finished="0" persistentComment="" nonPersistentComment="" openTime="2019-12-18T17:18:32">
<Creator id="1" code="7" name="Администратор">
<Role id="100007" code="7" name="Администраторы"/>
</Creator>
<Waiter id="1" code="7" name="Администратор">
<Role id="100007" code="7" name="Администраторы"/>
</Waiter>
<OrderCategory id="10033" code="1" name="Основная"/>
<OrderType id="10069" code="9001" name="не выбрано"/>
<Table id="1000259" code="93" name="8888888888"/>
<Station id="15003" code="1" name="MM_CASH"/>
<Guests count="1">
<Guest guestLabel="1"/>
</Guests>
</Order>
<Session uni="2" line_guid="{39271E37-867D-41FF-99B8-59CB182323E9}" state="1" sessionID="2" isDraft="0" remindTime="2019-12-18T17:18:00" startService="2019-12-18T17:18:33" printed="0" cookMins="0">
<Station id="15003" code="1" name="MM_CASH"/>
<Author id="1" code="7" name="Администратор">
<Role id="100007" code="7" name="Администраторы"/>
</Author>
<Creator id="1" code="7" name="Администратор">
<Role id="100007" code="7" name="Администраторы"/>
</Creator>
<Course id="1" code="1" name="Готовить позже"/>
<PriceScale id="3" code="1" name="Основная"/>
<TradeGroup id="7" code="1" name="По умолчанию"/>
</Session>
<Item ClassName="TOrder"/>
</a>
XML
Решение проблем При работе драйвер добавляет информацию о своей работе в логи для упрощения локализации возникших проблем при работе. Регулярно возникающая проблема - данные не приходят на принимающий HTTP-сервер. Здесь следует проверить корректность указания адреса в параметре DestURLs драйвера и работоспособность HTTP-сервера. Если невозможно отправить данные, в логе будут сообщения с подстрокой "HTTP: Post error", например:
18.12.2019 16:25:32:343 HTTP: Post error: Socket Error # 10061
XML
Часто встречающиеся коды ошибок:
Код HTTP
Описание 10061 Connection refused - невозможно соединиться с сервером 10054 Connection reset by peer - соединение сброшено сервером
В этом случае необходимо проверить настройки HTTP-сервера
В сообщениях вида:
SEND_THREAD: Signal [Send] ENTER, items in queue: 19
XML
содержится информация о текущем количестве объектов в очереди. При достижении максимального значения в логе будет сообщение:
XML: Can't add command. Max queue size: 256
XML