Проект 07 — Интернет-магазин и переезд на новую платформу [ 2 059 точек · растеризовано при сборке · понятно поисковикам ]

GebaShop: магазин корейской косметики переехал с WordPress в собственное приложение: витрина, оплата, доставка и двуязычная админка

GebaShop работал на WordPress с WooCommerce, а теперь это одно приложение на TypeScript, страницы которого собираются на ближайшем к покупателю сервере Cloudflare: витрина, кабинеты покупателей, двуязычная админка и все служебные маршруты — в одном коде, без CMS и без нагромождения плагинов. Магазин принимает реальные платежи картой и через Vipps, тарифы и транспортные этикетки Posten Bring берутся напрямую из системы перевозчика, а в той части, которую видит покупатель, нет ни одного интерфейсного фреймворка: ни React, ни jQuery, ни конструкторов страниц.

Главная страница сайта GebaShop: интернет-магазин и переезд на новую платформу

(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 прогонов). Полноценный магазин с приёмом платежей открывается так же быстро, как обычная статичная страница.

Сайт GebaShop, экран 1: интернет-магазин и переезд на новую платформу
Сайт GebaShop, экран 2: интернет-магазин и переезд на новую платформу
Сайт GebaShop, экран 3: интернет-магазин и переезд на новую платформу
Сайт GebaShop, экран 4: интернет-магазин и переезд на новую платформу
Сайт GebaShop, экран 5: интернет-магазин и переезд на новую платформу
Сайт GebaShop, экран 6: интернет-магазин и переезд на новую платформу

(03) — Результат

Что получилось

83 Маршрута приложения
33 Служебных маршрута
19 Экранов админки
Cloudflare Workers · D1 · R2 Архитектура

(04) — Замеры

Замерено, а не заявлено

Независимые проверки сайта gebashop.no. Каждую оценку можно перепроверить: ссылка заново запускает тест на работающем сайте.

PageSpeed Insights

Замер 11 августа 2026

100
Скорость, десктоп
99
Скорость, телефон
97
Доступность
100
Рекомендации
100
SEO
3/3
Agentic
Проверить в PageSpeed

Хотите такой же результат? Всё обсудим письменно.

Заполните бриф за 5 минут, и в тот же рабочий день мы пришлём письменное предложение с фиксированной ценой.