You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

To enable the transmission of kiosk status metrics, navigate to Service Menu > Main Settings:

  • Enable the parameter Use metrics.
  • In the Metrics Service Base URL parameter, specify the address: https://rk-platform-monitoring.rkeeper.com.
  • Set the State Sending Interval (seconds) — default is 60 seconds.
  • Задайте A/B Testing tag for metrics — используется для дополнительной пометки метрик, значением может быть любая строка, проверки уникальности нет.

To retrieve data from the metrics service, you will need a Token. You can obtain the token by sending a request to the email: yaro@ucsrkeeper.at.

Request:

curl --location --request POST 'https://rk-platform-monitoring.rkeeper.com/api/v1/metrics/read' \
--header 'Authorization: Bearer <Token> \ The Token can be obtained by requesting at yaro@ucsrkeeper.at.
--header 'Content-Type: application/json' \
--data-raw '{
    "dateFrom": "2025-05-06T00:00:00Z",
    "dateTo": "2025-05-07T23:00:00Z",
    "cntFrom": 12000,
    "cntTo": 13000,
    "total": 100,
    "cashNetName": "KIOSK_1_STM",
    "champsID": "387K04",
    "objectCode": "527280004"
}'

  • dateFrom and dateTo — the time range for the metrics (from/to).
  • cntFrom and cntTo — the message counter range (field cnt).
  • total — the number of metrics to return in the response.
  • cashNetName — the kiosk name.
  • champsID — the kiosk's champsID.
  • objectCode — the kiosk object code.

 Also create a separate extended properties for the restaurant:

  • System NameGA_CUSTOM_ID
  • Types List — Restaurant.

In the Service > Stations and Devices directory for the restaurant, in the created extended property, specify ChampsID — the restaurant code in the global KFC system (data can be obtained from the Franchisee).


Пример ответа
[
     {
        "timestamp": "2025-07-08T14:57:51Z",
        "payload": {
            "typeData": "Time based event",
            "data": {
                "state": "Waiting window",
                "champsID": "234234234234211",
                "kioskName": {
                    "cashGuid": "{1E5C9B01-A065-48B0-882A-DDB46C22BC9C}",
                    "cashNetName": "RK7CASH004"
                },
                "kioskAppVersion": {
                    "back": " v0.0.383.21-rev.7b44ad92-j.42173",
                    "front": "0.0.330.21",
                    "theme": "KFCCee"
                },
                "objectCode": "199990001",
                "tagAB": "AAA"
            },
            "cnt": 21259
        }
    }
]
  • timestamp дата и время сохранения метрики в сервисе
  • payload - typeData тип метрики

  • payload - data — основная информация по метрике (зависит от типа метрики)

  • payload - cnt счетчик метрик. Для каждого киоска начинается с 1, увеличивается на 1 по мере отправки метрик с киоска.

Типы метрик (typeData):

  • References отправляем список активных касс и расписание ресторана, от которого работает киоск
  • Time based event отправляем название текущего экрана киоска раз в “Интервал отправки состояния (в секундах)
  • Event based event — отправляем информацию по оплате заказа или по отправке заказа для оплаты на кассе.

Общие поля для всех типов метрик:

  • champsID код ресторана в глобальной системе KFC. Здесь может быть вписано любой текст. Уникальность не проверяется
  • kioskName - cashGuid — Guid кассы, от которой работает киоск. В интерфейсе Менеджерской r_k это поле GUID
  • kioskName - cashNetName — сетевое имя кассы, от которой работает киоск. В интерфейсе Менеджерской r_k это поле Network ID

  • kioskAppVersion - back  полная версия бэк части киоска. 

    Значение поля из примера: v0.0.383.21-rev.7b44ad92-j.42173:

    • v0.0.383.21 — основная информация о версии бэк части киоска;
    • rev.7b44ad92-j.42173 — служебная информация.
  • kioskAppVersion - front — версия фронт части
  • kioskAppVersion - theme — используемая тема
  • objectCode — полный код ресторана, от которого работает киоск

  • tagAB - тэг АБ тестирования. Используется для дополнительной пометки метрик. Задается при первичных настройках киоска в параметре A/B Testing tag for metrics. Значением может быть произвольная строка, проверки уникальности нет.

Поля, зависящие от типа метрик (поле data):

Тип метрики References

Киоск отправляет список активных касс и расписание ресторана, от которого работает киоск.

Пример
{
        "timestamp": "2025-07-08T07:13:43Z",
        "payload": {
            "typeData": "References",
            "data": {
                "restaurantSchedule": [
                    {
                        "daysOfWeek": "[dwSunday]",
                        "startTime": 36000000,
                        "endTime": 72000000
                    },
                    {
                        "daysOfWeek": "[dwMonday]",
                        "startTime": 36000000,
                        "endTime": 72000000
                    },
                    {
                        "daysOfWeek": "[dwTuesday]",
                        "startTime": 36000000,
                        "endTime": 72000000
                    },
                    {
                        "daysOfWeek": "[dwWednesday]",
                        "startTime": 39600000,
                        "endTime": 75600000
                    },
                    {
                        "daysOfWeek": "[dwThursday]",
                        "startTime": 32400000,
                        "endTime": 54000000
                    },
                    {
                        "daysOfWeek": "[dwFriday]",
                        "startTime": 36000000,
                        "endTime": 72000000
                    },
                    {
                        "daysOfWeek": "[dwSaturday]",
                        "startTime": 60000,
                        "endTime": 86340000
                    }
                ],
                "cashes": [
                    {
                        "cashGuid": "{7F2B98A5-B365-41EB-A5EC-265E52F05AF1}",
                        "cashNetName": "3252_KIOSK_PRN_1"
                    },
                    {
                        "cashGuid": "{4EAF23A6-2623-401B-A705-88644A2D4976}",
                        "cashNetName": "3252_TER1"
                    },
                    {
                        "cashGuid": "{3F6CE085-1048-47BE-844C-9A3C45EE3851}",
                        "cashNetName": "3252_TER2"
                    },
                    {
                        "cashGuid": "{50EA4090-15D0-4E43-B22E-2324C5E8193A}",
                        "cashNetName": "3252_TER3"
                    },
                    {
                        "cashGuid": "{CEB84F65-0A96-48B4-9EA3-B31A25FFC4DD}",
                        "cashNetName": "3252_PRN"
                    },
                    {
                        "cashGuid": "{A0E029D9-D6D3-414E-9B30-19329677F940}",
                        "cashNetName": "3252_KIOSK_PRN_2"
                    },
                    {
                        "cashGuid": "{E089FA8A-8610-473E-B1AB-0ECC624F5A36}",
                        "cashNetName": "CASH_ONE"
                    }
                ],
                "champsID": "234234234234211",
                "kioskName": {
                    "cashGuid": "{A0E029D9-D6D3-414E-9B30-19329677F940}",
                    "cashNetName": "3252_KIOSK_PRN_2"
                },
                "kioskAppVersion": {
                    "back": " v0.0.383.21",
                    "front": "0.0.330.21",
                    "theme": "KFCCee"
                },
                "objectCode": "199990207",
                "tagAB": "AAA"
            },
            "cnt": 20461
        }
    }

  • restaurantSchedule  расписание работы ресторана:

    • daysOfWeek день недели
    • startTime время начала работы (время в миллисекундах от начала суток (00:00))
    • endTime время завершения работы (время в миллисекундах от начала суток (00:00)).
  • cashes список активных касс ресторана, от которого работает киоск:

    • cashGuid GUID кассы (в интерфейсе менеджерской r_k поле GUID);
    • cashNetName сетевое имя кассы (в интерфейсе менеджерской r_k поле Network ID)

Тип метрики Time based event

Киоск отправляет название текущего экрана киоска раз в “Интервал отправки состояния (в секундах)”.

Пример
{
	"typeData": "Time based event",
	"data": {
		"state": "Manager functions",
		"champsID": "234234234234211",
		"kioskName": {
			"cashGuid": "{1E5C9B01-A065-48B0-882A-DDB46C22BC9C}",
			"cashNetName": "RK7CASH004"
		},
		"kioskAppVersion": {
			"back": " v0.0.383.21",
			"front": "0.0.330.21",
			"theme": "KFCCee"
		},
		"objectCode": "199990001",
		"tagAB": "AAA"
	},
	"cnt": 20433
}

Варианты для поля state (описывает текущий экран на киоске):

  • Waiting window — начальный приветственный экран: киоск работает, им не пользуются на момент отправки метрики
  • Order — процесс работы с заказом. Начинается со входа в меню пользователем киоска
  • Manager functions — персонал выполняет работу в менеджерской киоска
  • Locked — киоск заблокирован
  • Error — на экране киоска ошибка (например, если при оплате пошло что-то не так). Сообщение выводится, киоск сохраняет работоспособность
  • Unknown — другой экран.

Тип метрики Event based event

Киоск отправляет информацию по оплате заказа или по отправке заказа для оплаты на кассе.

Пример
{
	"typeData": "Event based event",
	"data": {
		"orderResult": "successfully",
		"orderGuid": "{DCD36825-1EC0-44FC-8011-F568D18203B8}",
		"error": {
			"code": "0",
			"msg": "unknown"
		},
		"champsID": "234234234234211",
		"kioskName": {
			"cashGuid": "{1E5C9B01-A065-48B0-882A-DDB46C22BC9C}",
			"cashNetName": "RK7CASH004"
		},
		"kioskAppVersion": {
			"back": " v0.0.383.21",
			"front": "0.0.309.21",
			"theme": "KFCMena"
		},
		"objectCode": "199990001",
		"tagAB": "AAA"
	},
	"cnt": 20418
}

  • orderResult — результат работы с заказом. 

    Возможные варианты заполнения: 

    • Successfully — заказ успешно оплачен
    • Failed — при оплате произошла ошибка
    • Error_sending — ошибка при отправке заказа для оплаты на кассе
    • Sended — заказ успешно отправлен на кассу для оплаты.
  • orderGuid — GUID заказа. Заполнен только если оплата происходит на киоске
  • error информация по ошибке (при оплате или при отправке заказа для оплаты на кассе):

    • code — код ошибки. Если ошибки нет, то значение 0.
    • msg текст ошибки. Если ошибки нет, то значение unknown.

Примеры ошибок

"error": {
                    "code": "RK7_3813",
                    "msg": "Интерфейс СБП: Ошибка \"Операция отменена\"(18)."
                }
"error": {
                    "code": "RK7_236",
                    "msg": "Ошибка отправки данных на SBP_FARCARDS2."
                }
"error": {
                    "code": "RK7_2043",
                    "msg": "Компьютер принтера \"3252_KIOSK_PRN_2 Plaintex 1(2123)\" (3252_KIOSK_PRN_2:3252_KIOSK_PRN_2) не подключен."
                }
                "error": {
                    "code": "RK7_2703",
                    "msg": "Некорректный код карты ПДС \"{B4034D6A-C0D0-4DFB-B768-689D7D20DD15}\"."
                }
                "error": {
                    "code": "RK7_3813",
                    "msg": "Интерфейс СБП: Ошибка \"Неверные параметры.\"(18)."
                }

Ошибки на Киоске могут быть как внешними (от r_keeper 7), так и внутренними.

Коды внутренних ошибок: 

  "KIOSK_107": "Payment error.",
  "KIOSK_108": "Check device state error.",
  "KIOSK_109": "Udb files not sent.",
  "KIOSK_110": "Couldn't load RefData.",
  "KIOSK_111": "Weblate error.",
  "KIOSK_112": "Error to connect to midserver.",
  "KIOSK_113": "RK7_REF_LOAD_ACTIVITY_ERR",
  "KIOSK_114": "SameName error",
  "KIOSK_116": "error_shift_exceeded_specified_value",
  "KIOSK_117": "error_paper_low",
  "KIOSK_118": "error_paper_out",
  "KIOSK_119": "error_paper_other",
  "KIOSK_120": "error_eklz_full",
  "KIOSK_121": "error_fisc_over_24",
  "KIOSK_122": "error_fisc_available",
  "KIOSK_123": "error_ofd_unsended",
  "KIOSK_124": "error_device_uavailable",
  "KIOSK_125": "error_restaurant_is_closed",
  "KIOSK_126": "error_shift_automatically_closed",
  "KIOSK_127": "error_no_connection_to_cash_server",
  "KIOSK_128": "error_problem_with_getting_device_statuses",
  "KIOSK_129": "Error to void not closed orders.",
  "KIOSK_130": "There is no recipients.",
  "KIOSK_131": "Order is not Approved by Waiter.",
  "KIOSK_132": "Couldn't send XML order file.",
  "KIOSK_133": "Restaurant id is not set in browser.cfg",
  "KIOSK_134": "There is no tables in current hall plan",
  "KIOSK_135": "There is no such hallPlanId at current restaurant",
  "KIOSK_136": "Restart after lost connection to cash server",
  "KIOSK_137": "Cannot update orderMenu.",
  "KIOSK_137_2": "Cannot update orderMenu. Duplicated ID=",
  "KIOSK_138": "Cannot delete orderMenu. ",
  "KIOSK_139": "error_update_app_task_failed",
  "KIOSK_140": "Cannot find dish with such code",
  "KIOSK_141": "Dish with such code is blocked at Stop List",
  "KIOSK_142": "There is empty currencies for this bonus. Incorrect setting for \"Субсчёт для FarCards\" at rk7 management setting",
  "KIOSK_143": "Used wrong type kiosk mode for Marked Dishes, change kiosk setting mode type to write mode, please",
  "KIOSK_144": "Prepay sum cannot be equal 0",
  "KIOSK_145": "There is no Prepay line from rk7",
  "KIOSK_146": "To use this method please enable filter settings",
  "KIOSK_147": "Classification parent category for type id cannot be 0. Set correct classification parent category id at settings.",
  "KIOSK_148": "Classification parent category for ingredient id cannot be 0. Set correct classification parent category id at settings.",
  "KIOSK_149": "There is no information about fiscal check by this visitId and guid.",
  "KIOSK_150": "error_engineering_works",
  "KIOSK_151": "No order was found in the local storage while changing the type of order",
  "KIOSK_152": "Url of loyalty Burger King is not set at kiosk settings.",
  "KIOSK_153": "BK Loyalty Error : There is problem of interaction with Burger King Loyalty API",
  "KIOSK_154": "BK Loyalty Error : There is no token from Burger King Loyalty API",
  "KIOSK_155": "QRCode Generator : Something went wrong when generating QRCode image",
  "KIOSK_156": "BK Loyalty Error : Sorry user is not authorized at BK Loyalty system",
  "KIOSK_157": "BK Loyalty Error : Sorry incorrect confirm code for authentication by phone number at BK Loyalty system",
  "KIOSK_158": "BK Loyalty Error : Invalid duration refresh token calculation, duration value must be more than zero",
  "KIOSK_159": "BK Loyalty Error : Sorry we cannot pre calc with zero quantity dishes order at BK Loyalty system",
  "KIOSK_160": "Undefined selector for changeToCombo fuctionality. Set correct lunchSelIdent in settings",
  "KIOSK_161": "BK Loyalty Error : Sorry kiosk has internal error during transforming modifier data to Burger King loyalty format",
  "KIOSK_162": "BK Loyalty Error : It seems that Burger King loyalty is not enable. Please check kiosk settings.",
  "KIOSK_163": "There is no saved clientOrder at current local order",
  "KIOSK_164": "BK Loyalty Error : Sorry service is not available for now.",
  "KIOSK_165": "BK Loyalty Error : Sorry service is not available for now. Crowns may not be awarded.",
  "KIOSK_166": "The operation is prohibited since the check %s is a fiscal advance payment check. To delete a receipt, delete the fiscal prepayment at the checkout.",
  "KIOSK_167": "Get Opened Order : Sorry there is no opened order at rk7. Please contact with administrator",
  "KIOSK_168": "Get Order : Sorry order with visit = &quot%s&quot; is not found at rk7. Please contact with administrator",
  "KIOSK_169": "PayOrder : Sorry there is some error when calculate payment for order.",
  "KIOSK_170": "rkeeper CRM : Get loyalty by service code : Sorry there is no loyalty. Please make check in or sign in at r_keeper Crm Loyalty before",
  "KIOSK_171": "rkeeper CRM : You cannot apply same loyalty to one order more than one time",
  "KIOSK_172": "rkeeper CRM : Sorry there is not passed applied loyalties",
  "KIOSK_173": "rkeeper CRM : Sorry there is no such product group",
  "KIOSK_174": "rkeeper CRM : Sorry there is no such product at this group",
  "KIOSK_175": "rkeeper CRM : Sorry there is a lot of products at this group that it can be",
  "KIOSK_176": "rkeeper CRM : Sorry max quantity same type product at this group is exceeded",
  "KIOSK_177": "Error while getting information about the organization",
  "KIOSK_178": "Invalid data format",
  "KIOSK_179": "Cannot get loyalty info for input code: %s",
  "KIOSK_180": "rkeeper CRM : Get loyalty by service code : Sorry there is no loyalty. Wrong input coupon service code.",
  "KIOSK_181": "multi payStep : terminalAuthStart2 : There is no Prepay info line from RK7.",
  "KIOSK_182": "Cannot find dish with such ident",
  "KIOSK_183": "Dish with such ident is blocked at Stop List",
  "KIOSK_184": "rkeeper CRM : Something went wrong during update amount of bonus write-off",
  "KIOSK_185": "Importing settings was not completed successfully",
  "KIOSK_186": "Loyalty Plant : You cannot apply more than one code",
  "KIOSK_187": "Loyalty Plant : Unknown type of loyalty",
  "KIOSK_188": "Metrics : There is problem of interaction with Metrics API",
  "KIOSK_189": "Metrics : Error while getting counter for metrics",
  "KIOSK_190": "Premium Bonus : Sorry there is no object of Premium Bonus with such service code",
  "KIOSK_191": "Premium Bonus : Sorry you cannot apply Premium Bonus more than one time for one order",
  "KIOSK_192": "Premium Bonus : Url of loyalty Premium Bonus is not set at kiosk settings.",
  "KIOSK_193": "Premium Bonus : AuthToken for Premium Bonus is not set at kiosk settings.",
  "KIOSK_194": "Premium Bonus : Sale Point Identifier for Premium Bonus is not set at kiosk settings.",
  "KIOSK_195": "Premium Bonus : Error response from Premium Bonus service - %s",
  "KIOSK_196": "Premium Bonus : Error user with phone number %s is not verified by sms code",
  "KIOSK_197": "Premium Bonus : Error user with phone number %s is not registered at Premium Bonus loyalty service",
  "KIOSK_198": "Premium Bonus : Error user with phone number %s is blocked at Premium Bonus loyalty service",
  "KIOSK_199": "Premium Bonus : Response error when try to authenticate at Premium Bonus loyalty service",
  "KIOSK_200": "Cannot find dish with such guid",
  "KIOSK_201": "Dish with such ident is blocked at Stop List",
  "KIOSK_202": "Premium Bonus: empty field setting for charge mark dish code",
  "KIOSK_203": "Premium Bonus: there is no dish with such guid for charge mark dish or it is blocked at Stop List",
  "KIOSK_500": "error_unexpected_error",
  "KIOSK_501": "Kiosk internal error while working with BK Loaylty API",
  "SETTINGS_404": "No setting for XmlInterface was found.",
  "RK7_2202": "The order &quot;{guid}&quot; is not found."

Коды внешних ошибок, возвращенных от rk7 (обозначаются с помощью префикса RK7_ и кода самой ошибки) перечислены в статье Коды ошибок.

  • No labels