Playbook — POS-сессия для F25, F27, F37, F40, F42
Цель: подтвердить что 5 POS-багов всё ещё актуальны (или найти что один починили походя), сразу собрать репро-данные для stage4.
Координация
- Связь: чат
- Стенд: один и тот же
erp-test.nirbi.ru. Я через admin SPA, Александр через POS-desktop под PIN. - Перед стартом: Александр входит на POS под PIN
1234(или4321), я под admin@erp.local в админке. - Кому какие действия: каждый кейс ниже расписан как «🤖 Claude», «👤 Александр», «👀 Оба смотрят».
Темп
Каждая F — минут 5–10. Полная сессия ~45 мин.
Кейс 1 — F25 «Заказ исчезает с POS после оплаты» 🔴
Гипотеза: после оплаты заказ убирается из активного списка, кассир не видит его до выдачи.
Шаги:
- 👤 Александр: создаёт заказ на POS — 2 позиции, takeaway. Не оплачивает. Сообщает мне
order_number. - 🤖 Claude:
GET /orders?status=new— нахожу заказ по номеру, фиксируюid,status,created_at. - 👤 Александр: оплачивает картой/наличными.
- 👀 Оба: сразу после успешной оплаты:
- Александр: что в активном списке POS? Заказ виден / исчез / висит «оплачен»?
- Claude:
GET /orders/{id}→status,paid_at,completed_at.
- 👤 Александр: пытается найти заказ через любые экраны POS (поиск, история, закрытые).
Что фиксируем: исчез ли заказ, через какие экраны его можно найти, что говорит API в момент исчезновения.
Done = баг открыт: заказ исчез сразу после оплаты И не найден через UI (только через admin или историю).
Кейс 2 — F27 «Нет UI кнопки отмены на POS» 🔴
Гипотеза: API POST /orders/{id}/cancel работает, но в POS UI нет соответствующей кнопки ни в одном статусе.
Шаги:
- 🤖 Claude: создаю в admin четыре заказа в разных статусах:
new— только созданaccepted— принят кухнейready— готовhanded_over— выдан (В крайнем случае Александр сам создаёт через POS поочерёдно — но тогда дольше.)
- 👤 Александр: для каждого заказа открывает карточку на POS и ищет кнопку «Отменить» / «Отказаться» / красную опцию.
- 👀 Оба фиксируем по статусам:
new→ есть/нетaccepted→ есть/нетready→ есть/нетhanded_over→ есть/нет
Done = баг открыт: ни в одном статусе нет кнопки в UI POS. (API при этом отменит — POST /orders/{id}/cancel 200, проверим параллельно).
Кейс 3 — F37 «Нет журнала закрытых заказов смены» 🔴
Гипотеза: на POS есть только агрегированная аналитика (выручка, количество), но нет списка закрытых заказов смены, чтобы можно было найти конкретный по номеру/времени.
Шаги:
- 👤 Александр: проходит по всем меню POS — ищет:
- «История заказов»
- «Закрытые заказы»
- «Журнал смены»
- «Чеки»
- Поиск заказа по номеру
- 👀 Оба: фиксируем что нашли. Если есть только аналитика (выручка/количество без детализации) — F37 подтверждён.
Done = баг открыт: нет ни одного экрана POS, где видно список закрытых заказов смены с возможностью открыть детали.
Кейс 4 — F40 «Menu-availability игнорирует окно» 🟡
Гипотеза: категории с настроенным окном доступности либо всегда скрыты, либо всегда видны — окно не учитывается.
Текущие настройки (получено через /admin/catalog/menu-availabilities):
- Завтрак 07:00–12:00 → категория «Кофе» (
fccb7038-...) - Десерты вторая половина дня 14:00–22:00 → категория «Десерты» (
10c0f0e3-...)
Шаги:
- 🤖 Claude: проверяю текущее время на стенде через
GET /api/v1/healthили ответ заголовка. Например, сейчас 12:55 МСК.- Кофе должна скрываться (вышла из окна 07–12)
- Десерты должны скрываться (ещё не начались 14–22)
- 👤 Александр: открывает на POS список категорий — сообщает видны ли «Кофе» и «Десерты» прямо сейчас.
- 🤖 Claude: меняю окно, например для «Завтрак» ставлю 00:00–23:59 → должно стать видимо во всё время.
- 👤 Александр: обновляет POS (если нужно — pull-to-refresh / релогин), смотрит появилась ли «Кофе».
- 🤖 Claude: возвращаю окно как было.
Done = баг открыт: видимость не меняется при изменении окна (или категория скрыта всегда).
Кейс 5 — F42 «Нет подсказки max_amount на POS» 🟢
Гипотеза: при выборе модификатора с max_amount > 1 UI POS не показывает кассиру лимит, кассир ткнёт лишнее → ошибка.
Шаги:
- 🤖 Claude: нахожу/создаю товар с модификатором имеющим
max_amount: 3(например, «Соусы», макс 3 шт). - 👤 Александр: добавляет этот товар на POS, открывает выбор опций.
- 👀 Оба: видна ли где-то подсказка «макс 3» / «осталось N» / счётчик 0/3?
- 👤 Александр: пробует тыкнуть 4 раза на одну опцию или 3+1 на разные. Что показывает UI?
Done = баг открыт: нет визуальной подсказки max_amount, юзер не знает лимит до тыка.
Что я подготовлю заранее
Чтобы не тратить сессию на setup:
- Кейс 2 (F27): 4 заказа в разных статусах. Прокачать через admin —
POST /orders/{id}/accept,POST /orders/{id}/ready,POST /orders/{id}/handover. - Кейс 5 (F42): убедиться что есть товар с модификатором
max_amount=3. Если нет — создать. - Кейс 4 (F40): знать тек.время стенда + готовить swap-окна для теста.
Чек-лист готовности
Перед стартом подтверждаем:
- Александр на POS под PIN, видит товары
- Я залогинен в админке (admin@erp.local)
- У ТТ Арбат есть видимые товары для POS
- Прейскурант default привязан хотя бы неявно
- PayKeeper отвечает (для F25 — оплата нужна)
Куда писать находки
- В рамках сессии — обмениваемся в чате, я в реальном времени фиксирую observations.
- После сессии — оформляю в
sessions/2026-05-06-pos.md+ сразу перехожу к stage4.