Все кейсы

VARENO2026vareno.fun

Интернет-магазин наборов для 27 стран ЕС с VAT, доставкой, админкой и Google Ads — построен за один рабочий день

Суть за 10 секунд

EU-магазин оригинальных конструкторов для 27 стран под концепцией «смотри, что нашёл»: НДС по странам, 135 тарифов доставки, админка на 6 ролей, 7 языков и Google Ads на 3856 ключей. Собран за один рабочий день.

36
страниц
75
таблиц БД
27
стран с VAT
7
языков
135
тарифов доставки
960
оптимизированных картинок
3856
рекламных ключей
1
день на всё
VARENO

Задача

Заказчику нужен был полноценный EU-магазин под ключ: каталог, корзина, чекаут с правильными налогами, админка для команды, юридические документы и готовая реклама — быстро.

Результат

48 коммитов и 39 тысяч строк за день: работающий магазин с 74 товарами, 819 URL в sitemap, зелёными тестами и рекламой на 3 856 ключей. До приёма оплат остаётся договор с платёжным шлюзом и права на изображения.

Что сделано

  • Next.js 16 App Router + Drizzle ORM + PostgreSQL: 22 страницы витрины, 14 страниц админки, 9 API-роутов, 18 server actions, 32 компонента
  • База: 75 таблиц, 16 enum, миграции; каталог 74 товара, 9 категорий с акцентными цветами, 14 брендов, 518 переводов
  • Деньги: целые центы, VAT из базы по 27 странам (OSS/domestic), 2 метода доставки × 27 стран × вес, промо-движок, транзакционный резерв склада
  • Заказы: машина статусов из 18 состояний, страницы успеха/ошибки, кабинет по magic-link без паролей
  • Админка: заказы, товары, склад, цены, клиенты, поддержка, поиск, юрдокументы, настройки, журнал аудита; RBAC на 6 ролей
  • Поиск: PostgreSQL full-text + pg_trgm с разбором намерения («mclaren» сразу ведёт в коллекцию)
  • Изображения: 207 исходников → 960 webp/avif через sharp в собственном хранилище
  • SEO: hreflang на 7 языков, sitemap на 819 URL, schema.org Product и Breadcrumb, robots с закрытой служебкой
  • Безопасность: строгая CSP, HSTS, rate-limit, audit_log, вход без паролей
  • Интеграции: geoip для страны и валюты, Telegram-воронка событий заказа, GA4 и Google Ads с Consent Mode v2
  • Google Ads: 7 Search-кампаний по языкам, 448 групп «1 набор = 1 группа», 3 856 ключей, 331 минус-фраза, 448 RSA, стратегия трёх фаз
  • Тесты: 39 автотестов и Playwright-воронка с телефона — все зелёные

Экраны

Изучить детали — полная картина

Идея и концепция

Заказчик — продавец из Кракова — хотел европейский магазин наборов, который не выглядит как очередной каталог. Мы начали с исследования покупателя и сформулировали концепцию «смотри, что нашёл»: продаём момент «пааап, смотри, что я нашёл!» и спокойствие того, кто платит. Отсюда три входа в навигацию, подборщик подарков по трём вопросам, карточка-история вместо таблицы характеристик, рукописные тексты и свой акцентный цвет у каждой категории.

Витрина

22 страницы: главная с героем-локомотивом и полками Rare/New/Favourites, категории и бренды внутри них, карточка товара с галереей, «что внутри», «сколько займёт», «кому понравится» и JSON-LD Product, живой поиск с разбором намерения (запрос «mclaren» сразу ведёт в коллекцию), кураторские разделы, корзина с пересчётом налогов и доставки при смене страны, чекаут, страницы результата, кабинет по magic-link.

74 товара от 16,99 до 936,99 евро, 9 категорий, 14 брендов, 518 переводов на 7 локалей, 207 исходных изображений превращены в 960 webp/avif через sharp в собственном хранилище.

Механика денег

Все суммы — целые центы. НДС берётся из базы по 27 странам в режимах OSS и domestic. Доставка — два метода на 27 стран с шагами по весу, 135 тарифов. Промо-движок, механика Mystery Gift (выключена до юридической проверки), машина статусов заказа из 18 состояний, транзакционный резерв склада через FOR UPDATE, чтобы два покупателя не купили последний набор.

Ценообразование опирается на данные BrickLink и brickwatch: медиана рынка минус 7,5 %.

Админка и безопасность

14 страниц админки: заказы, товары, склад, цены, клиенты, поддержка, поиск, юрдокументы, настройки, журнал аудита. RBAC на 6 ролей, вход без паролей по magic-link, audit_log каждого действия. Строгая CSP, HSTS, rate-limit.

SEO, интеграции, реклама

hreflang на 7 языков, sitemap на 819 URL, schema.org Product и Breadcrumb, robots закрывает служебные пути. geoip-lite определяет страну и валюту офлайн. Telegram получает события воронки заказа. GA4 и Google Ads подключены через Consent Mode v2.

Google Ads: 7 Search-кампаний по языкам на ЕС-27, 448 групп по принципу «один набор — одна группа», 3856 ключей Exact/Phrase, 331 минус-фраза, 448 адаптивных объявлений, sitelinks и callouts, стратегия трёх фаз в README.

Как это уложилось в день

48 коммитов, 259 файлов, 39 195 строк за 7 сентября 2026: аудит, исследование покупателя, код, миграции, сид каталога, юридические черновики, рекламные файлы. Нейросети использовались открыто на каждом этапе; 39 автотестов и Playwright-воронка с телефона зелёные.

Честно о том, что не доделано

  • Оплата — redirect-адаптер на внешнюю форму владельца, серверная верификация ждёт договора со шлюзом.
  • Права на 207 изображений товаров не подтверждены, 12 юридических документов — черновики до проверки юристом.
  • SMTP не подключён (письма в консоль), приложение запущено без systemd-юнита — в чеклисте запуска.

Стек Next.js 16React 19Drizzle ORMPostgreSQLsharpTailwindPlaywrightGoogle AdsGA4Telegram API

заявка

Расскажите идею. Пары строк достаточно.

Ответим в течение рабочего дня в удобном вам мессенджере. Никаких рассылок.

Или сразу в Telegram: @moreteploe

Сюда нужен @ник, телефон или почта — иначе мы вас не найдём.
Удобный способ связи

Отправляя, вы соглашаетесь с обработкой данных для ответа на заявку.