WeighMyRack

Как улучшить пользовательский опыт на сайте сравнения цен

10+
онлайн-магазинов подключено
ускорение обновления
51
место по данным Similarweb
ДОБАВИТЬ ФИДЫ
УСТРАНИТЬ БАГИ
УЛУЧШИТЬ ПРОИЗВОДИТЕЛЬНОСТЬ
Хотите так же?

О клиенте

WeighMyRack — американская прайс-площадка, помогающая любителям скалолазания подобрать экипировку по выгодной цене. Клиенту требовалась команда с глубокой экспертизой в Drupal для сложного проекта, и как можно скорее — разработчики из команды поддержки сайта решили закрыть своё агентство.

Задача

Перед нами стояла задача настроить импорт данных о товарах из 10 онлайн-магазинов, сделать рефакторинг кода, обновить ядро CMS, устранить баги из имеющейся функциональности, улучшить производительность сайта и интерфейс.

Решение

Добавление новых фильтров

Главная задача сайта — это помочь пользователю найти нужный товар по выгодной цене. Для этого на страницах с категориями товаров работает поиск, в котором можно настроить фильтрацию по бренду, цене, цвету, форме, размеру, весу, полученных наградах и скидках; без гибкой системы поиска, как и без многого другого, немыслим ни один сайт электронной коммерции. С помощью Drupal-модуля Facet API мы сделали в поиске несколько новых фильтров: по стране магазина, который продает товар, скидкам и т. п. Эта информация содержится в .csv или .txt-файлах, которые обновляются раз в день.

поиск с фильтрацией на сайте WeighMyRack

Рефакторинг кода

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

Сохранение данных

Данные на сайт приходят с серверов main и sync. На сервере main администратор сайта создаёт страницы с товарами и поддерживает их в актуальном виде; сервер sync работает импортом данных о товарах. Оба сервера меняют базу данных. Эти изменения нужно было регулярно сохранять и иметь возможность вернуть данные 12-часовой давности при отказе сайта. Для этого мы написали скрипт, который делает ежедневные бэкапы данных перед началом очередного импорта и записывает их в бэкап-хранилище на удалённом сервере с отладочным сайтом.

Ускорение обновления данных

Площадка начала свою работу с двух магазинов получала данные из двух интернет-магазинов, и на импортирование уходило 3-5 часов. При подключении ещё нескольких ритейлеров время увеличилось до 24 часов. Чтобы данные обновлялись быстрее, мы настроили параллельную обработку фидов вместо последовательной.

страница товара на сайте WeighMyRack

Защита от DDoS-атак

Чтобы сайт продолжил нормальную работу после DDoS-атаки, мы установили систему мониторинга и возобновления процессов Monit. Система позволяет перезапускать процессы и сервисы спустя 3 минуты после того, как MySQL, Apache или httpd перестанут отвечать — удобно, если DDoS-атака производится ночью.

Ускорение загрузки сайта

После оптимизации сервера, подключения агрегации css/js и использования технологии Lazy Load для особо тяжелых страниц сайт стал загружаться и откликаться в разы быстрее прежнего.

Результаты

  • Подключено более 10 дополнительных онлайн-магазинов
  • Время на обновление данных сокращено в два раза
  • На момент публикации кейса сайт занимает 51 место в категории «Виды спорта > Скалолазание» по данным SimilarWeb.

Мы сохраняем с клиентом отношения, разрабатываем новую функциональность и поддерживаем сайт.

Сайт клиента: weighmyrack.com

Напишите нам!

Мы регулярно просматриваем не только почту, но и спам. Ваша заявка от нас не ускользнёт.

Напишите нам!

Но сначала правильно заполните обязательные поля.