Decoroll
Магазин ролет на OpenCart: полагоджені калькулятор ціни й оформлення замовлення, а потім оптимізація, що зменшила навантаження на базу й зняла обмеження CPU від хостингу.

Задача
Магазину ролет треба було полагодити калькулятор ціни й оформлення замовлення, а потім йому загрожувало блокування від хостингу: сайт і база споживали приблизно вдвічі більше за добовий ліміт CPU, і ніхто не знав чому.
Рішення
- Калькулятор ціни: правильне округлення (раніше додавалась 1 грн навіть до цілих сум), сума в кошику більше не «пливе» на 1–2 грн при кількох одиницях, кнопка «В кошик» блокується, доки рахується ціна, тож ніхто не замовить за неправильною ціною на повільному інтернеті, а запити калькулятора більше не падають через змішаний http/https.
- Оформлення: поле адреси підлаштовується під спосіб доставки (адреса для курʼєра чи відділення), автозаповнення браузера більше не підставляє область і місто, а Chrome перестав вставляти збережений пароль адміна у форму замовлення.
- Пошта: листи з форми контактів йдуть від скриньки магазину, а адреса відвідувача — у Reply-To, тож хостинг більше їх не відхиляє.
- SEO: прибрано близько 550 застарілих редиректів, виправлено мовні префікси в адресах зображень і в усіх товарних фідах, у robots.txt виправлено sitemap, що вела на localhost.
- Інцидент з CPU: письмове розслідування знайшло першопричину — відносні посилання в темі разом із ЧПУ без валідації створювали нескінченний простір сторінок для краулерів. Вкладені адреси тепер згортаються редиректом ще до запуску PHP, посилання виправлено, додано 8 індексів БД і кеш адрес, розчищено таблицю сесій, захищено обробку зображень, зупинено лог помилок на 1 ГБ, сайт переведено за Cloudflare із захистом від ботів — із перевіреним бекапом БД перед кожною зміною.
- Робоче середовище: проєкт переведено в git із Docker-середовищем і локальними конфігами.
Результат
Рядків БД на перегляд картки товару: 619 950 → 0. Сесій у базі: 57 040 → 6 777. Sitemap: 1,12 → 0,16 с. Після виправлень головна відповідає за 0,20 с, картки товарів — за 0,52–0,63 с. Хостинг зняв обмеження.