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


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