Decoroll
Une boutique OpenCart de stores enrouleurs : un calculateur de prix et un tunnel de commande corrigés, puis un sauvetage des performances qui a réduit la charge de la base de données et levé la restriction CPU imposée par l’hébergeur.

Défi
Une boutique de stores enrouleurs devait faire corriger son calculateur de prix et son tunnel de commande — puis elle a failli être coupée par son hébergeur : le site et sa base de données consommaient environ deux fois la limite quotidienne de CPU, sans que personne sache pourquoi.
Solution
- Calculateur de prix : arrondi correct (il ajoutait 1 UAH même aux montants ronds), un total du panier qui ne dérive plus de 1–2 UAH pour plusieurs articles, le bouton « Ajouter au panier » bloqué pendant le calcul du prix pour que personne ne commande à un mauvais prix sur une connexion lente, et des requêtes du calculateur qui n’échouent plus sur un mélange http/https.
- Commande : le champ d’adresse s’adapte au mode de livraison (adresse pour le coursier ou point relais), la saisie automatique du navigateur ne remplit plus les champs de région, et Chrome n’insère plus le mot de passe enregistré de l’administrateur dans le formulaire de commande.
- E-mail : les messages du formulaire de contact partent de la boîte de la boutique, avec le visiteur en Reply-To, si bien que l’hébergeur ne les rejette plus.
- SEO : environ 550 redirections obsolètes supprimées, préfixes de langue corrigés dans les URL des images et dans tous les flux produits, un sitemap qui pointait vers localhost corrigé dans robots.txt.
- L’incident CPU : une enquête écrite a trouvé la cause racine — des liens relatifs dans le thème et des URL « propres » non validées créaient un espace infini de pages pour les robots d’exploration. Les URL imbriquées sont désormais ramenées par une redirection avant l’exécution de PHP, les liens ont été corrigés, huit index de base de données et une mise en cache des URL ont été ajoutés, la table des sessions nettoyée, le traitement des images renforcé, un journal d’erreurs de 1 Go stoppé, et le site placé derrière Cloudflare avec protection contre les robots — avec une sauvegarde vérifiée de la base de données avant chaque modification.
- Environnement de développement : le projet est passé sous git avec un environnement Docker et des configurations locales.
Résultat
Lignes lues par affichage de page produit : 619 950 → 0. Sessions en base de données : 57 040 → 6 777. Sitemap : 1,12 s → 0,16 s. Après les corrections, la page d’accueil répond en 0,20 s et les pages produits en 0,52–0,63 s. L’hébergeur a levé la restriction.