Retour
A/B Test · Kameleoon · B2B

Open Quotes
Module.

Remplacement dynamique de la Wishlist native par un widget affichant les devis ouverts de l'utilisateur montrer l'intent d'achat actif plutôt que les favoris passés.

JavaScript Kameleoon DOM Injection CRO · B2B
Aperçu du projet Open Quotes Module — Rubix
Type A/B Test · Kameleoon
Stack JS · DOM
Contexte E-commerce B2B
Langues DE · FR · EN · NL · IT

Le problème à résoudre.

Sur un site e-commerce B2B, la page d'accueil affiche une Wishlist native une liste de produits favoris passifs. Or les utilisateurs connectés disposent souvent de devis ouverts en attente de décision : un signal d'intent d'achat bien plus fort qu'une liste de vœux figée.

La Wishlist bloque le call-to-action principal et masque l'information commerciale la plus pertinente. Hypothèse testée : remplacer la Wishlist par un widget de devis ouverts (numéro, dates, statut, prix) augmente le taux de conversion et accélère la clôture des devis les utilisateurs reprennent là où ils s'étaient arrêtés.

0 flicker
CSS anti-flicker avant injection
5 langues
DE / FR / EN / NL / IT
0 API
100% client-side, fake clicks DOM

Injection dynamique, sans serveur.

Un script Kameleoon qui intercepte la Wishlist native, récupère les devis ouverts via fake clics, et injecte un widget stylisé le tout sans appel API externe.

→ 01

Détection et masquage du widget natif.

Le script attend la présence du widget Wishlist via Kameleoon.API.Core.runWhenElementPresent(). À la détection, il ajoute la classe kam-quote-injected et passe le widget en opacity: 0 anti-flicker CSS, zéro saut visuel.

→ 02

Récupération via fake navigation.

Si le cache sessionStorage est vide, le script simule des clics utilisateur sur l'onglet « Angebote » (devis) pour charger les données, puis capture le premier devis via runWhenElementPresent() sur le sélecteur cible.

→ 03

Injection du widget stylisé.

Le HTML du devis est stocké en sessionStorage. À chaque chargement, le script injecte titre, devis formaté, badges de statut, prix et CTA « Voir tous les devis ». Grid layout 70px | 1fr | auto pour un rendu compact.

→ 04

Gestion multi-langues + cache.

Détection de la langue depuis le pathname (/de/, /fr/…) et chargement des traductions via un dictionnaire. Cache tokené par langue : si l'utilisateur change de langue, le cache se purge automatiquement et le module se réexécute.

// extrait — fake clic sur l'onglet Angebote pour charger les devis
var quotesTabButton = document.querySelector('#quotesTabButton');
if (quotesTabButton) {
  triggerClick(quotesTabButton); // charge les devis sans requête API
  Kameleoon.API.Core.runWhenElementPresent(
    '.HomeLastOpenQuotes__item .QuotationsSummaryItem__row',
    function (quoteItems) { /* extraction + cache sessionStorage */ }
  );
}

Résultats obtenus.

→ 01

Conversion en hausse

Le widget affiche l'intent d'achat actif (devis en attente) plutôt qu'une liste passive. Les utilisateurs voient leurs devis ouverts et peuvent relancer un processus d'achat interrompu.

→ 02

Clôture des devis accélérée

Accès direct aux devis depuis l'accueil (+1 clic), réduction de la friction dans le funnel augmentation attendue du taux de clôture des devis ouverts.

→ 03

Zéro infrastructure

100% JavaScript côté client, exécuté via la plateforme Kameleoon. Aucun serveur, aucune API supplémentaire déploiement et itération en quelques minutes.

→ 04

UX transparente

Anti-flicker CSS, gestion intelligente du cache, fallback gracieux (retour à la Wishlist en cas de timeout). Aucune dégradation pour les utilisateurs sans devis.

→ Projet suivant
Conversions Popin — extension Chrome QA Kameleoon.
Voir le projet