
О проекте
Рабочий e-commerce с локализацией /{locale}
(основной — ru), каталогом (нижнее бельё, для дома, мужская коллекция, подарочные сертификаты), карточками товаров и страницами FAQ/доставка/оплата/отзывы. Ссылка на мессенджеры и Instagram присутствует на сайте. Вёрстка по готовому дизайну Figma.
Что сделал
- Каталог и карточки: модели товаров с вариациями (группы/значения), древовидные категории на
kalnoy/nestedset
, полнотекстовый поиск в каталоге. - Корзина и оформление: хранение корзины в cookies с серверной валидацией; страница checkout с расчётом итогов, применением скидок и фиксацией заказа.
- Оплаты: драйверная система платежей (стратегии) — YooKassa, рассрочка «Долями» (Dolyame) и оплата при получении; вебхуки для смены статусов, консольные команды для проверки/очистки зависших/отменённых заказов.
- Медиа: интеграция со spatie/laravel-medialibrary с генерацией responsive-изображений (WebP/JPEG,
srcset
) и хранением размеров/порядка в кастомных свойствах. - Публичная часть: Blade-шаблоны с компонентами (
<x-layout>
,<x-picture>
), интерактив на Alpine.js (catalog/cart/checkout), JSON-LD/Schema для товаров и хлебных крошек. - Админ-панель: Inertia + Vue 3 (PrimeVue Unstyled) — списки/формы для товаров, категорий, вариаций, страниц, отзывов, заказов; загрузка изображений с кропом, drag-and-drop сортировка, уведомления/подтверждения действий.
- SEO и служебное: генерация sitemap (консольная команда/сервис), человеко-понятные URL, мета-поля страниц, редирект на актуальный
/{locale}
, статические страницы «доставка/оплата/FAQ/о бренде/отзывы».
Зачем так
Драйверная модель оплат и явные статусы упрощают контроль заказов и интеграции с платёжными сервисами; cookies-корзина даёт быстрый UX без авторизации. Spatie-медиабиблиотека с responsive-картинками снижает вес страниц карточек, а Inertia-панель ускоряет повседневное редактирование каталога без перегруза полноценным SPA.
Итог
Стабильный интернет-магазин: быстрый каталог и карточки, предсказуемое оформление заказа с несколькими оплатами, удобная админка для контента/заказов и аккуратная публичная часть, которая остаётся лёгкой даже при большом количестве медиа.