GebaShop: магазин корейской косметики переехал с WordPress в собственное приложение: витрина, оплата, доставка и двуязычная админка
GebaShop работал на WordPress с WooCommerce, а теперь это одно приложение на TypeScript, страницы которого собираются на ближайшем к покупателю сервере Cloudflare: витрина, кабинеты покупателей, двуязычная админка и все служебные маршруты — в одном коде, без CMS и без нагромождения плагинов. Магазин принимает реальные платежи картой и через Vipps, тарифы и транспортные этикетки Posten Bring берутся напрямую из системы перевозчика, а в той части, которую видит покупатель, нет ни одного интерфейсного фреймворка: ни React, ни jQuery, ни конструкторов страниц.
(01) — Задача
С чего начиналось
Магазин · Норвегия
Переезд работающего магазина — совсем не то же самое, что сборка новой страницы. Каталог, история заказов, правила скидок, тексты и, что важнее всего, поисковый вес каждого старого адреса нужно было перенести, ничего не сломав. Плагины, которые копились годами, предстояло заменить кодом, полностью подконтрольным студии, и всё это — не останавливая приём заказов. Каждый прежний адрес WooCommerce должен был открываться и после переезда, иначе магазин потерял бы уже заработанные позиции в поиске.
(02) — Решение
Что сделали
Код написан вручную. Дизайн, разработку и передачу проекта ведут одни и те же люди.
Движок — одно приложение на Astro поверх Cloudflare Workers: страницы собираются на сервере, данные лежат в D1 (это SQLite), картинки в R2, сессии, ограничения частоты запросов и токены восстановления пароля — в KV. Цены хранятся в эре целыми числами, без дробей: на дробных числах деньги теряют копейки. Платежи идут через QuickPay v10 с эквайрингом Clearhaus: карта и Vipps, списание и возврат прямо из админки, а каждое уведомление от платёжной системы проверяется подписью HMAC-SHA256 по исходному телу запроса. Сумма заказа всегда пересчитывается на сервере по корзине и никогда не берётся из браузера. Доставка тоже подключена напрямую: тарифы Posten Bring по индексу и весу, поиск пунктов выдачи, оформление этикетки и трек-номера одной кнопкой с экрана заказа. Поверх всего этого — написанная с нуля админка на норвежском и русском, которая работает с той же базой. Картинки при загрузке сжимаются в WebP прямо в браузере, поиск по каталогу понимает норвежские буквы, а блок «покупают вместе» строится по реальным совместным покупкам, без ручных подборок. Безопасность заложена с самого начала: пароли хешируются PBKDF2-SHA256 в 100 000 итераций, все запросы к базе параметризованы, а защитный слой на закрытых маршрутах отвечает кодом 401 и не отдаёт данные. Страницы товаров тоже быстрые: 11 августа 2026 года страница товара набрала в PageSpeed 99 баллов на мобильном и 100 на десктопе (медианы 3 прогонов). Полноценный магазин с приёмом платежей открывается так же быстро, как обычная статичная страница.
(03) — Результат
Что получилось
(04) — Замеры
Замерено, а не заявлено
Независимые проверки сайта gebashop.no. Каждую оценку можно перепроверить: ссылка заново запускает тест на работающем сайте.
PageSpeed Insights
Замер 11 августа 2026
- 100
- Скорость, десктоп
- 99
- Скорость, телефон
- 97
- Доступность
- 100
- Рекомендации
- 100
- SEO
- 3/3
- Agentic
Хотите такой же результат? Всё обсудим письменно.
Заполните бриф за 5 минут, и в тот же рабочий день мы пришлём письменное предложение с фиксированной ценой.