Оптовый интернет-магазин с SSR и админ-панелью
- Рендеринг
- SSR
- Способов оплаты
- 4
- Способа доставки
- 3
Задача
Сделать оптовый магазин, удобный для SEO: каталог с фильтрами, корзина, оформление заказа с региональными способами доставки и оплаты, отзывы и полноценная админ-панель.
Решение
Angular 21 с SSR и backend на .NET CQRS; сервер авторизации OpenIddict (Authorization Code + PKCE); атомарный резерв остатков; уведомления через фоновую очередь.
Архитектура
Витрина рендерится на сервере: у каждой категории, товара и комбинации фильтров свой адрес (фильтры, сортировка и страницы хранятся в query string), поэтому любую выборку можно отправить ссылкой и проиндексировать. Sitemap и robots генерирует приложение, на страницах товаров — отзывы и рейтинг.
При оформлении остатки резервируются атомарно — условный UPDATE внутри транзакции, — поэтому два покупателя не купят последнюю упаковку; отмена заказа возвращает остатки. Способы доставки и оплаты зависят друг от друга и проверяются и на клиенте, и на сервере. Уведомления о заказах уходят в Telegram и на email через фоновую очередь с повторами. Платёжный шлюз вынесен за интерфейс и готов к подключению банковского эквайринга региона.
Авторизация — отдельный сервер OpenIddict с Authorization Code + PKCE, ролями и восстановлением пароля. API-клиент на фронтенде генерируется из OpenAPI (Orval). Обработчики покрыты тестами на xUnit, тесты базы данных идут на одноразовом PostgreSQL.
