Skip to content

Инструкция по проверке — партия задач от 21 сентября 2026 ​

Пошаговое руководство: куда переходить, на что нажимать и что должно получиться. Проверка занимает ~20–30 минут и не требует правок кода — только браузер и админку.

Сайт (клиент)https://gscoffeetest.dev.inteli-dev.ru
Админка (Filament)https://gscoffeetest.dev.inteli-dev.ru/admin
Эта документацияhttps://docs.gscoffeetest.dev.inteli-dev.ru
Ветка / коммитdev · 4310a07 (плюс feature/team-fund-donations · 38e43a5)
Языки/en/ /ua/ /ru/ /fr/ /de/ /es/ /pl/ /zh/

Тестовый стенд отдаёт рабочее дерево репозитория

Стенд показывает то, что сейчас в рабочей копии на ветке dev. Задачи 1–13 из этой партии — на dev. Правка чата команд/фонда (задача 11 во второй части) лежит на ветке feature/team-fund-donations и на стенде видна только после переключения ветки.

1. Доступы и общие приёмы ​

Учётные записи ​

РольЛогинПарольГде входить
Администраторadmin@gs-coffee.copassword/admin/login
Демо-клиентclient@example.compassword/en/login

«Login as user» — как смотреть глазами клиента ​

У большинства клиентов с заказами (aigen.chernogorsk@yandex.ru, serzhikgsv@icloud.com) пароль нам неизвестен — и не нужен:

  1. Войдите как админ → Users (/admin/users).
  2. Найдите клиента (поиск по e-mail) → в строке справа иконка «Login as user» → подтвердите Continue.
  3. Откроется клиентский кабинет /my-account. Сверху появится жёлтая плашка «You are signed in as …» с кнопкой Stop impersonating — нажмите её, чтобы вернуться в /admin.

Вложенный вход запрещён

Из-под имперсонации нельзя войти ещё раз. Сначала нажмите Stop impersonating, потом входите под другим пользователем.

Что где лежит в админке ​

РазделURLЧто внутри
Lots/admin/lotsлоты, обложка, миниатюра, ROZETKA, заметки серийников, Media Pages
Orders/admin/ordersзаказы, чат с клиентом, удаление заказа
Invoices/admin/invoicesинвойсы, Generate PDF, Send to Client
Users/admin/usersклиенты, «Login as user»
Serial Numbers/admin/serial-numbersсерийные номера, генерация партии, заметки
Serial Number Notes/admin/serial-number-settingsглобальная заметка (низший приоритет)

2. Быстрый чек-лист ​

Отметьте галочкой — этого достаточно для приёмки. Ниже расписаны детали.

№ЗадачаКуда перейти (кратко)Ожидаемый результат
1Медиа-страница в статусе Draft скрыта/en/verify/TEST2026-01 и каталог /green-coffee/brazil-santos-natural/mediaчерновик GS-2026-005 нигде не упоминается; прямой URL черновика → 404; в каталоге черновиков нет даже у админа
2Убрать дату обновления privacy policy/en/privacy-policyнет строки «Last updated …»
3Миниатюра лота в PDF InvoiceAdmin → Invoices → Generate PDF → открыть PDFв таблице позиций есть колонка Image с фото
4Выбор миниатюры в админке + отображение в списке заказовAdmin → Lots → Cover Image; затем /my-account/ordersминиатюра 48×48 + название лота в строке заказа
5YouTube и почта в footerниз /en/ссылка YouTube и info@gscoffee.cr (рядом с sales@)
6Заметки серийников на всех локализацияхAdmin → Serial Numbers → Notes (вкладки языков); /ua/verify/TEST2026-01украинский текст на /ua/, английский на /en/
7Счётчик заказов уменьшается после удаления заказа/my-account → sidebar «My Orders»бейдж уменьшается, «осиротевшая» запись уведомления удаляется
8Настоящий логотип Rozetka + флаг Украины/en/roasted-coffee и /en/roasted-coffee/brazil-santos-558-1чёрно-зелёный логотип ROZETKA + флаг UA рядом
9Убрать заголовки колонок footerниз любой страницытолько WE ACCEPT; нет Sitemap / Contact / Legal Information
10Рабочая ссылка Telegramниз любой страницы → иконка Telegramведёт на https://t.me/gs_coffee
11Имя админа в чатах в верхнем регистре/my-account/orders/ORD-202609-0001автор сообщения админа — GS COFFEE (в т.ч. на /ua/)
12Контакты в footer писемписьмо на свой e-mail (регистрация)в подвале письма оба адреса, телефон, адрес
13Страница инвойсов не «разъезжается»/my-account/invoices?tab=pending (и ширина 390px)таблица из 4 колонок + меню действий, без горизонтальной прокрутки

3. Подробные сценарии ​

Задача 1. Медиа-страница в статусе Draft не отображается ​

Публичная проверка (без входа).

  1. Откройте https://gscoffeetest.dev.inteli-dev.ru/en/verify/TEST2026-01
  2. В блоке лота Brazil Santos Natural найдите раздел со страницами партии. Ожидаемо: показана только страница партии GS-2026-004. Черновика GS-2026-005 нет ни в счётчике, ни в списке, ни в галерее.
  3. Откройте прямой адрес черновика: /en/green-coffee/brazil-santos-natural/media/media-page-2Ожидаемо: 404.

Каталог медиа-страниц (проверять под админом).

Раньше каталог отдавал админам все страницы, включая черновики, поэтому черновик был виден в списке. Сейчас черновики не попадают в каталог ни у кого.

  1. Войдите в /admin (админ видит больше всех — самый строгий случай).
  2. Откройте /en/green-coffee/brazil-santos-natural/media. Ожидаемо: GS-2026-005 (Draft) в списке отсутствует; показаны только опубликованные страницы (для этого лота — одна, поэтому происходит переход сразу на media-page-1).
  3. То же для обжаренного кофе: /en/roasted-coffee/brazil-santos-558-1/mediaОжидаемо: 404 — у этого лота нет ни одной опубликованной страницы.
  4. Проверка «сеткой» (несколько опубликованных + черновик): временно переведите GS-2026-005 в Published → каталог покажет две карточки; затем верните Draft → карточка снова исчезнет.

Проверка в админке.

  1. Admin → Lots → Brazil Santos Natural → Edit.
  2. Прокрутите к блоку Media Pages: две записи — GS-2026-004 (Status = Published) и GS-2026-005 (Status = Draft).
  3. Гарантированный негативный тест: откройте GS-2026-004 → Status = Draft → Save → обновите /en/verify/TEST2026-01: блок со страницей партии и галереей исчезает полностью; каталог /media тоже отдаёт 404. Верните Status = Published.

Флаг «Visible to all users»

Это отдельное правило доступа, не связанное со статусом: страница с выключенным флагом доступна только авторизованным пользователям, у которых есть доступ к партии. Черновик не виден вообще никому в каталоге, независимо от этого флага.

Прямая ссылка на черновик

Сам админ по-прежнему может открыть черновик по прямому URL (/media/media-page-2) для предпросмотра. Из каталога и из списка он при этом не исчезает. Если предпросмотр не нужен — скажите, закроем и этот маршрут.

Код: routes/web.php (оба маршрута *.media.index используют published()->visibleTo()), resources/views/livewire/lots/{green,roasted}-lot-detail.blade.php (кнопка «View media pages»), resources/views/livewire/verify/verify-form.blade.php, app/Models/LotMediaPage.php (scopePublished, scopeVisibleTo).


Задача 2. Дата обновления политики конфиденциальности ​

  1. Откройте https://gscoffeetest.dev.inteli-dev.ru/en/privacy-policy
  2. Ожидаемо: под заголовком нет строки «Last updated / Обновлено …» и даты.
  3. Проверьте на другой локализации, например https://gscoffeetest.dev.inteli-dev.ru/ua/privacy-policy

Код: resources/views/pages/privacy-policy.blade.php.


Задача 3. Миниатюра изображения лота в PDF Invoice ​

Сначала выполните шаг 3.1

У лотов в существующих тестовых заказах нет изображений, поэтому перед проверкой нужно добавить обложку и выбрать миниатюру (это же нужно для задачи 4).

3.1. Подготовка лота Costa Rica Tarrazu Light Roast (id 6).

  1. Admin → Lots → Costa Rica Tarrazu Light Roast → Edit.
  2. Блок Cover Image → поле Cover Photo → загрузите любой файл-картинку → Save.
  3. Снова откройте лот на редактирование → в блоке Cover Image появился селект Thumbnail image (он подтягивает обложку и изображения галереи).
  4. Выберите Cover image → Save.

3.2. Сгенерировать PDF.

  1. Admin → Invoices → INV-202608-0005 (заказ ORD-202608-0005, тот самый лот).
  2. В строке справа → Generate PDF → подтвердите. Появится действие Download PDF.
  3. Нажмите Download PDF (откроется в новой вкладке) и посмотрите таблицу позиций. Ожидаемо: первая колонка называется Image и содержит фото лота; заголовок колонки переведён на язык инвойса.

Если PDF уже сгенерирован

Действие Generate PDF видно только пока PDF не создан. Для повторной генерации удалите существующий PDF (или обратитесь к разработчику, чтобы очистить поле PDF File).

Код: resources/views/pdf/invoice.blade.php, app/Models/OrderItem.php::thumbnailFilePath(), lang/*/invoices.php (ключ image).


Задача 4. Выбор миниатюры лота и её отображение в заказах ​

4.1. Выбор в админке — выполняется в блоке Cover Image (см. шаг 3.1 выше). Этот селект добавлен и на страницу создания лота, и на страницу редактирования.

4.2. Список заказов клиента.

  1. Admin → Users → aigen.chernogorsk@yandex.ru → Login as user → Continue.
  2. Откройте /my-account/orders.
  3. Ожидаемо: в первой колонке каждой строки — миниатюра 48×48 (та, что выбрана у лота) и под номером заказа — название лота. Если изображения нет, вместо него серая заглушка.
  4. Заказы без изображения (ORD-202609-0001/0002) выглядят как раньше — с заглушкой.

4.3. Страница заказа. Откройте /my-account/orders/ORD-202608-0005 — миниатюра и заголовок лота в строке позиции.

4.4. PDF. Список /my-account/invoices → меню ⋮ More actions → Download PDF (если PDF сгенерирован админом, см. 3.2).

Приоритет изображения

  1. выбранная в админке миниатюра → 2) первое изображение прикреплённой страницы партии → 3) обложка лота.

Код: app/Filament/Resources/LotResource.php (packagingImageOptions, селект thumbnail_image), app/Models/Lot.php, app/Models/Order.php, resources/views/livewire/dashboard/order-list.blade.php.


  1. Откройте https://gscoffeetest.dev.inteli-dev.ru/en/ и прокрутите до подвала.
  2. Ожидаемо: рядом с иконками соцсетей есть ссылка YouTube → https://www.youtube.com/@GSCOFFEE-TARRAZU (открывается в новой вкладке).
  3. В блоке контактов — две почты: sales@gscoffee.cr и info@gscoffee.cr.
  4. Продублируйте проверку на другой локализации, например /ua/.

Код: resources/views/livewire/layout/footer.blade.php, config/gscoffee.php (seller.info_email, social.youtube).


Задача 6. Примечания серийных номеров на всех локализациях ​

6.1. Где редактировать.

  1. Admin → Serial Numbers → TEST2026-01 → Edit.
  2. Раздел Notes — это вкладки языков: English, Українська, Русский, Français, Deutsch, Español, Polski, 中文. В английской вкладке должен быть ранее сохранённый текст Test note serial number level (старые текстовые заметки автоматически переехали в языковую вкладку en).
  3. Впишите в Українська текст, например Примітка українською (QA) → Save.

6.2. Проверка на сайте.

  1. https://gscoffeetest.dev.inteli-dev.ru/ua/verify/TEST2026-01 → блок Note показывает украинский текст.
  2. https://gscoffeetest.dev.inteli-dev.ru/en/verify/TEST2026-01 → показывает английский текст.
  3. Если перевод языка не заполнен — выводится значение языка по умолчанию (английский), пустой строки не будет.

6.3. Те же вкладки есть на всех уровнях иерархии (проверьте по одному, что вкладки языков есть везде):

УровеньГде в админкеПриоритет
Серийный номерSerial Numbers → Edit → Notes1 (высший)
Страница партии (media page)Lots → Edit → Media Pages → Notes2
ЛотLots → Edit → Serial Number Notes3
Глобальные настройкиSerial Number Notes (/admin/serial-number-settings)4 (низший)

У каждого уровня есть переключатель Ignore priority — включённая заметка перебивает все остальные.

6.4. Убрать за собой (необязательно). Очистите украинскую вкладку и сохраните — заметка вернётся к английской.

Код: app/Support/Translations.php, app/Filament/Support/NotesField.php, app/Models/SerialNumber.php::resolvedNote(), миграция 2026_09_18_000002_make_serial_number_notes_translatable.php.


Задача 7. Счётчик заказов у клиента после удаления заказа админом ​

7.1. Убедиться, что счётчик есть.

  1. Admin → Users → aigen.chernogorsk@yandex.ru → Login as user → Continue.
  2. На странице /my-account в левом меню у пункта My Orders — красный бейдж (сейчас у этого клиента 5 непрочитанных).
  3. Запомните число.

7.2. Удалить заказ.

  1. Нажмите Stop impersonating (вернётесь в /admin).
  2. Admin → Orders → ORD-202608-0002 → в строке Delete → подтвердите.
  3. Ожидаемо: удалён не только заказ: удалены позиции, инвойс и «осиротевшая» запись уведомления.

7.3. Проверить счётчик.

  1. Снова Login as user для того же клиента (или просто обновите страницу, если сессия ещё активна).
  2. Ожидаемо: бейдж у My Orders стал на 1 меньше (5 → 4). Заказ пропал из списка, уведомления по нему нет.

Код: app/Services/UserNotificationService.php (countsFor, REFERENCE_SOURCES), resources/views/components/layouts/dashboard.blade.php.


Задача 8. Настоящий логотип Rozetka и флаг Украины ​

Тестовые лоты со ссылкой Rozetka: ethiopia-yirgacheffe-grade-1 (green) и brazil-santos-558-1 (roasted).

  1. Карточка в каталоге: откройте https://gscoffeetest.dev.inteli-dev.ru/en/green-coffee и https://gscoffeetest.dev.inteli-dev.ru/en/roasted-coffeeОжидаемо: на карточке лота — маленькая круглая иконка ROZETKA (чёрный круг, зелёная «R», настоящий mini-logo) и сразу за ней маленький флаг Украины.
  2. Страница лота: https://gscoffeetest.dev.inteli-dev.ru/en/green-coffee/ethiopia-yirgacheffe-grade-1 и https://gscoffeetest.dev.inteli-dev.ru/en/roasted-coffee/brazil-santos-558-1Ожидаемо: кнопка Buy on ROZETKA с тем же логотипом и флагом; ссылка ведёт на https://rozetka.com.ua/ua/seller/eml-home/.
  3. Смена ссылки: Admin → Lots → лот → блок ROZETKA Availability → поле ROZETKA URL. Очистите и сохраните — логотип с флагом исчезнут со страницы лота.

Код: public/images/rozetka/rozetka-logo.svg, четыре представления resources/views/livewire/lots/{green,roasted}-lot-{card,detail}.blade.php, resources/views/components/country-flag.blade.php.


Задача 9. Заголовки колонок в подвале ​

  1. Прокрутите вниз любую страницу, например https://gscoffeetest.dev.inteli-dev.ru/en/
  2. Ожидаемо: над колонками нет заголовков Sitemap / Navigation, Contact, Legal Information. Заголовок остался только у блока способов оплаты — WE ACCEPT.

Код: resources/views/livewire/layout/footer.blade.php.


Задача 10. Ссылка Telegram ​

  1. В подвале сайта найдите иконку Telegram.
  2. Ожидаемо: ссылка — https://t.me/gs_coffee (проверьте через «Открыть ссылку в новой вкладке» или наведя курсор).

Код: config/gscoffee.php (social.telegram, social.telegram_url).


Задача 11. Имя администратора в чатах — GS COFFEE ​

В заказах уже есть сообщения администратора: заказ ORD-202609-0001 (клиент aigen.chernogorsk@yandex.ru) и ORD-202609-0002 (клиент serzhikgsv@icloud.com).

  1. Admin → Users → aigen.chernogorsk@yandex.ru → Login as user → Continue.
  2. Откройте /my-account/orders/ORD-202609-0001 → секция сообщений/чата. Ожидаемо: над сообщением администратора подпись GS COFFEE заглавными (а не личное имя вида «Evgeny …» / «Admin»).
  3. Проверьте локализацию: /ua/my-account/orders/ORD-202609-0001 — тоже GS COFFEE.
  4. Ответить самому админу: Admin → Orders → ORD-202609-0001 → Reply → введите текст → отправьте. Обновите клиентскую страницу — новый ответ тоже подписан GS COFFEE.

Чат команд и фонда

Аналогичная правка для чата команд/фонда сделана на ветке feature/team-fund-donations (lang/*/team-fund.php, chat-index.blade.php). На стенде, пока он на dev, этот чат проверяется только после переключения ветки.

Код: resources/views/livewire/dashboard/order-detail.blade.php, lang/*/orders.php и lang/*/quotes.php (ключ admin).


Все 20 шаблонов писем используют общий подвал, поэтому достаточно проверить одно письмо.

Способ А — регистрация (рекомендуется).

  1. Откройте https://gscoffeetest.dev.inteli-dev.ru/en/register и зарегистрируйтесь на свой e-mail.
  2. Письмо Welcome отправляется через очередь (gscoffee-queue), поэтому подождите до ~1 минуты (проверьте папку «Спам»).
  3. Ожидаемо в подвале письма: подпись GS Coffee · gscoffee.cr, два адреса sales@gscoffee.cr и info@gscoffee.cr, телефон, WhatsApp и адрес, а также копирайт.

Способ Б — письмо по инвойсу.

  1. Admin → Invoices → инвойс со статусом Draft → действие Send to Client → подтвердите.
  2. Письмо уйдёт на e-mail клиента из заказа (для aigen.chernogorsk@yandex.ru / serzhikgsv@icloud.com — если у вас есть к ним доступ).

Код: resources/views/mail/layout.blade.php (общий подвал), config/gscoffee.php.


Задача 13. Страница инвойсов — кнопки больше не «разъезжаются» ​

Сейчас у клиента aigen.chernogorsk@yandex.ru семь инвойсов, но готовых к оплате нет: инвойсы в статусе Draft действий не показывают. Поэтому сначала подготовьте один инвойс.

13.1. Подготовка (админ).

  1. Admin → Invoices → INV-202608-0005 → Edit → Status = Sent → Save.
  2. В строке INV-202608-0005 → Generate PDF → подтвердите.

13.2. Проверка на десктопе.

  1. Login as user для aigen.chernogorsk@yandex.ru.
  2. Откройте /my-account/invoices?tab=pending.
  3. Ожидаемо:
    • компактная таблица из 4 колонок: Invoice, Total, Status, More actions — горизонтальной прокрутки нет;
    • одна крупная кнопка Pay Now и рядом круглая кнопка ⋮;
    • по клику на ⋮ раскрывается меню More actions: Pay Now (Stripe), Pay with balance (или серая неактивная подсказка, если на балансе не хватает средств), Download PDF;
    • меню не обрезается и не выходит за карточку; шапка таблицы со скруглёнными углами.
  4. Переключите таб All invoices — тот же вид для всех инвойсов.

13.3. Проверка на мобильном.

  1. Сузьте окно до ~390px (или откройте DevTools → режим устройства).
  2. Ожидаемо: таблица заменяется на карточки «один инвойс = одна карточка»; статус справа, сумма ниже, действия прижаты к правому краю, меню ⋮ полностью помещается внутри карточки.

13.4. Вернуть за собой (необязательно). Admin → Invoices → INV-202608-0005 → Status = Draft.

Код: resources/views/livewire/dashboard/invoice-list.blade.php, resources/views/components/ui/invoice-actions.blade.php, lang/*/invoices.php (more_actions).

4. Автоматические тесты ​

Если кроме ручной проверки нужен машинный прогон:

bash
docker exec gscoffee-app sh -c 'cd /var/www/html && php artisan test --compact'

Ожидаемо: 112 passed на ветке dev (92 passed на feature/team-fund-donations). Новые тесты этой партии:

ФайлЧто покрывает
tests/Feature/Lots/DraftMediaPageVisibilityTest.phpзадача 1 (страница проверки + каталоги green/roasted для админа)
tests/Feature/Lots/LotThumbnailTest.phpзадачи 3, 4
tests/Feature/SerialNumbers/TranslatableNotesTest.phpзадача 6
tests/Feature/Dashboard/OrderNotificationCounterTest.phpзадача 7
tests/Feature/Dashboard/InvoiceListDesignTest.phpзадача 13
tests/Feature/Layout/FooterAndLegalTest.phpзадачи 2, 5, 9, 10, 12
tests/Feature/Order/OrderChatAuthorTest.phpзадача 11

Точечный прогон, например:

bash
docker exec gscoffee-app sh -c 'cd /var/www/html && php artisan test --compact tests/Feature/Lots'

5. Нюансы и восстановление данных ​

  • Задача 7 удаляет заказ. Используйте ORD-202608-0002 — это демо-заказ. Если он нужен, восстановите его через сидер/разработчика.
  • Задача 13 меняет статус инвойса на Sent — верните Draft, если стенд должен остаться в исходном виде.
  • Задача 6 добавляет перевод заметки — очистите украинскую вкладку после проверки.
  • Задача 3/4 требует загрузить картинку в лот Costa Rica Tarrazu Light Roast. Это безопасно, но меняет демо-данные.
  • Пересборка фронтенда не требуется: стили, использованные в этих правках, уже есть в собранном CSS стенда.
  • Миграции 2026_09_18_000001_add_thumbnail_image_to_lots и 2026_09_18_000002_make_serial_number_notes_translatable на стенде применены. На других окружениях перед проверкой нужно выполнить php artisan migrate — текстовые заметки автоматически станут переводом языка en.