Skip to content
online
env0.46.1 · 1d135e2
MaintainedUpdated Aug 31, 2026

Decoroll

An OpenCart store for roller blinds: a fixed price calculator and checkout, then a performance rescue that cut the database load and lifted the host’s CPU restriction.

Decoroll home page: a roller-blind and window-blind store with a catalogue button, product search, phone and opening hours, a banner with blinds in a living room and popular categories such as blackout, vertical and day-night

Challenge

A roller-blind store needed its price calculator and checkout fixed — and then it was close to being shut off by its host: the site and its database were using about twice the daily CPU limit, and nobody knew why.

Solution

  • Price calculator: correct rounding (it used to add 1 UAH even to whole sums), the cart total no longer drifting by 1–2 UAH for several items, the “Add to cart” button locked while the price is being calculated so nobody orders at a wrong price on a slow connection, and calculator requests that no longer fail on mixed http/https.
  • Checkout: the address field adapts to the delivery method (courier address or branch), browser autofill no longer fills region fields, and Chrome stopped inserting the admin’s saved password into the order form.
  • Email: contact-form messages are sent from the store’s mailbox with the visitor in Reply-To, so the host stopped rejecting them.
  • SEO: about 550 obsolete redirects removed, language prefixes fixed in image URLs and in all product feeds, a sitemap that pointed to localhost fixed in robots.txt.
  • The CPU incident: a written investigation found the root cause — relative links in the theme plus unvalidated friendly URLs created an endless space of pages for crawlers. Nested URLs are now collapsed with a redirect before PHP runs, links were fixed, eight database indexes and URL caching added, the session table cleaned, image handling hardened, a 1 GB error log stopped, and the site moved behind Cloudflare with bot protection — with a verified database backup before every change.
  • Development setup: the project moved into git with a Docker environment and local configs.

Result

Rows read per product page view: 619,950 → 0. Sessions in the database: 57,040 → 6,777. Sitemap: 1.12 s → 0.16 s. After the fixes the home page responds in 0.20 s and product pages in 0.52–0.63 s. The host lifted the restriction.

Screenshots