Проєкт: Американський B2C-бренд (NDA)

Особливості бізнес-моделі: нова тематична колекція лаків щомісячно і маркетингова кампанія під неї

Особливості проєкту: сайт було перенесено з платформи Magento на WooCommerce

Основна проблема: втрата трафіку через 404 помилки та те, що сайт «лягав» при пікових навантаженнях

Додаткові негаразди:

  • Уповільнена робота через старі URL та неоптимальний код.
  • Застарілі функції — фільтри, кошик, wishlist.
  • Неефективний процес розробки — баги та дорогі помилки при релізах.

Які задачі було поставлено перед нашою командою?

  • усунути всі проблеми, пов’язані зі зміною структури URL після перенесення сайту з Magento;
  • впровадити автоматичне тестування всього магазину, щоб усунути ризики при розгортанні нових версій;
  • усунути проблеми з продуктивністю при роботі сайту на пікових навантаженнях;
  • виправити баги та помилки у фільтрах каталогу, панелі адміністратора, на сторінках Wishlist та інших.

Як ми допомогли нашому партнеру?

Усунення проблем, пов’язаних зі зміною структури URL 

Після переходу з Magento деякі популярні URL-адреси були переналаштовані відразу, наприклад, картки продуктів і популярні категорії, а деякі були пропущені. Люди, які переходили із закладок до Pinterest, використовували стару URL-адресу, таким чином фіксувалась величезна кількість помилок 404 у журналі сервера. Зокрема, сервер отримав додаткове навантаження, яке не несло жодної користі. Вирішення проблеми:

  • Використання плагіна WordPress для переспрямування, щоб налаштувати реєстр абсолютно всіх 404 помилок, які були на WordPress після переносу, та застосування проксі-менеджера Nginx для перехоплення неіснуючих картинок та інших елементів.
  • Налаштування редиректів з усіх СТАРИХ адрес особистого кабінету (ще на Magento) та встановлення переспрямувань для всіх варіантів URL старих фільтрів.

Впровадження автоматичних тестів

Налаштували процес за допомогою інфраструктури тестування Codeception. Запускається віртуальна машина, яка використовує рушій Selenium (спеціальний браузер). Тести з коду PHP інтерпретуються в реальні дії «користувача» – наведіть курсор на кнопку, натисніть, знайдіть поле, введіть дані, подивіться, чи з’явився елемент і т.д. Автоматичні тести охопили кошик, обліковий запис користувача, банери та інші функції. Завдяки цьому вдалось знайти та усунути безліч багів, які впливали на продуктивність інтернет-магазину.

Оптимізація

Ми провели аудит, виявили проблеми з кешуванням, замінили деякі плагіни кодом і оптимізували таблицю з замовленнями. Наближалася Чорна п’ятниця, а це означало збільшення навантаження на сайт. Рік тому клієнт втратив значну частину замовлень через проблеми з сайтом. Для замовлень клієнтів ми створили окрему таблицю, оптимізовану для MySQL. Вона замінила wp_posts + wp_postmeta, які були до оптимізації. В результаті замовлення не були втрачені, а значить, ризик пропустити клієнта був нульовим. Збільшили швидкість веб-сайту для клієнтів, які увійшли в систему, і клієнтів, які додали щось у кошик. В результаті абсолютно всі сторінки стали завантажуватися швидше ніж 500-600 мс.

До оптимізації партнер хотів переходити на інфраструктуру Kubernetes. Це дороге рішення, адже її налаштування та обслуговування влітає в копійку.  Ми усунули навантаження — спростили інфраструктуру, відмовившись від дорогого Kubernetes.

Виправлення проблем з фільтрацією 

Кастомна фільтрація (за кольором, ціною та іншими параметрами) працювала некоректно. Ми обережно допрацювали MySQL запит, який використовується для всіх варіантів фільтрації. Переконалися, що ці кейси коректно кешуються на рівні даних (щоб уникнути уповільнення роботи) і успішно навели порядок в одній з основних функцій інтернет-магазину – фільтрі товарів.

Покращення сторінки Wishlist 

Використовувалась застаріла версія одного з преміум-плагінів для створення Wishlist. Ми дочекались оновлення цього інструменту, в якому використовується Frontend-first Wishlist на базі AJAX fragments. Всі «вподобайки» на сторінці розставляються за допомогою JS. Відповідно, після буквально 1 запиту до сервера при рендерингу сторінки ми вже знаємо актуальний список бажань і кешуємо його на стороні клієнта. Якщо щось змінюється – оновлюємо. Все це синхронізується між вкладками та не сповільнює роботу сайту.

Результати партнера після нашої співпраці

  • +1000 якісних переходів на день завдяки redirects та покращенню UX.
  • Середній чек виріс в півтора рази.
  • Швидкість завантаження сторінок скоротилася до 500-600 мс.
  • Сайт витримав Чорну п’ятницю без простоїв.
  • Автоматизація тестів виключила баги на продакшні.
  • У процесі тестування виявлено та усунено 10+ старих багів.
  • +100 000 доларів на першій рекламній кампанії після оптимізації.
  • Підвищення довіри клієнтів завдяки стабільності та зручності.

Чому вдалося досягти таких результатів?

  • Ми знаємо тонкощі сфери та орієнтуємось на досвід успішних проєктів.
  • Команда правильно розставляє пріоритети та розробляє потрібні функції.
  • Розробники наслідують кращі практики написання коду, в майбутньому іншим фахівцям буде легко зануритися в проєкт.
  • Там, де немає готового рішення, ми виявляємо винахідливість та впроваджуємо custom фічі.
  • Команда працює з будь-якими рішеннями для WordPress — від дрібних правок до великих інтеграцій.
  • Ми не ставимо за мету «продати більше функцій», наше завдання — забезпечити потрібні опції нашому клієнту.

Якщо ви починаєте startup-проект або власник готового e-commerce бізнесу та хочете отримати грамотний процес розробки, ми знаємо, як це зробити.