Урок 2. Архитектура решения: где что ломается
Условия для выполнения:
- Просмотреть

Модуль 2 · Блок A · ~2 часа · обязателен
Архитектура решения: где что ломается
Цель модуля: Дать карту системы: какие звенья участвуют в пути заказа, какое звено за что отвечает и как по симптому определить, в каком звене искать причину. Это базовый навык диагностики, на который опираются все последующие модули.
Результаты обучения — после модуля специалист сможет:
- перечислить звенья контура: iiko → Dashboard → фронт (QR/Kiosk) → POS → фискализация → закрытие;
- по симптому определить вероятное звено-источник проблемы;
- отличать проблему данных от проблемы синхронизации и от проблемы устройства;
- применять правило «источник истины» при расхождении статусов.
Урок 2.1. Звенья контура и их роли
| Звено | За что отвечает | Типичные симптомы «его» проблем |
|---|---|---|
| iiko (учётная система клиента) | Источник меню, цен, модификаторов, стоп-листов, столов, способов оплаты; фиксация заказа и продаж | Позиции нет во внешнем меню, цена старая, модификатор не привязан, позиция на стопе, стол не создан |
| Синхронизация | Перенос справочников из iiko в Dashboard | Позиция есть в iiko, но не появилась в Ailillu; удалённое всё ещё отображается |
| Dashboard (dashboard.ailillu.kz) | Конфигурация ресторана: API, константы, столы, меню, фото, тип оплаты, Kaspi-сертификат | Не та организация/точка/внешнее меню/терминальная группа; не загружен API |
| Фронт (QR-страница / Kiosk на iPad) | Отображение меню гостю и сборка заказа | Старый кэш, QR ведёт не туда, приложение не открывается, ошибка авторизации |
| POS-терминал (Kaspi/Halyk) | Приём суммы и проведение оплаты | Не получает сумму, показывает неверную сумму, зависает на оплате |
| Фискальный контур (WebKassa и др.) | Фискализация и печать чека | Оплата есть, фискализации нет; чек не печатается |
| Финализация | Закрытие заказа и синхронизация финального статуса | Оплата прошла, заказ остался открытым; статусы фронта и iiko расходятся |
Урок 2.2. Как локализовать проблему по симптому
Базовый алгоритм
- Что именно не работает? Отображение, выбор товара, создание заказа, оплата, чек или закрытие — это разные звенья.
- Воспроизводится ли? Один раз, на одном товаре, на одном устройстве или массово.
- Проверить источник данных в iiko — активность, категория, внешнее меню, стоп-лист, цена, модификаторы.
- Проверить конфигурацию Dashboard — API, константы, тип оплаты.
- Повторить синхронизацию и перезапустить фронт.
- Если после этого не решается — фиксировать данные (время, текст ошибки, ID заказа) и эскалировать.
Правило: Не передавайте задачу разработчику сразу. Сначала проверьте API, организацию, точку, внешнее меню, терминальную группу, другие константы и то, правильно ли клиент создал сущность в iiko.
Три частые ошибки диагностики
- Проблема данных принята за баг. Позиция «пропала» — почти всегда стоп-лист, неактивность или не то внешнее меню, а не поломка платформы;
- Проблема кэша принята за проблему данных. После правки в iiko нужны синхронизация и перезапуск фронта;
- Изменения внесены в разные объекты. Клиент правит один товар, специалист смотрит дубль — проверяйте, что работаете с одной и той же сущностью.
Урок 2.3. Источник истины и правило безопасности денег
Источник истины: При расхождении статусов фактическое состояние берётся из системы (iiko и платёжный контур), а не с экрана Киоска. Экран может показывать старое состояние.
Правило безопасности денег: Любое действие, способное привести к повторному списанию или дублю заказа, выполняется только после установления фактического статуса предыдущей попытки. Если статус неясен — повторная оплата запрещена до выяснения.
Эти два правила проходят через весь курс. Они относятся к деньгам гостя и репутации клиента, поэтому в модулях 10 и 12 их проверка идёт с проходным баллом 100%.
Практическое задание
- Для каждого симптома укажите наиболее вероятное звено: (а) блюдо видно в iiko, но не видно в QR-меню; (б) сумма на терминале отличается от суммы заказа; (в) оплата прошла, чека нет; (г) в iiko заказ закрыт, на киоске открыт; (д) приложение на iPad не открывается.
- Опишите своими словами, чем отличается «проблема данных» от «проблемы кэша» и как их различить за два действия.
Критерий прохождения: Тест ≥ 80% + зачтено задание на локализацию симптомов.
Тест: вопросы этого модуля загружаются в Moodle отдельно, из банка вопросов (категория «Модуль 2»).