Кейс · Поддержка · Переезд · Безопасность

Belkson

Интернет-витрина детской одежды с заказом через мессенджеры размещалась на зарубежной облачной платформе: из России сайт открывался нестабильно, а затем приложение перестало запускаться и сайт стал недоступен. Нужно было вернуть его в работу и взять на поддержку вместе с доработками.

8 m6 m4 m2 mwaterline
Срок
3 дня, 14 релизов
Стек
React, Hono, PostgreSQL, Docker, GitLab CI
Сайт проекта
belkson.ru

Задача

Интернет-витрина детской одежды с заказом через мессенджеры размещалась на зарубежной облачной платформе: из России сайт открывался нестабильно, а затем приложение перестало запускаться и сайт стал недоступен. Нужно было вернуть его в работу и взять на поддержку вместе с доработками.

Что сделали

Перенесли сайт и базу на серверы в России, настроили резервное копирование и выпуск релизов с автоматическим откатом. Провели аудит безопасности и устранили уязвимости: теперь посторонний не может увидеть заказы покупателей или изменить цены и товары. Это может только владелица магазина. Починили сломанные разделы админки, ускорили загрузку каталога и восстановили автообновление каталога магазина Next для раздела выкупа.

Результат

Сайт снова работает в России и принимает заказы, каталог загружается быстрее: данные страницы весят 10 КБ вместо 6,5 МБ

Что именно сделали

Переезд в Россию

Сайт и база с 1033 товарами, заказами и всеми настройками перенесены с зарубежной платформы, где приложение перестало запускаться, на сервер в России. Домен переключен, HTTPS с автопродлением.

Надежность

Ежедневные резервные копии базы. Релизы выходят через GitLab: сборка, проверка и автоматический откат на прошлую версию, если что-то пошло не так. Сайт больше не зависит от репозитория прежнего разработчика.

Безопасность

Провели аудит безопасности и устранили найденные уязвимости. Теперь посторонний человек не может посмотреть заказы покупателей, изменить цены или удалить товары. Все это может только владелица магазина после входа в панель управления. Пароль заменили на надежный и храним в зашифрованном виде, а форма заказа больше не принимает пустые заявки.

Админка

Восстановили разделы «Контакты», «О нас», «Мессенджеры» и «Выкуп с сайтов», которые не сохранялись. Вкладка «Товары» перестала бесконечно грузиться и нагружать сервер, удаление заказов и блоков требует подтверждения. Статус наличия ставится автоматически по остатку: нет, мало, в наличии. Количество товара сохраняется при быстрых нажатиях, а удаленные скидки действительно отключаются.

Быстрый каталог

Фото товаров передавались прямо внутри данных каталога, поэтому данные страницы из 20 товаров весили 6,5 МБ. Мы вынесли фото в отдельные файлы. Теперь данные такой страницы весят около 10 КБ, а фото подгружаются отдельно и при повторном просмотре берутся из кэша браузера. Фото больше не теряют качество при каждом сохранении товара.

Каталог и поиск

В фильтре можно выбрать сразу несколько размеров, а счетчик показывает точное число товаров с учетом фильтра. Поиск по бренду снова находит вещи, сортировка по цене работает по всему каталогу, дублирующие подкатегории объединены.

Все оформление на сервере сайта

Шрифты, иконки и стили грузились с серверов Google и публичных CDN и в России часто не открывались: сайт показывался другим шрифтом, а вместо иконок появлялся текст. Перенесли все на сервер сайта, а картинки слайдера загрузили в максимальном качестве.

Выкуп с зарубежных сайтов

В разделе выкупа покупатели заказывают вещи из магазина Next через Belkson. Каталог Next перестал обновляться. Мы настроили ежедневное автообновление для Казахстана и Великобритании и починили британский регион. В заказ теперь попадают ссылка на товар, артикул, регион и размер, поэтому искать вещь вручную не нужно. Курс для пересчета цен владелица задает сама в настройках.

Мессенджеры

Заказ оформляется через мессенджеры, а ссылки вели не туда: VK — на чужую страницу, MAX был битым, канал Telegram открывал личные сообщения. Мы заменили их на актуальные, и заказы снова доходят до владелицы.

Заказы без ошибок

Повторное нажатие кнопки мессенджера больше не создает второй заказ. В сообщении владелице сразу есть номер заказа, артикул, размер и цвет. Цену и скидку пересчитывает сервер, поэтому в заказ не попадет неверная сумма. Корзина не дает заказать больше, чем есть в наличии, или оформить заказ без размера, а если цена изменилась или товар закончился, покупатель видит это до отправки.

  1. Пользователи
    • Покупатели
    • Владелица магазина
  2. Интерфейс
    • Витрина
    • Админка
  3. Сервер
    • API на Hono
    • PostgreSQL
    • Резервные копии
  4. Внешние сервисы
    • Мессенджеры
    • Внешние каталоги
Рис. 1. Витрина и админка работают на одном API: заказ уходит в мессенджеры, внешние каталоги обновляются сами

Торговля и e-commerce

Еще кейсы отрасли

Все кейсы
КлиентЗадачаЧто сделалиРезультат

Ремешок.com

Отрасль
Торговля и e-commerce
Направление
Софт для бизнеса

Оптовые покупатели набирают на сайте партии ремешков для часов. В каталоге больше 10 000 позиций, которые отличаются только размером, цветом и другими свойствами, а готовые CMS для магазинов на тот момент не позволяли настроить карточку товара и корзину под такой каталог.

Сделали собственную CRM. Товар описывается один раз, а размеры, цвета и другие свойства назначаются ему из заранее созданных справочников. Покупатель на сайте видит каждый вариант отдельным товаром и находит его через фильтры.

Сотрудники ведут 1000 карточек вместо 10 000 позиций

Похожая задача? Разберем ее на коротком созвоне

Обсудить похожую задачу
Обсудить
Обсудить проект

Вопрос о Datakeel

Спросите про услуги, сроки, стоимость или кейсы, и мы ответим по материалам сайта.

Сейчас поиск работает по тексту сайта. AI-ответы по тем же материалам подключим следующим этапом.