Идея и задача
MERA — интернет-магазин одежды. Задача: спроектировать и собрать на современном стеке e-commerce — от дизайн-концепции и архитектуры до деплоя: коммерческое ядро, управляемый контент, российские платёжные и логистические интеграции. Каталог — около 1 000 товаров, 5 000 SKU.
Что сделано
- Каталог с фильтрами (пол, размер, цвет, материал, посадка, цена), сортировками, пагинацией и SEO-политикой для фильтрованных URL.
- Карточка товара с вариантами: размер и цвет, цветные свотчи, таблица размеров, быстрое добавление.
- «Образы»: подборки из нескольких товаров, которые добавляются в корзину одним действием с выбором размера по каждой позиции.
- Корзина, промокоды, бесплатная доставка от порога 15 000 ₽ (акция Medusa), чекаут.
- Личный кабинет: регистрация, адреса, история заказов; гостевая покупка сохранена.
- Поиск на Meilisearch, журнал и редактируемые страницы в Payload CMS.
Архитектура и стек
Монорепозиторий (pnpm + Turborepo, TypeScript) из двух приложений. Medusa 2 отвечает за товары, цены, остатки, заказы и акции. Next.js 16 с Payload CMS 3 отвечает за витрину и контент. Правило границы: коммерческие данные принадлежат Medusa, контент — Payload, связь только по handle товара. Для фасетных фильтров, которых нет в Store API, витрина держит компактный снимок каталога в памяти с инвертированным индексом; кэш сбрасывается вебхуками при изменении товаров. Прод: Docker, nginx с TLS и rate limit, две PostgreSQL, Redis, Meilisearch, деплой одной командой со скриптом.
Интеграции
- ЮKassa: собственный платёжный провайдер Medusa без сторонних SDK. Статусу из вебхука не доверяю на слово: провайдер перечитывает платёж через API ЮKassa и по нему определяет результат.
- СДЭК: собственный провайдер доставки. Расчёт по тарифам маршрута, доставка в ПВЗ, постамат или курьером, выбор пункта на Яндекс.Картах.
- МойСклад: синхронизация каталога, вариантов и остатков в Medusa. Идемпотентный upsert: повторный запуск не создаёт дублей, а при ошибке в данных импорт останавливается целиком, чтобы на витрину не попали частичные данные.
Производительность
Google PageSpeed Insights, десктоп: производительность, доступность, рекомендации и SEO — 100/100/100/100.

Мобильная версия: 92/100/100/100.

Моя роль
Проект сделан мной целиком: дизайн-концепция, архитектура, витрина, бэкенд, интеграции и деплой. Ключевые технические решения — разделение коммерческих данных и контента между Medusa и Payload, собственные провайдеры оплаты и доставки, индекс для фасетных фильтров, схема синхронизации со складом — принимал и реализовывал сам. AI-инструменты использую как ускоритель рутины: шаблонный код, проверка гипотез, тесты. Проектирование, архитектура и контроль качества остаются за мной.
Результат
Магазин с полным циклом: каталог, корзина, оплата через ЮKassa, расчёт доставки СДЭК с выбором пункта на карте, личный кабинет, админки контента и commerce.




