food-market/docs/site-fixes-2026-10-10/REPORT.md
nns ad747bf58c
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
docs(site): отчёт и скриншоты проверки исправлений test.food-market.kz (10/10)
docs/site-fixes-2026-10-10/{index.html,REPORT.md,screenshots}; tools/site-fixes-verify.mjs
(Playwright-проверка: signup plan/конфигурация/цена, мобильное меню, без промисов/REPLACE_ME).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 00:03:01 +05:00

8.9 KiB
Raw Permalink Blame History

Исправления публичного сайта test.food-market.kz — этап 1 «Сайт и выбор тарифа»

Дата: 2026-10-10/11. Источник: src/food-market.public (Astro). Деплой — только на ТЕСТ (~/.fm-watchdog/deploy-public-test.sh). Откат: образ food-market-public:test-pre-site-fixes (создан перед деплоем). Прод-сайт, gateway nginx, прод-БД — НЕ трогались.

Проверка после деплоя (Playwright, десктоп 1440×900@2x и моб. 390×844@3x): 10/10 — см. index.html в этой папке (скриншоты + автопроверки).

Что исправлено (по номерам 1–10)

  1. /signup читает ?plan= и конфигурацию. Форма на клиенте разбирает plan (start|business|network; неизвестный → «Старт») и shops/cashes/warehouses/employees. Выбранный тариф предвыбран; для «Бизнес» показывается конфигурация и итоговая цена. Расчёт вынесен в общий модуль src/lib/pricing.ts (БД 10 000 + 2 000/магазин + 500/касса + 500/склад) — одни и те же числа в конструкторе, форме и на /pricing. Проверено: ?plan=business&shops=3&cashes=4&warehouses=1&employees=5 → «Бизнес» выбран, конфигурация и 15 500 ₸ видны; ?plan=start → «Старт»; ?plan=xyz → «Старт». Параметры конфигурации уходят в тело запроса регистрации (вперёд-совместимо). Текущий контракт /api/auth/signup принимает только plan (SignupInput.Plan), остальные поля игнорирует — см. раздел «нужно решение владельца».
  2. Мобильная шапка (≤ lg). Добавлены гамбургер + выезжающая панель со ВСЕМИ пунктами десктоп-меню и кнопками «Войти»/«Начать бесплатно». aria-expanded/aria-controls, закрытие по тапу вне и по Esc, доступно с клавиатуры; зоны нажатия ≥ 44 px. Проверено на 390 px: меню открывается, тап по «Тарифы» ведёт на /pricing, горизонтальной прокрутки нет.
  3. og/twitter-картинки перегенерированы (scripts/og.mjs → public/og/*): из home убрано «ОФД РК», в import «REST API» → «Excel, CSV, 1С, МойСклад», из for-grocery убран «ABC-анализ».
  4. База знаний и блог — убраны обещания несуществующего (сверено с «В разработке» на главной и /integrations/): способы оплаты подписки «Kaspi Pay/Halyk/Jusan/Forte/Visa/Mastercard» → «способ уточняется, свяжитесь с нами»; «стандартный REST API» в импорте → «Excel/CSV, 1С, МойСклад»; «Скачать установщик/.msi/Скачать кассу для Windows» → «скоро»; «тип оплаты Наличные/Kaspi/Карта» → «наличные или карта»; «Kaspi Magazin (Q3 2026)» → без даты; «архитектура для будущей маркировки» — убрано; «Триал» как тариф → «Старт/Бизнес/Сеть, 90 дней бесплатно»; платные консультации «5 000 тг/час» и скидки 3/6/12 мес — убраны (нет на /pricing, не подтверждены). Ссылки на несуществующие /kb/users, /kb/loyalty убраны.
  5. /import: чужой английский HR-скриншот (/photos/import-hero.jpg) заменён на реальный скриншот каталога продукта (/screenshots/catalog.webp).
  6. Рендер /kb/: тело статей было завёрнуто в ```markdown с дублирующим front-matter и вторым #-заголовком → показывалось сырым моноширинным текстом. Развёрнуто: front-matter не виден, markdown рендерится, заголовок один. Проверены все /kb/ и /blog/* (блог был чист).
  7. Аналитика: убраны заглушки data-id="REPLACE_ME" (Google/Яндекс.Метрика) — скрипты подключаются только при реальных PUBLIC_GA_ID/PUBLIC_YM_ID, иначе в HTML ничего нет.
  8. robots.txt: Sitemap: → рабочий /sitemap.xml (был 404 /sitemap-index.xml).
  9. Противоречия сведены к оферте (она главнее): удаление данных — 30 дней (было 30/60 в KB); возврат — по письменному заявлению в случаях по закону РК (убрано «14 дней без обоснования»); «Старт без лимита пользователей» → «до 2 сотрудников» (как на /pricing). Дубль в футере «Дорожная карта»/«Changelog» (один URL) — убран, остался «Changelog». /status «Касса (Windows) — в разработке» → «Скоро» (согласовано с «Скачать · скоро»).
  10. Мелочи: зоны нажатия — ссылки футера block py-2 (≈40 px), CTA в шапке min-h-[44px]; у lazy-картинок (главная, /pos) проставлены width/height (catalog 1440×900, pos 1440×810) против сдвига вёрстки.

Что НЕ сделано / частично и почему

  • Зоны нажатия инлайновых ссылок в предложениях (например «офертой»/«политикой» в форме, отдельные «Подробнее →») не раздувал до 44 px — это текст внутри абзаца, увеличение ломает поток; основные интерактивные элементы (меню, кнопки, ссылки футера) подняты до ≥ 40–44 px.
  • «Популярный» на /pricing у «Бизнес» не добавлял (есть на главной) — косметическая рассинхронизация, не влияет на факты.
  • Формулировка «до 10 сотрудников» (главная) vs минимум 5 в конструкторе — оставлена («до 10» — верхняя граница, не ложь).

Нужно решение владельца

  • Способы оплаты подписки — реальные методы не определены в продукте; в KB поставил «уточняется / по счёту — свяжитесь с нами». Нужно задать фактические способы.
  • Приём платежей конфигурации при регистрации — сервер /api/auth/signup не принимает shops/cashes/warehouses/employees. Нужно решение: расширять ли контракт, чтобы тариф/объём фиксировались при регистрации (сейчас параметры показываются и уходят в запрос, но игнорируются).
  • Юридические документы /legal/ и контакты* — НЕ трогались (решение владельца): видны плейсхолдеры «[НАЗВАНИЕ ТОО]», «[БИН]», телефон «+7 (___)», пометка «подлежит правовой экспертизе». Из формы регистрации пользователь соглашается с офертой и политикой ПДн — т.е. эти документы с плейсхолдерами ему предъявляются. Нужны реквизиты/экспертиза.
  • Налоги: оферта 6.3 «с учётом всех налогов»; в FAQ оставлена фраза про счёт-фактуру «с НДС или без» (режим налогообложения клиента) — формально не противоречит, но при желании свести.
  • Скидки за предоплату / платные консультации — убраны как неподтверждённые; вернуть, если такие условия реально есть.