Планета Золота: підтримка та доопрацювання ювелірного інтернет-магазину

325

Клієнт: planeta-zolota.com.ua — ювелірний інтернет-магазин (Запоріжжя, Україна), близько 2 300 товарів у каталозі, українська та російська версії сайту (planeta-zolota.ru).
Платформа: Yii2, самописна адмін-панель, MySQL, інтеграція з 1С.
Формат роботи: доопрацювання та супровід успадкованого проєкту — код писали не ми.
Період: з лютого 2020 по весну 2021 року.


З чого почали

Ми підключилися до проєкту не як автори коду, а як команда, якій належало розібратися в чужому, вже працюючому магазині та акуратно його розвивати. Перше знайомство відбулося на суміжному проєкті клієнта, після чого замовник передав нам основний і найбільш навантажений сайт — Планету Золота.

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

Що було зроблено

Каталог, меню та навігація

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

Система фільтрації

Фільтрація виявилася однією з найбільш трудомістких частин проєкту. Магазин фільтрує товари за ціною, вставками, металом, пробою, статтю та типом виробу одночасно, і в успадкованому коді ця механіка працювала з помилками: фільтр за ціною захоплював товари дорожчі за заданий діапазон, фільтр за вставкою міг підтягнути не вибраний камінь, під час сортування зникала бокова фільтрація і виникала помилка. Ми поетапно вичищали ці дефекти, налаштовували фільтрацію за тією самою ціною, що виводиться на архівних сторінках, і стабілізували роботу випадного меню, яке раніше «залипало» при повторному відкритті розділу. Як чесно фіксували в переписці — переписана кимось іншим і зламана фільтрація складніша в налагодженні, ніж нова, тому частину задач вирішували в кілька ітерацій.

Картка товару та ціноутворення

Привели до ладу вёрстку карток: відступи між блоками, читабельність шрифту, «розліплення» кнопок і тексту. Окремо розібрали алгоритм розрахунку ціни — з урахуванням знижок і додаткової вартості за опції виробу. Знайшли й усунули давню логічну помилку, через яку у товарів з опціями знижка не спрацьовувала і на сайті з'являлися нульові та некоректні ціни. На прохання клієнта реалізували механіку «фіктивної» (маркетингової) знижки: можливість вивести поруч із ціною закреслену «стару» вартість, редаговану адміністратором.

SEO-доопрацювання

Спільно з SEO-фахівцем замовника ми виконали великий блок технічної оптимізації: налаштували robots.txt, виправили коректний атрибут lang для мультимовності, реалізували мікророзмітку schema.org для товарів і сторінок, прописали alt-атрибути зображенням, вбудували коди верифікації Google Search Console. Найбільш масштабною задачею стало прибирання битих сторінок: сканування виявило 518 URL із відповіддю 404, і ми, знаходячи першопричини в шаблонах (canonical у head, логіка пагінації), послідовно звели їхню кількість до нуля. Доопрацьовували пагінацію та канонічні посилання для сторінок каталогу.

Інтеграція з 1С — найскладніший вузол

Магазин синхронізується з 1С: товари, ціни, метали та зображення вивантажуються на сайт автоматично раз на годину. Цю інтеграцію писали не ми, і коли вивантаження почало давати збої — нові товари не з'являлися на сайті, ціни та ціна золота за грам переставали оновлюватися, — розплутувати доводилося буквально по рядках JSON-відповідей сервера.

Щоб вирішити проблему на належному рівні, ми залучили до проєкту окремого фахівця з Yii і разом з 1С-програмістом замовника провели глибокий розбір обміну. З'ясувалося, що вивантаження падало через метали, GUID яких був відсутній у базі сайту, а також через обов'язкові поля (дорогоцінний метал, проба), які приходили порожніми для сталі та кераміки. Ми налагодили обробку цих випадків на боці сайту, розібралися з механікою реєстрації та вивантаження зображень на FTP (включно з ефектом тимчасового «зникнення» картинок при оновленні моделі) і додали виведення всіх помилок імпорту, щоб майбутні збої було видно одразу. Масові биті сторінки 404, які генерувалися саме через некоректні вивантаження, після стабілізації обміну зникли.

Кошик, замовлення та пошта

Відновили доставку листів про нові замовлення: причина була не в сайті, а в сервісі розсилок SendGrid, який раз за разом позначав поштову скриньку магазину як заблоковану — ми знаходили і знімали ці блокування. Реалізували валідацію номера телефону в кошику з масками для українських і російських номерів (із заділом на інші країни СНД), щоб у заявки не потрапляли некоректні контакти під час рекламних кампаній. Розбирали проблему автозаповнення адреси, через яку частина користувачів не могла оформити замовлення.

Аналітика, хостинг та інше

Навели лад в аналітиці: розділили Google Tag Manager і Google Analytics, підключили Search Console, встановили Facebook Pixel, прибрали конфліктуючі та зайві лічильники. Підключили онлайн-чат Replain із сповіщеннями в Telegram. З боку інфраструктури усунули переповнення пам'яті при виведенні всіх 2 300 товарів в адмінці та запропонували збільшити оперативну пам'ять сервера з 2 до 4 ГБ. З дрібниць — оформили службові сторінки (Оферта, Політика конфіденційності, Chargeback), налаштували карту Google на сторінці контактів із виведенням адреси та координат через адмінку, поправили іконки соцмереж і логотип.

Виклики проєкту

Головна особливість цього проєкту — робота з живим, навантаженим магазином на застарілому фреймворку, код і інтеграції якого створювала інша команда. Доводилося діяти точково й обережно: будь-яка зміна в базі чи структурі могла зачепити працюючий функціонал, а повноцінно розгорнути проєкт у локальному середовищі було складно. Окремим викликом стала інтеграція сайту з 1С, яку ми не розробляли, але яку потрібно було лагодити у зв'язці з 1С-фахівцем замовника.

У ході роботи ми запропонували клієнту перейти на нормальний процес розробки — з використанням Git і віртуального середовища, щоб на локальних машинах були актуальні версії проєкту, незалежні від того, що розгорнуто на хостингу, і щоб нові доопрацювання не «нашаровувалися» на нестабільний каркас, а впроваджувалися поетапно і після тестування.

Результат

За час співпраці магазин отримав перероблений каталог і меню, стабілізовану систему фільтрації, коректне ціноутворення та маркетингові знижки, виконаний пакет технічного SEO (у тому числі повністю усунені 518 битих сторінок), відновлену та зміцнену синхронізацію з 1С, працюючу доставку листів про замовлення, валідацію замовлень і налаштовану веб-аналітику. Із набору розрізнених багів і «відвалюваних» механік проєкт було приведено до передбачуваного, керованого стану, у якому замовник міг спокійно запускати рекламу та розвивати продажі.

Поділитися
Бажаєте замовити розробку сайту?
Заходьте до нашого online каталогу Веб-студій та вибирайте партнера за рядом критеріїв: бал, портфоліо, відгуки, кейси та статті. Або організуйте тендер в даному каталозі, вибравши компанії, що вам сподобалися.
Підписка на розсилку
Отримуйте один лист на тиждень із найважливішими новинами.
КОМПАНІЯ:
JetBit
ДОДАНО:
03-08-2026
Перейти на сайт
Дізнатись ціну на розробку сайтів у:
Bug