Каталог, меню і навігація. Переробили структуру каталогу і зібрали нове багаторівневе меню категорій та підкатегорій з коректним порядком пунктів і зображеннями. Каталог тут будується не з простих категорій, а з наборів фільтрів, тож будь-яка зміна вимагала акуратної звірки, щоб, наприклад, розділ «Весілля та заручини» не почав видавати ланцюжки й браслети. Додали перегляд виробів сіткою по три товари в ряд, закріпили в хедері кошик і контакти, переробили футер і блок контактів.
Система фільтрації. Магазин фільтрує товари за ціною, вставками, металом, пробою, статтю і типом виробу одночасно, і у успадкованому коді ця механіка працювала з помилками: фільтр за ціною захоплював товари дорожче заданого діапазону, фільтр за вставкою міг підтягнути не той камінь, при сортуванні зникала бокова фільтрація. Поетапно вичистили ці дефекти, налаштували фільтрацію за тією ж ціною, що виводиться на архівних сторінках, і стабілізували роботу випадного меню, яке раніше «залипало» при повторному відкритті розділу.
Картка товару і ціноутворення. Привели в порядок верстку карток — відступи, читабельність шрифту, «розлипання» кнопок і тексту. Розібрали алгоритм розрахунку ціни з урахуванням знижок і додаткової вартості за опції виробу та знайшли давню логічну помилку, через яку у товарів з опціями знижка не спрацьовувала і з'являлися нульові та некоректні ціни. На прохання клієнта реалізували механіку маркетингової знижки — закреслену «стару» ціну поруч із поточною, редаговану адміністратором.
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 товарів в адмінці і запропонували збільшити оперативну пам'ять сервера.
Підсумок для клієнта. З набору розрізнених багів і «відвалюваних» механік магазин прийшов до передбачуваного, керованого стану: каталог і фільтри працюють коректно, ціни рахуються вірно, синхронізація з 1С стабільна, а замовник може спокійно запускати рекламу й розвивати продажі, не побоюючись, що сайт підведе в ключовий момент.


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