<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vous avez cherché tp - st9ph.fr</title>
	<atom:link href="https://st9ph.fr/search/tp/feed/rss2/" rel="self" type="application/rss+xml" />
	<link>https://st9ph.fr/</link>
	<description>la boite à outils numériques</description>
	<lastBuildDate>Thu, 07 May 2026 09:40:32 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://st9ph.fr/wp-content/uploads/2026/02/cropped-ico-fav-32x32.png</url>
	<title>Vous avez cherché tp - st9ph.fr</title>
	<link>https://st9ph.fr/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">199087513</site>	<item>
		<title>🎓TP-Satcli</title>
		<link>https://st9ph.fr/%f0%9f%8e%93tp-satcli/</link>
					<comments>https://st9ph.fr/%f0%9f%8e%93tp-satcli/#respond</comments>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Wed, 11 Mar 2026 11:01:15 +0000</pubDate>
				<category><![CDATA[😎 privé]]></category>
		<guid isPermaLink="false">https://st9ph.fr/?p=35824</guid>

					<description><![CDATA[<p>🔐 Ce TP est un atelier guidé, réservé à mes étudiants. Vous aurez besoin de mots de passe que je vous donnerai par étapes. Notez-les pour pouvoir revenir ici refaire les travaux en autonomie. ℹ️ En préalable à cette séquence, revoyez : 🌐 🐧le SAV Prestashop voir 🌐 🏷️ Animation RC &#124; la Satisfaction Client ... <a title="🎓TP-Satcli" class="read-more" href="https://st9ph.fr/%f0%9f%8e%93tp-satcli/" aria-label="En savoir plus sur 🎓TP-Satcli">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-satcli/">🎓TP-Satcli</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group callout rouge"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph">🔐 Ce TP est un atelier guidé, <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#c94444" class="has-inline-color">réservé à mes étudiants</mark></strong>. Vous aurez besoin de <strong>mots de passe </strong>que je vous donnerai <strong>par étapes</strong>. Notez-les pour pouvoir revenir ici refaire les travaux en autonomie.</p>


<ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-e80e5399-128e-4efb-a8a5-d58b72e2863f">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%23cf2e2e&quot; d=&quot;M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-5d5c34b9-817f-452b-aa5a-4f57bd4c9a4a">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#cf2e2e" d="M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"></path></svg>
				</span>
				<span class="ub_list_item_text"><strong>Si vous actualisez la page</strong>, les<strong> mots de passe</strong> devront être ressaisis et les <strong>réponses faites aux quiz </strong>seront<strong> effacées</strong>.</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-8c440ddf-6399-4f2a-abcf-d4a1a9c3a692">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">Vous conserverez toutefois le bénéfice des <strong>réponses des formulaires </strong>que vous avez envoyés car ils me seront parvenus par mail. <strong>Inutile de les recommencer.</strong></span>
			</div>
			
		</li>
</ul></div></div>



<p class="wp-block-paragraph">ℹ️ En préalable à cette séquence, revoyez :</p>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">🐧le SAV Prestashop</span>
    <a class="resource-link" href="https://st9ph.fr/prestashop-le-service-apres-vente/" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text">🏷️ Animation RC | la Satisfaction Client</span>
    <a class="resource-link" href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-la-satisfaction-client/" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Quelle est la TVA sur les livres ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="bravo, c'est cela !">5,5 %</li>
    <li data-correct="false" data-feedback="Non, seulement 5,5%">10 %</li>
    <li data-correct="false" data-feedback="Non, seulement 5,5%">20 %</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="289" height="411" src="https://st9ph.fr/wp-content/uploads/2026/01/tva55.png" alt="" class="wp-image-32922" srcset="https://st9ph.fr/wp-content/uploads/2026/01/tva55.png 289w, https://st9ph.fr/wp-content/uploads/2026/01/tva55-211x300.png 211w" sizes="(max-width: 289px) 100vw, 289px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="289" height="411" src="https://st9ph.fr/wp-content/uploads/2026/01/tva10.png" alt="" class="wp-image-32921" srcset="https://st9ph.fr/wp-content/uploads/2026/01/tva10.png 289w, https://st9ph.fr/wp-content/uploads/2026/01/tva10-211x300.png 211w" sizes="(max-width: 289px) 100vw, 289px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="289" height="411" src="https://st9ph.fr/wp-content/uploads/2026/01/tva20.png" alt="" class="wp-image-32920" srcset="https://st9ph.fr/wp-content/uploads/2026/01/tva20.png 289w, https://st9ph.fr/wp-content/uploads/2026/01/tva20-211x300.png 211w" sizes="(max-width: 289px) 100vw, 289px" /></figure>
</div>
</div>
</div>
</div>



<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 1.8rem 0;
}

/* Numéro */
.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 3rem;
  padding: 0 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px 0 0 10px;
}

/* Contenu */
.chapter-content {
  padding: 0.4rem 1.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-left: 4px solid #1e73be;
}

/* H2 avec logo */
.chapter-content h2 {
  margin: 0;
  font-size: 2.05rem;
  font-weight: 700;
  color: #1e73be;
  display: flex;
  align-items: center;
  gap: 0.6rem; /* espace logo / texte */
}

/* Logo carré */
.chapter-icon {
  width: 34px;
  height: 34px;
  object-fit: contain;
  flex-shrink: 0;
}

/* Sous-titre */
.chapter-subtitle {
  margin-top: 0.35rem;
  font-style: italic;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">0</div>
  <div class="chapter-content">
    <h2>
      <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png"
           alt=""
           class="chapter-icon">
      Le contexte de vente
    </h2>
    <p class="chapter-subtitle">le livre électronique (ebook)</p>
  </div>
</div>



<ul class="wp-block-list">
<li>Contrairement au livre papier : <strong>pas de logistique</strong> (impression, stockage, transport &#8230;)</li>



<li>Le distributeur = le libraire = <a href="https://shop.st9ph.fr/presta/fr/10-ebooks" target="_blank" rel="noreferrer noopener">la boutique st9ph</a> (il vous faut un compte pour voir les ebooks et sur la boutique, ils sont en mode catalogue &#8211; sans prix)</li>



<li><strong>Marges</strong> : éditeur : 40 %, auteur : 30 %, marchand 20 %</li>



<li>Tous les <strong>couts de publication </strong>(formatage, mise, en page &#8230;) et <strong>de publicité</strong> (mise en avant du produit dans la presse spécialisée, les salons de libraires &#8230;) sont <strong>pour l&#8217;éditeur,</strong></li>



<li>pas de <strong>cout matériel</strong> (même le stockage numérique est insignifiant, 1 seul fichier d&#8217;1 ou 2 Mo génère autant d&#8217;envois qu&#8217;on le souhaite) et juste <strong>des frais </strong>noyés d&#8217;hébergement <strong>dans le fonctionnement global </strong>de la eshop (dont le SAV)</li>



<li><strong>TVA</strong> : <strong>5,5 %</strong></li>
</ul>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph">Voici les répartitions des deux ebooks cités pendant l&#8217;appel  :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%"><div class="wp-block-image">
<figure class="alignright size-full"><img loading="lazy" decoding="async" width="194" height="295" src="https://st9ph.fr/wp-content/uploads/2026/03/cyrano.jpg" alt="" class="wp-image-35894"/></figure>
</div></div>
</div>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="429" height="381" src="https://st9ph.fr/wp-content/uploads/2026/03/image-13.png" alt="" class="wp-image-35828" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-13.png 429w, https://st9ph.fr/wp-content/uploads/2026/03/image-13-300x266.png 300w" sizes="auto, (max-width: 429px) 100vw, 429px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="207" height="300" src="https://st9ph.fr/wp-content/uploads/2026/03/livre-recettes.jpg" alt="" class="wp-image-35895" style="aspect-ratio:0.6900269541778976;width:213px;height:auto"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"></div>
</div>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="429" height="381" src="https://st9ph.fr/wp-content/uploads/2026/03/image-14.png" alt="" class="wp-image-35829" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-14.png 429w, https://st9ph.fr/wp-content/uploads/2026/03/image-14-300x266.png 300w" sizes="auto, (max-width: 429px) 100vw, 429px" /></figure>
</div>
</div>



<p class="has-small-font-size wp-block-paragraph">Excel a arrondi les % (d&#8217;autant plus que je n&#8217;ai pas inclus les frais fixes) mais les montants sont exacts.</p>



<ul class="wp-block-list">
<li>Sachant qu&#8217;il est <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#bb3030" class="has-inline-color">interdit de vendre à perte,</mark></strong> on sait que notre <strong>marge de manœuvre</strong> pour un geste commercial est de <strong>3,19 €HT</strong> pour Cyrano et <strong>2,70 €HT</strong> pour le livre de recettes.</li>



<li>cela correspond à un remise TTC maximale :
<ul class="wp-block-list">
<li> Pour Cyrano :
<ul class="wp-block-list">
<li>de <strong>3.37 €</strong> (marge 0%)</li>



<li>soit un prix de vente remisé de <strong>13,53 €</strong></li>
</ul>
</li>



<li>Pour le livre de recettes :
<ul class="wp-block-list">
<li>de <strong>2,85 € </strong>(marge 0%)</li>



<li>soit un prix de vente remisé de <strong>11,45 €</strong></li>
</ul>
</li>



<li>Pour les deux achetés ensemble :
<ul class="wp-block-list">
<li>de <strong>6,22 €</strong> (marge 0%)</li>



<li>soit un prix de vente remisé de <strong>24,97</strong> €</li>
</ul>
</li>
</ul>
</li>
</ul>



<p class="callout rouge wp-block-paragraph">👉🏻 C&#8217;est le seuil sous lequel nous vendrions à perte (donc, illégalement). Gardons cela en mémoire pour la suite !</p>



<div class="chapter-title">
  <div class="chapter-number">1</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>
      <h2>Autopsie d&#8217;un appel en service client</h2>
    </div>
    <ul class="chapter-points">
  <li>La situation objective (observable) au moment de l&#8217;appel</li>
  <li>un appel qui semble réussi</li>
  <li>le bilan est en réalité désastreux</li>
</ul>
  </div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>La situation objective (observable) au moment de l&#8217;appe</strong>l</h3>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID1">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID1' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID1" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID1' PAR TON ID ET 'S@tCli' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID1', 'S@tCli')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID1" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<ul class="wp-block-list">
<li>Corinne Titgoutte est <strong>nouvelle cliente</strong> et <strong>son 1er achat </strong>a été effectué il y&#8217;a 2 jours pour un ebook de recettes culinaires &#8220;les 30 recettes préférées des Français&#8221; d&#8217;un montant de 14 € 30</li>



<li>Le <strong>paiement a été accepté</strong>, le lien de téléchargement envoyé et <strong>la cliente à téléchargé le produit</strong></li>
</ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li>Cette cliente <strong>a appelé le service commercial</strong> une 1er fois hier matin pour se plaindre que ce n&#8217;était pas le produit qu&#8217;elle avait commandé, qu&#8217;elle voulait Cyrano de Bergerac, donc que la boutique en ligne avait fait une erreur
<ul class="wp-block-list">
<li>Célia, la téléconseillère, note dans son <strong>compte-rendu d&#8217;appel </strong>qu&#8217;elle a conseillé à la cliente de faire <strong>un ticket de réclamation</strong>, ne pouvant rien faire &#8220;à son niveau&#8221;, n&#8217;ayant pas constaté d&#8217;erreur de notre part. Elle précise que la cliente a bien commandé le produit qu&#8217;elle a reçu et qu&#8217;elle l&#8217;a téléchargé (interdisant le <strong>protocole de rétractation gratuite</strong>)</li>



<li>La cliente suit les instructions de Célia est <strong>un ticket est ouvert</strong> pour elle à la suite de son 1er appel</li>
</ul>
</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="181" height="319" src="https://st9ph.fr/wp-content/uploads/2026/03/image-30.png" alt="" class="wp-image-35993" style="width:215px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-30.png 181w, https://st9ph.fr/wp-content/uploads/2026/03/image-30-170x300.png 170w" sizes="auto, (max-width: 181px) 100vw, 181px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="172" height="315" src="https://st9ph.fr/wp-content/uploads/2026/03/image-31.png" alt="" class="wp-image-35994" style="aspect-ratio:0.5460343756471319;width:262px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-31.png 172w, https://st9ph.fr/wp-content/uploads/2026/03/image-31-164x300.png 164w" sizes="auto, (max-width: 172px) 100vw, 172px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="423" height="295" src="https://st9ph.fr/wp-content/uploads/2026/03/image-32.png" alt="" class="wp-image-35997" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-32.png 423w, https://st9ph.fr/wp-content/uploads/2026/03/image-32-300x209.png 300w" sizes="auto, (max-width: 423px) 100vw, 423px" /></figure>



<ul class="wp-block-list">
<li>la cliente r<strong>appelle trois heures plus tard,</strong> se retrouve à nouveau avec Célia, indiquant qu&#8217;elle n&#8217;a reçu aucune réponse à son ticket (on promet <strong>une réponse sous 48 heures</strong>). Dans son historisation, Célia précise que <strong>la cliente s&#8217;est énervée </strong>car elle lui proposait de patienter encore, et la cliente lui a raccroché au nez. (on écoutera cet appel un peu plus loin)</li>
</ul>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>🎧 <strong>un appel qui semble réussi</strong></strong></h3>



<figure class="wp-block-audio"><audio controls src="https://st9ph.fr/wp-content/uploads/2026/01/corinne-tony-bad.mp3"></audio><figcaption class="wp-element-caption">Appel n°3, <strong>1ere version</strong>, avec Tony &#8211; 3ème appel de Mme Titgoutte au service client pour ce ticket, le lendemain</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image is-style-rounded">
<figure class="alignleft size-full is-resized"><img loading="lazy" decoding="async" width="178" height="231" src="https://st9ph.fr/wp-content/uploads/2026/03/image-29.png" alt="" class="wp-image-35992" style="aspect-ratio:0.770570937135882;width:167px;height:auto"/></figure>
</div></div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-image">
<figure class="alignright size-full"><img loading="lazy" decoding="async" width="194" height="295" src="https://st9ph.fr/wp-content/uploads/2026/03/cyrano.jpg" alt="" class="wp-image-35894"/><figcaption class="wp-element-caption">le produit qu&#8217;elle dit avoir voulu commander</figcaption></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-image">
<figure class="alignleft size-full"><img loading="lazy" decoding="async" width="207" height="300" src="https://st9ph.fr/wp-content/uploads/2026/03/livre-recettes.jpg" alt="" class="wp-image-35895"/><figcaption class="wp-element-caption">le produit qu&#8217;elle a réellement commandé</figcaption></figure>
</div></div>
</div>



<p class="wp-block-paragraph"></p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<ul class="wp-block-list">
<li>La cliente repart <strong>avec le sourire</strong> 😀</li>



<li> Elle est <strong>satisfaite </strong>de la proposition qui lui est faite. 👍🏻</li>



<li>l&#8217;évaluation <strong>CSAT à chaud </strong>qu&#8217;elle donnera de cette expérience client est de 4,2 / 5</li>
</ul>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="215" height="280" src="https://st9ph.fr/wp-content/uploads/2026/03/image-48.png" alt="" class="wp-image-36134" style="width:249px;height:auto"/></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group callout jaune"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">Evaluation CSAT à chaud de l&#8217;appel  renvoyée par sms par Madame Titgoutte 👇🏻</p>


<div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-0"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-1"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-2"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-3"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-4"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-d4a7bd36-809e-4bcb-a7f4-04cb9bea5a75-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">Avez-vous été(e) bien accueilli(e), bien écouté(e) ?</div>
		</div>

<div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-0"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-1"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-2"><rect height="150" width="75" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-3"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-4"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-a60345e3-5dc0-4fe7-ac11-b3ad2952fdcc-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">Avez-vous trouvé que votre interlocuteur avait des attitudes professionnelles ?</div>
		</div>

<div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-50f7b226-cbed-489d-8669-969ce9a9df75">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-0"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-1"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-2"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-3"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-4"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-50f7b226-cbed-489d-8669-969ce9a9df75-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">Etes-vous satisfait(e) de la réponse qu&#8217;il vous a apporté ?</div>
		</div></div></div>
</div>
</div>



<p class="has-contrast-3-background-color has-background has-medium-font-size wp-block-paragraph">1️⃣ A vous de jouer ! Faites la liste des<strong> 🟢 points forts</strong> et 🟠 <strong>axes d&#8217;amélioration</strong> de cet appel initial(gardez en tête qu&#8217;on parle de satisfaction client dans la durée, donc, de fidélisation).</p>



<p class="wp-block-paragraph"></p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID2' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID2">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID2' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID2" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID2' PAR TON ID ET 'App9l1' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID2', 'App9l1')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID2' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID2" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> son 🏃🏻‍♂️‍➡️ CES est déjà de 4 (sa commande + 3 appels au service client), est-ce la fin de son parcours ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Non, le geste ne va probablement pas passer (vente à perte) mais Tony ne peut pas s'en rendre compte vu qu'elle n'a pas pu (pas voulu ?) vérifier la réception du mail coupon qu'il a généré.">Oui, c&#8217;est bon, Tony lui a dit &#8220;oui&#8221;, le reste : c&#8217;est notre &#8220;popote interne&#8221;</li>
    <li data-correct="true" data-feedback="Hélas oui, une vente à perte, il va y avoir une alerte que son manager va bloquer. On va la perdre après un coup comme celui-là.">Non, elle va devoir rappeler parce que le coupon ne va pas être validé.</li>
     </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="173" height="311" src="https://st9ph.fr/wp-content/uploads/2026/03/image-20.png" alt="" class="wp-image-35981" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-20.png 173w, https://st9ph.fr/wp-content/uploads/2026/03/image-20-167x300.png 167w" sizes="auto, (max-width: 173px) 100vw, 173px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="alignright size-full"><img loading="lazy" decoding="async" width="180" height="308" src="https://st9ph.fr/wp-content/uploads/2026/03/image-19.png" alt="" class="wp-image-35980" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-19.png 180w, https://st9ph.fr/wp-content/uploads/2026/03/image-19-175x300.png 175w" sizes="auto, (max-width: 180px) 100vw, 180px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Quel est l&#8217;indicateur de Satcli qu&#8217;on pourrait observer pour voir si Tony est coutumier des réponses à la légère ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="Oui, si le ticket doit être réouvert alors qu'il l'avait fermé, c'est signe que sa résolution était fausse. Si cela se produit souvent, c'est qu'il n'est pas assez rigoureux.">son First Contact Resolution</li>
    <li data-correct="false" data-feedback="Non, tout n'est pas de sa faute dans le parcours client et ils n'ont pas toujours à faire à lui. Il y'a plein de cas de figure qui vont prolonger leur effort sans qu'il soit en cause">Le CES de ses clients, plus il est long, moins il a été sérieux</li>
    <li data-correct="false" data-feedback="Non, on peut être très satisfait à chaud (et c'est le cas de madame Titgoutte) puis se rendre compte à froid que la parole n'est pas tenue.">Le CSAT d&#8217;après appel</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.3 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>un bilan en réalité désastreux</strong></h3>



<ul class="wp-block-list">
<li>le 🏃🏻‍♂️‍➡️ <strong>CES </strong>de la cliente est déjà <strong>de 4 </strong>(sa commande + 3 appels au service client) et <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#b13636" class="has-inline-color">cela ne va s&#8217;arrêter là</mark>,</strong> hélas.</li>



<li>Elle a au compteur <strong>une 👎🏻 1ere expérience malheureuse avec le service client </strong>et pourtant Célia avait raison de <strong>lui imputer la faute</strong> (mais elle n&#8217;a pas trouvé les bons mots, visiblement)</li>



<li>Elle semble rassurée 😮‍💨, pourtant, <strong>Tony a accordé une remise qui n&#8217;est pas autorisée</strong> (et on ne parle même pas de sa charte d&#8217;appel qui ne ressemble à rien).</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="179" height="320" src="https://st9ph.fr/wp-content/uploads/2026/03/image-22.png" alt="" class="wp-image-35983" style="width:199px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-22.png 179w, https://st9ph.fr/wp-content/uploads/2026/03/image-22-168x300.png 168w" sizes="auto, (max-width: 179px) 100vw, 179px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="178" height="309" src="https://st9ph.fr/wp-content/uploads/2026/03/image-23.png" alt="" class="wp-image-35984" style="width:231px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-23.png 178w, https://st9ph.fr/wp-content/uploads/2026/03/image-23-173x300.png 173w" sizes="auto, (max-width: 178px) 100vw, 178px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li>Il est même <strong>probable que son envoi soit bloqué </strong>🛑 si un processus de sécurité concernant le respect des règles commerciales est programmé :
<ul class="wp-block-list">
<li>il semble convaicu que l<strong>e manque à gagner n&#8217;est que de 2,30 € </strong>(geste commercial qu&#8217;il n&#8217;a pas à faire, d&#8217;ailleurs, vu que <mark style="background-color:rgba(0, 0, 0, 0);color:#d04141" class="has-inline-color"><strong>la boutique n&#8217;a pas commis d&#8217;erreur</strong>)</mark></li>



<li>Mais comme Tony a carrément <strong>fait cadeau du second ebook</strong>, c&#8217;est en fait 1<strong>3,53 €HT que l&#8217;opération coutera à la boutique</strong> (ou : &#8220;à l&#8217;œil&#8221; comme il dit dans son florilège de vocabulaire décontracté) soit <mark style="background-color:rgba(0, 0, 0, 0);color:#c83a3a" class="has-inline-color"><strong>10,16 euros de manque à gagner</strong></mark> rien que pour couvrir nos frais sur ce produit</li>



<li>l<strong>&#8216;opération n&#8217;est pas légale</strong> (nous vendons à perte), vu que nous ne sommes ni en liquidation judiciaire, ni en train de solder une fin de série (les deux seules exceptions) et nous risquons <strong>une belle amende</strong>, voire une fermeture administrative si la <img loading="lazy" decoding="async" width="27" height="12" class="wp-image-33220" style="width: 27px;" src="https://st9ph.fr/wp-content/uploads/2025/01/marianne.jpg" alt=""> <strong>DGCCRF</strong> est très fâchée.</li>
</ul>
</li>
</ul>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li>Tony ne pourra <strong>pas se rendre compte si son geste est passé</strong> vu qu&#8217;<strong>elle n&#8217;est pas devant sa boite mail</strong> et <strong>son 🏅 FCR va en pâtir </strong>(mais il l&#8217;a bien cherché) et i<strong>l est probable que cela ait bloqué </strong>(hors marge) dans l&#8217;<strong>outil de validation comptable </strong>(du moins, il faut l&#8217;espérer).</li>



<li>Il n&#8217;a <strong>pas soutenu </strong>la conclusion ni l&#8217;attitude de <strong>sa collègue</strong> , allant même jusqu&#8217;à dire qu&#8217;il aurait réagi comme sa cliente.</li>



<li>Il pourrait concourir <strong>au titre de 😮 la pire GRC</strong> du plateau : &#8220;<em>N&#8217;hésitez pas à rappeler <mark style="background-color:rgba(0, 0, 0, 0);color:#ae3232" class="has-inline-color">si ça n&#8217;a pas marché</mark>, vous devez connaitre le numéro par cœur </em><mark style="background-color:rgba(0, 0, 0, 0);color:#9f3636" class="has-inline-color"><em>à force</em> </mark>!&#8221;</li>



<li>Elle est <strong>étonnée à en rire</strong> 😂 qu&#8217;il lui dise en revoir comme s&#8217;il était un ami en la <strong>prénommant</strong>. On est vraiment <strong>très familier</strong> au SAV st9ph !</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="177" height="315" src="https://st9ph.fr/wp-content/uploads/2026/03/image-24.png" alt="" class="wp-image-35985" style="width:227px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-24.png 177w, https://st9ph.fr/wp-content/uploads/2026/03/image-24-169x300.png 169w" sizes="auto, (max-width: 177px) 100vw, 177px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="177" height="323" src="https://st9ph.fr/wp-content/uploads/2026/03/image-25.png" alt="" class="wp-image-35987" style="width:231px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-25.png 177w, https://st9ph.fr/wp-content/uploads/2026/03/image-25-164x300.png 164w" sizes="auto, (max-width: 177px) 100vw, 177px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<div class="wp-block-group callout rouge"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">Conclusion :</p>



<ul class="wp-block-list">
<li>la cliente risque de d<strong>evoir rappeler encore plus insatisfaite</strong> 😡</li>



<li>Elle <strong>n&#8217;a rien appris</strong> des 👍🏻 bonnes pratiques si c&#8217;était réellement une erreur (et pas de la mauvaise foi, ce qui est plus probable)</li>



<li>Tony a surement <strong>réduit la 📉 CLV </strong>de madame Titgoutte de façon drastique (il est probable qu&#8217;on la perde) et <strong>fait un trou dans les recettes</strong>.</li>
</ul>
</div></div>
</div>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="has-medium-font-size wp-block-paragraph">Vous commencez à mieux comprendre pourquoi je vous embête avec tous ces KPI de satisfaction client ?</p>
</blockquote>



<p class="has-medium-font-size wp-block-paragraph">🎧 On recommence, version plus pro ?</p>



<div class="chapter-title">
  <div class="chapter-number">2</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>
      <h2>On recommence, version pro !</h2>
    </div>
    <ul class="chapter-points">
  <li>l&#8217;appel corrigé</li>
  <li>Points positifs et axes d&#8217;amélioration</li>
  <li>benchmark des deux appels</li>
</ul>
  </div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Appel alternatif (seconde version)</strong></h3>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Service client, réclamation" width="900" height="506" src="https://www.youtube.com/embed/8aF2qEhE4SU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Selon la norme NF 345, combien de temps au maximum peut-on mettre en attente un client avant de le reprendre ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Non, c'est 30 secondes, et si cela dépasse, il faut le reprendre, même si c'est pour lui dire qu'on recherche toujours l'info (et le remettre en attente 30 secondes)">c&#8217;est interdit, il faut le garder en ligne</li>
    <li data-correct="true" data-feedback="Oui, si cela dépasse, il faut le reprendre, même si c'est pour lui dire qu'on recherche toujours l'info (et le remettre en attente 30 secondes)">30 secondes maxi</li>
    <li data-correct="false" data-feedback="Non, c'est 30 secondes, et si cela dépasse, il faut le reprendre, même si c'est pour lui dire qu'on recherche toujours l'info (et le remettre en attente 30 secondes)">il n&#8217;y a pas de durée : le temps nécessaire pour se renseigner</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="176" height="306" src="https://st9ph.fr/wp-content/uploads/2026/03/image-26.png" alt="" class="wp-image-35989" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-26.png 176w, https://st9ph.fr/wp-content/uploads/2026/03/image-26-173x300.png 173w" sizes="auto, (max-width: 176px) 100vw, 176px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="177" height="310" src="https://st9ph.fr/wp-content/uploads/2026/03/image-28.png" alt="" class="wp-image-35991" style="width:217px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-28.png 177w, https://st9ph.fr/wp-content/uploads/2026/03/image-28-171x300.png 171w" sizes="auto, (max-width: 177px) 100vw, 177px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<div class="wp-block-group callout jaune"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">Evaluation CSAT à chaud de cet appel alternatif renvoyée par sms par Madame Titgoutte 👇🏻</p>


<div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-bea3bb43-0ad3-47dd-9591-2456c0ddee9e">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-0"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-1"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-2"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-3"><rect height="150" width="75" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-4"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-bea3bb43-0ad3-47dd-9591-2456c0ddee9e-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">Avez-vous été(e) bien accueilli(e), bien écouté(e) ?</div>
		</div>

<div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-0d51feed-8900-40b1-b1db-44e619e276ce">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-0"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-1"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-2"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-3"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-4"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-0d51feed-8900-40b1-b1db-44e619e276ce-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">Avez-vous trouvé que votre interlocuteur avait des attitudes professionnelles ?</div>
		</div>

<div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-0"><rect height="150" width="75" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-1"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-2"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-3"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-4"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-50ac1b1c-2eae-4f74-b910-e5e7b9e78c49-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">Etes-vous satisfait(e) de la réponse qu&#8217;il vous a apporté ?</div>
		</div></div></div>
</div>
</div>



<p class="has-contrast-3-background-color has-background has-medium-font-size wp-block-paragraph">2️⃣ A vous de jouer ! Faites la liste des<strong>🟢 points forts</strong> et 🟠 <strong>axes d&#8217;amélioration</strong> de cet appel corrigé.</p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID3' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID3">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID3' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID3" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID3' PAR TON ID ET 'Alt9rnat' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID3', 'Alt9rnat')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID3' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID3" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>points forts et axes d&#8217;amélioration</strong></h3>



<ul class="wp-block-list">
<li>La cliente était <strong>déçue </strong>😞 mais <strong>admet le professionnalisme </strong>de son interlocuteur</li>



<li>la <strong>retenue sur le 1er ranking </strong>est sans doute liée au fait que <strong>la proposition était différente de ce qu&#8217;elle demandait</strong> et peut-être aussi en raison du<strong>⏱️ temps d&#8217;attente durant l&#8217;appel</strong>.</li>



<li><strong>Elle a accepté la solution </strong>à défaut de mieux mais <strong>elle va repartir dans un processus d&#8217;achat </strong>🛒.</li>



<li>l&#8217;évaluation ⭐ <strong>CSAT à chaud </strong>qu&#8217;elle donnera de cette expérience client est de <strong>3,0 / 5</strong></li>
</ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="173" height="316" src="https://st9ph.fr/wp-content/uploads/2026/03/image-34.png" alt="" class="wp-image-36006" style="width:202px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-34.png 173w, https://st9ph.fr/wp-content/uploads/2026/03/image-34-164x300.png 164w" sizes="auto, (max-width: 173px) 100vw, 173px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li>✅ la <strong>charte d&#8217;appel </strong>est <strong>respectée</strong>
<ul class="wp-block-list">
<li><strong>accueil </strong>: (présentation, requalification de la fiche, proposition de service)</li>



<li>Découverte (plan de questionnement, <strong>Enquête sur l&#8217;erreur</strong>, reformulation)</li>



<li>Sa <strong>proposition </strong>est <strong>valorisée </strong>(et ce n&#8217;est pas évident car ce n&#8217;est pas ce que la cliente attendait)</li>



<li>Son closing comporte une <strong>Next Step (</strong>comment utiliser le coupon), ce qui évitera sans doute un appel si elle veut l&#8217;utiliser pour un autre produit que celui auquel elle pense pour l&#8217;instant.</li>
</ul>
</li>
</ul>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li>✅ Il a les <strong>bonnes attitudes</strong> :
<ul class="wp-block-list">
<li>il défend Célia (son historisation en phase de découverte, son absence de geste en conclusion)</li>



<li>Il <mark style="background-color:rgba(0, 0, 0, 0);color:#6eb84a" class="has-inline-color">ne contrarie pas</mark><strong> ce qu&#8217;affirme la cliente </strong>(mais <mark style="background-color:rgba(0, 0, 0, 0);color:#bb3131" class="has-inline-color">ne le valide pas non plus</mark>), ne remet pas en cause son erreur pourtant suspecte. Il reste <strong>factuel</strong>.</li>



<li>Il est <strong>pédagogue </strong>en expliquant qu&#8217;il vaut mieux commander depuis <strong>le détail du produit</strong>, qu&#8217;il faut <strong>lire la confirmation</strong> par mail, qu&#8217;il ne faut pas télécharger si le produit n&#8217;est pas le bon.</li>



<li>il décrit clairement quelle difficulté cela pose, <strong>ce qu&#8217;il peut et ne peut pas faire</strong></li>



<li>Il demande un <strong>validation de son manager</strong> (escalade) pour le geste commercial,
<ul class="wp-block-list">
<li>Il n&#8217;y aura <strong>pas de blocage</strong> logiciel ou hiérarchique</li>



<li>la cliente n&#8217;aura pas <strong>le sentiment à froid qu&#8217;on lui a menti </strong>(comme dans l&#8217;autre version de l&#8217;appel)</li>
</ul>
</li>
</ul>
</li>



<li>✅ L&#8217;ensemble de l&#8217;opération représente u<strong>n geste commercial de 4,90 €</strong>, ce qui <strong>permet encore une marge</strong>, certes très faible (mais réelle), de 1,22 € sur l&#8217;ensemble des deux produits.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="177" height="315" src="https://st9ph.fr/wp-content/uploads/2026/03/image-24.png" alt="" class="wp-image-35985" style="width:234px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-24.png 177w, https://st9ph.fr/wp-content/uploads/2026/03/image-24-169x300.png 169w" sizes="auto, (max-width: 177px) 100vw, 177px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="177" height="318" src="https://st9ph.fr/wp-content/uploads/2026/03/image-33.png" alt="" class="wp-image-36005" style="width:261px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-33.png 177w, https://st9ph.fr/wp-content/uploads/2026/03/image-33-167x300.png 167w" sizes="auto, (max-width: 177px) 100vw, 177px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<div class="wp-block-group callout rouge"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">Quelques points d&#8217;amélioration subsistent tout de même pour Tony  :</p>



<ul class="wp-block-list">
<li>Sa seule méthode pour ne pas énerver davantage sa cliente est de <strong>ne pas 🏀 rebondir sur ses remarques non factuelles</strong> (ex : &#8220;j&#8217;ai dépense 14 balles pour rien !&#8221; resté sous silence). Cela peut être perçu comme <strong>un manque d&#8217;empathie</strong>. Possible : &#8220;c&#8217;est un très bon livre que vous pourriez offrir à quelqu&#8217;un qui cuisine dans votre entourage !&#8221; Ca aurait été un début.</li>



<li>⏱️<strong>son attente est trop longue </strong>(de 2&#8217;35 à 4&#8217;55 soit 2&#8217;20). Une ou deux reprises intermédiaires pour lui dire qu&#8217;il cherchait toujours une solution auraient été les bienvenues pour la NF.</li>



<li>Il défend bien Célia, sauf pour <strong>se 😒dédouaner du 1er emportement de sa cliente</strong> Un &#8220;je ne retrouve pas l&#8217;info&#8221; aurait suffi plutôt que &#8220;elle a noté .. [ndla : liste des choses qu&#8217;elle a notées] [&#8230;] mais pas votre souhait initial&#8221;. surtout qu<strong>&#8216;elle l&#8217;a bien noté,</strong> en fait, mais qu&#8217;il ne l&#8217;a pas vu dans son commentaire</li>



<li>☑️ Son closing <strong>manque de reformulation</strong>.</li>
</ul>
</div></div>
</div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.3 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>comparaison des versions</strong></h3>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph">Si on fait <strong>le benchmark</strong> des deux appels, il n&#8217;y a pas photo 📷 :</p>



<figure class="wp-block-table is-style-stripes"><table class="has-contrast-3-background-color has-background has-fixed-layout"><thead><tr><th class="has-text-align-right" data-align="right">Critère</th><th class="has-text-align-center" data-align="center">1er Appel</th><th class="has-text-align-center" data-align="center">Appel corrigé</th></tr></thead><tbody><tr><td class="has-text-align-right" data-align="right">⭐ <strong>CSAT</strong> <br>✅|❌</td><td class="has-text-align-center" data-align="center">🟢 <strong>4,2/5</strong></td><td class="has-text-align-center" data-align="center">🔴 <strong>3,0/5 </strong>(déception)</td></tr><tr><td class="has-text-align-right" data-align="right"><strong>🏅 FCR </strong><br>❌|✅</td><td class="has-text-align-center" data-align="center">🔴 Non (erreur de process + réclamation à venir)</td><td class="has-text-align-center" data-align="center">🟢 Oui (accord client)</td></tr><tr><td class="has-text-align-right" data-align="right">🏃🏻‍♂️‍➡️ <strong>CES</strong> <br>❌|✅</td><td class="has-text-align-center" data-align="center">🔴 <strong>7</strong>+ (commande +3 appels + recherche mail coupon + rappel car introuvable +réclamation <strong>ou abandon</strong> voire contentieux)</td><td class="has-text-align-center" data-align="center">🟠 <strong>6</strong> (commande +3 appels + recherche mail coupon + commande rectificative )</td></tr><tr><td class="has-text-align-right" data-align="right">♻️ <strong>CLV</strong> <br>❌|✅</td><td class="has-text-align-center" data-align="center">🔴 risque de <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#c93535" class="has-inline-color">perdre la cliente </mark></strong>imminent</td><td class="has-text-align-center" data-align="center">🟢 1 vente attendue</td></tr><tr><td class="has-text-align-right" data-align="right">▤ <strong>SERVQUAL</strong> <br>❌|✅</td><td class="has-text-align-center" data-align="center">🔴 tangibilité : déplorable<br>🔴 Fiabilité : nulle<br>🟢 Réactivité : excellente<br>🔴 Assurance : pauvre<br>🟠 Empathie : trop forte</td><td class="has-text-align-center" data-align="center">🟢 tangibilité : Forte<br>🟢 Fiabilité : complète<br>🟠 Réactivité : escalade<br>🟢 Assurance : bonne<br>🟠 Empathie : à renforcer</td></tr><tr><td class="has-text-align-right" data-align="right">⏱️ <strong>DMT</strong> (sur la base de 3 mn) ✅|❌</td><td class="has-text-align-center" data-align="center">🟠 Trop courte (suspect)</td><td class="has-text-align-center" data-align="center">🔴 Trop longue (même sans l&#8217;attente intermédiaire)</td></tr><tr><td class="has-text-align-right" data-align="right">💰 <strong>Bénéfice</strong><br>❌|✅</td><td class="has-text-align-center" data-align="center">🔴 geste <strong>bloqué</strong> ou <strong>perte 10,16 € </strong>à reverser HT auteur + éditeur<br><strong>Cliente</strong> sans doute <strong>perdue</strong><br><strong>Risque de pénalité</strong></td><td class="has-text-align-center" data-align="center">🟢 <strong>marge </strong>faible mais <strong>positive</strong><br><strong>Vente attendue</strong><br><strong>re fidélisation</strong> acquise</td></tr></tbody></table></figure>



<p class="callout vert wp-block-paragraph">🏆 Avec un score de 5/7 (72%), <strong>l&#8217;appel corrigé l&#8217;emporte</strong> haut la main !</p>



<div class="chapter-title">
  <div class="chapter-number">3</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>
      <h2>Gérer les détracteurs</h2>
    </div>
    <ul class="chapter-points">
  <li>Règles de conduite</li>
  <li>Répondre factuellement</li>
  <li>Eviter la situation</li>
</ul>
  </div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">3.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Comment se comporter ?</strong></h3>



<p class="has-medium-font-size wp-block-paragraph">👉🏻 Imaginons maintenant que Corinne ait laissé un avis sur la fiche produit après son second appel :</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="846" height="217" src="https://st9ph.fr/wp-content/uploads/2026/03/image-15.png" alt="" class="wp-image-35918" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-15.png 846w, https://st9ph.fr/wp-content/uploads/2026/03/image-15-300x77.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-15-768x197.png 768w" sizes="auto, (max-width: 846px) 100vw, 846px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Commentaire complet : &#8220;<strong>Dégoutée !</strong></p>



<p class="wp-block-paragraph">J’avais commandé Cyrano de Bergerac et je me retrouve avec ça … En plus, la nana du service client au téléphone me dit que c’est de ma faute ! Bravo la boutique st9ph ! Quel piège à cons. Je mets 1 étoile parce que je peux pas mettre moins ! Vous aurez de mes nouvelles !&#8221;</p>
</blockquote>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="372" height="530" src="https://st9ph.fr/wp-content/uploads/2026/03/image-16.png" alt="" class="wp-image-35944" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-16.png 372w, https://st9ph.fr/wp-content/uploads/2026/03/image-16-211x300.png 211w" sizes="auto, (max-width: 372px) 100vw, 372px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:500px">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Quelle est la meilleure attitude pour le modérateur de la boutique qui va devoir valider ce commentaire ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Si, on le fait, il faut montrer qu'on accepte toutes les remarques,  mais il faudra absolument répondre à ce commentaire ">Ben, c&#8217;est clair, il ne le valide pas. En plus, il y&#8217;a un gros mot</li>
    <li data-correct="false" data-feedback="Non, on ne censure que s'il y'a attaque personnalisée ou des grossièretés qui dépassent les limites">Il le valide mais il le modère en même temps : &#8220;dégoutée&#8221; sur une fiche de recettes ! Il l&#8217;enlève, et le gros mot aussi.</li>
    <li data-correct="true" data-feedback="Oui, ça montre notre sincérité mais il faudra absolument répondre à ce commentaire ">il le valide tel quel, &#8220;con&#8221;, ça ne va choquer personne et il faut savoir prendre des coups</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>
</div>
</div>



<div class="wp-block-group callout rouge"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">🤫 Si vous êtes <strong>contraints de censurer</strong>, indiquez :</p>



<ul class="wp-block-list">
<li>[<em>élément de discours ne respectant pas la charte de bienséance ôté par le modérateur</em>] </li>



<li><strong>protégez vos agents</strong> s&#8217;ils sont nommés (ex : &#8220;Célia, votre conseillère &#8230;.&#8221; devient &#8220;[<em>note du modérateur : prénom ôté afin de ne pas exposer notre téléopératrice</em>], votre conseillère &#8230;&#8221;)</li>



<li><strong>ne censurez pas les éléments diffamants</strong>, ils vous serviront en cas de contentieux.</li>



<li>Ajoutez auss<strong>i la petite astérisque qui fait bien froid</strong> : &#8220;*<em>conformément au RGPD, vous disposez d&#8217;un droit d&#8217;accès à votre message initial qui est conservé par notre service juridique</em>&#8216;</li>
</ul>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">🔴 Exemple, si la cliente avait écrit :</p>



<p class="callout rouge wp-block-paragraph">J’avais commandé Cyrano de Bergerac et je me retrouve avec ça … En plus, <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#cf3131" class="has-inline-color">cette </mark></strong><mark style="background-color:rgba(0, 0, 0, 0);color:#d93f3f" class="has-inline-color"><strong>pétasse </strong></mark>du service client, la <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#cd3232" class="has-inline-color">Célia</mark></strong>, là,  au téléphone, elle me dit que c’est de ma faute ! Bravo la boutique st9ph ! Quel piège à cons. Je mets 1 étoile parce que je peux pas mettre moins ! Vous aurez de mes nouvelles, <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#d22c2c" class="has-inline-color">bande de </mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c82d2d" class="has-inline-color">têtards</mark></strong> !&#8221;</p>



<p class="wp-block-paragraph">🟢 La correction possible :</p>



<p class="callout vert wp-block-paragraph">J’avais commandé Cyrano de Bergerac et je me retrouve avec ça … En plus, [<strong><mark style="background-color:rgba(0, 0, 0, 0);color:#c62323" class="has-inline-color">modérateur |</mark></strong> <em>texte contraire à la charte retiré et remplacé </em>: <strong>le service client</strong>], [<strong><mark style="background-color:rgba(0, 0, 0, 0);color:#c62323" class="has-inline-color">modérateur |</mark></strong> <em>texte nommant un de nos agents remplacé </em>: <strong>la téléconseillère</strong>], là,  au téléphone, elle me dit que c’est de ma faute ! Bravo la boutique st9ph ! Quel piège à cons. Je mets 1 étoile parce que je peux pas mettre moins ! Vous aurez de mes nouvelles, [<strong><mark style="background-color:rgba(0, 0, 0, 0);color:#c62323" class="has-inline-color">modérateur |</mark></strong> <em>texte contraire à la charte retiré</em>]&#8221;</p>



<p class="has-small-font-size wp-block-paragraph">[modérateur | Vous disposez d&#8217;un droit d&#8217;accès au texte original de votre message qui est concervé par notre service juridique]</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="has-medium-font-size wp-block-paragraph">👉🏻 <strong>3 lignes conductrices </strong>pour répondre à un avis négatif :</p>



<ol class="wp-block-list">
<li>On reste <strong>factuel </strong>(les ressentis et les opinions, on les ignore)</li>



<li>On montre à notre client que son expérience négative nous impacte <strong>(empathie</strong>)</li>



<li><strong>On propose</strong> (solutions alternatives quand c&#8217;est possible) <strong>et on explique</strong> (les bonnes pratiques, quand un client s&#8217;est trompé ou croit quelque chose de faux)</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"> &#8220;<strong><mark style="background-color:rgba(0, 0, 0, 0);color:#b93131" class="has-inline-color"><s>Dégoutée !</s></mark></strong></p>



<p class="wp-block-paragraph">J’avais commandé Cyrano de Bergerac [❌ <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-contrast-2-color"><em>factuellement faux</em></mark>] et je me retrouve avec ça …<mark style="background-color:rgba(0, 0, 0, 0);color:#c33c3c" class="has-inline-color"><s>En plus, la nana du </s></mark>service client <mark style="background-color:rgba(0, 0, 0, 0);color:#c33c3c" class="has-inline-color"><s>au téléphone</s></mark> me dit que c’est de ma faute[🎧<em> <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-contrast-2-color">à vérifier</mark></em> ]<mark style="background-color:rgba(0, 0, 0, 0);color:#c33c3c" class="has-inline-color"><s> ! Bravo la boutique st9ph ! Quel piège à cons. Je mets 1 étoile parce que je peux pas mettre moins ! Vous aurez de mes nouvelles !</s></mark>&#8220;</p>
</blockquote>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="177" height="302" src="https://st9ph.fr/wp-content/uploads/2026/03/image-18.png" alt="" class="wp-image-35979" style="width:236px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-18.png 177w, https://st9ph.fr/wp-content/uploads/2026/03/image-18-176x300.png 176w" sizes="auto, (max-width: 177px) 100vw, 177px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-audio"><audio controls src="https://st9ph.fr/wp-content/uploads/2026/03/celia-corinne-clash2.mp3"></audio><figcaption class="wp-element-caption">Appel en cause (&#8220;<em>la nana au service client me dit que</em> <em>c&#8217;est de ma faute</em>&#8220;) passé à Célia &#8211; 2nd au service client pour ce ticket- c&#8217;est le superviseur qu&#8217;on entend en fin d&#8217;appel.</figcaption></figure>



<p class="has-medium-font-size wp-block-paragraph">✍🏻 A noter, les éléments déclencheurs de &#8220;clash&#8221; :</p>



<ul class="wp-block-list">
<li>Expression 🦔  <strong>hérisson</strong> : &#8220;<em>c&#8217;est marqué en gros</em>&#8221; -&gt; sous-entend : &#8220;<em>vous ne savez pas lire ?</em>&#8221; ou &#8220;<em>Vous ne faites pas attention, aussi !</em>&#8220;</li>



<li>Expression☝🏻 <strong>dominante </strong>: &#8220;<em>Ca ne se passe pas comme ça, madame !</em>&#8221; -&gt; sous-entend : &#8220;<em>Vous ne vous comportez pas comme il faut</em>.&#8221;</li>



<li>Expression 🚸 <strong>infantilisante</strong> : &#8220;<em>Soyez patiente !</em>&#8221; (et ton maternel)  -&gt; sous-entend : &#8220;<em>Comportez vous en adulte !</em>&#8220;</li>
</ul>
</div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">3.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Répondre factuellement</strong></h3>



<p class="has-contrast-3-background-color has-background has-medium-font-size wp-block-paragraph">3️⃣ Alors, quelle réponse va-t-on faire à Corinne T pour son avis ?</p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID4' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID4">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID4' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID4" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID4' PAR TON ID ET 'R9pons9' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID4', 'R9pons9')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID4' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID4" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<p class="wp-block-paragraph">Dans votre réponse, <strong>chaque mot compte</strong> et <strong>vous engage.</strong> Il faut veiller à :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li><strong>Explique</strong>z l&#8217;intégralité des touch points (peu importe la longueur de la réponse) et <strong>affirmez la réalité</strong> de ce qui est mesurable</li>



<li><strong>Défendez l&#8217;enseigne et les collaborateurs</strong> mis en cause (on s&#8217;attaque à votre image de marque et à votre Team)</li>



<li><strong>Exposez votre point de vue,</strong> si possible en démontrant qu&#8217;il est au bénéfice du client</li>



<li><strong>Recadre</strong>z si nécessaire avec diplomatie un client qui vous accuse à tord ou qui <strong>expose partiellement</strong> les choses</li>



<li>Rappeler pourquoi certains <strong>éléments de l&#8217;avis </strong>ont été <strong>censurés </strong>si vous l&#8217;avez fait. &#8220;<em>Nous avons été contraints d&#8217;ôter <em>de votre commentaire</em> certains éléments nominatifs, confidentiels ou contraires aux CGU que vous avez acceptées</em>. <em>Merci de votre compréhension</em>.&#8221;</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="175" height="269" src="https://st9ph.fr/wp-content/uploads/2026/03/image-35.png" alt="" class="wp-image-36007" style="width:217px;height:auto"/></figure>
</div>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Votre commentaire nous navre vraiment. La boutique st9ph s&#8217;efforce de satisfaire au mieux sa clientèle en lui proposant des produits de qualité ainsi qu&#8217;un service après vente fiable et réactif. </p>



<p class="wp-block-paragraph">La téléconseillère qui vous a reçue au téléphone n&#8217;a pas pu identifier d&#8217;erreur du système dans votre processus d&#8217;achat. Vous avez réellement commandé le produit que vous avez reçu et que vous avez également téléchargé. Pourquoi avoir cliqué sur le lien si ce n&#8217;était pas le bon produit ?</p>



<p class="wp-block-paragraph"> La procédure qu&#8217;elle vous a communiquée était en votre faveur pour tenter d&#8217;obtenir un geste commercial malgré l&#8217;absence de faute de notre part car votre satisfaction est notre priorité. Nous nous étions engagés à examiner votre demande sous 48 heures et vous avez été informée par email de ce délai.</p>



<p class="wp-block-paragraph">Vous avez préféré rappeler deux fois sans attendre mais nous sommes heureux que vous ayez accepté la proposition d&#8217;achat à tarif très avantageux , et à titre très exceptionnel, qui vous a été faite lors de votre dernier appel.</p>



<p class="wp-block-paragraph"> Nous vous invitons, à l&#8217;avenir, à bien lire le récapitulatif de commande que nous vous envoyons à chacun de vos achats et à ne plus télécharger son contenu s&#8217;il ne correspond pas ou plus à vos souhaits. </p>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="36" height="41" class="wp-image-33942" style="width: 36px;" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-fav.png" alt=""> <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-contrast-2-color"><strong>Stéphane</strong>, responsable du service après vente de la boutique st9ph | Il y&#8217;a 1 heure</mark></p>
</blockquote>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">3.3 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Eviter la situation</strong></h3>



<p class="wp-block-paragraph">👉🏻 Le mieux est encore d<strong>&#8216;analyser la source</strong> qui a généré le conflit est de tenter de la tarir.</p>



<p class="wp-block-paragraph"></p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> A quel moment suis-je autorisé à débiter le client qui a commandé un produit sur ma eshop ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="Oui, mais c'est prendre le risque de devoir rembourser si le client se rétracte ou si la livraison ne se passe pas bien.">Quand la commande est validée.</li>
    <li data-correct="false" data-feedback="Non, dès la validation, mais mieux vaut attendre la livraison pour éviter d'avoir à rembourser un client qui se rétracte.">A l&#8217;expédition de la commande</li>
    <li data-correct="false" data-feedback="Non, on peut débiter dès la validation même si attendre la livraison serait le meilleur moyen d'éviter d'avoir à rembourser un client qui se rétracte.">A la livraison</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Et si le client ne télécharge pas son produit passés 14 jours mais ne se manifeste pas non plus pour dire qu&#8217;il renonce à son achat ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Ah non, la loi dit qu'on a 14 jours pour changer d'avis mais il faut se manifester, sinon le client est réputé vouloir le produit définitivement..">Je le rembourse quand-même, c&#8217;est la loi !</li>
    <li data-correct="true" data-feedback="Oui, c'est sa liberté de ne pas utiliser le produit qu'il a acheté.">Je le débite, c&#8217;est son problème s&#8217;il ne télécharge pas son produit !</li>
    <li data-correct="false" data-feedback="Non, si passés 14 jours, vous n'avez pas reçu de rétractation, l'achat est définitif. Vous n'avez aucune démarche à faire avant de le débiter.">Je le relance par mail et s&#8217;il ne se manifeste pas, je le débite.</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">Documents commerciaux (factures, devis, CGV) sur le <b>Service Public</b></span>
    <a class="resource-link" href="https://entreprendre.service-public.gouv.fr/vosdroits/N31384" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<p class="has-medium-font-size wp-block-paragraph">👉🏻 Pour un produit dématérialisé, c&#8217;est même assez simple : <strong>livraison = téléchargement</strong></p>



<p class="callout bleu wp-block-paragraph">Si on observe le processus dans 🐧 <strong>Prestashop</strong>, on constate que le mail de téléchargement du produit (étape 2) parvient avant l&#8217;encaissement (étape 3) :</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="925" height="353" src="https://st9ph.fr/wp-content/uploads/2026/03/image-17.png" alt="" class="wp-image-35965" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-17.png 925w, https://st9ph.fr/wp-content/uploads/2026/03/image-17-300x114.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-17-768x293.png 768w" sizes="auto, (max-width: 925px) 100vw, 925px" /></figure>



<p class="callout vert wp-block-paragraph">✅ C&#8217;est le bon enchainement pour se prévenir d&#8217;<strong>avoir à rembourser les clients qui renoncent</strong> à leur achat</p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Dans lequel des 3 mails (étape 2 à 4), sera la facture jointe ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Non, c'est trop tôt : si le client se rétracte en ne cliquant pas, on l'aura facturé à tord.">Etape 2 &#8211; le mail de téléchargement</li>
    <li data-correct="true" data-feedback="Oui, chaque encaissement en B2C donne lieu à l'établissement immédiat d'une facture (code du commerce, L441)">Etape 3 &#8211; le mail de confirmation du  paiement</li>
    <li data-correct="false" data-feedback="Non, le code du commerce l'exige dès l'encaissement">Etape 4 &#8211; le mail récapitulatif de commande</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="has-contrast-3-background-color has-background has-medium-font-size wp-block-paragraph">4️⃣ Utilisez l&#8221;outil ci-dessous pour mapper les touch points qui ont conduit à la vente du second ebook (Cyrano) en partant de la vente du 1er (les recettes culinaires). Que peut-on en déduire en termes de rentabilité ? Peut-on améliorer le process à l&#8217;avenir pour éviter cela et réduire les couts de la réclamation.</p>



<!-- DÉBUT DU MAPPING TOUCH POINTS - VERSION AVEC BOUTON FIN -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.0.0"></script>

<style>
    /* ... (Même CSS que avant, inchangé) ... */
    .tp-mapping-container { font-family: 'Segoe UI', sans-serif; max-width: 1100px; margin: 20px auto; padding: 20px; background: #fff; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
    .tp-header { text-align: center; color: #1E73BE; margin-bottom: 10px; }
    .tp-subheader { text-align: center; font-size: 14px; color: #666; margin-bottom: 25px; }
    .tp-table { width: 100%; border-collapse: collapse; margin-bottom: 20px; background: #fff; table-layout: fixed; }
    .tp-table th { text-align: left; padding: 12px 10px; background: #e3f2fd; color: #0d47a1; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 2px solid #1E73BE; }
    .tp-table td { padding: 10px; border-bottom: 1px solid #eee; vertical-align: middle; }
    .tp-input-text { width: 100%; padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 13px; box-sizing: border-box; transition: border 0.2s; }
    .tp-input-text:focus { border-color: #1E73BE; outline: none; background: #f0f7ff; }
    .tp-input-text:read-only { background: #e8f5e9; border-color: #c8e6c9; color: #2e7d32; }
    .tp-select { padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 13px; background: #fff; cursor: pointer; width: 100%; }
    .tp-select:disabled { background: #e8f5e9; border-color: #c8e6c9; color: #2e7d32; cursor: not-allowed; }
    .btn-add { background: #1E73BE; color: white; border: none; padding: 8px 15px; border-radius: 4px; cursor: pointer; font-size: 12px; font-weight: bold; transition: all 0.2s; width: 100%; }
    .btn-add:hover { background: #155a96; transform: translateY(-1px); }
    .btn-added { background: #28a745 !important; cursor: default !important; transform: none !important; pointer-events: none; }
    .btn-added::after { content: " ✓"; }
    
    /* ZONE GRAPHIQUE */
    .tp-chart-area { display: flex; flex-direction: row; align-items: stretch; margin-top: 20px; background: #fafafa; border: 1px solid #ddd; border-radius: 8px; padding: 10px; height: 550px; box-sizing: border-box; }
    .tp-axis-y-labels { width: 80px; display: grid; grid-template-rows: repeat(5, 1fr); padding-right: 10px; box-sizing: border-box; font-weight: bold; color: #1E73BE; font-size: 12px; }
    .tp-axis-label-item { display: flex; align-items: center; justify-content: flex-end; width: 100%; padding-right: 5px; box-sizing: border-box; height: 100%; }
    .tp-chart-wrapper { flex: 1; position: relative; height: 100%; width: 100%; box-sizing: border-box; }
    .tp-axis-x-labels { width: 100%; display: flex; justify-content: space-between; padding-top: 15px; margin-top: 5px; border-top: 2px solid #e0e0e0; box-sizing: border-box; }
    .tp-axis-x-item { flex: 1; text-align: center; font-weight: bold; color: #1E73BE; font-size: 12px; display: flex; justify-content: center; align-items: center; height: 40px; }

    /* BOUTONS D'ACTION */
    .tp-actions { text-align: center; margin-top: 20px; display: flex; justify-content: center; gap: 15px; flex-wrap: wrap; }
    .btn-reset { background: #dc3545; color: white; border: none; padding: 10px 20px; border-radius: 4px; cursor: pointer; font-size: 14px; font-weight: bold; }
    .btn-reset:hover { background: #c82333; }
    
    /* NOUVEAU BOUTON FIN */
    .btn-finish {
        background: #28a745; /* Vert succès */
        color: white;
        border: none;
        padding: 10px 25px;
        border-radius: 4px;
        cursor: pointer;
        font-size: 14px;
        font-weight: bold;
        box-shadow: 0 2px 5px rgba(0,0,0,0.2);
        transition: all 0.2s;
    }
    .btn-finish:hover { background: #218838; transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.3); }

    /* STYLE DE LA POP-UP DE RÉUSSITE (Cachée par défaut) */
    .tp-success-modal {
        display: none; /* Caché */
        position: fixed;
        top: 0; left: 0; width: 100%; height: 100%;
        background: rgba(0,0,0,0.6);
        z-index: 9999;
        justify-content: center;
        align-items: center;
    }
    .tp-modal-content {
        background: white;
        padding: 30px;
        border-radius: 8px;
        max-width: 400px;
        text-align: center;
        box-shadow: 0 10px 25px rgba(0,0,0,0.3);
        border-top: 5px solid #28a745;
        animation: popIn 0.3s ease-out;
    }
    .tp-modal-content h3 { color: #28a745; margin-top: 0; font-size: 22px; }
    .tp-modal-content p { font-size: 16px; color: #555; line-height: 1.5; }
    .tp-secret-code {
        display: inline-block;
        background: #f0f7ff;
        border: 2px dashed #1E73BE;
        color: #1E73BE;
        font-weight: bold;
        font-size: 18px;
        padding: 10px 20px;
        margin: 15px 0;
        border-radius: 4px;
        user-select: all; /* Permet de sélectionner facilement */
    }
    .btn-close-modal {
        background: #1E73BE; color: white; border: none; padding: 8px 20px;
        border-radius: 4px; cursor: pointer; font-weight: bold; margin-top: 10px;
    }
    @keyframes popIn { from { transform: scale(0.8); opacity: 0; } to { transform: scale(1); opacity: 1; } }
</style>

<div class="tp-mapping-container">
    <h2 class="tp-header">🗺️ Mapping des Touch Points</h2>
    <p class="tp-subheader">Remplissez les lignes. Une fois terminé, cliquez sur le bouton vert pour obtenir le code de suite.</p>

    <table class="tp-table">
        <thead>
            <tr>
                <th style="width: 35%;">Touch Point (Max 20 car.)</th>
                <th style="width: 25%;">Moment de Vérité</th>
                <th style="width: 25%;">Canal</th>
                <th style="width: 15%; text-align: center;">Validation</th>
            </tr>
        </thead>
        <tbody>
            <!-- 10 Lignes (inchangées, copiées de la version précédente) -->
            <tr><td><input type="text" class="tp-input-text" id="tp-text-0" maxlength="20" placeholder="Ex: Recherche Google..."></td><td><select class="tp-select" id="tp-mot-0"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-0"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-0" onclick="addPoint(0)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-1" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-1"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-1"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-1" onclick="addPoint(1)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-2" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-2"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-2"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-2" onclick="addPoint(2)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-3" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-3"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-3"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-3" onclick="addPoint(3)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-4" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-4"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-4"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-4" onclick="addPoint(4)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-5" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-5"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-5"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-5" onclick="addPoint(5)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-6" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-6"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-6"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-6" onclick="addPoint(6)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-7" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-7"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-7"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-7" onclick="addPoint(7)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-8" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-8"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-8"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-8" onclick="addPoint(8)">Ajouter</button></td></tr>
            <tr><td><input type="text" class="tp-input-text" id="tp-text-9" maxlength="20" placeholder="..."></td><td><select class="tp-select" id="tp-mot-9"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="Stimulus">Stimulus</option><option value="ZMOT">ZMOT</option><option value="FMOT">FMOT</option><option value="SMOT">SMOT</option><option value="TMOT">TMOT</option><option value="LMOT">LMOT</option></select></td><td><select class="tp-select" id="tp-canal-9"><option value="" disabled selected>&#8212; Choisir &#8212;</option><option value="SVP">SVP</option><option value="EShop">EShop</option><option value="Vitrine">Vitrine</option><option value="CRC">CRC</option><option value="RS">RS</option></select></td><td style="text-align: center;"><button class="btn-add" id="btn-9" onclick="addPoint(9)">Ajouter</button></td></tr>
        </tbody>
    </table>

    <div class="tp-chart-area">
        <div class="tp-axis-y-labels">
            <div class="tp-axis-label-item">RS</div>
            <div class="tp-axis-label-item">CRC</div>
            <div class="tp-axis-label-item">Vitrine</div>
            <div class="tp-axis-label-item">EShop</div>
            <div class="tp-axis-label-item">SVP</div>
        </div>
        <div style="flex:1; display:flex; flex-direction:column;">
            <div class="tp-chart-wrapper">
                <canvas id="tpMappingChart"></canvas>
            </div>
            <div class="tp-axis-x-labels">
                <div class="tp-axis-x-item">Stimulus</div>
                <div class="tp-axis-x-item">ZMOT</div>
                <div class="tp-axis-x-item">FMOT</div>
                <div class="tp-axis-x-item">SMOT</div>
                <div class="tp-axis-x-item">TMOT</div>
                <div class="tp-axis-x-item">LMOT</div>
            </div>
        </div>
    </div>
    
    <!-- BOUTONS D'ACTION -->
    <div class="tp-actions">
        <button class="btn-finish" onclick="checkFinish()">✅ Mapping terminé (Voir le code)</button>
        <button class="btn-reset" onclick="resetAll()">🗑️ Recommencer à zéro</button>
    </div>
</div>

<!-- LA POP-UP DE RÉUSSITE (Cachée) -->
<div id="successModal" class="tp-success-modal">
    <div class="tp-modal-content">
        <h3>🎉 Bravo ! Travail terminé.</h3>
        <p>Ton mapping est complet. Voici le mot de passe pour déverrouiller la suite du TP :</p>
        
        <!-- CHANGE TON MOT DE PASSE ICI -->
        <div class="tp-secret-code">Journ9y</div>
        
        <p style="font-size:13px; color:#888;">Copie ce code et colle-le dans le bloc de verrouillage plus bas.</p>
        
        <button class="btn-close-modal" onclick="document.getElementById('successModal').style.display='none'">Fermer</button>
    </div>
</div>

<script>
    const moments = ['Stimulus', 'ZMOT', 'FMOT', 'SMOT', 'TMOT', 'LMOT'];
    const canaux = ['SVP', 'EShop', 'Vitrine', 'CRC', 'RS'];
    let chartData = [];
    let tpChart = null;

    function initChartDelayed() {
        const canvas = document.getElementById('tpMappingChart');
        if (!canvas) { setTimeout(initChartDelayed, 500); return; }
        const ctx = canvas.getContext('2d');
        if (tpChart) { tpChart.destroy(); }
        tpChart = new Chart(ctx, {
            type: 'bubble',
            data: { datasets: [] },
            options: {
                responsive: true, maintainAspectRatio: false, animation: { duration: 0 },
                layout: { padding: { top: 15, bottom: 15, left: 10, right: 10 } },
                plugins: {
                    legend: { display: false },
                    tooltip: { backgroundColor: 'rgba(0,0,0,0.8)', padding: 10, cornerRadius: 4, callbacks: { label: (ctx) => ' ' + ctx.raw.tpLabel } },
                    datalabels: { align: 'center', anchor: 'center', color: '#fff', font: { size: 9, weight: 'bold' }, textStrokeColor: '#000', textStrokeWidth: 1, formatter: (val) => val.tpLabel, display: true }
                },
                scales: { x: { display: false, min: -0.5, max: moments.length - 0.5, grid: { display: false }, ticks: { display: false } }, y: { display: false, min: -0.5, max: canaux.length - 0.5, grid: { display: false }, ticks: { display: false } } }
            }
        });
    }

    if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initChartDelayed); } else { initChartDelayed(); }

    window.addPoint = function(index) {
        const textInput = document.getElementById(`tp-text-${index}`);
        const motSelect = document.getElementById(`tp-mot-${index}`);
        const canalSelect = document.getElementById(`tp-canal-${index}`);
        const btn = document.getElementById(`btn-${index}`);
        const text = textInput.value.trim();
        const mot = motSelect.value;
        const canal = canalSelect.value;

        if (!text || !mot || !canal) {
            alert("⚠️ Veuillez remplir les 3 champs de la ligne " + (index+1));
            if(!text) textInput.style.borderColor = 'red';
            if(!mot) motSelect.style.borderColor = 'red';
            if(!canal) canalSelect.style.borderColor = 'red';
            setTimeout(() => { textInput.style.borderColor = '#ccc'; motSelect.style.borderColor = '#ccc'; canalSelect.style.borderColor = '#ccc'; }, 2000);
            return;
        }

        const x = moments.indexOf(mot);
        const y = canaux.indexOf(canal);
        const jitter = 0.35; 
        const randomX = (Math.random() - 0.5) * jitter;
        const randomY = (Math.random() - 0.5) * jitter;

        const newPoint = { x: x + randomX, y: y + randomY, r: 5, tpLabel: text, backgroundColor: '#1E73BE', borderColor: '#fff', borderWidth: 1 };
        chartData.push(newPoint);
        tpChart.data.datasets = [{ data: chartData, backgroundColor: chartData.map(p => p.backgroundColor), borderColor: chartData.map(p => p.borderColor), borderWidth: chartData.map(p => p.borderWidth) }];
        tpChart.update();

        btn.classList.add('btn-added'); btn.innerText = "Ajouté"; btn.disabled = true;
        textInput.readOnly = true; motSelect.disabled = true; canalSelect.disabled = true; textInput.style.background = '#e8f5e9';
    };

    // NOUVELLE FONCTION : VÉRIFIER ET AFFICHER LE CODE
    window.checkFinish = function() {
        if (chartData.length === 0) {
            alert("⚠️ Oups ! Tu n'as ajouté aucun point sur le graphique. Remplis au moins une ligne avant de terminer.");
            return;
        }
        
        // Si tout est bon, on affiche la pop-up
        document.getElementById('successModal').style.display = 'flex';
    };

    window.resetAll = function() {
        if(!confirm("Voulez-vous vraiment tout effacer ?")) return;
        chartData = [];
        if(tpChart) { tpChart.data.datasets = []; tpChart.update(); }
        for (let i = 0; i < 10; i++) {
            const inp = document.getElementById(`tp-text-${i}`);
            inp.value = ''; inp.readOnly = false; inp.style.background = '#fff';
            document.getElementById(`tp-mot-${i}`).value = ''; document.getElementById(`tp-mot-${i}`).disabled = false;
            document.getElementById(`tp-canal-${i}`).value = ''; document.getElementById(`tp-canal-${i}`).disabled = false;
            const btn = document.getElementById(`btn-${i}`);
            btn.classList.remove('btn-added'); btn.innerText = "Ajouter"; btn.disabled = false;
        }
    };
</script>
<!-- FIN DU MAPPING TOUCH POINTS -->



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID5' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID5">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID5' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID5" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID5' PAR TON ID ET 'Journ9y' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID5', 'Journ9y')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID5' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID5" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<p class="wp-block-paragraph">👇🏻 Voilà <strong>l'enchainement des opérations.</strong> </p>



<p class="has-small-font-size wp-block-paragraph">Si vous observez bien, l'avis laissé devrait être avant l'appel de Tony, je m'en suis rendu compte après le screenshot, désolé.</p>


<div class="wp-block-image is-style-default">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="715" height="494" src="https://st9ph.fr/wp-content/uploads/2026/03/image-36.png" alt="" class="wp-image-36020" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-36.png 715w, https://st9ph.fr/wp-content/uploads/2026/03/image-36-300x207.png 300w" sizes="auto, (max-width: 715px) 100vw, 715px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="656" height="503" src="https://st9ph.fr/wp-content/uploads/2026/03/image-37.png" alt="" class="wp-image-36021" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-37.png 656w, https://st9ph.fr/wp-content/uploads/2026/03/image-37-300x230.png 300w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure>
</div>


<p class="has-medium-font-size wp-block-paragraph">👀 On observe une concentration de 4 points en SMOT +1 en TMOT (pour seulement deux ventes) :</p>



<ul class="wp-block-list">
<li> 📞 3 appels
<ul class="wp-block-list">
<li><strong>cout moyen</strong> d'un appel pour l'entreprise = <strong>2.50 €</strong> (sur une DMC de 3'00 qu'on a largement dépassé dans cette réclamation)</li>



<li><strong>trop forte mobilisation de ressources humaines </strong>pour un produit qui nous rapporte normalement 3,37 € mais qu'on remise dont 1,22 € à la fin</li>
</ul>
</li>



<li> 🕵🏻 <strong>une enquête en SAV</strong> (recherche des données de navigation, confirmation qu'il n'y avait pas d'erreur technique)
<ul class="wp-block-list">
<li>10'00 minimum soit <strong>8 € supplémentaires </strong>(on prend une base de 50€ de l'heure pour faire simple)</li>
</ul>
</li>



<li>🗨️ <strong>Un avis à modérer</strong> et à <strong>répondre</strong>
<ul class="wp-block-list">
<li>A nouveau 10'00 pour <strong>un modérateur </strong>et <strong>un responsable commercial</strong> (qui peut parler au nom de la boutique) - peut-être même faudra-il une <strong>✅ validation de la com ou de la direction ! </strong>Mais, c'est dans les couts généraux, donc tout va bien.</li>
</ul>
</li>
</ul>



<p class="callout rouge wp-block-paragraph">L'opération nous coute à minima <strong>une quinzaine d'euros</strong> pour un produit qui nous rapporte pratiquement rien ! Sur l'ensemble, on a converti 2.70 € pour le livre des recettes et 1,22 € pour Cyrano. On en est d'<strong>une douzaine d'euros de manque à gagner</strong> à la fin !</p>



<p class="has-medium-font-size wp-block-paragraph">🪧 Mesures correctives :</p>



<p class="wp-block-paragraph"><strong>Après les avoir testés</strong>, <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">la FAQ et le Chatbot</mark></strong> <a href="https://shop.st9ph.fr/presta/fr/" target="_blank" rel="noreferrer noopener">de la boutique</a> mettent-ils en garde que le téléchargement d'un ebook <strong>annule le possibilité de se rétracter </strong>? </p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Après les avoir testés, la FAQ et le Chatbot de la boutique mettent-ils en garde que le téléchargement d'un ebook annule le possibilité de se rétracter ? </p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="c'est vrai et c'est embêtant ! il faudrait changer ça !">Ni l'un ni l'autre</li>
    <li data-correct="false" data-feedback="">La FAQ dans "Comment vais-je recevoir les Objets 3D que j'ai commandés ?" mais pas le Chatbot</li>
    <li data-correct="false" data-feedback="">le Chabot dans "nos produits", "nos modèles 3D", "comment les commander" mais pas la FAQ</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
<p class="qcm-question">🤔 <strong>Question :</strong> Doit-on prévoir aussi un paragraphe sur le droit de rétractation dans nos CGV ?</p>
<ul class="qcm-options">
<li data-correct="false" data-feedback="Si, il faut préciser les conditions légales et les recours, mais sans coller l'intégralité des textes, juste un lien pour les détails">Non, les CGV, c'est pour définir ce qui est vendu et à quelles conditions, pas pour expliquer la réglementation</li>
<li data-correct="true" data-feedback="oui, on ne peut pas passer outre.">Oui, il faut le prévoir, cela fait partie du contrat de vente</li>
<li data-correct="false" data-feedback="Non, ça ne suffit pas. Les droits des consommateurs liés à cet achat doivent être mentionnés,">Juste informer que la vente est conclue définitivement si le produit est téléchargé</li>
</ul>
<p class="qcm-feedback"></p>
<p class="qcm-local-score"></p>
</div>
<style>
.bloc-qcm {
border-left: 4px solid #1e73be;
background: #f5f9ff;
padding: 16px 18px;
margin: 24px 0;
border-radius: 4px;
font-size: 15px;
}
.qcm-options {
list-style: none;
padding: 0;
margin: 12px 0;
}
.qcm-options li {
position: relative;
padding: 10px 12px 10px 42px;
margin-bottom: 8px;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s;
}
.qcm-options li::before {
content: attr(data-letter);
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
font-weight: bold;
color: #1e73be;
}
.qcm-options li:hover {
background: #eef3ff;
}
.qcm-options li.correct {
background: #e6f4ea;
border-color: #188038;
}
.qcm-options li.wrong {
background: #fdecec;
border-color: #dc2626;
}
.qcm-feedback {
margin-top: 12px;
font-weight: bold;
}
.qcm-local-score {
margin-top: 6px;
font-weight: bold;
}
</style>
<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
const options = qcm.querySelectorAll('.qcm-options li');
const feedback = qcm.querySelector('.qcm-feedback');
const localScore = qcm.querySelector('.qcm-local-score');
let answered = false;
options.forEach((option, index) => {
option.dataset.letter = String.fromCharCode(65 + index);
});
options.forEach(option => {
option.addEventListener('click', () => {
if (answered) return;
answered = true;
options.forEach(o => o.classList.remove('correct', 'wrong'));
if (option.dataset.correct === "true") {
option.classList.add('correct');
} else {
option.classList.add('wrong');
}
feedback.textContent = option.dataset.feedback;
let point = option.dataset.correct === "true" ? 1 : 0;
localScore.textContent = "Tu marques " + point + " point";
});
});
});
</script>



<div class="resources-box">
<ul>
  <li>
🌐
<span class="resource-text">Tout savoir sur le droit de rétractation (service public)</span>
<a class="resource-link" href="https://www.service-public.gouv.fr/particuliers/vosdroits/F10485" target="_blank" rel="noopener">voir</a>
</li>
</ul>
</div>



<p class="has-contrast-3-background-color has-background has-medium-font-size wp-block-paragraph">5️⃣ répondez aux questions de ce formulaire et envoyez le moi. Un aperçu d'écran du mail de téléchargement est en dessous pour rappel.</p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="461" height="612" src="https://st9ph.fr/wp-content/uploads/2026/03/image-38.png" alt="" class="wp-image-36035" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-38.png 461w, https://st9ph.fr/wp-content/uploads/2026/03/image-38-226x300.png 226w" sizes="auto, (max-width: 461px) 100vw, 461px" /><figcaption class="wp-element-caption">mail exemple de téléchargement de la boutique</figcaption></figure>
</div>


<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID6' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID6">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID6' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID6" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID6' PAR TON ID ET 'Pr9co' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID6', 'Pr9co')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID6' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID6" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<p class="has-medium-font-size wp-block-paragraph">🔹 Quel jeu de question / réponse doit-on ajouter à la FAQ ?</p>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-6e0369f8-3cb4-4520-9682-cff2be7eee08" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--base-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--base-3);" aria-controls="ub-content-toggle-panel-0-6e0369f8-3cb4-4520-9682-cff2be7eee08" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-6e0369f8-3cb4-4520-9682-cff2be7eee08" style="color: #000000; ">🤔 <strong>Que faire si je change d'avis après mon achat ?</strong></p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-6e0369f8-3cb4-4520-9682-cff2be7eee08">

<p class="wp-block-paragraph">😊 Rassurez-vous, vous disposez d<strong>'un délai de 14 jours à compter de la validation de votre commande </strong>pour <strong>renoncer à tout achat fait à distance</strong> (hors produits périssables, personnalisés ou d'hygiène). <strong><a href="https://shop.st9ph.fr/presta/fr/nous-contacter" target="_blank" rel="noreferrer noopener">Faites nous signe</a></strong> dans le lien "<strong>contactez nous</strong>" :</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="765" height="430" src="https://st9ph.fr/wp-content/uploads/2026/03/image-39.png" alt="" class="wp-image-36038" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-39.png 765w, https://st9ph.fr/wp-content/uploads/2026/03/image-39-300x169.png 300w" sizes="auto, (max-width: 765px) 100vw, 765px" /></figure>



<ul class="wp-block-list">
<li>Choisissez le sujet "<strong>suivi de commande</strong>"</li>



<li>Indiquez nous <strong>la référence de commande</strong> (elle figure sur le mail de confirmation)</li>



<li>Indiquez clairement <strong>votre souhait de renoncer à votre achat</strong></li>



<li><strong>Acceptez les CGU</strong></li>



<li>Cliquez sur <strong>Envoyer</strong></li>
</ul>



<p class="wp-block-paragraph">C'est le 1er jour franc à partir de la réception du produit (matériel) ou du lien de téléchargement (logiciel) qui fait foi à la réception du message de rétractation. Ex : commande faite le 1er Mars (quelque soit l'heure) -&gt; rétractation possible jusqu'au 15 mars  inclus.</p>

</div>
		</div>
</div>


<p class="has-medium-font-size wp-block-paragraph">🔹 A quel endroit du chatbot serait-il le plus judicieux de rajouter une rubrique pour prévenir que tout produit téléchargé annule le droit de rétractation ?</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="349" height="455" src="https://st9ph.fr/wp-content/uploads/2026/03/image-41.png" alt="" class="wp-image-36044" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-41.png 349w, https://st9ph.fr/wp-content/uploads/2026/03/image-41-230x300.png 230w" sizes="auto, (max-width: 349px) 100vw, 349px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">👈🏻 En ce qui concerne le chabot, on peut s'informer sur les produits; sur son compte ou sur <strong>ses commandes.</strong></p>



<p class="wp-block-paragraph">➡️ C'est dans ce dernier choix que peut se faire l'insert. Si on regarde l'accompagnement procuré par le choix "<strong>j'ai une réclamation</strong>", il n'y a pas grand chose à adapter.</p>



<p class="wp-block-paragraph">➡️ On pourrait aussi s'inspirer de la procédure pour recevoir une seconde fois le mail de téléchargement avec <strong>un message prérempli </strong>à juste faire glisser 👇🏻</p>



<figure class="wp-block-video"><video height="468" style="aspect-ratio: 1172 / 468;" width="1172" autoplay loop muted src="https://st9ph.fr/wp-content/uploads/2026/02/chat-tidio-dragdrop.mp4" playsinline></video></figure>
</div>
</div>



<p class="has-medium-font-size wp-block-paragraph">🔹 A la lecture du message de téléchargement qu'a reçu madame Titgoutte, quelles améliorations pourrait-on envisager sur ce mail ?</p>



<p class="wp-block-paragraph">Il faut clairement rajouter un message d'avertissement <strong>au plus proche du lien</strong> de téléchargement !</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="736" height="270" src="https://st9ph.fr/wp-content/uploads/2026/03/image-40.png" alt="" class="wp-image-36039" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-40.png 736w, https://st9ph.fr/wp-content/uploads/2026/03/image-40-300x110.png 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>
</div>


<p class="wp-block-paragraph">👉🏻 Ainsi, on évitera peut-être ce type de réclamations plus souvent. <strong>Ajoutons le aussi au CGV </strong>pour être complet.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Article X</p>



<p class="wp-block-paragraph">Le téléchargement réussi de nos produits numériques vaut livraison et implique l'acceptation de la commande. Ainsi, il ne sera plus possible pour le client de se rétracter une fois cette opération accomplie.</p>
</blockquote>



<script>
document.addEventListener("DOMContentLoaded", function () {

  let scoreTotal = 0;
  let questionsRepondues = 0;

  const blocs = document.querySelectorAll(".bloc-qcm");

  blocs.forEach(qcm => {

    const options = qcm.querySelectorAll(".qcm-options li");
    const feedback = qcm.querySelector(".qcm-feedback");
    let answered = false;

    options.forEach(option => {
      option.addEventListener("click", function () {

        if (answered) return;
        answered = true;

        questionsRepondues++;

        const isCorrect = option.dataset.correct === "true";

        if (isCorrect) {
          scoreTotal++;
          this.classList.add("correct");
        } else {
          this.classList.add("wrong");
        }

        feedback.textContent = option.dataset.feedback +" | Ton score : " + scoreTotal + " / " + questionsRepondues;

        const global = document.getElementById("score-global");
        if (global) {
          global.textContent =
            "Score total : " + scoreTotal + " / " + questionsRepondues;
        }

      });
    });

  });

});
</script>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-satcli/">🎓TP-Satcli</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://st9ph.fr/%f0%9f%8e%93tp-satcli/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://st9ph.fr/wp-content/uploads/2026/01/corinne-tony-bad.mp3" length="1592712" type="audio/mpeg" />
<enclosure url="https://st9ph.fr/wp-content/uploads/2026/03/celia-corinne-clash2.mp3" length="1021584" type="audio/mpeg" />
<enclosure url="https://st9ph.fr/wp-content/uploads/2026/02/chat-tidio-dragdrop.mp4" length="665307" type="video/mp4" />

		<post-id xmlns="com-wordpress:feed-additions:1">35824</post-id>	</item>
		<item>
		<title>🎓TP-OP Com</title>
		<link>https://st9ph.fr/%f0%9f%8e%93tp-op-com/</link>
					<comments>https://st9ph.fr/%f0%9f%8e%93tp-op-com/#respond</comments>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 08:05:20 +0000</pubDate>
				<category><![CDATA[😎 privé]]></category>
		<guid isPermaLink="false">https://st9ph.fr/?p=36073</guid>

					<description><![CDATA[<p>🙈 Ne nous voilons pas la face, la boutique va mal : ➡️ Nous souhaitons accentuer le rayon librairie et élargir notre cible vers des lectures et des produits plus faciles , notamment : 🔒 Contenu réservé à mes étudiants Merci de votre compréhension. Demandez moi le code pour débuter le TP Déverrouiller ❌ Code ... <a title="🎓TP-OP Com" class="read-more" href="https://st9ph.fr/%f0%9f%8e%93tp-op-com/" aria-label="En savoir plus sur 🎓TP-OP Com">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-op-com/">🎓TP-OP Com</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-medium-font-size wp-block-paragraph">🙈 Ne nous voilons pas la face, <a href="https://shop.st9ph.fr/presta/fr/" target="_blank" rel="noreferrer noopener">la boutique</a> va mal :</p>



<ul class="wp-block-list">
<li> Spécialisée dans <strong>le téléchargement de produits dématérialisés</strong>, elle repose <strong>intégralement sur le canal eshop</strong>, ne pouvant exposer ses produits immatériels <strong>dans aucune boutique physique</strong>.</li>



<li>la majorité du catalogue est dédiée à des modèles de véhicules 3D qui concernent <strong>une niche d&#8217;acheteurs</strong> estimée à moins de 20 000 en France et l&#8217;autre à des livres électroniques (ebooks) dans une société où l&#8217;<strong>on lit de moins en moins</strong>.</li>
</ul>



<p class="has-medium-font-size wp-block-paragraph">➡️ Nous souhaitons accentuer le rayon librairie et élargir notre cible vers des lectures et des produits plus faciles , notamment :</p>



<ul class="wp-block-list">
<li>développer les catégories <strong>dédiées au loisirs</strong> : voyage, recettes de cuisine, arts de vivre &#8230;</li>



<li>créer <strong>un rayon BD</strong></li>



<li>Proposer <strong>des podcasts</strong> de nos ebooks en Push</li>
</ul>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID1">
    <p><strong>🔒 Contenu réservé à mes étudiants</strong></p>
    <p class="tp-wall-msg">Merci de votre compréhension. Demandez moi le code pour débuter le TP</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID1' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID1" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID1' PAR TON ID ET '0pC0m' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID1', '0pC0m')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID1" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:380px">
<style>
.ps-product-card { background: #fff; border: 1px solid #e7e7e7; border-radius: 4px; width: 100%; max-width: 300px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; transition: box-shadow 0.3s ease; position: relative; overflow: hidden; text-decoration: none; color: inherit; display: block; }
.ps-product-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.ps-product-image-wrapper { position: relative; width: 100%; padding-top: 100%; overflow: hidden; background: #f5f5f5; }
.ps-product-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.ps-product-card:hover .ps-product-image { transform: scale(1.05); }
.ps-wishlist-icon { position: absolute; top: 10px; right: 10px; background: rgba(255, 255, 255, 0.8); width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; z-index: 2; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.ps-wishlist-icon svg { width: 20px; height: 20px; fill: #7a7a7a; transition: fill 0.2s; }
.ps-wishlist-icon:hover { background: #fff; transform: scale(1.1); }
.ps-wishlist-icon:hover svg { fill: #ff4848; }
.ps-product-rating { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; z-index: 2; background: rgba(0,0,0,0.4); padding: 4px 8px; border-radius: 20px; }
.ps-star { color: #ffd700; font-size: 14px; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }
.ps-product-content { padding: 15px; text-align: center; background: #fff; }
.ps-product-name { font-size: 15px; color: #333; margin: 0 0 10px 0; font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: 42px; }
.ps-product-price { font-size: 18px; font-weight: 700; color: #25B9D7; margin: 0 0 15px 0; }
.ps-product-btn { background-color: #25B9D7; color: #fff; border: none; padding: 10px 15px; border-radius: 4px; font-size: 13px; font-weight: 600; text-transform: uppercase; cursor: pointer; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background 0.2s; text-decoration: none; box-sizing: border-box; }
.ps-product-btn:hover { background-color: #1fa3c0; color: #fff; }
.ps-product-btn svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 768px) { .ps-product-card { max-width: 100%; } }
</style>
<!-- DÉBUT VIGNETTE PRODUIT -->
<a href="https://shop.st9ph.fr/presta/fr/accueil/46-cyrano-de-bergerac.html" target="_blank" class="ps-product-card">
    <div class="ps-product-image-wrapper">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/03/cyrano-ea.jpg" alt="Cyrano de Bergerac - Edition Audio" class="ps-product-image">
        <div class="ps-wishlist-icon" title="Ajouter aux favoris" onclick="event.preventDefault(); event.stopPropagation(); alert('Fonctionnalité liste d\'envie à connecter.');">
            <svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
        </div>
        <div class="ps-product-rating">
            <span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span>
        </div>
    </div>
    <div class="ps-product-content">
        <h3 class="ps-product-name">Cyrano de Bergerac &#8211; Edition Audio</h3>
        <div class="ps-product-price">24,90 €</div>
        <div class="ps-product-btn">
            Voir dans la boutique
            <svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
        </div>
    </div>
</a>
<!-- FIN VIGNETTE PRODUIT -->
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">👈🏻 Nous avons fait un <strong>essai pilote</strong> avec un de nos ebooks au pif (<em>Cyrano&#8230; au pif&#8230; vous l&#8217;avez </em>?)</p>



<p class="callout rouge wp-block-paragraph">⚠️ Attention à la notion de podcast qui se définit en <strong>streaming</strong> via <strong>un flux RSS.</strong> Il est de votre intérêt de contraindre le lecteur à <strong>ne pas cumuler l&#8217;ensemble du flux </strong>afin de reconstituer le fichier complet et <strong>permettre son téléchargement</strong> .</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="695" height="106" src="https://st9ph.fr/wp-content/uploads/2026/03/image-45.png" alt="" class="wp-image-36093" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-45.png 695w, https://st9ph.fr/wp-content/uploads/2026/03/image-45-300x46.png 300w" sizes="auto, (max-width: 695px) 100vw, 695px" /></figure>
</div>

<div class="wp-block-uagb-faq uagb-faq__outer-wrap uagb-block-a4f451d7 uagb-faq-icon-row uagb-faq-layout-accordion uagb-faq-expand-first-false uagb-faq-inactive-other-true uagb-faq__wrap uagb-buttons-layout-wrap uagb-faq-equal-height     " data-faqtoggle="true" role="tablist"><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-f93cdaf2 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">🤔le streaming ?</span></div><div class="uagb-faq-content"><p>C&#8217;est un flux, en fait, pour permettre la lecture d&#8217;un morceau de média pendant que la suite est en train de se charger. Astuce trouvée du temps où l&#8217;internet n&#8217;était pas encore fibré ou en 5G et qui perdure encore car, figurez-vous que comme cela, vous n&#8217;avez jamais le fichier en entier et vous ne pouvez pas le pirater (enfin, pas facilement)<br></p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-d1da6f12 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">🤔 Flux RSS ?</span></div><div class="uagb-faq-content"><p>Il y&#8217;a un article à ce sujet sur le blog. Tapez &#8220;RSS&#8221; dans le moteur de la page d&#8217;accueil.</p></div></div></div></div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li>Vous pouvez <strong>cliquer sur ce bouton </strong>pour voir le pop-up 👉🏻</li>



<li><strong>A l&#8217;intérieur du Pop-up</strong>, cliquez sur le bouton &#8220;<strong>Essayer avec Cyrano&#8221;</strong> pour atteindre la fiche produit (dans un nouvel onglet)</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<style>
.audio-p49x5j-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); z-index: 9999; justify-content: center; align-items: center; backdrop-filter: blur(2px); }
.audio-p49x5j-content { background: #fff; width: 90%; max-width: 700px; display: flex; flex-direction: row; position: relative; border-radius: 8px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.3); animation: slideDownaudio-p49x5j 0.3s ease-out; }
@keyframes slideDownaudio-p49x5j { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.audio-p49x5j-left { flex: 1; background: #f4f4f4; min-width: 250px; display: flex; align-items: center; justify-content: center; }
.audio-p49x5j-left img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 300px; }
.audio-p49x5j-right { flex: 1.5; padding: 30px; display: flex; flex-direction: column; justify-content: center; text-align: left; }
.audio-p49x5j-close { position: absolute; top: 10px; right: 15px; font-size: 28px; font-weight: bold; color: #aaa; cursor: pointer; line-height: 20px; z-index: 10; transition: color 0.2s; }
.audio-p49x5j-close:hover { color: #333; }
.audio-p49x5j-title { margin-top: 0; margin-bottom: 15px; font-size: 24px; color: #333; font-weight: 700; line-height: 1.2; }
.audio-p49x5j-text { font-size: 16px; color: #555; margin-bottom: 25px; line-height: 1.6; }
.audio-p49x5j-btn { background: #1E73BE; color: white; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; font-size: 16px; display: inline-block; text-align: center; transition: background 0.2s, transform 0.2s; align-self: flex-start; border: none; cursor: pointer; }
.audio-p49x5j-btn:hover { background: #155a96; transform: translateY(-2px); color: white; }
.audio-p49x5j-trigger { background: #1E73BE; color: white; padding: 10px 20px; border-radius: 4px; text-decoration: none; font-weight: bold; display: inline-block; cursor: pointer; border: none; font-family: sans-serif; transition: background 0.2s; }
.audio-p49x5j-trigger:hover { background: #155a96; }
@media (max-width: 768px) { .audio-p49x5j-content { flex-direction: column; max-height: 90vh; overflow-y: auto; } .audio-p49x5j-left { min-width: 100%; min-height: 200px; flex: none; } .audio-p49x5j-right { padding: 20px; } .audio-p49x5j-btn { width: 100%; box-sizing: border-box; } }
</style>
<!-- DÉBUT POP-UP TEASER AUDIO -->
<div id="audio-p49x5j-modal" class="audio-p49x5j-overlay">
    <div class="audio-p49x5j-content">
        <span class="audio-p49x5j-close" onclick="document.getElementById('audio-p49x5j-modal').style.display='none'">&times;</span>
        <div class="audio-p49x5j-left"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/03/image-42.png" alt="Extrait Audio"></div>
        <div class="audio-p49x5j-right">
            <h2 class="audio-p49x5j-title">🎧 Nos Ebooks s&#8217;écoutent aussi !</h2>
            <p class="audio-p49x5j-text">Faites plus facilement votre choix dans nos ebooks en écoutant l&#8217;extrait dans le lecteur de la fiche produit</p>
            <a href="https://shop.st9ph.fr/presta/fr/accueil/46-cyrano-de-bergerac.html" target="_blank" class="audio-p49x5j-btn">Essayer avec Cyrano</a>
        </div>
    </div>
</div>
<div style="text-align:center; margin: 20px 0;">
    <button onclick="document.getElementById('audio-p49x5j-modal').style.display='flex'" class="audio-p49x5j-trigger">👀 Voir le pop-up</button>
</div>
<script>
window.onclick = function(event) {
    var modal = document.getElementById('audio-p49x5j-modal');
    if (event.target == modal) { modal.style.display = "none"; }
}
</script>
<!-- FIN POP-UP TEASER AUDIO -->
</div>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Quel est le principal défaut de ce type de pop-up ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Non, tout le monde le verra, même les nouveaux visiteurs, même si c'est vrai qu'il doit être couplé avec une campagne de push pour capter des nouveaux">Il s&#8217;adresse surtout à une audience fidélisée</li>
    <li data-correct="false" data-feedback="Il n'y a pas que l'argent dans la vie ! 😛 Là, on vise la curiosité : un nouveau moyen de consommer dans la boutique.">Pas de promo, rien à gagner ! Vous nous aviez habitués à mieux !</li>
    <li data-correct="true" data-feedback="Oui, c'est vrai, plus le CTA sera large, plus il créera l'impulsion. On vise un mode de consommation, pas une catégorie de Ebooks">Elle cible un seul produit, tout un rayon serait mieux, surtout avec des contenus variés</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="wp-block-paragraph">➡️ Vous voyez sur le récapitulatif l&#8217;extrait audio dans le lecteur 👇🏻</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="395" src="https://st9ph.fr/wp-content/uploads/2026/03/image-47-1024x395.png" alt="" class="wp-image-36097" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-47-1024x395.png 1024w, https://st9ph.fr/wp-content/uploads/2026/03/image-47-300x116.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-47-768x296.png 768w, https://st9ph.fr/wp-content/uploads/2026/03/image-47.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-5d365dbd-8eba-4fad-bc3e-f6b01fa02700" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-top: 1px solid ; border-right: 1px solid ; border-bottom: 1px solid ; border-left: 1px solid ; border-top-left-radius: 12px; border-top-right-radius: 12px; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--base-3);" aria-controls="ub-content-toggle-panel-0-5d365dbd-8eba-4fad-bc3e-f6b01fa02700" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-5d365dbd-8eba-4fad-bc3e-f6b01fa02700" style="color: #000000; "><strong>Ajouter un lecteur audio sur une fiche produit</strong> 🐧 Prestashop ?<br>⚠️ <em>Attention, c&#8217;est du code</em> !</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap left" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-math-plus"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-5d365dbd-8eba-4fad-bc3e-f6b01fa02700">

<p class="wp-block-paragraph">C&#8217;est impossible sans recourir <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#c93d3d" class="has-inline-color">à la modification du thème.</mark></strong>  Le CMS empêche toute insertion de balise dans <strong>la section &lt; &gt; </strong>du récapitulatif. En fait, Prestashop vous laisse faire mais <strong>il ignore votre code</strong> en FrontEnd.</p>



<p class="wp-block-paragraph">Après m&#8217;être battu longuement contre lui (avec l&#8217;aide de deux IA cumulées, tout de même), il a rendu les armes avec <strong>cette statégie que je vous livre <mark style="background-color:rgba(0, 0, 0, 0);color:#b63131" class="has-inline-color">(à vos risques et périls</mark></strong>). <mark style="background-color:rgba(0, 0, 0, 0);color:#bd2c2c" class="has-inline-color">Si vous vous trompez, <strong>votre boutique ne fonctionnera même plus</strong>, vous êtes prévenu(e).</mark> Il vous faudra :</p>



<ul class="wp-block-list">
<li>un <strong>accès FTP</strong> à votre CMS chez votre Provider (on va toucher au theme)</li>



<li>Faire <strong>une sauvegarde du fichier </strong>que nous allons modifier (juste au cas où &#8230;)</li>
</ul>



<ol class="wp-block-list">
<li><strong>Créez une caractéristique que vous appellerez &#8220;Audio</strong>&#8220;. Il nous suffira ensuite d&#8217;ajouter <strong>une valeur personnalisée </strong>: l&#8217;url de votre fichier mp3. C&#8217;est votre navigateur qui fera le reste du boulot car c&#8217;est lui qui fournit le lecteur audio. 
<ul class="wp-block-list">
<li>🟢 Testé OK sur <strong>Chrome, 🌳Ecosia et Edge</strong></li>



<li>🟠 A vérifier sur 🍏 <strong>Safari, 🦊 Firefox </strong>et autres (que je n&#8217;ai pas)</li>
</ul>
</li>
</ol>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="935" height="74" src="https://st9ph.fr/wp-content/uploads/2026/03/image-44.png" alt="" class="wp-image-36090" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-44.png 935w, https://st9ph.fr/wp-content/uploads/2026/03/image-44-300x24.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-44-768x61.png 768w" sizes="auto, (max-width: 935px) 100vw, 935px" /></figure>



<p class="wp-block-paragraph">2. en FTP, ouvrez  le template  :</p>



<ul class="wp-block-list">
<li>(votre thème) &gt; templates &gt; catalog &gt; <strong>product.tpl</strong></li>
</ul>



<p class="callout rouge wp-block-paragraph">C&#8217;est là qu&#8217;il faut mieux <strong>télécharger </strong>ce fichier pour pouvoir <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#d23333" class="has-inline-color">le restaurer si on le &#8220;casse&#8221;</mark></strong> en le modifiant.</p>



<p class="wp-block-paragraph">Remplacez :</p>



<p class="callout jaune wp-block-paragraph"> {block name=&#8217;product_add_to_cart&#8217;}<br>{include file=&#8217;catalog/_partials/product-add-to-cart.tpl&#8217;}<br>{/block}</p>



<p class="wp-block-paragraph">Par</p>



<div class="wp-block-group callout jaune"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph">{block name=&#8217;product_add_to_cart&#8217;}</p>



<p class="wp-block-paragraph">{foreach from=$product.features item=feature}<br>{if $feature.name == &#8220;Audio&#8221;}<br><br>{/if}<br>{/foreach}</p>



<p class="wp-block-paragraph">{include file=&#8217;catalog/_partials/product-add-to-cart.tpl&#8217;}</p>



<p class="wp-block-paragraph">{/block}</p>
</div></div>



<p class="wp-block-paragraph">➡️ <strong>Enregistrez</strong>, <strong>videz le cache </strong>respirez très fort et, normalement🥲,  le tour est joué.</p>



<p class="wp-block-paragraph">Sinon, vous êtes bon pour uploader votre fichier de sauvegarde <strong>product.tpl</strong> pour annuler la manipulation.</p>



<p class="has-text-align-center has-small-font-size wp-block-paragraph">Testé uniquement sur le theme Classic 1.0.0 sous CMS en v1.7.8.11</p>

</div>
		</div>
</div>


<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="callout rouge wp-block-paragraph">On remarque que mon lecteur n&#8217;est pas bridé et que <strong>n&#8217;importe qui peut télécharger l&#8217;ensemble du flux.</strong> Ca va parce que c&#8217;est un extrait mais ne faites surtout pas cela si le stream est complet !</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="412" height="146" src="https://st9ph.fr/wp-content/uploads/2026/03/image-46.png" alt="" class="wp-image-36095" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-46.png 412w, https://st9ph.fr/wp-content/uploads/2026/03/image-46-300x106.png 300w" sizes="auto, (max-width: 412px) 100vw, 412px" /></figure>
</div>
</div>



<div class="chapter-title">
<div class="chapter-number">1</div>
<div class="chapter-content">
<div class="chapter-heading">
<a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
<img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
</a>
<h2>Op Com depuis les Réseaux Sociaux</h2>
</div>
<ol class="chapter-points">
  <li>choisir le réseau adapté à la cible et aborder les couts</li>
  <li>provoquer l&#8217;atterrissage en eshop depuis une publication</li>
  <li>Troisième idée clé</li>
</ol>
</div>
</div>



<p class="has-medium-font-size wp-block-paragraph">🆕 Maintenant que notre petit &#8220;add-on&#8221; est en place, on aimerait &#8220;ramener du monde&#8221; (prospection surtout) dans la boutique.</p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Au regard du ROI, laquelle de ses OP serait le meilleur compromis pour promouvoir nos podcasts ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="Oui, c'est le meilleur compris, plus abordable que le phoning (mais convertit moins) et plus engageante que le mail (surtout en prospection)">Meta Ads, on va cibler aussi bien qu&#8217;en phoning sans se ruiner autant</li>
    <li data-correct="false" data-feedback="Oui, ça peut marcher, mais en fidélisation, surtout. La plupart des prospects ne vont même pas ouvrir le mail">Le mail magnet, avec un petit coupon réduction qui fait le CTA</li>
    <li data-correct="false" data-feedback="C'est souvent vrai mais là, on parle de compromis, pas de prendre le risque maximal">Le phoning, c&#8217;est la voie royale ! Ca coute un bras mais ça rapporte à tous les coups !</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Canal</th><th>CPL moyen (engagement)</th><th>Coût par client (conversion)</th><th>Volume touché</th><th>Taux de conversion</th></tr></thead><tbody><tr><td><strong>Meta Ads</strong> (RS)</td><td>1 € – 8 €</td><td>10 € – 40 €</td><td>🟢 élevé</td><td>🟡moyen</td></tr><tr><td><strong>Email ( lead magnet)</strong></td><td>0,20 € – 3 €</td><td>5 € – 25 €</td><td>🟢 très élevé</td><td><br>🔴 très faible</td></tr><tr><td><strong>Téléprospection</strong></td><td>15 € – 60 €</td><td>40 € – 120 €</td><td>🔴 faible</td><td>🟢 élevé</td></tr></tbody></table></figure>



<p class="has-small-font-size wp-block-paragraph">📚 Sources principales : Wordstream (benchmarks Facebook Ads), HubSpot lead benchmarks, CampaignMonitor email benchmarks, DataBox marketing benchmarks.</p>



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-base-3-background-color has-background has-medium-font-size wp-block-paragraph">1️⃣ <strong>A vous de jouer  ⌨️ !</strong> Par équipe de <strong>2  maxi</strong> :  </p>



<ul class="wp-block-list">
<li><strong>connectez vous à</strong> <a href="https://zeoob.com/" target="_blank" rel="noreferrer noopener">Zeoob</a> pour créer <strong>un post magnet</strong> vers notre page des ebooks de la boutique
<ul class="wp-block-list">
<li> choisissez l&#8217;interface adaptée, selon le réseau que vous avez  choisi pour <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">créer la publication qui va mettre en valeur cette nouveauté de la boutique</mark>.</strong></li>
</ul>
</li>



<li><strong>répondez ensuite  à ce questionnaire</strong>
<ul class="wp-block-list">
<li>argumentez sur <strong>votre cible</strong> pour justifier votre choix de réseau</li>



<li><strong>on mesure aussi l&#8217;impact sur les ventes</strong>, pas seulement les atterrissages, quand vous en serez aux KPI</li>
</ul>
</li>
</ul>



<div class="wp-block-file"><a id="wp-block-file--media-6fa0b918-9a13-40dd-9bd0-fe4af0a757b8" href="https://st9ph.fr/wp-content/uploads/2026/03/logo-st9ph.jpg">logo-st9ph</a><a href="https://st9ph.fr/wp-content/uploads/2026/03/logo-st9ph.jpg" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-6fa0b918-9a13-40dd-9bd0-fe4af0a757b8">Télécharger</a></div>
</div></div>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID2' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID2">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">👆🏻 Entrez le code qui s&#8217;affiche dans l&#8217;encadré d&#8217;accusé reception du formulaire ci-dessus (encadré vert) .</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID2' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID2" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID2' PAR TON ID ET 'P0st' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID2', 'P0st')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID2' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID2" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<p class="has-medium-font-size wp-block-paragraph">📖 Sources d&#8217;inspiration pour ma proposition de corrigé  :</p>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">Etude sur les Français et la lecture sur <b>lafinancepourtous.com</b></span>
    <a class="resource-link" href="https://www.lafinancepourtous.com/decryptages/entreprise/secteurs-dactivites/leconomie-du-livre-et-la-lecture-en-france/les-pratiques-de-lecture-en-france/" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text">Qui lit quoi sur <b>LibriNova</b></span>
    <a class="resource-link" href="https://www.librinova.com/blog/genres-litteraires-preferences-de-lecture-des-francais/" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph" style="font-size:16px">&#8220;Plus on prend de l’âge, plus on lit&nbsp;: 12 livres par an au format papier sont lus en&nbsp;moyenne&nbsp;dans la tranche d’âge 15-44 ans, 21 pour la tranche 45 ans et plus…&#8221; (La finance pour tous)</p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph" style="font-size:15px">D’une manière générale, tout d’abord, on constate que trois genres ont été sollicités par 92&nbsp;% des lecteurs français&nbsp;:</p>



<ul style="font-size:16px" class="wp-block-list">
<li>Les romans tous genres confondus&nbsp;: 74 %&nbsp;;</li>



<li>Les livres pratiques, art de vivre et loisirs (voyage, cuisine, bricolage, décoration, etc.)&nbsp;: 56 %&nbsp;;</li>



<li>Les bandes dessinées, comics, mangas&nbsp;: 51 %.</li>
</ul>
</blockquote>



<p class="callout vert wp-block-paragraph">👉🏻 Je déduis de ces lectures (lire les articles en entier, pas seulement ces deux citations), que mon cœur de cible est <strong>plutôt une femme</strong>, de <strong>plus de 45 ans</strong> et que le réseau le plus généraliste pour la toucher sera<strong> Facebook</strong></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="485" height="798" src="https://st9ph.fr/wp-content/uploads/2026/03/zeoobpostTp.png" alt="" class="wp-image-36117" srcset="https://st9ph.fr/wp-content/uploads/2026/03/zeoobpostTp.png 485w, https://st9ph.fr/wp-content/uploads/2026/03/zeoobpostTp-182x300.png 182w" sizes="auto, (max-width: 485px) 100vw, 485px" /></figure>
</div>
</div>



<p class="wp-block-paragraph">👇🏻 Pour rappel, ce tableau de l&#8217;article 🏷️Animation RC |<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-le-buyer-persona-et-approches-en-prospection/" target="_blank" rel="noreferrer noopener"> le Buyer Persona </a>(et approches en prospection) de ce blog (chap. 1-4)</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>Génération</strong></td><td><strong>Âge (environ)</strong></td><td><strong>Réseaux Favoris</strong></td><td><strong>Temps Moyen / Jour</strong></td><td><strong>Plages Horaires Clés</strong></td></tr></thead><tbody><tr><td><strong>Gen Z</strong></td><td>15 – 26 ans</td><td>TikTok, Instagram, Snapchat</td><td><strong>3h15 à 4h00</strong></td><td><strong>20h – 00h</strong>&nbsp;(Pic nocturne), Réveil, Pauses déjeuner</td></tr><tr><td><strong>Millennials</strong></td><td>27 – 42 ans</td><td>Instagram, Facebook</td><td><strong>2h15 à 2h40</strong></td><td><strong>12h – 14h</strong>&nbsp;et&nbsp;<strong>18h – 21h</strong>&nbsp;(Après le travail)</td></tr><tr><td><strong>Gen X</strong></td><td>43 – 58 ans</td><td>Facebook, YouTube, WhatsApp</td><td><strong>1h30 à 1h50</strong></td><td><strong>19h – 22h</strong>&nbsp;(Détente soirée), Weekend matin</td></tr><tr><td><strong>Boomers</strong></td><td>59 – 78 ans</td><td>Facebook, YouTube</td><td><strong>45 min à 1h00</strong></td><td><strong>08h – 11h</strong>&nbsp;(Matinée) et milieu d’après-midi</td></tr></tbody></table></figure>



<div class="chapter-title">
<div class="chapter-number">2</div>
<div class="chapter-content">
<div class="chapter-heading">
<a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
<img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
</a>
<h2>Analyse des KPI d&#8217;une Op Com</h2>
</div>
<ul class="chapter-points">
  <li>choisir les indicateurs clé</li>
  <li>Etablir des points d&#8217;alerte sur le déroulement de l&#8217;Op</li>
  <li>Calculer la rentabilité &amp; le ROI</li>
</ul>
</div>
</div>



<p class="callout bleu wp-block-paragraph">.➡️ <strong>Pendant toute la durée </strong>de l&#8217;Op, il faudra<strong> établir des KPI </strong>et <strong>surveiller leur évolution</strong> afin de garantir un ROI et d&#8217;estimer les retombées (réactivations de clients dormants, conquête de nouvelles cohortes &#8230;)</p>



<p class="has-medium-font-size wp-block-paragraph">👉🏻les résultats de cette campagne (2 jours)  :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>Cout Meta Ads</td><td>70 €</td><td>impressions</td><td>3400</td></tr><tr><td>atterrissages</td><td>193</td><td>pages vues par session</td><td>1.23</td></tr><tr><td>durée moyenne des sessions</td><td>1&#8217;39</td><td>% clic sur produits associés</td><td>2.5 %</td></tr><tr><td>déjà clients</td><td>23</td><td>ouvertures de comptes</td><td>28</td></tr><tr><td>Nb de streaming</td><td>101</td><td>temps streaming moyen</td><td>0&#8217;37</td></tr><tr><td>Ajouts au panier</td><td>24</td><td>paniers validés</td><td>9</td></tr><tr><td>CA</td><td>128,50 €</td><td>marge commerciale</td><td>38,55 €</td></tr></tbody></table></figure>



<p class="has-contrast-3-background-color has-background has-medium-font-size wp-block-paragraph">2️⃣ C&#8217;est un grand classique de l&#8217;examen : <strong>analysez les chiffres de cette campagne et &#8220;concluez&#8221;</strong> !</p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID3' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID3">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">👆🏻 Entrez le code qui s&#8217;affiche dans l&#8217;encadré d&#8217;accusé réception du formulaire ci-dessus (encadré vert) .</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID3' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID3" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID3' PAR TON ID ET 'M9t@' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID3', 'M9t@')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID3' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID3" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">✅ Les KPI (utiles) sur Facebook :</p>



<ul class="wp-block-list">
<li>Taux d&#8217;impression</li>



<li>Taux de clic (vers la boutique)</li>



<li>le <strong>CPV</strong> si c&#8217;est via Meta Ads</li>



<li>le CPC (idem)</li>



<li>cout de la campagne</li>
</ul>



<p class="wp-block-paragraph"></p>



<p class="callout rouge wp-block-paragraph">Le nombre <strong>de likes et de partages</strong> ne sert à rien pour cette mesure mais peut donner des indices sur ce qui plait ou pas dans notre com.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🛒 Sur la Eshop :</p>



<ul class="wp-block-list">
<li>le taux d&#8217;atterrissage (= nb de clics Facebook normalement)</li>



<li>le taux de rebond</li>



<li>La part de nouveaux visiteurs</li>



<li>Le nombre d&#8217;ouvertures de comptes (acquisition)</li>



<li>le nombre de pages parcourues (pour ceux qui n&#8217;ont pas acheté, signe qu&#8217;ils ont flâné dans la boutique)</li>



<li>le taux de lecture de l&#8217;extrait podcast</li>



<li>le taux de clic sur les produits associés (&#8220;vous aimerez aussi&#8221;)</li>



<li>paniers abandonnés</li>



<li>le taux de conversion / atterrissage + CA</li>
</ul>
</div>
</div>



<ul class="wp-block-list">
<li>🟡 Le <strong>cout par Lead</strong> (CPL) converti est de 7, 78 €
<ul class="wp-block-list">
<li> 🟢 ce  n&#8217;est pas si mal pour <strong>une démarche d&#8217;acquisition</strong> (vs pub ou autres types de campagnes)</li>



<li> 🟢 L&#8217;investissement vaut le cout <strong>si on fidélise bien </strong>(il y&#8217;a 28 nouveaux comptes même si seulement le tiers d&#8217;entre eux pour une 1ere commande)</li>



<li> 🔴 le <strong>churn est massif </strong>(mais c&#8217;est tout le temps comme ça en RS) avec seulement 5.6 % d&#8217;engagement.</li>
</ul>
</li>



<li>🔴 L&#8217;opération n&#8217;est <strong>pas rentable </strong>à court terme
<ul class="wp-block-list">
<li>🔴 Elle nous coute le double de ce qu&#8217;elle nous rapporte mais nous ramène 170 nouveaux visiteurs, du trafic dont 62 mn de streaming, 299 mn de sessions, 237 pages vues : ça compte en SEO</li>



<li>🟡 elle a conduit 4 fois vers des produits associés, ce qui est très pauvre.</li>
</ul>
</li>



<li>A voir dans la durée :
<ul class="wp-block-list">
<li><strong>la CLV</strong> des 28 clients acquis</li>



<li><strong>l&#8217;impact SEO</strong> sur le positionnement via Semrush et Google Analytics (effet boule de neige)</li>
</ul>
</li>
</ul>



<div class="chapter-title">
<div class="chapter-number">3</div>
<div class="chapter-content">
<div class="chapter-heading">
<a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
<img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
</a>
<h2>CTA d&#8217;ajout au panier dans la fiche produit</h2>
</div>
<ul class="chapter-points">
  <li>Récapitulatif vendeur et description qui lève les derniers doutes</li>
  <li>Un extrait à télécharger et des visuels d&#8217;aperçu</li>
  <li>Un prix attractif mais qui tient compte des couts (édition, cachet des auteurs)</li>
</ul>
</div>
</div>



<p class="has-medium-font-size wp-block-paragraph">➡️ Nous allons aussi tenter d&#8217;élargir notre catalogue pour attirer de nouveaux acheteurs. </p>



<p class="wp-block-paragraph"><strong>La BD </strong>nous est apparue comme étant <strong>le même vecteur</strong> pour <strong>rajeunir notre clientèle</strong> et nous avons conclu un partenariat avec <strong>les éditions &#8220;P&#8217;Tit Louis&#8221;</strong>. Voici le produit pilote &#8220;<strong>Zoo Dingo &#8211; Safari Party</strong>&#8220;</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="753" height="975" src="https://st9ph.fr/wp-content/uploads/2026/03/zoo-dingo-safari-party.png" alt="" class="wp-image-36076" srcset="https://st9ph.fr/wp-content/uploads/2026/03/zoo-dingo-safari-party.png 753w, https://st9ph.fr/wp-content/uploads/2026/03/zoo-dingo-safari-party-232x300.png 232w" sizes="auto, (max-width: 753px) 100vw, 753px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Quel serait le meilleur réseau social pour toucher les jeunes ados ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="Oui, c'est le réseau préféré des 13 - 17 ans devant Snapchat et Instagram (toutes études confondues)">TikTok, ils sont collés dessus !</li>
    <li data-correct="false" data-feedback="Ce n'est pas faux mais ils sont vraiment minoritaires à y passer du temps">Pinterest, c&#8217;est le meilleur format pour mettre en valeur la BD</li>
    <li data-correct="false" data-feedback="Intéressant, ce sont ses principaux influenceurs, en effet, mais pour tout ce qui est hobbies et loisirs, ils ne seront pas ses meilleurs conseillers.">Instagram ! Il faut toucher l&#8217;acheteur, donc, ses parents !</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>
</div>
</div>



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-base-3-background-color has-background has-medium-font-size wp-block-paragraph">3️⃣ Faites la fiche produit de cette BD dans votre boutique d&#8217;entrainement (catégorie exos) en respectant les consignes ci-dessous et en l&#8217;illustrant avec les images à télécharger ci-dessous</p>



<ul class="wp-block-list">
<li>C&#8217;est <strong>un produit dématérialisé</strong> que le client pourra télécharger sur un lien qu&#8217;il recevra par mail quand son achat sera terminé</li>



<li>Un <strong>extrait </strong>sera <strong>téléchargeable  </strong>sur la fiche produit (sans besoin d&#8217;acheter) <img loading="lazy" decoding="async" width="12" height="11" class="wp-image-33359" style="width: 12px;" src="https://st9ph.fr/wp-content/uploads/2026/01/pdf.png" alt=""><strong>Zoo-Dingo.pdf</strong></li>



<li>Pour simplifier (parce que le fichier serait trop lourd) on va aussi utiliser cet extrait comme étant le <strong>produit à acheter </strong>(même s&#8217;il est tronqué). Donc : <img loading="lazy" decoding="async" width="12" height="11" class="wp-image-33359" style="width: 12px;" src="https://st9ph.fr/wp-content/uploads/2026/01/pdf.png" alt=""><strong>Zoo-Dingo.pdf</strong> à utiliser à la fois pour le produit à télécharger une fois acheté et l&#8217;extrait à télécharger gratuitement. <em>Je vous mettrai la BD complète sur le drive si vous voulez absolument lire la suite</em> 😉</li>



<li>les auteurs et l&#8217;éditeur ont souscris à notre charte de partenariat leur garantissant respectivement <strong>30 et 40 % du CA d&#8217;affaire </strong>sur les ventes et nous garantissant l&#8217;exclusivité de la vente en ligne. Vous pouvez l&#8217;indiquer sur la fiche produit.</li>



<li>Les auteurs et l&#8217;éditeur nous ont demandé <strong>un plancher de prix de vente HT de 10 €</strong> (sur lesquels <strong>nous margeront donc de 30 %</strong>). On ne souhaite pas aller beaucoup au dessus mais <strong>un prix psychologique à trouver permettant une marge</strong>, forcément.</li>



<li>Le package ci-dessous contient  <img loading="lazy" decoding="async" width="12" height="11" class="wp-image-33359" style="width: 12px;" src="https://st9ph.fr/wp-content/uploads/2026/01/pdf.png" alt=""><strong>Zoo-Dingo.pdf</strong>, la jaquette et 2 images d&#8217;illustraton</li>
</ul>



<div class="wp-block-file"><a id="wp-block-file--media-260d20cd-814c-44b0-b4f0-642edafe157c" href="https://st9ph.fr/wp-content/uploads/2026/03/zooDingo.zip">zooDingo</a><a href="https://st9ph.fr/wp-content/uploads/2026/03/zooDingo.zip" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-260d20cd-814c-44b0-b4f0-642edafe157c">Télécharger</a></div>
</div></div>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID4' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID4">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">👆🏻 Entrez le code qui s&#8217;affiche dans l&#8217;encadré d&#8217;accusé reception du formulaire ci-dessus (encadré vert) .</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID4' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID4" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID4' PAR TON ID ET 'Pr9st@' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID4', 'Pr9st@')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID4' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID4" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<p class="has-medium-font-size wp-block-paragraph">la f<strong>iche produit en backoffice</strong> :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-zoooom"><img loading="lazy" decoding="async" width="631" height="287" src="https://st9ph.fr/wp-content/uploads/2026/03/image-54.png" alt="" class="wp-image-36226" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-54.png 631w, https://st9ph.fr/wp-content/uploads/2026/03/image-54-300x136.png 300w" sizes="auto, (max-width: 631px) 100vw, 631px" /><figcaption class="wp-element-caption">dans les options &gt; documents joints (l&#8217;extrait gratuit à télécharger)</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-zoooom"><img loading="lazy" decoding="async" width="602" height="348" src="https://st9ph.fr/wp-content/uploads/2026/03/image-57.png" alt="" class="wp-image-36230" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-57.png 602w, https://st9ph.fr/wp-content/uploads/2026/03/image-57-300x173.png 300w" sizes="auto, (max-width: 602px) 100vw, 602px" /><figcaption class="wp-element-caption">dans produit dématérialisé &gt; penser à brider le nombre de téléchargements possibles (3 essais, c&#8217;est équitable)</figcaption></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="453" height="465" src="https://st9ph.fr/wp-content/uploads/2026/03/image-55.png" alt="" class="wp-image-36227" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-55.png 453w, https://st9ph.fr/wp-content/uploads/2026/03/image-55-292x300.png 292w" sizes="auto, (max-width: 453px) 100vw, 453px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="429" height="381" src="https://st9ph.fr/wp-content/uploads/2026/03/image-56.png" alt="" class="wp-image-36228" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-56.png 429w, https://st9ph.fr/wp-content/uploads/2026/03/image-56-300x266.png 300w" sizes="auto, (max-width: 429px) 100vw, 429px" /></figure>



<p class="has-small-font-size wp-block-paragraph">Sur la base d&#8217;un prix psycho de 10,90€ (premier à marger &gt; 10 € HT) le prix d&#8217;achat et le cumul des cachets éditeur + auteurs</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<style>
.ps-product-card { background: #fff; border: 1px solid #e7e7e7; border-radius: 4px; width: 100%; max-width: 300px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; transition: box-shadow 0.3s ease; position: relative; overflow: hidden; text-decoration: none; color: inherit; display: block; }
.ps-product-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.ps-product-image-wrapper { position: relative; width: 100%; padding-top: 100%; overflow: hidden; background: #f5f5f5; }
.ps-product-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.ps-product-card:hover .ps-product-image { transform: scale(1.05); }
.ps-wishlist-icon { position: absolute; top: 10px; right: 10px; background: rgba(255, 255, 255, 0.8); width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; z-index: 2; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.ps-wishlist-icon svg { width: 20px; height: 20px; fill: #7a7a7a; transition: fill 0.2s; }
.ps-wishlist-icon:hover { background: #fff; transform: scale(1.1); }
.ps-wishlist-icon:hover svg { fill: #ff4848; }
.ps-product-rating { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; z-index: 2; background: rgba(0,0,0,0.4); padding: 4px 8px; border-radius: 20px; }
.ps-star { color: #ffd700; font-size: 14px; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }
.ps-product-content { padding: 15px; text-align: center; background: #fff; }
.ps-product-name { font-size: 15px; color: #333; margin: 0 0 10px 0; font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: 42px; }
.ps-product-price { font-size: 18px; font-weight: 700; color: #25B9D7; margin: 0 0 15px 0; }
.ps-product-btn { background-color: #25B9D7; color: #fff; border: none; padding: 10px 15px; border-radius: 4px; font-size: 13px; font-weight: 600; text-transform: uppercase; cursor: pointer; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background 0.2s; text-decoration: none; box-sizing: border-box; }
.ps-product-btn:hover { background-color: #1fa3c0; color: #fff; }
.ps-product-btn svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 768px) { .ps-product-card { max-width: 100%; } }
</style>
<!-- DÉBUT VIGNETTE PRODUIT -->
<a href="https://shop.st9ph.fr/presta/fr/cartes-cadeaux/106-zoo-dingo-safari-party.html" target="_blank" class="ps-product-card">
    <div class="ps-product-image-wrapper">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/03/zoo-dingo-safari-party.png" alt="Zoo Dingo | Safari Party" class="ps-product-image">
        <div class="ps-wishlist-icon" title="Ajouter aux favoris" onclick="event.preventDefault(); event.stopPropagation(); alert('Fonctionnalité liste d\'envie à connecter.');">
            <svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
        </div>
        <div class="ps-product-rating">
            <span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span>
        </div>
    </div>
    <div class="ps-product-content">
        <h3 class="ps-product-name">Zoo Dingo | Safari Party</h3>
        <div class="ps-product-price">10,90 €</div>
        <div class="ps-product-btn">
            Voir dans la boutique
            <svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
        </div>
    </div>
</a>
<!-- FIN VIGNETTE PRODUIT -->



<p class="has-text-align-center wp-block-paragraph">Ca concerne <strong>vos images auss</strong>i 👉🏻</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">💡 Pensez aussi au <strong>référencement</strong> :</p>



<figure class="wp-block-image size-full is-style-zoooom"><img loading="lazy" decoding="async" width="563" height="164" src="https://st9ph.fr/wp-content/uploads/2026/03/image-58.png" alt="" class="wp-image-36237" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-58.png 563w, https://st9ph.fr/wp-content/uploads/2026/03/image-58-300x87.png 300w" sizes="auto, (max-width: 563px) 100vw, 563px" /></figure>



<p class="wp-block-paragraph">Les choix de vos mots clé en longues traines va démontrer<strong> votre maitrise SEO</strong> :</p>



<ul class="wp-block-list">
<li><mark style="background-color:rgba(0, 0, 0, 0);color:#e12c2c" class="has-inline-color"><s>BD</s> | <s>Safari</s> | <s>Zoo </s>| <s>Dingo</s></mark></li>



<li>✅ Beno Neymo Zoo | ✅ BD safari party</li>



<li>✅ BD télécharger | ✅ BD numérique</li>



<li>✅ BD humour enfant | ✅ BD humour ado</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="348" height="228" src="https://st9ph.fr/wp-content/uploads/2026/03/image-59.png" alt="" class="wp-image-36238" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-59.png 348w, https://st9ph.fr/wp-content/uploads/2026/03/image-59-300x197.png 300w" sizes="auto, (max-width: 348px) 100vw, 348px" /></figure>
</div>
</div>



<div class="chapter-title">
<div class="chapter-number">4</div>
<div class="chapter-content">
<div class="chapter-heading">
<a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
<img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
</a>
<h2>Op Com : Promouvoir en télévente</h2>
</div>
<ul class="chapter-points">
  <li>constitution du pack de produits &#8216;1 acheté, 1 offert&#8217;</li>
  <li>méthode de vente AIDA</li>
  <li>analyse de rentabilité</li>
</ul>
</div>
</div>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph">Op Com : 1 ebook acheté, 1 offert*</p>



<p class="has-small-font-size wp-block-paragraph">(*) sur une sélection des produits &#8211; offre limitée dans le temps &#8211; réservée à nos clients &#8211; voir les conditions dans la boutique</p>



<p class="wp-block-paragraph">👇🏻 <strong>Exemple de pack</strong> pour notre 🎓TP  :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<style>
.ps-product-card { background: #fff; border: 1px solid #e7e7e7; border-radius: 4px; width: 100%; max-width: 300px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; transition: box-shadow 0.3s ease; position: relative; overflow: hidden; text-decoration: none; color: inherit; display: block; }
.ps-product-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.ps-product-image-wrapper { position: relative; width: 100%; padding-top: 100%; overflow: hidden; background: #f5f5f5; }
.ps-product-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.ps-product-card:hover .ps-product-image { transform: scale(1.05); }
.ps-wishlist-icon { position: absolute; top: 10px; right: 10px; background: rgba(255, 255, 255, 0.8); width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; z-index: 2; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.ps-wishlist-icon svg { width: 20px; height: 20px; fill: #7a7a7a; transition: fill 0.2s; }
.ps-wishlist-icon:hover { background: #fff; transform: scale(1.1); }
.ps-wishlist-icon:hover svg { fill: #ff4848; }
.ps-product-rating { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; z-index: 2; background: rgba(0,0,0,0.4); padding: 4px 8px; border-radius: 20px; }
.ps-star { color: #ffd700; font-size: 14px; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }
.ps-product-content { padding: 15px; text-align: center; background: #fff; }
.ps-product-name { font-size: 15px; color: #333; margin: 0 0 10px 0; font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: 42px; }
.ps-product-price { font-size: 18px; font-weight: 700; color: #25B9D7; margin: 0 0 15px 0; }
.ps-product-btn { background-color: #25B9D7; color: #fff; border: none; padding: 10px 15px; border-radius: 4px; font-size: 13px; font-weight: 600; text-transform: uppercase; cursor: pointer; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background 0.2s; text-decoration: none; box-sizing: border-box; }
.ps-product-btn:hover { background-color: #1fa3c0; color: #fff; }
.ps-product-btn svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 768px) { .ps-product-card { max-width: 100%; } }
</style>
<!-- DÉBUT VIGNETTE PRODUIT -->
<a href="https://shop.st9ph.fr/presta/fr/accueil/48-l-art-subtil-de-s-en-foutre.html" target="_blank" class="ps-product-card">
    <div class="ps-product-image-wrapper">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/03/l-art-subtil-de-s-en-foutre.png" alt="L'Art Subtil De S'En Foutre" class="ps-product-image">
        <div class="ps-wishlist-icon" title="Ajouter aux favoris" onclick="event.preventDefault(); event.stopPropagation(); alert('Fonctionnalité liste d\'envie à connecter.');">
            <svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
        </div>
        <div class="ps-product-rating">
            <span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span>
        </div>
    </div>
    <div class="ps-product-content">
        <h3 class="ps-product-name">L&#8217;Art Subtil De S&#8217;En Foutre</h3>
        <div class="ps-product-price">14,90 €</div>
        <div class="ps-product-btn">
            Voir dans la boutique
            <svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
        </div>
    </div>
</a>
<!-- FIN VIGNETTE PRODUIT -->
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<style>
.ps-product-card { background: #fff; border: 1px solid #e7e7e7; border-radius: 4px; width: 100%; max-width: 300px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; transition: box-shadow 0.3s ease; position: relative; overflow: hidden; text-decoration: none; color: inherit; display: block; }
.ps-product-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.ps-product-image-wrapper { position: relative; width: 100%; padding-top: 100%; overflow: hidden; background: #f5f5f5; }
.ps-product-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.ps-product-card:hover .ps-product-image { transform: scale(1.05); }
.ps-wishlist-icon { position: absolute; top: 10px; right: 10px; background: rgba(255, 255, 255, 0.8); width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; z-index: 2; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.ps-wishlist-icon svg { width: 20px; height: 20px; fill: #7a7a7a; transition: fill 0.2s; }
.ps-wishlist-icon:hover { background: #fff; transform: scale(1.1); }
.ps-wishlist-icon:hover svg { fill: #ff4848; }
.ps-product-rating { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; z-index: 2; background: rgba(0,0,0,0.4); padding: 4px 8px; border-radius: 20px; }
.ps-star { color: #ffd700; font-size: 14px; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }
.ps-product-content { padding: 15px; text-align: center; background: #fff; }
.ps-product-name { font-size: 15px; color: #333; margin: 0 0 10px 0; font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: 42px; }
.ps-product-price { font-size: 18px; font-weight: 700; color: #25B9D7; margin: 0 0 15px 0; }
.ps-product-btn { background-color: #25B9D7; color: #fff; border: none; padding: 10px 15px; border-radius: 4px; font-size: 13px; font-weight: 600; text-transform: uppercase; cursor: pointer; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background 0.2s; text-decoration: none; box-sizing: border-box; }
.ps-product-btn:hover { background-color: #1fa3c0; color: #fff; }
.ps-product-btn svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 768px) { .ps-product-card { max-width: 100%; } }
</style>
<!-- DÉBUT VIGNETTE PRODUIT -->
<a href="https://shop.st9ph.fr/presta/fr/accueil/47-le-voyage-de-m-dumollet.html" target="_blank" class="ps-product-card">
    <div class="ps-product-image-wrapper">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/03/le-voyage-de-m-dumollet.png" alt="Le Voyage De M. Dumollet" class="ps-product-image">
        <div class="ps-wishlist-icon" title="Ajouter aux favoris" onclick="event.preventDefault(); event.stopPropagation(); alert('Fonctionnalité liste d\'envie à connecter.');">
            <svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
        </div>
        <div class="ps-product-rating">
            <span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span>
        </div>
    </div>
    <div class="ps-product-content">
        <h3 class="ps-product-name">Le Voyage De M. Dumollet</h3>
        <div class="ps-product-price">16,90 €</div>
        <div class="ps-product-btn">
            Voir dans la boutique
            <svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
        </div>
    </div>
</a>
<!-- FIN VIGNETTE PRODUIT -->
</div>
</div>



<p class="wp-block-paragraph">Le prix de ce pack sera présenté avec <strong>le prix catalogue, le % de remise et le prix remisé</strong> :</p>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph"><s>31,80€</s> | <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">-50 %</mark></strong> | 15,90 €</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="654" height="635" src="https://st9ph.fr/wp-content/uploads/2026/03/image-49.png" alt="" class="wp-image-36164" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-49.png 654w, https://st9ph.fr/wp-content/uploads/2026/03/image-49-300x291.png 300w" sizes="auto, (max-width: 654px) 100vw, 654px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Cette OP Com est-elle légale en l&#8217;état ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Et non, on va vendre à perte, il faut s'arranger avec l'éditeur et les auteurs au préalable pour qu'ils acceptent de jouer le jeu de nous les fournir moins cher">Oui</li>
    <li data-correct="true" data-feedback="Exact, on va vendre à perte, il faut s'arranger avec l'éditeur et les auteurs au préalable pour qu'ils acceptent de jouer le jeu de nous les fournir moins cher">Non</li>
      </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="has-accent-color has-text-color has-link-color wp-elements-682780bda366519a3843187995386547 wp-block-paragraph">➡️ Règles pour la construction du pack &#8220;<strong><em>humour &amp; dérision</em></strong>&#8221; :</p>



<ul class="wp-block-list">
<li>présenter <strong>les 2 produits</strong> dans le pack <strong>à leur prix catalogue</strong></li>



<li>Appliquer un prix spécifique de <strong>50% sur le pack</strong></li>



<li>👈🏻 Utiliser l&#8217;image ci-contre pour <strong>le visuel du pack</strong></li>
</ul>
</div>
</div>



<ul class="wp-block-list">
<li>Revoyez également <strong>le prix d&#8217;achat pour garantir les % de chacun</strong>, ils sont d&#8217;accord pour nous suivre et rogner leurs cachets (ci-dessous les parts initiales, garder les proportions) :
<ul class="wp-block-list">
<li><strong>Auteurs </strong>30%, </li>



<li><strong>Editeur </strong>40%, </li>



<li>toujours 5,5% la <strong>TVA </strong>(Excel arrondit)</li>



<li> et le reste pour <strong>la boutique</strong>.</li>
</ul>
</li>
</ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="429" height="381" src="https://st9ph.fr/wp-content/uploads/2026/03/image-50.png" alt="" class="wp-image-36169" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-50.png 429w, https://st9ph.fr/wp-content/uploads/2026/03/image-50-300x266.png 300w" sizes="auto, (max-width: 429px) 100vw, 429px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="429" height="381" src="https://st9ph.fr/wp-content/uploads/2026/03/image-51.png" alt="" class="wp-image-36170" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-51.png 429w, https://st9ph.fr/wp-content/uploads/2026/03/image-51-300x266.png 300w" sizes="auto, (max-width: 429px) 100vw, 429px" /></figure>
</div>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Quels sont les clients à relancer en priorité (moindre risque) ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Ca se défend, mais on les a déjà relancés par mail automatiquement ... Après ceux en LMOT, alors, ça peut se tenter. Il y'a moins risqué dans les 3 propositions">Ceux qui ont fait des paniers abandonnés avec nos ebooks</li>
    <li data-correct="true" data-feedback="Oui, clairement, la relance client avec ceux en perte de fidélité est ce qui est le moins risqué.">Ceux qui sont LMOT</li>
    <li data-correct="false" data-feedback="C'est le "récemment" de la proposition qui me ferait justement hésiter ... peut-être plutôt en cold alors (dans la newsletter avec un coupon dédié)">Ceux qui ont acheté des produits similaires récemment</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">Cout RH d&#8217;un téléprospecteur (jusqu&#8217;à) 23 € / h | <b>HelloWork</b></span>
    <a class="resource-link" href="https://www.hellowork.com/fr-fr/salaires/teleprospecteur.html" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text">Cout acquisition vs réactivation (client en LMOT) x5 à x8 ~35€ | <b>Post Afiliate Pro</b></span>
    <a class="resource-link" href="https://www.postaffiliatepro.fr/blog/why-customer-retention-costs-5x-less-than-acquisition/" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<p class="has-medium-font-size wp-block-paragraph">📊 Chiffres de l&#8217;opération précédente (<em>notée par la suite : OP-1</em>) :</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-right" data-align="right">Indicateurs :</th><th class="has-text-align-center" data-align="center">Célia CHENILLE</th><th class="has-text-align-center" data-align="center">Helena VRANT</th><th class="has-text-align-center" data-align="center">Tony TRUHAND</th></tr></thead><tbody><tr><td class="has-text-align-right" data-align="right"><strong>Appels argumentés /h</strong></td><td class="has-text-align-center" data-align="center"> 🥉 5,3</td><td class="has-text-align-center" data-align="center">🥇 6,1</td><td class="has-text-align-center" data-align="center">🥈 5,8</td></tr><tr><td class="has-text-align-right" data-align="right"><strong>CSAT</strong></td><td class="has-text-align-center" data-align="center">🥇 4,5</td><td class="has-text-align-center" data-align="center">🥉 4,3</td><td class="has-text-align-center" data-align="center">🥈 4,4</td></tr><tr><td class="has-text-align-right" data-align="right"><strong>transformations / h</strong></td><td class="has-text-align-center" data-align="center">🥉 0,9</td><td class="has-text-align-center" data-align="center">🥇 1,3</td><td class="has-text-align-center" data-align="center">🥈 1,1</td></tr><tr><td class="has-text-align-right" data-align="right"><strong>Come Back *</strong></td><td class="has-text-align-center" data-align="center">🥉 19,3%</td><td class="has-text-align-center" data-align="center">🥈 20,9%</td><td class="has-text-align-center" data-align="center">🥇 21,1%</td></tr><tr><td class="has-text-align-right" data-align="right"><strong>réactivation **</strong></td><td class="has-text-align-center" data-align="center">🥉 3,1%</td><td class="has-text-align-center" data-align="center">🥈 3,5%</td><td class="has-text-align-center" data-align="center">🥇 3,8%</td></tr></tbody></table></figure>



<figure class="wp-block-video"><video height="394" style="aspect-ratio: 796 / 394;" width="796" autoplay loop muted src="https://st9ph.fr/wp-content/uploads/2026/03/3agents.mp4" playsinline></video><figcaption class="wp-element-caption">La dream team du plateau pose pour vous 😁</figcaption></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<ul class="wp-block-list">
<li>(*) <strong>Come back</strong> : clients qui reviennent dans la boutique au moins 1 fois après cet appel</li>



<li>(**) <strong>réactivation</strong> : clients qui achètent dans la boutique après cet appel</li>
</ul>



<ol class="wp-block-list">
<li class="has-small-font-size">ensemble du plateau (pas que eux 3)</li>



<li class="has-small-font-size">argumentés / appelés</li>



<li class="has-small-font-size">DMT moyenne constatée en appels sortants</li>



<li class="has-small-font-size">ventes indirectes (magnets)</li>
</ol>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-right" data-align="right">Indicateurs OP -1 :</th><th class="has-text-align-center" data-align="center">Global<sup>1</sup></th></tr></thead><tbody><tr><td class="has-text-align-right" data-align="right"><strong>QS</strong><sup>2</sup></td><td class="has-text-align-center" data-align="center">72,4 %</td></tr><tr><td class="has-text-align-right" data-align="right"><strong>DMTG AS</strong><sup>3</sup></td><td class="has-text-align-center" data-align="center">5:25</td></tr><tr><td class="has-text-align-right" data-align="right">ROI</td><td class="has-text-align-center" data-align="center"><mark style="background-color:rgba(0, 0, 0, 0);color:#ca3131" class="has-inline-color">-645,30 €</mark></td></tr><tr><td class="has-text-align-right" data-align="right">CA Cold<sup>4</sup></td><td class="has-text-align-center" data-align="center">201,45 €</td></tr></tbody></table></figure>
</div>
</div>



<p class="wp-block-paragraph">C&#8217;est <strong>Helena VRANT</strong>, notre super télévendeuse, qui s&#8217;y colle. On lui a trouvé <strong>un fichier de 60 clients</strong> à contacter. <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Que des femmes entre 35 et 65 ans, n&#8217;ayant pas commandé dans la boutique depuis 6 mois ou plus.</mark> on est dans la cible. Elle n&#8217;a qu&#8217;une journée (6,5 h). elle doit :</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="504" src="https://st9ph.fr/wp-content/uploads/2026/03/image-52-1024x504.png" alt="" class="wp-image-36173" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-52-1024x504.png 1024w, https://st9ph.fr/wp-content/uploads/2026/03/image-52-300x148.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-52-768x378.png 768w, https://st9ph.fr/wp-content/uploads/2026/03/image-52.png 1463w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li><strong>Vendre un pack</strong> de ebooks de son choix</li>



<li>En profiter pour <strong>requalifier la fiche client</strong></li>



<li>tenter de <strong>sonder subtilement la cliente </strong>pour cerner les raisons de sa démotivation</li>



<li>A défaut de réussir à vendre,<strong> proposer un coupon réduction </strong>de 10% valable sur tous les ebooks de la boutique jusqu&#8217;à la fin du mois pour créer le magnet.</li>
</ul>



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">4️⃣ Construction du <strong>pack exemple</strong> et <strong>analyse de la rentabilité</strong> de l&#8217;Op Com</p>



<ul class="wp-block-list has-base-3-background-color has-background">
<li>Construisez <strong>la maquette de la fiche produit du pack</strong> &#8220;Humour et Dérision&#8221; dans le simulateur (ou proposez carrément un autre pack !)</li>



<li>Définissez <strong>les perspectives de rentabilité de cette OP</strong> télévente en phoning en répondant au formulaire</li>
</ul>
</div></div>



<!-- DÉBUT DU SIMULATEUR DE PACK PRESTASHOP (V2 - STYLE FICHE PRODUIT) -->
<style>
    /* --- STYLES DU SIMULATEUR (INTERFACE ADMIN/ÉLÈVE) --- */
    .simulator-container {
        font-family: 'Segoe UI', sans-serif;
        max-width: 1200px;
        margin: 20px auto;
        background: #f5f5f5;
        padding: 20px;
        border-radius: 8px;
        border: 1px solid #ddd;
    }
    .simulator-header {
        text-align: center;
        margin-bottom: 30px;
        color: #333;
    }
    .simulator-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
        margin-bottom: 30px;
    }
    .simulator-panel {
        background: #fff;
        padding: 20px;
        border-radius: 6px;
        border: 1px solid #e0e0e0;
        box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    }
    .simulator-panel h3 {
        margin-top: 0;
        color: #25B9D7;
        border-bottom: 2px solid #f0f0f0;
        padding-bottom: 10px;
        margin-bottom: 15px;
    }
    .simulator-panel.pack-panel {
        border: 2px solid #25B9D7;
        background: #f0fbff;
    }
    
    .form-group { margin-bottom: 12px; }
    .form-group label {
        display: block;
        font-size: 12px;
        font-weight: 600;
        color: #555;
        margin-bottom: 4px;
    }
    .form-group input, .form-group select, .form-group textarea {
        width: 100%;
        padding: 8px;
        border: 1px solid #ccc;
        border-radius: 4px;
        font-size: 13px;
        box-sizing: border-box;
        font-family: inherit;
    }
    .form-group input:focus, .form-group select:focus, .form-group textarea:focus {
        border-color: #25B9D7;
        outline: none;
        background: #fcfcfc;
    }
    .price-row { display: flex; gap: 10px; }
    .price-row .form-group { flex: 1; }
    
    .btn-build {
        width: 100%;
        padding: 12px;
        background: #25B9D7;
        color: white;
        border: none;
        border-radius: 4px;
        font-size: 16px;
        font-weight: bold;
        cursor: pointer;
        transition: background 0.2s;
        text-transform: uppercase;
        box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    }
    .btn-build:hover { background: #1fa3c0; }

    /* --- ZONE DE RENDU (LA BOUTIQUE - STYLE FICHE PRODUIT) --- */
    .showroom-area {
        background: #fff;
        padding: 30px;
        border-radius: 8px;
        border: 1px solid #ddd;
        min-height: 400px;
    }
    .showroom-title {
        text-align: center;
        font-size: 18px;
        color: #777;
        margin-bottom: 20px;
        text-transform: uppercase;
        letter-spacing: 1px;
    }

    /* --- STYLE FICHE PRODUIT PACK (Inspiration Classic) --- */
    .pack-product-sheet {
        display: flex;
        flex-wrap: wrap;
        gap: 30px;
        max-width: 1000px;
        margin: 0 auto;
        border: 1px solid #e7e7e7;
        border-radius: 4px;
        padding: 20px;
        background: #fff;
    }
    
    /* Colonne Gauche : Image Principale */
    .pack-main-image {
        flex: 1;
        min-width: 300px;
        position: relative;
        background: #f5f5f5;
        border-radius: 4px;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .pack-main-image img {
        max-width: 100%;
        height: auto;
        max-height: 500px;
        object-fit: contain;
    }
    .pack-badge-global {
        position: absolute;
        top: 15px;
        left: 15px;
        background: #25B9D7;
        color: white;
        padding: 8px 15px;
        font-weight: bold;
        border-radius: 4px;
        font-size: 14px;
        box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    }

    /* Colonne Droite : Infos & Achat */
    .pack-details {
        flex: 1;
        min-width: 300px;
        display: flex;
        flex-direction: column;
    }
    
    .pack-title {
        font-size: 24px;
        font-weight: 700;
        color: #333;
        margin: 0 0 10px 0;
        line-height: 1.2;
    }
    
    .pack-ref {
        font-size: 12px;
        color: #999;
        margin-bottom: 15px;
    }

    .pack-desc {
        font-size: 14px;
        color: #555;
        line-height: 1.5;
        margin-bottom: 20px;
        padding-bottom: 20px;
        border-bottom: 1px solid #eee;
    }

    /* Encart "Contenu du Pack" */
    .pack-contents {
        background: #f9f9f9;
        border: 1px dashed #ccc;
        padding: 15px;
        border-radius: 4px;
        margin-bottom: 20px;
    }
    .pack-contents h4 {
        margin: 0 0 10px 0;
        font-size: 14px;
        color: #333;
        text-transform: uppercase;
    }
    .pack-item-row {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 8px;
        font-size: 13px;
        color: #555;
    }
    .pack-item-row:last-child { margin-bottom: 0; }
    .pack-item-thumb {
        width: 40px;
        height: 40px;
        object-fit: cover;
        border: 1px solid #ddd;
        border-radius: 2px;
        background: #fff;
    }

    /* Zone Prix */
    .pack-price-box {
        background: #fff;
        padding: 15px 0;
        margin-bottom: 20px;
    }
    .pack-old-total {
        font-size: 14px;
        color: #999;
        text-decoration: line-through;
        margin-bottom: 5px;
    }
    .pack-new-price {
        font-size: 32px;
        font-weight: 700;
        color: #25B9D7;
        line-height: 1;
    }
    .pack-saving {
        display: inline-block;
        background: #ff4848;
        color: white;
        font-size: 12px;
        font-weight: bold;
        padding: 4px 8px;
        border-radius: 4px;
        margin-left: 10px;
        vertical-align: middle;
    }

    .pack-btn-add {
        background: #25B9D7;
        color: white;
        border: none;
        padding: 15px;
        font-size: 16px;
        font-weight: bold;
        text-transform: uppercase;
        border-radius: 4px;
        cursor: pointer;
        width: 100%;
        transition: background 0.2s;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
    }
    .pack-btn-add:hover { background: #1fa3c0; }
    .pack-btn-add svg { width: 20px; height: 20px; fill: currentColor; }

    @media (max-width: 768px) {
        .simulator-grid { grid-template-columns: 1fr; }
        .pack-product-sheet { flex-direction: column; }
    }
</style>

<div class="simulator-container">
    <h2 class="simulator-header">🐧 Simulateur de Pack</h2>
    
    <div class="simulator-grid">
        <!-- PRODUIT 1 -->
        <div class="simulator-panel">
            <h3>📦 Produit 1 (Composant)</h3>
            <div class="form-group">
                <label>Nom du produit</label>
                <!-- 👇 VALEUR PAR DÉFAUT PRODUIT 1 -->
                <input type="text" id="p1-name" value="L'art Subtil De S'En Foutre">
            </div>
            <div class="form-group">
                <label>Récapitulatif (Max 160 car.)</label>
                <textarea id="p1-desc" maxlength="160" rows="2">Perdez vos complexes et prenez du recul dans ce livre plein de dérision, d&#8217;humour et de de bon sens.</textarea>
            </div>
            <div class="form-group">
                <label>Prix d&#8217;achat (Fournisseur HT)</label>
                <input type="number" id="p1-cost" value="9.85" step="0.01">
            </div>
            <div class="form-group">
                <label>Taux de TVA</label>
                <select id="p1-tva" onchange="calcPrice('p1')">
                    <option value="5.5" selected>5.5 %</option>
                    <option value="10">10 %</option>
                    <option value="20" >20 % (Standard)</option>
                </select>
            </div>
            <div class="price-row">
                <div class="form-group">
                    <label>Prix Vente HT (€)</label>
                    <input type="number" id="p1-ht" step="0.01" oninput="calcPriceFromHT('p1')">
                </div>
                <div class="form-group">
                    <label>Prix Vente TTC (€)</label>
                    <!-- 👇 VALEUR PAR DÉFAUT PRIX VENTE -->
                    <input type="number" id="p1-ttc" step="0.01" oninput="calcPriceFromTTC('p1')" value="14.90">
                </div>
            </div>
            <div class="form-group">
                <label>URL Image Couverture</label>
                <!-- 👇 URL IMAGE PAR DÉFAUT -->
                <input type="text" id="p1-img" value="https://st9ph.fr/wp-content/uploads/2026/03/l-art-subtil-de-s-en-foutre.png">
            </div>
        </div>

        <!-- PRODUIT 2 -->
        <div class="simulator-panel">
            <h3>📦 Produit 2 (Composant)</h3>
            <div class="form-group">
                <label>Nom du produit</label>
                <!-- 👇 VALEUR PAR DÉFAUT PRODUIT 2 -->
                <input type="text" id="p2-name" value="Le Voyage De M Dumollet">
            </div>
            <div class="form-group">
                <label>Récapitulatif (Max 160 car.)</label>
                <textarea id="p2-desc" maxlength="160" rows="2">Narcisse Dumollet, célibataire endurci vivant à Paris va se marier. Il doit rejoindre sa fiancée</textarea>
            </div>
            <div class="form-group">
                <label>Prix d&#8217;achat (Fournisseur HT)</label>
                <input type="number" id="p2-cost" value="11.18" step="0.01">
            </div>
            <div class="form-group">
                <label>Taux de TVA</label>
                <select id="p2-tva" onchange="calcPrice('p2')">
                    <option value="5.5" selected>5.5 %</option>
                    <option value="10">10 %</option>
                    <option value="20" >20 % (Standard)</option>
                </select>
            </div>
            <div class="price-row">
                <div class="form-group">
                    <label>Prix Vente HT (€)</label>
                    <input type="number" id="p2-ht" step="0.01" oninput="calcPriceFromHT('p2')">
                </div>
                <div class="form-group">
                    <label>Prix Vente TTC (€)</label>
                    <!-- 👇 VALEUR PAR DÉFAUT PRIX VENTE -->
                    <input type="number" id="p2-ttc" step="0.01" oninput="calcPriceFromTTC('p2')" value="16.90">
                </div>
            </div>
            <div class="form-group">
                <label>URL Image Couverture</label>
                <!-- 👇 URL IMAGE PAR DÉFAUT -->
                <input type="text" id="p2-img" value="https://st9ph.fr/wp-content/uploads/2026/03/le-voyage-de-m-dumollet.png">
            </div>
        </div>
    </div>

    <!-- CONFIGURATION DU PACK -->
    <div class="simulator-panel pack-panel" style="margin-bottom: 20px;">
        <h3>🎁 Configuration du PACK (Produit Final)</h3>
        <div class="simulator-grid" style="margin-bottom:0; gap:15px;">
            <div class="form-group" style="flex:2;">
                <label>Nom du Pack</label>
                <!-- 👇 NOM DU PACK PAR DÉFAUT -->
                <input type="text" id="pack-name" value="le nom de votre pack ici">
            </div>
            <div class="form-group">
                <label>Réduction du Pack (%)</label>
                <!-- 👇 RÉDUCTION PAR DÉFAUT -->
                <input type="number" id="pack-reduction" value="10" step="1">
            </div>
        </div>
        
        <div class="form-group">
            <label>Récapitulatif du Pack (Argumentaire de vente &#8211; Max 160 car.)</label>
            <!-- 👇 DESCRIPTION DU PACK PAR DÉFAUT -->
            <textarea id="pack-desc" maxlength="160" rows="2" placeholder="Ex: Le combo idéal pour votre intérieur...">votre récapitulatif pack ici</textarea>
        </div>

        <div class="form-group">
            <label>URL Image Principale du Pack</label>
            <!-- 👇 IMAGE PACK PAR DÉFAUT -->
            <input type="text" id="pack-img" value="https://st9ph.fr/wp-content/uploads/2026/03/image-49.png">
        </div>

        <button class="btn-build" onclick="buildPack()">🛠️ Construire / Mettre à jour la Fiche Pack</button>
    </div>

    <!-- ZONE DE RENDU (SHOWROOM) -->
    <div class="showroom-area">
        <div class="showroom-title" id="showroom-placeholder">Cliquez sur &#8220;Construire&#8221; pour générer la fiche produit Pack&#8230;</div>
        <div id="showroom-display"></div>
    </div>
</div>

<script>
    // --- FONCTIONS DE CALCUL DE PRIX (HT <-> TTC) ---
    function getTVA(id) {
        return parseFloat(document.getElementById(id + '-tva').value) || 0;
    }

    function calcPriceFromHT(id) {
        var ht = parseFloat(document.getElementById(id + '-ht').value);
        var tva = getTVA(id);
        if (!isNaN(ht)) {
            var ttc = ht * (1 + tva / 100);
            document.getElementById(id + '-ttc').value = ttc.toFixed(2);
        }
    }

    function calcPriceFromTTC(id) {
        var ttc = parseFloat(document.getElementById(id + '-ttc').value);
        var tva = getTVA(id);
        if (!isNaN(ttc) && tva > 0) {
            var ht = ttc / (1 + tva / 100);
            document.getElementById(id + '-ht').value = ht.toFixed(2);
        } else if (ttc === 0) {
            document.getElementById(id + '-ht').value = 0;
        }
    }
    
    function calcPrice(id) {
        calcPriceFromHT(id);
    }

    // --- FONCTION DE CONSTRUCTION DU PACK (STYLE FICHE PRODUIT) ---
    function buildPack() {
        // Récupération des données Produit 1
        var p1 = {
            name: document.getElementById('p1-name').value || 'Produit 1',
            desc: document.getElementById('p1-desc').value,
            cost: parseFloat(document.getElementById('p1-cost').value) || 0,
            ttc: parseFloat(document.getElementById('p1-ttc').value) || 0,
            img: document.getElementById('p1-img').value || 'https://via.placeholder.com/300?text=Produit+1'
        };

        // Récupération des données Produit 2
        var p2 = {
            name: document.getElementById('p2-name').value || 'Produit 2',
            desc: document.getElementById('p2-desc').value,
            cost: parseFloat(document.getElementById('p2-cost').value) || 0,
            ttc: parseFloat(document.getElementById('p2-ttc').value) || 0,
            img: document.getElementById('p2-img').value || 'https://via.placeholder.com/300?text=Produit+2'
        };

        // Récupération des données Pack
        var pack = {
            name: document.getElementById('pack-name').value || 'Mon Pack',
            desc: document.getElementById('pack-desc').value || '',
            reduction: parseFloat(document.getElementById('pack-reduction').value) || 0,
            img: document.getElementById('pack-img').value || 'https://via.placeholder.com/500?text=Pack'
        };

        // Calculs
        var totalSeparate = p1.ttc + p2.ttc;
        var discountAmount = totalSeparate * (pack.reduction / 100);
        var packPrice = totalSeparate - discountAmount;

        // Génération du HTML de la FICHE PRODUIT
        var html = `
        <div class="pack-product-sheet">
            <!-- Colonne Gauche : Image -->
            <div class="pack-main-image">
                <div class="pack-badge-global">PACK ÉCO -${pack.reduction}%</div>
                <img decoding="async" src="${pack.img}" alt="${pack.name}">
            </div>

            <!-- Colonne Droite : Détails -->
            <div class="pack-details">
                <h1 class="pack-title">${pack.name}</h1>
                <div class="pack-ref">Réf: PACK-001 (Démo)</div>
                
                <div class="pack-desc">
                    ${pack.desc.replace(/\n/g, '<br>')}
                </div>

                <!-- Encart Contenu du Pack -->
                <div class="pack-contents">
                    <h4>📦 Ce pack contient :</h4>
                    <div class="pack-item-row">
                        <img decoding="async" src="${p1.img}" alt="${p1.name}" class="pack-item-thumb">
                        <span>${p1.name} <small style="color:#999">(${p1.ttc.toFixed(2)}€)</small></span>
                    </div>
                    <div class="pack-item-row">
                        <img decoding="async" src="${p2.img}" alt="${p2.name}" class="pack-item-thumb">
                        <span>${p2.name} <small style="color:#999">(${p2.ttc.toFixed(2)}€)</small></span>
                    </div>
                </div>

                <!-- Zone Prix -->
                <div class="pack-price-box">
                    <div class="pack-old-total">Prix habituel : ${totalSeparate.toFixed(2)} €</div>
                    <div>
                        <span class="pack-new-price">${packPrice.toFixed(2)} €</span>
                        <span class="pack-saving">Vous économisez ${discountAmount.toFixed(2)} €</span>
                    </div>
                </div>

                <!-- Bouton -->
                <button class="pack-btn-add">
                    Ajouter au panier
                    <svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
                </button>
            </div>
        </div>
        `;

        // Affichage
        document.getElementById('showroom-placeholder').style.display = 'none';
        document.getElementById('showroom-display').innerHTML = html;
        
        // Scroll doux vers le résultat
        document.getElementById('showroom-display').scrollIntoView({ behavior: 'smooth', block: 'nearest' });
    }
</script>
<!-- FIN DU SIMULATEUR DE PACK PRESTASHOP (V2) -->



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID5' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID5">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">👆🏻 Entrez le code qui s&#8217;affiche dans l&#8217;encadré d&#8217;accusé réception du formulaire ci-dessus (encadré vert) .</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID5' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID5" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID5' PAR TON ID ET 'P@ck' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID5', 'P@ck')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID5' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID5" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-medium-font-size wp-block-paragraph">➡️ Conditions de la rentabilité de l&#8217;opération :</p>



<ul class="wp-block-list">
<li>Marge par vente : <strong>3,68 €</strong></li>



<li>Cout horaire : <strong>23 €</strong></li>



<li><mark style="background-color:rgba(0, 0, 0, 0);color:#d22727" class="has-inline-color">Nb de ventes /h pour rentabilité : <strong>7</strong></mark></li>



<li>Nb d&#8217;appels argumentés heure :  6</li>



<li><strong>Tx de transfo : 21 % </strong>(op-1) soit 1,26 vente à l&#8217;heure</li>



<li><strong>8</strong>(,19) ventes sur la journée (6,5 h de prod)</li>



<li>ratio (Op-1) cumul des 3 vendeurs :
<ul class="wp-block-list">
<li>(0,9 + 1,3 + 1,1) x 6,5 = 21 ventes</li>



<li>% de cold / Marge chaude = 31 %</li>



<li>ventes froides = 6,51</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="429" height="381" src="https://st9ph.fr/wp-content/uploads/2026/03/image-53.png" alt="" class="wp-image-36225" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-53.png 429w, https://st9ph.fr/wp-content/uploads/2026/03/image-53-300x266.png 300w" sizes="auto, (max-width: 429px) 100vw, 429px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group callout jaune"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph">❌ Non, on ne va pas rentabiliser l&#8217;opération, aucune chance.</p>



<ul class="wp-block-list">
<li>Le poids RH de cette journée sera de 150 €</li>



<li>nous pouvons espérer 1,26 ventes /h x 6,5 h  soit 8 ventes</li>



<li>notre marge sera d&#8217;à peine 30 €</li>
</ul>



<p class="wp-block-paragraph">👍🏻 Mais :</p>



<ul class="wp-block-list">
<li>on r<strong>equalifie 43 fiches</strong> (QS x fichier)</li>



<li><strong>On ramène 12 clients dans la eshop </strong>(come back) =&gt; CLV ralongée</li>



<li>on réactive <strong>2 clients qui achèteront </strong>(3.5% de réactivation x 60 fiches)</li>



<li><strong>2 ventes froides espérées </strong>(31% de cold sur 8 ventes à chaud) <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">&lt;- on obtient le même chiffre que sur l&#8217;alinéa précédent, par ce calcul différent, mais c&#8217; est logique, ce sont les mêmes.</mark></li>



<li><strong>cachet bonus </strong>de 36,08 € pour les auteurs et 48,08 € pour les éditeurs</li>
</ul>
</div></div>
</div>
</div>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph">🌤️ C&#8217;est plutôt une bonne journée vu comme cela ?</p>



<p class="wp-block-paragraph">➡️ Proposition de présentation de post :</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="727" height="567" src="https://st9ph.fr/wp-content/uploads/2026/03/image-60.png" alt="" class="wp-image-36250" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-60.png 727w, https://st9ph.fr/wp-content/uploads/2026/03/image-60-300x234.png 300w" sizes="auto, (max-width: 727px) 100vw, 727px" /></figure>
</div>


<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Ce pack étant réservé à une opération en phoning, est-il possible de le cacher aux visiteurs de la boutique ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Alors personne n'y aura accès, même pas les clients bénéficiaires de l'OP">Ben oui ! Il suffit de ne pas le publier !</li>
    <li data-correct="true" data-feedback="oui, seuls les clients à qui on communiquera l'url du produit pourront le voir">Dans options > visibilité > afficher > nulle part</li>
    <li data-correct="false" data-feedback="le coupon, c'est une bonne idée, mais le pack à prix normal : ça ne sert à rien, autant acheter chaque ebook séparément. Une réduction plus faible pour l'ensemble des clients et un coupon à 50% pour ceux que va contacter Helena, ça c'est une idée !">Non, mais on publie le pack à prix normal et on donne un coupon réduction aux bénéficiaires de l&#8217;OP</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<div class="wp-block-uagb-separator uagb-block-e47e2e48"><div class="wp-block-uagb-separator__inner" style="--my-background-image:"></div></div>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph">📞 Evaluation d&#8217;appel sortant en télévente</p>



<p class="has-contrast-3-background-color has-background wp-block-paragraph">5️⃣<strong> Evaluer l&#8217;appel d&#8217;Helena </strong>passé à madame Yol selon la trame AIDA en utilisant le formulaire ci-dessous</p>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-33ecfb2c-4fc7-4300-b63d-9b2919944266" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--base-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--base-3);" aria-controls="ub-content-toggle-panel-0-33ecfb2c-4fc7-4300-b63d-9b2919944266" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-33ecfb2c-4fc7-4300-b63d-9b2919944266" style="color: #000000; ">Rappel de la<strong> trame d&#8217;appel </strong>en <strong>AIDA</strong> :</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap left" style="color: var(--accent);"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-math-plus"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-33ecfb2c-4fc7-4300-b63d-9b2919944266">

<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-40bdde2b39633f473bbc39312e5cbedf wp-block-paragraph"><strong>Etape 1 / Attirer l’attention</strong></p>



<ul class="wp-block-list">
<li><strong>Je me présente. Je cite distinctement le nom de la société que je représente. Je m’assure d’avoir le bon interlocuteur en ligne.</strong></li>



<li><strong>Je communique le contexte de l’appel. J’explique tout de suite le motif principal de l’appel. Je capte l’attention de mon interlocuteur.</strong></li>



<li><strong>Je vérifie la disponibilité du prospect / client.</strong></li>
</ul>



<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-5c70ead48ee5979957a361183ac2cefe wp-block-paragraph"><strong>Etape 2 / Inspirer l’intérêt</strong><strong></strong></p>



<ul class="wp-block-list">
<li><strong>Je découvre mon prospect, ses motivations, ses besoins implicites et explicites. Je fais un diagnostic sur sa situation. J’utilise les techniques d’écoute et de questionnement</strong></li>



<li><strong>.Je reformule sur les besoins de mon interlocuteur. J’ai une démarche positive et je fais une transition appropriée avec l’étape d’argumentation.</strong></li>
</ul>



<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-311b2ee057a1888c5134cd4e58727535 wp-block-paragraph"><strong>Etape 3 / Déclencher le désir</strong><strong></strong></p>



<ul class="wp-block-list">
<li><strong>J’argumente sur l’offre. Je convaincs mon prospect / client en lui donnant suffisamment d’informations et d’arguments pour le conforter dans son choix et dans sa décision.</strong></li>



<li><strong> J’utilise les arguments les plus percutants et les plus adaptés à mon prospect / client en lui apportant des preuves.</strong></li>



<li><strong>Je réponds aux questions et aux objections. Je dois écouter, accepter, comprendre, traiter et argumenter une objection afin d’obtenir l’accord du prospect / client et de conclure la vente.</strong></li>
</ul>



<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-90139ba70143ca6d039c398005929db5 wp-block-paragraph"><strong>Etape 4 / Aboutir à l’adhésion</strong><strong></strong></p>



<ul class="wp-block-list">
<li><strong>J’effectue un Closing + ou &#8211; . Je fais une proposition commerciale en ayant repéré les signaux d’acceptation du prospect / client. J’encourage mon interlocuteur à répondre positivement à mon offre.</strong></li>



<li><strong>Je fiabilise l’engagement. Je fais une reformulation de synthèse en résumant les points d’accord validés avec mon prospect / client.</strong></li>



<li><strong>Je prends congé, de manière personnalisée, en remerciant mon prospect / client de son accueil ou de sa confiance.</strong></li>
</ul>

</div>
		</div>
</div>


<div class="wp-block-uagb-team uagb-team__image-position-left uagb-team__align-left uagb-team__stack-tablet uagb-block-9cc546cb"><img decoding="async" class="uagb-team__image-crop-circle" src="https://st9ph.fr/wp-content/uploads/2026/03/portrait-lucie.jpg" alt="" height="100" width="100" loading="lazy"/><div class="uagb-team__content"><h3 class="uagb-team__title">Lucie Yol</h3><span class="uagb-team__prefix">la cliente</span><p class="uagb-team__desc">née le 27 décembre 1986, résidant 1, rue Saint Jean à Caen</p><ul class="uagb-team__social-list"></ul></div></div>



<p class="wp-block-paragraph">👇🏻 <strong>L&#8217;appel</strong> (c&#8217;est ma première vidéo Youtube alors soyez indulgents 😉) :</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="AIDA | offre pack" width="900" height="506" src="https://www.youtube.com/embed/MksF-BnkyPU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Comment doit-on classer cet appel dans les stats ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="oui, avec espoir de vente, requalification et refidélisation">C&#8217;est un contact argumenté</li>
    <li data-correct="false" data-feedback="Peut-être à froid, on l'espère, mais pas encore">C&#8217;est une vente</li>
    
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID6' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID6">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">👆🏻 Entrez le code qui s&#8217;affiche dans l&#8217;encadré d&#8217;accusé réception du formulaire ci-dessus (encadré vert) .</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID6' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID6" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID6' PAR TON ID ET '@id@' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID6', '@id@')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID6' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID6" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<p class="has-medium-font-size wp-block-paragraph">➡️ Attirer l&#8217;attention</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🟢 <strong>Points forts</strong> :</p>



<ul class="wp-block-list">
<li>se présente en nommant l&#8217;entreprise</li>



<li> vérifie la disponibilité</li>



<li>présente le contexte réel de l&#8217;appel (sans omettre qu&#8217;elle a une offre à faire)</li>



<li>amène le cadre de son offre en testant les motivations d&#8217;achat de sa cliente</li>



<li>Plan de questionnement fluide</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🔴 Axes d&#8217;amélioration</p>



<ul class="wp-block-list">
<li>Ne réagit pas au frein technologique de la cliente (terme ebook inconnu), ce qui l&#8217;amène à l&#8217;objection sur le podcast</li>
</ul>
</div>
</div>



<p class="has-medium-font-size wp-block-paragraph">➡️ Inspirer l&#8217;intérêt</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🟢 <strong>Points forts</strong> :</p>



<ul class="wp-block-list">
<li>Argumente sur les motivations qu&#8217;elle a décelées (le manque de temps, le style de lecture à proposer &#8230;)</li>



<li>Elle instaure un climat de complicité</li>



<li>Effet mystère sur l&#8217;offre réussi (curiosité)</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🔴 Axes d&#8217;amélioration</p>



<ul class="wp-block-list">
<li>Reformule un peu rapidement, on n&#8217;a aucun exemple de ses dernières lectures</li>



<li>Elle pourrait aussi se baser sur ses achats dans la boutique (si elle en a fait)</li>
</ul>
</div>
</div>



<p class="has-medium-font-size wp-block-paragraph">➡️ Déclencher le désir</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🟢 <strong>Points forts</strong> :</p>



<ul class="wp-block-list">
<li>présentation de sa sélection de qualité </li>



<li>argumente au bénéfice des motivations identifiées</li>



<li>Répond avec aisance aux objections &#8220;vous l&#8217;avez lu ? (teste de probité)&#8221;, &#8220;je n&#8217;ai pas trop les moyens&#8221; (non sincère, non fondée)</li>



<li>valorise le bénéfice client de son offre</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🔴 Axes d&#8217;amélioration</p>



<ul class="wp-block-list">
<li>Semble plus à l&#8217;aise avec le 2nd des deux produits du pack</li>



<li>Elle ne propose qu&#8217;1 duo de ebooks à la cliente, prenant le risque qu&#8217;il soit rejeté sans qu&#8217;elle n&#8217;ait de substitut sur lequel se replier</li>
</ul>
</div>
</div>



<p class="has-medium-font-size wp-block-paragraph">➡️ Aboutir à l&#8217;adhésion</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🟢 <strong>Points forts</strong> :</p>



<ul class="wp-block-list">
<li>Elle propose un tunnel d&#8217;achat qui lève les freins de sa cliente</li>



<li>Elle utilise le FOMO pour encourager l&#8217;acte d&#8217;achat</li>



<li>Néanmoins, elle ne brusque pas la cliente </li>



<li>next step claire</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">🔴 Axes d&#8217;amélioration</p>



<ul class="wp-block-list">
<li>Elle oublie un peu l&#8217;autre objectif de l&#8217;appel (sonder le manque d&#8217;intérêt pour nos produits, sans doute refroidie par sa 1ere réponse (son fils étant le vrai client et  de l&#8217;autre rayon de la boutique)</li>



<li>elle compte sur un cold à la fin et ne fait pas la transformation</li>
</ul>
</div>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> C&#8217;était une bonne idée, la question : &#8220;Vous êtes venue dans la boutique récemment ?&#8221; ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="La réponse risque de ne pas être sympa, en effet, mais, justement, on appelle aussi pour savoir pourquoi et la refidéliser en levant ses freins.">Franchement pas ! Un client en LMOT ! Et puis on le sait que cela fait six mois au moins qu&#8217;elle ne l&#8217;a pas fait !</li>
    <li data-correct="true" data-feedback="Exact, sauf que là, la réponse l'a un peu surprise et, par conséquent, elle n'a pas rebondi">Oui, ce sera le meilleur moyen de savoir pourquoi elle ne l&#8217;a pas fait !</li>
    <li data-correct="false" data-feedback="Faire ça sans que cela sonne à ses oreilles comme un reproche ... ça demandera du talent.">Autant demander pourquoi elle n&#8217;est pas venue depuis 6 mois. Elle saura qu&#8217;on suit cela de près.</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Helena a créé un pack au prix catalogue et un coupon seulement utilisable par sa cliente. Etait-ce la meilleure méthode ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Ca se défend, mais cela demande de créer à la fois un coupon et un pack prix catalogue (sans intérêt sans la réduction)">Oui, Mme Yol aura l&#8217;impression d&#8217;un avantage réellement exclusif et l&#8217;effet de réduction du coupon dans le panier est un magnet irresistible</li>
    <li data-correct="false" data-feedback="Intéressant mais la proposition C renforce encore la notion d'avantage et permet à tous les clients de commander le pack (à -10%, -20% ...)">Non, il faut créer un pack avec directement 50% de réduction et donner le lien uniquement aux clients qu&#8217;elle a ciblés</li>
    <li data-correct="true" data-feedback="oui, d'autant que ce ne sera qu'une manip (le coupon) vu que le pack est fait une fois pour toutes et que certains l'auront peut-être consulté pendant l'appel.">Non, si le pack n&#8217;est pas disponible dans la boutique (avec une réduction moins avantageuse que celle proposée dans l&#8217;appel), les clients appelés ne verront pas aussi bien leur avantage supplémentaire</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Aurait-elle du proposer le coupon de 10% comme indiqué dans les consignes en cas de non vente ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="oui, elle n'a pas vendu, même si ce sera sans doute un cold, un second call back aurait été le bienvenu, d'autant qu'il était demandé en consigne">oui, c&#8217;est une opportunité supplémentaire de la refidéliser</li>
    <li data-correct="false" data-feedback="Non, elle n'a pas vendu, même si ce sera sans doute un cold, un second call back aurait été le bienvenu, d'autant qu'il était demandé en consigne">non, elle a raison de tout miser sur son offre de pack, plus intéressante.</li>
    
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="has-medium-font-size wp-block-paragraph">📧 Le mail envoyé à Lucie :</p>



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> boutique st9ph</span>
    <span><strong>À :</strong> lucie.yol@bytel.fr</span>
    <span><strong>Objet :</strong> votre code promo exclusif</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour Lucie YOL,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Nous avons échangé au téléphone ce jour et je vous ai promis un code promotion exclusif sur le pack &#8220;humour et dérision&#8221; visible sur le lien de ce mail.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">Le voici comme promis : &#8220;SPECIAL-LUCIE&#8221; et il est valable 24 heures.</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://shop.st9ph.fr/presta/fr/recherche?controller=search&#038;s=pack+lucie" class="cta-button" target="_blank">Voir le pack dans la boutique</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">Ajoutez les deux produits à votre panier puis saisissez ce code dans la dernière étape de la commande, juste au dessus du bouton commander, dans la zone &#8220;j&#8217;ai un code promotion&#8221;. Il faut bien saisir en majuscules, sans accent et sans les guillemets avec un tiret (du 6) entre SPECIAL et LUCIE</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">N&#8217;hésitez pas à nous contacter par le canal habituel au besoin. Je suis ravie que nous ayons pu faire connaissance et toute l&#8217;équipe st9ph se joint à moi pour vous souhaitez une agréable journée</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Helena VRANT<br>Votre conseillère commerciale.</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Vous recevez ce mail parce que vous êtes client(e) de la boutique st9ph.</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi Informatiques et Libertés du 6 janvier 1978 vous avez un droit d&#8217;accès à vos données personnelles. Utilisez le lien &#8220;conctactez-nous&#8221; &#8211; &#8220;mon compte client&#8221; pour exercer ce droit.</div>
        <div class="footer-section">Ne répondez pas à ce mail, il serait perdu, utilisez le lien &#8220;contactez nous&#8221; pour toutes vos demandes ou appelez nous au 3568 </div>
        <div class="footer-section">shop.st9ph.fr &#8211; MArs 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<p class="has-text-align-center callout rouge has-medium-font-size wp-block-paragraph">❌ Il est en réalité impossible de créer un pack avec des produits dématérialises !</p>



<div class="resources-box">
<ul>
  <li>
🌐
<span class="resource-text">Tout savoir sur les produits dématérialisés (article de ce blog)</span>
<a class="resource-link" href="https://st9ph.fr/prestashop-produits-dematerialises/" target="_blank" rel="noopener">voir</a>
</li>
</ul>
</div>



<p class="wp-block-paragraph">C&#8217;est lié au fait qu&#8217;on ne peut pas fusionner les liens de téléchargement. <strong>L&#8217;astuce du lien dans le mail </strong>est d&#8217;avoir ajouté<strong> les mots clés &#8216;pack lucie&#8221; </strong>dans les 2 fiches produits :</p>



<p class="has-text-align-center wp-block-paragraph">Ca donne :<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color"> https://shop.st9ph.fr/presta/fr/recherche?controller=search&amp;s=pack+lucie</mark></strong></p>



<p class="has-text-align-center has-small-font-size wp-block-paragraph">➡️ cliquez sur le bouton du mail pour voir le résultat.</p>



<p class="has-text-align-center wp-block-paragraph">C&#8217;est aussi pour cela que dans, ce TP, je vous ai fait réalisé le pack avec un simulateur 😉</p>



<p class="callout vert wp-block-paragraph">💡 Pensez à restreindre votre coupon à l<strong>ucie seule</strong> et pour <strong>ces deux produits</strong> :</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="788" height="185" src="https://st9ph.fr/wp-content/uploads/2026/03/image-61.png" alt="" class="wp-image-36325" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-61.png 788w, https://st9ph.fr/wp-content/uploads/2026/03/image-61-300x70.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-61-768x180.png 768w" sizes="auto, (max-width: 788px) 100vw, 788px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="969" height="167" src="https://st9ph.fr/wp-content/uploads/2026/03/image-63.png" alt="" class="wp-image-36327" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-63.png 969w, https://st9ph.fr/wp-content/uploads/2026/03/image-63-300x52.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-63-768x132.png 768w" sizes="auto, (max-width: 969px) 100vw, 969px" /></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="413" height="306" src="https://st9ph.fr/wp-content/uploads/2026/03/image-62.png" alt="" class="wp-image-36326" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-62.png 413w, https://st9ph.fr/wp-content/uploads/2026/03/image-62-300x222.png 300w" sizes="auto, (max-width: 413px) 100vw, 413px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group callout vert"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph">💡 Pensez également à :</p>



<ul class="wp-block-list">
<li>restreindre les dates du coupon (par défaut, c&#8217;est un mois)</li>



<li>ne pas mettre le produit en avant</li>



<li>ne pas permettre d&#8217;utilisation partielle</li>
</ul>
</div></div>
</div>
</div>



<p class="has-medium-font-size wp-block-paragraph">📽️ Lucie n&#8217;aura plus qu&#8217;à suivre les instructions (vidéo muette) :</p>



<figure class="wp-block-video"><video height="724" style="aspect-ratio: 1112 / 724;" width="1112" controls src="https://st9ph.fr/wp-content/uploads/2026/03/special-lucie.mp4"></video></figure>


<div class="wp-block-ub-tabbed-content wp-block-ub-tabbed-content-holder wp-block-ub-tabbed-content-horizontal-holder-mobile wp-block-ub-tabbed-content-horizontal-holder-tablet" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9" style="">
			<div class="wp-block-ub-tabbed-content-tab-holder horizontal-tab-width-mobile horizontal-tab-width-tablet">
				<div role="tablist" class="wp-block-ub-tabbed-content-tabs-title wp-block-ub-tabbed-content-tabs-title-mobile-horizontal-tab wp-block-ub-tabbed-content-tabs-title-tablet-horizontal-tab" style="justify-content: flex-start; "><div role="tab" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-tab-0" aria-controls="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-panel-0" aria-selected="true" class="wp-block-ub-tabbed-content-tab-title-wrap active" style="--ub-tabbed-title-background-color: #eeeeee; --ub-tabbed-active-title-color: inherit; --ub-tabbed-active-title-background-color: #eeeeee; text-align: left; " tabindex="-1">
				<div class="wp-block-ub-tabbed-content-tab-title">Rappel des correspondances liées</div>
			</div><div role="tab" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-tab-1" aria-controls="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-panel-1" aria-selected="false" class="wp-block-ub-tabbed-content-tab-title-wrap" style="--ub-tabbed-active-title-color: inherit; --ub-tabbed-active-title-background-color: #eeeeee; text-align: left; " tabindex="-1">
				<div class="wp-block-ub-tabbed-content-tab-title">Confirmation de commande</div>
			</div><div role="tab" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-tab-2" aria-controls="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-panel-2" aria-selected="false" class="wp-block-ub-tabbed-content-tab-title-wrap" style="--ub-tabbed-active-title-color: inherit; --ub-tabbed-active-title-background-color: #eeeeee; text-align: left; " tabindex="-1">
				<div class="wp-block-ub-tabbed-content-tab-title">confirmation de paiement &amp; facture</div>
			</div><div role="tab" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-tab-3" aria-controls="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-panel-3" aria-selected="false" class="wp-block-ub-tabbed-content-tab-title-wrap" style="--ub-tabbed-active-title-color: inherit; --ub-tabbed-active-title-background-color: #eeeeee; text-align: left; " tabindex="-1">
				<div class="wp-block-ub-tabbed-content-tab-title">mail de téléchargement</div>
			</div></div>
			</div>
			<div class="wp-block-ub-tabbed-content-tabs-content" style=""><div role="tabpanel" class="wp-block-ub-tabbed-content-tab-content-wrap active" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-panel-0" aria-labelledby="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-tab-0" tabindex="0">

<p class="callout bleu wp-block-paragraph">ℹ️ Important à mémoriser pour<strong> éviter les redites et mails inutiles</strong>, en parcourant les onglets 👆🏻 ci-dessus, vous retrouvez <strong>tous les courriers et pièces jointes liées</strong> à une commande dématérialisée.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="486" height="174" src="https://st9ph.fr/wp-content/uploads/2026/03/image-67.png" alt="" class="wp-image-36449" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-67.png 486w, https://st9ph.fr/wp-content/uploads/2026/03/image-67-300x107.png 300w" sizes="auto, (max-width: 486px) 100vw, 486px" /></figure>

</div><div role="tabpanel" class="wp-block-ub-tabbed-content-tab-content-wrap ub-hide" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-panel-1" aria-labelledby="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-tab-1" tabindex="0">
<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="552" height="853" src="https://st9ph.fr/wp-content/uploads/2026/03/luciyol-recap.jpg" alt="" class="wp-image-36450" srcset="https://st9ph.fr/wp-content/uploads/2026/03/luciyol-recap.jpg 552w, https://st9ph.fr/wp-content/uploads/2026/03/luciyol-recap-194x300.jpg 194w" sizes="auto, (max-width: 552px) 100vw, 552px" /></figure>
</div>
</div><div role="tabpanel" class="wp-block-ub-tabbed-content-tab-content-wrap ub-hide" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-panel-2" aria-labelledby="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-tab-2" tabindex="0">
<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="554" height="676" src="https://st9ph.fr/wp-content/uploads/2026/03/luciyol-paiement_accept.jpg" alt="" class="wp-image-36451" style="width:554px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/luciyol-paiement_accept.jpg 554w, https://st9ph.fr/wp-content/uploads/2026/03/luciyol-paiement_accept-246x300.jpg 246w" sizes="auto, (max-width: 554px) 100vw, 554px" /><figcaption class="wp-element-caption"><a href="https://st9ph.fr/wp-content/uploads/2026/03/FA000004.pdf" target="_blank" rel="noreferrer noopener">Télécharger la facture</a></figcaption></figure>
</div>
</div><div role="tabpanel" class="wp-block-ub-tabbed-content-tab-content-wrap ub-hide" id="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-panel-3" aria-labelledby="ub-tabbed-content-e869121d-8f5e-446b-9a0f-77ac266e35e9-tab-3" tabindex="0">
<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="558" height="803" src="https://st9ph.fr/wp-content/uploads/2026/03/luciyol-produits.jpg" alt="" class="wp-image-36453" srcset="https://st9ph.fr/wp-content/uploads/2026/03/luciyol-produits.jpg 558w, https://st9ph.fr/wp-content/uploads/2026/03/luciyol-produits-208x300.jpg 208w" sizes="auto, (max-width: 558px) 100vw, 558px" /></figure>
</div>
</div></div>
		</div>


<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-medium-font-size wp-block-paragraph">🎓Dans ce TP, nous avons vu :</p>



<ul class="wp-block-list">
<li>Comment <strong>dynamiser l&#8217;attrait d&#8217;un catalogue</strong> en proposant <strong>des add-on </strong>sur nos produits et en <strong>diversifiant l&#8217;offre</strong> (podcasts, nouveaux rayons, nouvelle gamme)</li>



<li> la notion de <strong>magnet </strong>pour <strong>créer de l&#8217;atterrissage </strong>(pop-up, post, phoning)</li>



<li>l&#8217; <strong>association en pack</strong> des produits du catalogue pour <strong>les rendre plus attractifs</strong></li>



<li>la <strong>promo dédiée via un coupon </strong>et l&#8217;<strong>appel en push</strong> pour générer un<strong> call back</strong></li>



<li>la réalisation d<strong>&#8216;une OP Com ciblée en LMOT</strong> en analysant <strong>ses retombées à court et moyen terme</strong></li>
</ul>



<p class="wp-block-paragraph"></p>



<p class="callout vert wp-block-paragraph">✅ Toutes ces actions, sur une copie d&#8217;examen, montreront<strong> votre maitrise de l&#8217;éventail des OP Com</strong>, votre vigilance sur <strong>le bénéfice / risque</strong> et <strong>vos talents commerciaux</strong>.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-video"><video height="1280" style="aspect-ratio: 720 / 1280;" width="720" controls muted src="https://st9ph.fr/wp-content/uploads/2026/03/lucie-lit.mp4"></video></figure>
</div>
</div>



<p class="wp-block-paragraph"><em>Sur la vidéo ci-contre, on est bien d&#8217;accord que ce n&#8217;est pas un livre papier qu&#8217;elle recevra mais Gemini n&#8217;a jamais voulu me générer la version tablette correctement. </em>🤨</p>



<script>
document.addEventListener("DOMContentLoaded", function () {

  let scoreTotal = 0;
  let questionsRepondues = 0;

  const blocs = document.querySelectorAll(".bloc-qcm");

  blocs.forEach(qcm => {

    const options = qcm.querySelectorAll(".qcm-options li");
    const feedback = qcm.querySelector(".qcm-feedback");
    let answered = false;

    options.forEach(option => {
      option.addEventListener("click", function () {

        if (answered) return;
        answered = true;

        questionsRepondues++;

        const isCorrect = option.dataset.correct === "true";

        if (isCorrect) {
          scoreTotal++;
          this.classList.add("correct");
        } else {
          this.classList.add("wrong");
        }

        feedback.textContent = option.dataset.feedback +" | Ton score : " + scoreTotal + " / " + questionsRepondues;

        const global = document.getElementById("score-global");
        if (global) {
          global.textContent =
            "Score total : " + scoreTotal + " / " + questionsRepondues;
        }

      });
    });

  });

});
</script>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-op-com/">🎓TP-OP Com</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://st9ph.fr/%f0%9f%8e%93tp-op-com/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://st9ph.fr/wp-content/uploads/2026/03/3agents.mp4" length="1358570" type="video/mp4" />
<enclosure url="https://st9ph.fr/wp-content/uploads/2026/03/special-lucie.mp4" length="6161227" type="video/mp4" />
<enclosure url="https://st9ph.fr/wp-content/uploads/2026/03/lucie-lit.mp4" length="1450344" type="video/mp4" />

		<post-id xmlns="com-wordpress:feed-additions:1">36073</post-id>	</item>
		<item>
		<title>🎓TP- Service Client</title>
		<link>https://st9ph.fr/%f0%9f%8e%93tp-service-client/</link>
					<comments>https://st9ph.fr/%f0%9f%8e%93tp-service-client/#respond</comments>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Tue, 24 Feb 2026 08:28:28 +0000</pubDate>
				<category><![CDATA[😎 privé]]></category>
		<guid isPermaLink="false">https://st9ph.fr/?p=35263</guid>

					<description><![CDATA[<p>📚 Ressources : préalable (1er lien) et à utiliser (2 et 3) 🌐 🏷️ La communication en service client &#38; son management voir 🌐 ⌨️ l&#8217;assistant conversationnel&#160; voir 🌐 🛒 La boutique pédagogique voir 🤔 Question : Peut-on modifier le mot de passe d&#8217;un client ? Ben oui ! On fait ce qu&#8217;on veut dans ... <a title="🎓TP- Service Client" class="read-more" href="https://st9ph.fr/%f0%9f%8e%93tp-service-client/" aria-label="En savoir plus sur 🎓TP- Service Client">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-service-client/">🎓TP- Service Client</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-medium-font-size wp-block-paragraph">📚 Ressources :  préalable (1er lien) et à utiliser (2 et 3)</p>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">🏷️ La communication en service client &amp; son management</span>
    <a class="resource-link" href="https://st9ph.fr/com-en-service-client-et-son-management/" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text">⌨️ l&#8217;assistant conversationnel&nbsp;</span>
    <a class="resource-link" href="https://docs.google.com/forms/d/e/1FAIpQLSet63L1Ar8YxUjguAxLZneGqQPiSAe18hXmsoJE0oIHj3wiTw/viewform" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text"> 🛒 La boutique pédagogique</span>
    <a class="resource-link" href="https://shop.st9ph.fr/presta/fr/" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Peut-on modifier le mot de passe d&#8217;un client ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Hé bien non, on n'y touche pas ! C'est interdit !">Ben oui ! On fait ce qu&#8217;on veut dans notre boutique !</li>
    <li data-correct="false" data-feedback="Même pas ! On peut, à sa demande, lui expliquer comment le réinitialiser mais pas plus.">Seulement si c&#8217;est lui qui le demande</li>
    <li data-correct="true" data-feedback="C'est exact ! On peut, en revanche, lui fournir la procédure de réinitialisation.">Non, en aucun cas, même si c&#8217;est lui qui le demande.</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 1.7rem 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 2.8rem;
  padding: 0 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.3rem 1.5rem;
  width: 100%;
}

/* Ligne titre + logo */
.chapter-heading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.6rem;
}

/* Logo carré */
.chapter-logo {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
}

.chapter-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* H2 */
.chapter-content h2 {
  margin: 0;
  font-size: 2.1rem;
  font-weight: 700;
  color: #1e73be; /* personnalisable */
}

/* Puces */
.chapter-points {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.chapter-points li {
  margin-bottom: 0.35rem;
  color: #444;
  font-size: 0.95rem;
  line-height: 1.45;
}

.chapter-points li::before {
  content: "🔹 ";
}
</style>

<div class="chapter-title">
  <div class="chapter-number">1</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>

      <h2>travail autour de la problématique du mot de passe perdu</h2>
    </div>

    <ul class="chapter-points">
      <li> connaitre et communiquer le process</li>
      <li> Evaluer la performance du process</li>
    </ul>
  </div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>la procédure de réinitialisation de mot de passe</strong></h3>



<p class="has-base-2-background-color has-background has-medium-font-size wp-block-paragraph">1️⃣ En vous basant sur la <img loading="lazy" decoding="async" width="44" height="38" class="wp-image-34444" style="width: 44px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-justicon-small.png" alt="">boutique st9ph,  🕵🏻 recherchez les informations, 🪶 <strong>répondez à ce questionnaire</strong> puis cliquez sur ⬛<strong> Envoyer.</strong></p>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID1">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID1' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID1" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID1' PAR TON ID ET 'Cli9nt' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID1', 'Cli9nt')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID1" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<p class="callout rouge wp-block-paragraph">⚠️ Il est conseillé de ✂️ <strong>copier-coller</strong> le texte de votre réponse dans un fichier (Word, bloc-notes &#8230;) pour le sauvegarder <strong>avant de cliquer sur envoyer </strong>car <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#e14444" class="has-inline-color">les champs de réponse seront vidés lors de l&#8217;envoi</mark></strong>.</p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- ========================= -->
<!-- 🔐 ACCÈS CORRIGÉ – TP 1 -->
<!-- ========================= -->

<div class="tp-access"
     data-password="Foir9"> <!-- 💱 (1) MOT DE PASSE DU TP -->

  <input
    type="password"
    placeholder="🔒 me demander"
    class="tp-password-input"
  />

  <button type="button" class="tp-unlock-btn">
    Voir le corrigé
  </button>

  <p class="tp-error"></p>
</div>



<!-- ========================= -->
<!-- 📘 CORRIGÉ – TP 1 -->
<!-- ========================= -->

<div class="wp-block-group tp-corrige">

  <h5>La FAQ et le chatbot permettent-ils de répondre à la problématique du mot de passe perdu ?</h5>
  <ul>
<li>La FAQ ne le permet pas, elle explique juste pourquoi c&#8217;est important de créer un compte</li>
<li>Le Chatbot, en revanche, explique clairement la procédure</li>
</ul>
<h5>Quels seraient les éléments à ajouter pour être exhaustif ?</h5>
 <ul>
<li>Ajouter à la FAQ la question &#8220;que faire si je perds mon mot de passe ?&#8221; Certains n&#8217;iront jamais sur le chatbot (n&#8217;aiment pas ou ne le voient même pas)</li>
<li>Le Chatbot devrait sans doute permettre en plus le téléchargement d&#8217;un pdf avec la procédure pas à pas (next step) et signaler aussi qu&#8217;on retrouve toutes les étapes dans la FAQ</li>
</ul>
<h5>Que doit on faire si on perd à la fois son identifiant et son mot de passe ?</h5>
 <p> Il faut contacter le service client en utilisant le lien &#8220;contactez-nous&#8221; 5ticket). C&#8217;est logique, une opération humaine de vérification de l&#8217;email qui effectue la demande est nécessaire pour la sécurité du client. Une question de contrôle lui sera posée et un sms le préviendra de la démarche qu&#8217;il a initié pour l&#8217;alerter si son identité est usurpée </p>

</div>

<style>
.tp-corrige {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>



<style>
/* ===== Corrigés cachés ===== */
.tp-corrige {
  display: none;
  margin-top: 1.5rem;
  padding: 1.2rem;
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
}

/* ===== Zone accès ===== */
.tp-access {
  margin-top: 1.5rem;
}

.tp-password-input {
  padding: 0.5rem;
  margin-right: 0.5rem;
}

.tp-unlock-btn {
  padding: 0.5rem 0.8rem;
  cursor: pointer;
}

.tp-error {
  margin-top: 0.4rem;
  color: #dc2626;
  font-weight: bold;
}
</style>



<script>
document.querySelectorAll('.tp-access').forEach(accessBlock => {

  const button = accessBlock.querySelector('.tp-unlock-btn');
  const input  = accessBlock.querySelector('.tp-password-input');
  const error  = accessBlock.querySelector('.tp-error');

  // 🔗 Corrigé = bloc suivant dans l’article
  const corrigé = accessBlock.nextElementSibling;

  button.addEventListener('click', () => {

    const expectedPassword = accessBlock.dataset.password;

    if (input.value === expectedPassword) {
      corrigé.style.display = 'block';
      error.textContent = '';
    } else {
      error.textContent = '❌ Mot de passe incorrect';
    }

  });
});
</script>



<p class="has-base-2-background-color has-background has-medium-font-size wp-block-paragraph">2️⃣ Dans le blog d&#8217;entrainement :</p>



<ul class="wp-block-list">
<li><strong>Créez un article </strong>que vous nommerez &#8220;<strong>TP client de</strong> &#8230;  <em>+ le prénom des équipiers</em>&#8220;</li>



<li>Utiliser le bloc FAQ de <img loading="lazy" decoding="async" width="17" height="16" class="wp-image-33631" style="width: 17px;" src="https://st9ph.fr/wp-content/uploads/2024/12/ico-spectra.png" alt=""> <strong>Spectra</strong> pour :
<ul class="wp-block-list">
<li>expliquer <strong>la procédure de réinitialisation du mot de passe </strong>(liens et aperçus d&#8217;écran bienvenus)</li>



<li>expliquer <strong>la procédure en cas de perte de l&#8217;identifiant et du mot de passe</strong> (aidez-vous du chatbot)</li>



<li>Faites figurer cette FAQ dans <strong>un premier chapitre (H2)</strong></li>
</ul>
</li>



<li>🌐 <strong>Publiez-le.</strong></li>
</ul>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-fc89dcfd-f954-4dc2-822f-92b2ebefc8ce" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: #f1f1f1; " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: #f1f1f1;" aria-controls="ub-content-toggle-panel-0-fc89dcfd-f954-4dc2-822f-92b2ebefc8ce" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-fc89dcfd-f954-4dc2-822f-92b2ebefc8ce" style="color: #000000; ">Corrigé FAQ Spectra (à lire seulement après l&#8217;avoir réalisé</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-fc89dcfd-f954-4dc2-822f-92b2ebefc8ce">

<p class="wp-block-paragraph"></p>


<ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-30788169-8e63-42b6-bdff-37cade05f921">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-21da8856-9ae2-4dc8-bfa2-fd414af4cdb5">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">ajouter un bloc <img loading="lazy" decoding="async" width="30" height="27" class="wp-image-34708" style="width: 30px" src="https://st9ph.fr/wp-content/uploads/2025/12/ico-plus-editeur.jpg" alt=""> &gt; choisir  <img loading="lazy" decoding="async" width="27" height="23" class="wp-image-35391" style="width: 27px" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-faq-spectra.jpg" alt=""><mark class="has-inline-color has-accent-color">FAQ</mark></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 576 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-dbb3abbf-581f-46ce-8a4c-2572dc58345a">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 576 512"><path fill="#000000" d="M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z"></path></svg>
				</span>
				<span class="ub_list_item_text">Votre <strong><mark class="has-inline-color has-accent-color">1ère question</mark></strong> dans &#8220;<strong>&#8211; What is FAQ ?</strong>&#8220;</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 576 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-f7b9f855-2570-4418-812e-cb7161891dce">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 576 512"><path fill="#000000" d="M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z"></path></svg>
				</span>
				<span class="ub_list_item_text">Votre <strong><mark class="has-inline-color has-accent-color">1ere réponse</mark></strong> dans la zone en dessous &#8220;<strong>Lorem ipsum dolor sit amet &#8230;</strong>&#8220;</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-2ee24679-6a62-40ea-8c06-1ad171cb918b">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">idem pour la seconde question avec l&#8217;encadré suivant.</span>
			</div>
			
		</li>
</ul>

<div class="wp-block-uagb-faq uagb-faq__outer-wrap uagb-block-0fe2e5ec uagb-faq-icon-row uagb-faq-layout-accordion uagb-faq-expand-first-false uagb-faq-inactive-other-true uagb-faq__wrap uagb-buttons-layout-wrap uagb-faq-equal-height     " data-faqtoggle="true" role="tablist"><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-608dcc09 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewbox="0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewbox="0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">🔑 Comment faire pour retrouver un <strong>mot de passe oublié</strong> ?</span></div><div class="uagb-faq-content"><p>Ce n&#8217;est pas possible, même nous au SAV ne le voyons pas &#8220;en clair&#8221; et ne pouvons donc pas vous le redonner.<br>➡️ Il vous faudra <strong>le réinitialiser</strong> <a href="https://shop.st9ph.fr/presta/fr/recuperation-mot-de-passe" target="_blank" rel="noreferrer noopener">en suivant ce lien</a>.<br>➡️Saisissez votre email (le même que celui de votre compte client)<br>➡️ Cliquez sur &#8220;<strong>Envoyer un lien de réinitialisation</strong>&#8220;<br>➡️ Vous recevez <strong>un lien dans votre boite mail </strong>pour la page qui vous permet de redéfinir un nouveau mot de passe.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-ec85af88 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewbox="0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewbox="0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">🆔 J&#8217;ai<strong> perdu l&#8217;identifiant</strong> de mon compte !</span></div><div class="uagb-faq-content"><p><strong>Votre identifiant et votre adresse mail</strong>. Si <strong>vous en avez plusieurs</strong>, recherchez dans laquelle vous recevez nos courriers (tapez &#8220;boutique st9ph&#8221; dans<strong> la zone rechercher</strong>).<br>Si <strong>vous ne trouvez pas</strong>, <a href="https://shop.st9ph.fr/presta/fr/nous-contacter" target="_blank" rel="noreferrer noopener">écrivez nous</a>. nous vous renverrons votre identifiant à <strong>l&#8217;adresse mail que vous renseignerez </strong>dans le formulaire.<br><em>Pour des raisons de sécurité, nous ne pouvons pas vous envoyer dans la même communication votre identifiant et le lien de réinitialisation de votre mot de passe, il faudra faire deux demandes séparées.</em></p></div></div></div>
</div>
		</div>
</div>


<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>gestion d&#8217;un appel client</strong> et de son backoffice</h3>



<p class="has-base-2-background-color has-background has-medium-font-size wp-block-paragraph">3️⃣ Créez <strong>une grille d&#8217;évaluation </strong>des appels entrants en service client <strong>sous forme d&#8217;un ou plusieurs tableau</strong>x en second chapitre de votre article</p>



<p class="wp-block-paragraph">👉🏻 Cette grille devra :</p>



<ul class="wp-block-list">
<li>Evaluer <strong>le respect de la structure de l&#8217;appel</strong> (aidez vous du <img loading="lazy" decoding="async" width="12" height="11" class="wp-image-33359" style="width: 12px;" src="https://st9ph.fr/wp-content/uploads/2026/01/pdf.png" alt=""><mark style="background-color:rgba(0, 0, 0, 0);color:#912c2c" class="has-inline-color">pdf</mark> ci dessous)</li>



<li>Evaluer <strong>les attitudes</strong> du téléopérateur</li>



<li>Prévoir une section pour <strong>les points forts</strong> et <strong>les axes d&#8217;amélioration</strong></li>
</ul>



<p class="callout vert has-medium-font-size wp-block-paragraph">💾 N&#8217;oubliez pas d&#8217;enregistrer régulièrement !</p>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://st9ph.fr/wp-content/uploads/2026/02/adpc.pdf" type="application/pdf" style="width:100%;height:360px" aria-label="Contenu embarqué adpc."></object><a id="wp-block-file--media-c2062bb4-2a02-4091-8ae9-343284c3e011" href="https://st9ph.fr/wp-content/uploads/2026/02/adpc.pdf">adpc</a><a href="https://st9ph.fr/wp-content/uploads/2026/02/adpc.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-c2062bb4-2a02-4091-8ae9-343284c3e011">Télécharger</a></div>



<p class="wp-block-paragraph"></p>



<p class="has-base-2-background-color has-background has-medium-font-size wp-block-paragraph">4️⃣ Utilisez votre grille pour <strong>évaluer l&#8217;appel</strong> exemple ci-dessous.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center has-medium-font-size wp-block-paragraph">version audio seule sur smartphone sur ce QR Code 👇🏻</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="450" height="450" src="https://st9ph.fr/wp-content/uploads/2026/02/qrcode_st9ph.fr-1.png" alt="" class="wp-image-35270" style="width:225px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/02/qrcode_st9ph.fr-1.png 450w, https://st9ph.fr/wp-content/uploads/2026/02/qrcode_st9ph.fr-1-300x300.png 300w, https://st9ph.fr/wp-content/uploads/2026/02/qrcode_st9ph.fr-1-150x150.png 150w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>
</div></div>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Célia a-t-elle raison de suggérer à son client de laisser le navigateur enregistrer son mot de passe ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback=" Ce n'est pas inviolable mais relativement sécurisé si votre mot de passe Google n'est pas le nom de votre chat">Non ! S’il se fait pirater, n’importe qui aura accès à son compte</li>
    <li data-correct="true" data-feedback="oui, ce serait bien au moins de lui dire de le changer de temps en temps par sécurité">Oui parce que cela va lui faciliter son accès</li>
    <li data-correct="false" data-feedback="Pas d'accord, sa solution est adaptée et le client est satisfait">Non ! C&#8217;est contourner le problème qu&#8217;il a rencontré sans le résoudre</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>
</div>
</div>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="SAV - pas à pas" width="900" height="506" src="https://www.youtube.com/embed/VUPJ7JNc7qQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Parmi les questions qu’a posées Célia, laquelle est une authentification ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback=" oui, car c'est le client qui donnera l'information (plus fort que la confirmer)">Pouvez-vous me confirmer votre code postal ?</li>
    <li data-correct="false" data-feedback="Non, c'est une identification quand c'est juste oui ou non en réponse. Il fallait répondre A">Vous êtes bien monsieur Gabin Nelvet ?</li>
    <li data-correct="false" data-feedback="Non, là c'est juste une vérification, authentifier concerne les infos client. Il fallait répondre A">L’objet, ça doit être “confirmation de demande de mot de passe”, vous le voyez ?</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="has-base-2-background-color has-background has-medium-font-size wp-block-paragraph">5️⃣ Répondez aussi à ce petit questionnaire</p>



<p class="wp-block-paragraph">👉🏻 C&#8217;est votre avis &#8220;à chaud&#8221;. Il sera intéressant de le confronter avec les autres équipes et d&#8217;en débattre : <mark>nous n&#8217;entendons pas tous la même chose</mark></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph" style="font-size:17px">ou sur mobile si vous préférez. 👇🏻</p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="450" height="450" src="https://st9ph.fr/wp-content/uploads/2026/02/qrcode_docs.google.com-11.png" alt="" class="wp-image-35279" style="width:155px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/02/qrcode_docs.google.com-11.png 450w, https://st9ph.fr/wp-content/uploads/2026/02/qrcode_docs.google.com-11-300x300.png 300w, https://st9ph.fr/wp-content/uploads/2026/02/qrcode_docs.google.com-11-150x150.png 150w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>
</div></div>
</div>



<iframe loading="lazy" src="https://docs.google.com/forms/d/e/1FAIpQLSey-13RcAx7U9ZGnvOL8sAs7NngWpq283aOlBXOABh2WfExew/viewform?embedded=true" width="640" height="440" frameborder="0" marginheight="0" marginwidth="0">Chargement…</iframe>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-d5d74a68-f2c8-415b-b83d-78979fcfc006" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: #f1f1f1; " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: #f1f1f1;" aria-controls="ub-content-toggle-panel-0-d5d74a68-f2c8-415b-b83d-78979fcfc006" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-d5d74a68-f2c8-415b-b83d-78979fcfc006" style="color: #000000; ">proposition tableau d&#8217;évaluation + évaluation d&#8217;appel</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-d5d74a68-f2c8-415b-b83d-78979fcfc006">

<p class="wp-block-paragraph"></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>critère</th><th>Aujourd&#8217;hui (cet appel)</th><th>Eval 2 (à planifier)</th></tr></thead><tbody><tr><td><strong>ACCEUIL</strong></td><td></td><td></td></tr><tr><td>Je rassure le client sur l’aboutissement de son appel et le mets en confiance par un accueil convivial, en me présentant de manière<br>claire et audible.</td><td>très convivial<br>🟢 Acquis</td><td></td></tr><tr><td>identifier / Authentifier</td><td>🟢 Acquis</td><td></td></tr><tr><td>Je découvre la raison de son appel ou la reformule de manière interrogative<br>pour l’inviter à s’exprimer</td><td>oui, écoute active<br>🟢 Acquis</td><td></td></tr><tr><td><strong>DECOUVERTE</strong></td><td></td><td></td></tr><tr><td>besoins implicites et<br>explicites. Je fais un diagnostic sur sa situation. J’utilise les techniques d’écoute et de questionnement (OAF).</td><td>Court mais adapté<br>🟢 Acquis</td><td></td></tr><tr><td>Je reformule les besoins de mon interlocuteur. J’ai une démarche positive et je fais une transition appropriée vers l’étape d’argumentation</td><td><strong>Reformulation OK</strong><br>🟢 Acquis</td><td></td></tr><tr><td>PROPOSITION</td><td></td><td></td></tr><tr><td>J’argumente sur ma proposition. Je convaincs mon prospect / client en lui<br>donnant d’informations précises et des arguments qui le touchent (SONCAS). </td><td>convaincante mais attention à l&#8217;argumentation (prévenir mieux le client du danger) <br>🟢 Acquis</td><td></td></tr><tr><td>J’effectue un Closing. Je fais une proposition en ayant repéré les signaux<br>d’acceptation du prospect / client. J’encourage mon interlocuteur à<br>répondre positivement à mon offre, à ma solution.</td><td>pas de reformulation entendue    et même si on sent le client satisfait, un &#8220;ai-je bien répondu à vos attentes ?&#8221; serait un +<br>🟠 En cours</td><td></td></tr><tr><td>Next Step</td><td>Envoi du mail récap annoncé et traité<br>🟢 Acquis</td><td></td></tr><tr><td>CONCLUSION</td><td></td><td></td></tr><tr><td>proposition de service et prise de congés</td><td>entendues et adaptées<br>🟢 Acquis</td><td></td></tr><tr><td>ATTITUDES :</td><td></td><td></td></tr><tr><td>Vocabulaire, discours</td><td>pro<br>🟢 Acquis</td><td></td></tr><tr><td>Voix, articulation, ambiance</td><td>agréable<br>🟢 Acquis</td><td></td></tr><tr><td>empathie et directivité</td><td>bien mais attention au ton parfois<br>🟢 Acquis</td><td></td></tr></tbody></table></figure>

</div>
		</div>
</div>


<p class="has-base-2-background-color has-background has-medium-font-size wp-block-paragraph">6️⃣ traitez le mail que Célia veut envoyer à monsieur Nelvet</p>



<p class="callout rouge wp-block-paragraph">⚠️ Il est conseillé de ✂️ <strong>copier-coller</strong> le texte de votre réponse dans un fichier (Word, bloc-notes &#8230;) pour le sauvegarder <strong>avant de cliquer sur envoyer </strong>car <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#e14444" class="has-inline-color">les champs de réponse seront vidés lors de l&#8217;envoi</mark></strong>.</p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<p class="callout vert wp-block-paragraph">Vous pouvez <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#38ab45" class="has-inline-color">obtenir le corrigé </mark>directement dans votre boite mail </strong>en renseignant votre adresse ci-dessous 👇🏻</p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<div class="wp-block-group callout vert"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph">A l&#8217;issue de cette phase, vous avez :</p>



<ul class="wp-block-list">
<li>créé un article <img loading="lazy" decoding="async" width="19" height="18" class="wp-image-33542" style="width: 19px;" src="https://st9ph.fr/wp-content/uploads/2026/01/wp-ico.jpg" alt=""> WordPress avec Une <strong>FAQ</strong> <img loading="lazy" decoding="async" width="17" height="16" class="wp-image-33631" style="width: 17px;" src="https://st9ph.fr/wp-content/uploads/2024/12/ico-spectra.png" alt=""> <strong>Spectra</strong> et des <strong>tableaux</strong></li>



<li>Exploré les principes de connexion de <img loading="lazy" decoding="async" width="16" height="17" class="wp-image-33544" style="width: 16px;" src="https://st9ph.fr/wp-content/uploads/2026/01/ps-icone-prestashop.jpg" alt=""> Prestashop</li>



<li>Etudié <strong>les phases d&#8217;un appel entrant </strong>et <strong>ses éléments d&#8217;évaluation</strong></li>



<li>Réfléchi aux <strong>méthodes et aux attitudes</strong> propices à la <strong>satisfaction client</strong></li>
</ul>
</div></div>



<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 1.7rem 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 2.8rem;
  padding: 0 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.3rem 1.5rem;
  width: 100%;
}

/* Ligne titre + logo */
.chapter-heading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.6rem;
}

/* Logo carré */
.chapter-logo {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
}

.chapter-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* H2 */
.chapter-content h2 {
  margin: 0;
  font-size: 2.1rem;
  font-weight: 700;
  color: #1e73be; /* personnalisable */
}

/* Puces */
.chapter-points {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.chapter-points li {
  margin-bottom: 0.35rem;
  color: #444;
  font-size: 0.95rem;
  line-height: 1.45;
}

.chapter-points li::before {
  content: "🔹 ";
}
</style>

<div class="chapter-title">
  <div class="chapter-number">2</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>

      <h2>Management en backoffice</h2>
    </div>

    <ul> <class="chapter-points">
<li> <a href="https://st9ph.fr/com-en-service-client-et-son-management/" target="_blank" > 🏷️ La communication en service client &#038; son management </a> </li>
      <li> <a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-la-satisfaction-client/" target="_blank" > 🏷️ la satisfaction client </a> </li>
      <li> <a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-en-crc/" target="_blank" > 🏷️ mesures KPI en CRC </a> </li>
    </ul>
  </div>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Qui est le supérieur direct (N+1) de Célia sur le plateau ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback=" oui, c'est le manager de proximité, en charge d'une équipe de téléconseillers">Le superviseur</li>
    <li data-correct="false" data-feedback="Non, c'est le superviseur. La vigie gère uniquement les indicateurs KPI">La vigie</li>
    <li data-correct="false" data-feedback="Pas direct, le RA est trois niveaux au dessus (superviseur N+1, chef de projet N+2)">Le responsable d&#8217;activité</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="wp-block-paragraph"><span style="text-decoration: underline;">Statistiques de Célia sur 2 semaines VS plateau VS objectifs </span>:</p>



<p class="wp-block-paragraph">📞 Appels pris / jour (100% de prod)</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-center" data-align="center">qui</th><th class="has-text-align-center" data-align="center">L</th><th class="has-text-align-center" data-align="center">M</th><th class="has-text-align-center" data-align="center">M</th><th class="has-text-align-center" data-align="center">J</th><th class="has-text-align-center" data-align="center">V</th><th class="has-text-align-center" data-align="center">L</th><th class="has-text-align-center" data-align="center">M</th><th class="has-text-align-center" data-align="center">M</th><th class="has-text-align-center" data-align="center">J</th><th class="has-text-align-center" data-align="center">V</th><th class="has-text-align-center" data-align="center">total</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">Célia</td><td class="has-text-align-center" data-align="center">66</td><td class="has-text-align-center" data-align="center">70</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">64</td><td class="has-text-align-center" data-align="center">64</td><td class="has-text-align-center" data-align="center">68</td><td class="has-text-align-center" data-align="center">68</td><td class="has-text-align-center" data-align="center">66</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">62</td><td class="has-text-align-center" data-align="center">658</td></tr><tr><td class="has-text-align-center" data-align="center">Tous</td><td class="has-text-align-center" data-align="center">63</td><td class="has-text-align-center" data-align="center">66</td><td class="has-text-align-center" data-align="center">62</td><td class="has-text-align-center" data-align="center">64</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">64</td><td class="has-text-align-center" data-align="center">66</td><td class="has-text-align-center" data-align="center">62</td><td class="has-text-align-center" data-align="center">63</td><td class="has-text-align-center" data-align="center">66</td><td class="has-text-align-center" data-align="center">641</td></tr><tr><td class="has-text-align-center" data-align="center">Obj /J</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">65</td><td class="has-text-align-center" data-align="center">650</td></tr></tbody></table></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-center" data-align="center"><strong>qui</strong></td><td class="has-text-align-center" data-align="center">⏱️ <strong>DMT </strong>(s)</td></tr><tr><td class="has-text-align-center" data-align="center">Célia</td><td class="has-text-align-center" data-align="center">229</td></tr><tr><td class="has-text-align-center" data-align="center">moy. Tous</td><td class="has-text-align-center" data-align="center">225</td></tr><tr><td class="has-text-align-center" data-align="center">Obj / appel</td><td class="has-text-align-center" data-align="center">210</td></tr></tbody></table></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-center" data-align="center"><strong>qui</strong></td><td class="has-text-align-center" data-align="center">✅ <strong>FCR </strong>(%)</td></tr><tr><td class="has-text-align-center" data-align="center">Célia</td><td class="has-text-align-center" data-align="center">98,5 %</td></tr><tr><td class="has-text-align-center" data-align="center">moy. Tous</td><td class="has-text-align-center" data-align="center">94,5 %</td></tr><tr><td class="has-text-align-center" data-align="center">Obj / mois</td><td class="has-text-align-center" data-align="center">95,0 %</td></tr></tbody></table></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-center" data-align="center"><strong>qui</strong></td><td class="has-text-align-center" data-align="center">🧑🏻‍💻 <strong>ACW </strong>(s)</td></tr><tr><td class="has-text-align-center" data-align="center">Célia</td><td class="has-text-align-center" data-align="center">12</td></tr><tr><td class="has-text-align-center" data-align="center">moy. Tous</td><td class="has-text-align-center" data-align="center">21</td></tr><tr><td class="has-text-align-center" data-align="center">fourchette correcte </td><td class="has-text-align-center" data-align="center">20 à 40</td></tr></tbody></table></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-center" data-align="center"><strong>qui</strong></td><td class="has-text-align-center" data-align="center">⭐CSAT / 5</td></tr><tr><td class="has-text-align-center" data-align="center">Célia</td><td class="has-text-align-center" data-align="center">4,2</td></tr><tr><td class="has-text-align-center" data-align="center">moy. Tous</td><td class="has-text-align-center" data-align="center">3,9</td></tr><tr><td class="has-text-align-center" data-align="center">Obj</td><td class="has-text-align-center" data-align="center">4,0</td></tr></tbody></table><figcaption class="wp-element-caption">mesure à chaud (SMS) &#8211; Satcli globale</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-center" data-align="center"><strong>qui</strong></td><td class="has-text-align-center" data-align="center">⚙️ <strong>CES </strong>(nb)</td></tr><tr><td class="has-text-align-center" data-align="center">Célia</td><td class="has-text-align-center" data-align="center">6,2</td></tr><tr><td class="has-text-align-center" data-align="center">moy. Tous</td><td class="has-text-align-center" data-align="center">5,9</td></tr><tr><td class="has-text-align-center" data-align="center">Obj appel</td><td class="has-text-align-center" data-align="center">&lt; 5,0</td></tr></tbody></table><figcaption class="wp-element-caption">Nb d&#8217;interactions moyen / ticket</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-center" data-align="center"><strong>qui</strong></td><td class="has-text-align-center" data-align="center">🙂 NPS / 10</td></tr><tr><td class="has-text-align-center" data-align="center">Célia</td><td class="has-text-align-center" data-align="center">8,2</td></tr><tr><td class="has-text-align-center" data-align="center">moy. Tous</td><td class="has-text-align-center" data-align="center">7,6</td></tr><tr><td class="has-text-align-center" data-align="center">obj</td><td class="has-text-align-center" data-align="center">9,0</td></tr></tbody></table><figcaption class="wp-element-caption">mesure à chaud (notifiée) &#8211; stacli sur la solution mise en oeuvre</figcaption></figure>
</div>
</div>



<p class="has-base-2-background-color has-background wp-block-paragraph">7️⃣ Dans l&#8217;article <img loading="lazy" decoding="async" width="19" height="18" class="wp-image-33542" style="width: 19px;" src="https://st9ph.fr/wp-content/uploads/2026/01/wp-ico.jpg" alt=""> WordPress que vous avez conçu, utilisez le contrôle <strong>Counter </strong>de <img loading="lazy" decoding="async" width="17" height="16" class="wp-image-33631" style="width: 17px;" src="https://st9ph.fr/wp-content/uploads/2024/12/ico-spectra.png" alt=""> <strong>Spectra</strong> afin de réaliser un tableau de bord des objectifs mensuels du plateau (sur tous ses KPI) soyez créatifs ! Positionnez aussi un contrôle <strong>Countdown</strong> de <img loading="lazy" decoding="async" width="17" height="16" class="wp-image-33631" style="width: 17px;" src="https://st9ph.fr/wp-content/uploads/2024/12/ico-spectra.png" alt=""> <strong>Spectra</strong> au dessus du tableau de bord des objectifs pour rappeler combien de temps il reste pour les atteindre (le dernier vendredi soir du mois à 17 heures)</p>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-200c5433-cc85-4a18-9d37-b5439547311d" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: #f1f1f1; " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: #f1f1f1;" aria-controls="ub-content-toggle-panel-0-200c5433-cc85-4a18-9d37-b5439547311d" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-200c5433-cc85-4a18-9d37-b5439547311d" style="color: #000000; ">proposition de corrigé (tableau de bord) </p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-200c5433-cc85-4a18-9d37-b5439547311d">

<p class="wp-block-paragraph"></p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-uagb-counter uagb-block-2399f00b wp-block-uagb-counter--circle"><div class="wp-block-uagb-counter-circle-container"><div class="wp-block-uagb-counter-circle-container__content"><span class="wp-block-uagb-counter__icon"><svg xmlns="https://www.w3.org/2000/svg" viewbox="0 0 512 512"><path d="M502.6 278.6l-128 128c-12.51 12.51-32.76 12.49-45.25 0c-12.5-12.5-12.5-32.75 0-45.25L402.8 288H32C14.31 288 0 273.7 0 255.1S14.31 224 32 224h370.8l-73.38-73.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l128 128C515.1 245.9 515.1 266.1 502.6 278.6z"></path></svg></span><div class="wp-block-uagb-counter__number"><span class="uagb-counter-block-number" data-duration="1.5" data-to-value="658" data-from-value="0" data-delimiter=","></span><span class="uagb-counter-block-suffix">📞</span></div><div class="wp-block-uagb-counter__title">réalisés</div></div><svg preserveaspectratio="xMinYMin meet" viewbox="0 0 230 230" version="1.1" xmlns="http://www.w3.org/2000/svg"><circle class="uagb-counter-circle__background"></circle><circle class="uagb-counter-circle__progress"></circle></svg></div></div>



<div class="wp-block-uagb-counter uagb-block-2ea205a0 wp-block-uagb-counter--bars"><div class="wp-block-uagb-counter-bars-container"><div class="wp-block-uagb-counter__number"><span class="uagb-counter-block-prefix">CES= </span><span class="uagb-counter-block-number" data-duration="1.5" data-to-value="6" data-from-value="0" data-delimiter=","></span></div></div><div class="wp-block-uagb-counter__title"><mark style="background-color:rgba(0, 0, 0, 0);color:#61a55a" class="has-inline-color">acceptable</mark> |<mark style="background-color:rgba(0, 0, 0, 0);color:#b22b2b" class="has-inline-color"> Trop élevé</mark></div></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-uagb-counter uagb-block-0c9edcbc wp-block-uagb-counter--bars"><div class="wp-block-uagb-counter-bars-container"><div class="wp-block-uagb-counter__number"><span class="uagb-counter-block-number" data-duration="1.5" data-to-value="229" data-from-value="0" data-delimiter=","></span></div></div><div class="wp-block-uagb-counter__title">DMT Célia</div></div>



<div class="wp-block-uagb-counter uagb-block-e6ebc462 wp-block-uagb-counter--bars"><div class="wp-block-uagb-counter-bars-container"><div class="wp-block-uagb-counter__number"><span class="uagb-counter-block-number" data-duration="1.5" data-to-value="225" data-from-value="0" data-delimiter=","></span></div></div><div class="wp-block-uagb-counter__title">DMT plateau</div></div>



<div class="wp-block-uagb-counter uagb-block-f1eac5df wp-block-uagb-counter--bars"><div class="wp-block-uagb-counter-bars-container"><div class="wp-block-uagb-counter__number"><span class="uagb-counter-block-number" data-duration="1.5" data-to-value="210" data-from-value="0" data-delimiter=","></span></div></div><div class="wp-block-uagb-counter__title">✅ DMT Cible</div></div>



<div class="wp-block-uagb-counter uagb-block-b335fe2c wp-block-uagb-counter--number"><div class="wp-block-uagb-counter__number"><span class="uagb-counter-block-number" data-duration="1.5" data-to-value="82" data-from-value="0" data-delimiter=","></span><span class="uagb-counter-block-suffix">%</span></div><div class="wp-block-uagb-counter__title">SatCli (NPS)</div></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-uagb-counter uagb-block-6db6c84b wp-block-uagb-counter--circle"><div class="wp-block-uagb-counter-circle-container"><div class="wp-block-uagb-counter-circle-container__content"><span class="wp-block-uagb-counter__icon"><svg xmlns="https://www.w3.org/2000/svg" viewbox="0 0 512 512"><path d="M128 447.1V223.1c0-17.67-14.33-31.1-32-31.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64C113.7 479.1 128 465.6 128 447.1zM512 224.1c0-26.5-21.48-47.98-48-47.98h-146.5c22.77-37.91 34.52-80.88 34.52-96.02C352 56.52 333.5 32 302.5 32c-63.13 0-26.36 76.15-108.2 141.6L178 186.6C166.2 196.1 160.2 210 160.1 224c-.0234 .0234 0 0 0 0L160 384c0 15.1 7.113 29.33 19.2 38.39l34.14 25.59C241 468.8 274.7 480 309.3 480H368c26.52 0 48-21.47 48-47.98c0-3.635-.4805-7.143-1.246-10.55C434 415.2 448 397.4 448 376c0-9.148-2.697-17.61-7.139-24.88C463.1 347 480 327.5 480 304.1c0-12.5-4.893-23.78-12.72-32.32C492.2 270.1 512 249.5 512 224.1z"></path></svg></span><div class="wp-block-uagb-counter__number"><span class="uagb-counter-block-number" data-duration="1.5" data-to-value="98.5" data-from-value="0" data-delimiter=","></span><span class="uagb-counter-block-suffix">%</span></div><div class="wp-block-uagb-counter__title"><strong><mark style="background-color:rgba(0, 0, 0, 0);color:#7fa553" class="has-inline-color">Once &amp; Done</mark></strong><br>(FCR)</div></div><svg preserveaspectratio="xMinYMin meet" viewbox="0 0 250 250" version="1.1" xmlns="http://www.w3.org/2000/svg"><circle class="uagb-counter-circle__background"></circle><circle class="uagb-counter-circle__progress"></circle></svg></div></div>



<div class="wp-block-uagb-counter uagb-block-fd2f481c wp-block-uagb-counter--circle"><div class="wp-block-uagb-counter-circle-container"><div class="wp-block-uagb-counter-circle-container__content"><span class="wp-block-uagb-counter__icon"><svg xmlns="https://www.w3.org/2000/svg" viewbox="0 0 576 512"><path d="M528 0h-480C21.5 0 0 21.5 0 48v320C0 394.5 21.5 416 48 416h192L224 464H152C138.8 464 128 474.8 128 488S138.8 512 152 512h272c13.25 0 24-10.75 24-24s-10.75-24-24-24H352L336 416h192c26.5 0 48-21.5 48-48v-320C576 21.5 554.5 0 528 0zM512 288H64V64h448V288z"></path></svg></span><div class="wp-block-uagb-counter__number"><span class="uagb-counter-block-number" data-duration="1.5" data-to-value="12" data-from-value="0" data-delimiter=","></span><span class="uagb-counter-block-suffix">s</span></div><div class="wp-block-uagb-counter__title"><strong>ACW</strong><br>// DMT Cible</div></div><svg preserveaspectratio="xMinYMin meet" viewbox="0 0 110 110" version="1.1" xmlns="http://www.w3.org/2000/svg"><circle class="uagb-counter-circle__background"></circle><circle class="uagb-counter-circle__progress"></circle></svg></div></div>
</div>
</div>

</div>
		</div>
</div>


<p class="has-base-2-background-color has-background wp-block-paragraph">8️⃣ . Vous êtes le N+1 de Célia. Au regard de l&#8217;évaluation d&#8217;appel que vous avez réalisée pour elle et des statistiques ci-dessus, <strong>évaluez si Célia atteindra ses objectifs en fin de mois.</strong> Grace au formulaire ci-dessous, <strong>établissez un mémo qui servira de base à votre entretien mensuel avec elle.</strong> Reprenez les Points forts et axes d&#8217;amélioration de votre grille d&#8217;appel si vous le souhaitez.</p>



<p class="callout rouge wp-block-paragraph">⚠️ Il est conseillé de ✂️ <strong>copier-coller</strong> le texte de votre réponse dans un fichier (Word, bloc-notes &#8230;) pour le sauvegarder <strong>avant de cliquer sur envoyer </strong>car <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#e14444" class="has-inline-color">les champs de réponse seront vidés lors de l&#8217;envoi</mark></strong>.</p>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- ========================= -->
<!-- 🔐 ACCÈS CORRIGÉ – TP 1 -->
<!-- ========================= -->

<div class="tp-access"
     data-password="M9mo"> <!-- 💱 (1) MOT DE PASSE DU TP -->

  <input
    type="password"
    placeholder="Mot de passe du corrigé"
    class="tp-password-input"
  />

  <button type="button" class="tp-unlock-btn">
    Voir le corrigé
  </button>

  <p class="tp-error"></p>
</div>



<!-- ========================= -->
<!-- 📘 CORRIGÉ – TP 1 -->
<!-- ========================= -->

<div class="wp-block-group tp-corrige">

   <h5>points forts et axes d&#8217;amélioration (appel et KPI) ?</h5>
  <ul>
<li>Célia est empathique : elle valide les prédispositions du client, sait écouter, n&#8217;est pas surdirective mais sait mener l&#8217;entretien (attention à la DMT, toutefois). elle est pro dans son discours et respecte l&#8217;ADP de l&#8217;ADPC (revoir le closing, notamment la prise de congès). Elle sait créer un climat de confiance (attention à ne pas être trop détendue, ça ne marche pas avec tous les clients) et éviter d&#8217;infantiliser &#8220;qu&#8217;est-ce que vous lisez en dessous ?&#8221;. </li>
<li>Feedback clients hyper positifs, au dessus de la moyenne à chaud (la féliciter), mais le CES et l&#8217;ACW laissent penser que le closing est superficiel (trop d&#8217;effort et pas assez de temps d&#8217;histo) &#8211; elle doit oublier des next step qui engendrent des rappels. LE NPS n&#8217;est pas à l&#8217;objectif (sans être loin), c&#8217;est peut-être lié au closing (réassurance). Trouvez des cas concrets d&#8217;oublis avant le débriefe car avec un FRC de 98,5, elle va objecter ques ces clients la plébiscitent (et, à chaud, c&#8217;est vrai) </li>
</ul>
<h5>Point sur les objectifs à mi-mois (+ points clés : pourquoi c&#8217;est bien de les atteindre)</h5>
 <ul>
<li>les 2 priorités sont le CES et l&#8217;ACW. Il faut donc que Célia travaille sa next step (revoir les bonnes méthodes de closing par typologie d&#8217;appels) et mettre plus de soin à son historisation &#8211; un coaching ou une double-écoute pourraient lui être profitable</li>
<li>Globalement, les objectifs seront atteints sur les autres points si elle continue comme cela. Elle peut même se permettre d&#8217;augmenter légèrement sa DMT (plus de temps pour le closing) mais sous contrôle du superviseur car elle est assez irrégulière. En tout cas, il faut qu&#8217;elle allonge son ACW et c&#8217;est donc essentiellement en backoffice qu&#8217;elle doit êtreplus longue </li>
</ul>
<h5>1 objectif chiffré prioritaire à atteindre pour le mois prochain, (précisez l&#8217;importance de cet objectif et les moyens de l&#8217;atteindre)</h5>
 <p> Clairement, l&#8217;ACW à doubler. Prévoir une chek-list papier des étapes d&#8217;historisation par process que Célia devra remplir chaque fois durant la quinzaine et, si possible, lors du prochain entretien, lui montrer que son CES a diminué (c&#8217;est forcé puisqu&#8217;elle oubliera moins de choses) tout en lui montrant qu&#8217;elle est toujours à l&#8217;objectif en DMT (mais il faudra que le superviseur surveille bien tout cela pour que ce soit le cas) </p>
<h5> débriefe d&#8217;appel : prévoyez deux questions à poser à Célia sur son appel pour l&#8217;amener à réaliser les éléments à améliorer </h5>
<ul>
<li>On peut faire le point sur les bonnes pratiques concernant les mots de passe enregistrés ? Toi, tu enregistres tes mots de passe sur le navigateur ? (et débattre de la sécurité avec elle) </li>
<li>Il était étonné ton client que tu puisses entrer sur son compte sans mot de passe alors que lui ne le pouvait pas. A ton avis, pourquoi ? (et lui expliquer que lui n&#8217;est pas au fait de ce qu&#8217;est un backoffice, travailler avec elle une formulation pour lui expliquer que ce n&#8217;est pas la même chose de son côté, que son accès est juste technique</li>
</ul>
</div>



<div class="wp-block-group callout vert"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph">A l&#8217;issue de cette phase, vous avez :</p>



<ul class="wp-block-list">
<li>utilisé dans <img loading="lazy" decoding="async" width="19" height="18" class="wp-image-33542" style="width: 19px;" src="https://st9ph.fr/wp-content/uploads/2026/01/wp-ico.jpg" alt=""> WordPress les contrôles <strong>Countdown </strong>et <strong>Counter </strong><img loading="lazy" decoding="async" width="17" height="16" class="wp-image-33631" style="width: 17px;" src="https://st9ph.fr/wp-content/uploads/2024/12/ico-spectra.png" alt=""> <strong>Spectra</strong> </li>



<li>Exploré <strong>les KPI de mesure </strong>de la <strong>performance en CRC et en Satcli</strong></li>



<li>Abordé la problématique humaine de <strong>l&#8217;atteinte des objectifs</strong></li>
</ul>
</div></div>



<script>
document.addEventListener("DOMContentLoaded", function () {

  let scoreTotal = 0;
  let questionsRepondues = 0;

  const blocs = document.querySelectorAll(".bloc-qcm");

  blocs.forEach(qcm => {

    const options = qcm.querySelectorAll(".qcm-options li");
    const feedback = qcm.querySelector(".qcm-feedback");
    let answered = false;

    options.forEach(option => {
      option.addEventListener("click", function () {

        if (answered) return;
        answered = true;

        questionsRepondues++;

        const isCorrect = option.dataset.correct === "true";

        if (isCorrect) {
          scoreTotal++;
          this.classList.add("correct");
        } else {
          this.classList.add("wrong");
        }

        feedback.textContent = option.dataset.feedback +" | Ton score : " + scoreTotal + " / " + questionsRepondues;

        const global = document.getElementById("score-global");
        if (global) {
          global.textContent =
            "Score total : " + scoreTotal + " / " + questionsRepondues;
        }

      });
    });

  });

});
</script>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-service-client/">🎓TP- Service Client</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://st9ph.fr/%f0%9f%8e%93tp-service-client/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">35263</post-id>	</item>
		<item>
		<title>🎓TP- Data Mining</title>
		<link>https://st9ph.fr/%f0%9f%8e%93tp-data-mining/</link>
					<comments>https://st9ph.fr/%f0%9f%8e%93tp-data-mining/#comments</comments>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Tue, 03 Mar 2026 14:24:23 +0000</pubDate>
				<category><![CDATA[😎 privé]]></category>
		<guid isPermaLink="false">https://st9ph.fr/?p=35402</guid>

					<description><![CDATA[<p>1 Forage de données Le scraping via Google Sheets La recherche de décideur B2B via Pappers Le grattage B2C via Google Forms 🔹1.1 &#124;Scraping via Google Sheets 👉🏻 Pour rappel, le scraping (grattage), c&#8217;est le fait d&#8217;aller chercher les données directement à la source, en l&#8217;occurrence, celles de Google My Business qui apparaissent dans Google ... <a title="🎓TP- Data Mining" class="read-more" href="https://st9ph.fr/%f0%9f%8e%93tp-data-mining/" aria-label="En savoir plus sur 🎓TP- Data Mining">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-data-mining/">🎓TP- Data Mining</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="chapter-title">
  <div class="chapter-number">1</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>
      <h2>Forage de données</h2>
    </div>
    <ul class="chapter-points">
  <li>Le scraping via Google Sheets</li>
  <li>La recherche de décideur B2B via Pappers</li>
  <li>Le grattage B2C via Google Forms </li>
</ul>
  </div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Scraping via <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark> </strong><img loading="lazy" decoding="async" width="26" height="29" class="wp-image-35444" style="width: 26px;" src="https://st9ph.fr/wp-content/uploads/2026/02/icon-gsheets.jpg" alt=""> <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#5a811e" class="has-inline-color">Sheets</mark></strong></h3>



<p class="wp-block-paragraph">👉🏻 Pour rappel, <strong>le scraping </strong>(grattage), c&#8217;est le fait d&#8217;aller chercher l<strong>es données directement à la source</strong>, en l&#8217;occurrence, celles de<strong> <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark> My Business </strong>qui apparaissent dans <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark> Maps</strong></p>



<p class="has-medium-font-size wp-block-paragraph">📚 Biblio :</p>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">⏺️Omnicanal | Data Mining et RGPD</span>
    <a class="resource-link" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-data-mining-et-rgpd/" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text"> 📍 Modèle scrapeur de Google Sheets</span>
    <a class="resource-link" href="https://nodatanobusiness.com/solutions/google-maps-scraper" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    <span class="resource-icon"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/01/pdf.png" alt="PDF"></span>
    <span class="resource-text"><font color="#dc2626">FR</font> | Lead Nurturing</span>
    <a class="resource-link" href="https://kdrive.infomaniak.com/app/share/368426/d279779e-edbe-40b5-a5c8-6f1a087a72d0/files/2959/preview/pdf/5541" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID1">
    <p><strong>🔒 Contenu réservé à mes étudiants</strong></p>
    <p class="tp-wall-msg">merci de votre compréhension.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID1' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID1" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID1' PAR TON ID ET 'D@t@' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID1', 'D@t@')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID1" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<p class="wp-block-paragraph">👉🏻 La promesse de <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark><a href="https://nodatanobusiness.com/solutions/google-maps-scraper" target="_blank" rel="noreferrer noopener">, en suivant ce lien</a>, avec une simple url Maps, de collecter dans un simple tableau <img loading="lazy" decoding="async" width="28" height="31" class="wp-image-35477" style="width: 28px;" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-sheets.jpg" alt=""><mark style="background-color:rgba(0, 0, 0, 0);color:#56a65b" class="has-inline-color"><strong>Sheets</strong></mark> le listing complet des prospects B2B que vous visez avec :</p>



<ul class="wp-block-list">
<li>🏠&nbsp;<strong>Nom de l&#8217;entreprise</strong>&nbsp;pour identifier la société</li>



<li><strong>📍 Adresse complète</strong>&nbsp;pour localiser l&#8217;entreprise</li>



<li>📞&nbsp;<strong>Numéro de téléphone</strong>&nbsp;pour contacter directement l&#8217;entreprise</li>



<li>🌐&nbsp;<strong>URL du site web</strong>&nbsp;pour visiter le site officiel</li>



<li>🏷️&nbsp;<strong>Catégorie</strong>&nbsp;pour comprendre le type d&#8217;activité ou le secteur d&#8217;activité</li>



<li>🕒&nbsp;<strong>Fuseau horaire</strong>&nbsp;pour ajuster les données à l&#8217;heure locale</li>



<li>🔗&nbsp;<strong>URL Google Maps</strong>&nbsp;pour accéder à la fiche de l&#8217;entreprise en un clic</li>



<li>🗺️&nbsp;<strong>Localisation</strong>&nbsp;pour filtrer par région</li>



<li>📌&nbsp;<strong>Coordonnées GPS</strong>&nbsp;pour utiliser les outils de cartographie ou de calcul d&#8217;itinéraire</li>
</ul>



<p class="callout rouge wp-block-paragraph">⚠️ Vous devez disposer d&#8217;un compte <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark></strong> <img loading="lazy" decoding="async" width="37" height="23" class="wp-image-35478" style="width: 37px;" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-gmail.jpg" alt=""><strong><mark style="background-color:rgba(0, 0, 0, 0);color:#953030" class="has-inline-color">mail</mark></strong></p>



<div class="bloc-astuce">
 <p>Il vous faudra :</p>

<ul>

<li>💾 Copier<b> le modèle</b></li>
<li>🌐 Aller c<b>hercher sur Map l&#8217;url à copier</b> dans le champ du tableur</li>
</ul>
</div>

<style>
.bloc-astuce {
  border-left: 4px solid #188038;
  background: #eefaf1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="455" height="54" src="https://st9ph.fr/wp-content/uploads/2026/02/image-131.png" alt="" class="wp-image-35421" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-131.png 455w, https://st9ph.fr/wp-content/uploads/2026/02/image-131-300x36.png 300w" sizes="auto, (max-width: 455px) 100vw, 455px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">➡️ Avec <a href="https://www.google.com/maps/search/h%C3%B4tels+arromanches/@49.3410455,-0.6239328,1617m/data=!3m2!1e3!4b1?authuser=0&amp;hl=fr&amp;entry=ttu&amp;g_ep=EgoyMDI2MDIyNC4wIKXMDSoASAFQAw%3D%3D" target="_blank" rel="noreferrer noopener">cette url </a>où je demande juste à <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark> Maps <strong>la liste des hôtels d&#8217;Arromanches</strong> : j&#8217;obtiens en scraping <img loading="lazy" decoding="async" width="28" height="31" class="wp-image-35477" style="width: 28px;" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-sheets.jpg" alt=""><mark style="background-color:rgba(0, 0, 0, 0);color:#56a65b" class="has-inline-color"><strong>Sheets</strong></mark> ce fichier que j&#8217;ai remis en forme pour l&#8217;imprimer ici en <img loading="lazy" decoding="async" width="12" height="11" class="wp-image-33359" style="width: 12px;" src="https://st9ph.fr/wp-content/uploads/2026/01/pdf.png" alt=""><mark style="background-color:rgba(0, 0, 0, 0);color:#df3e3e" class="has-inline-color">pdf</mark> :</p>
</div>
</div>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://st9ph.fr/wp-content/uploads/2026/02/scraping-hotels-Arro.pdf" type="application/pdf" style="width:100%;height:210px" aria-label="Contenu embarqué scraping-hotels-Arro."></object><a id="wp-block-file--media-bfb2c785-03b1-496b-a4fa-695b44fbb4f5" href="https://st9ph.fr/wp-content/uploads/2026/02/scraping-hotels-Arro.pdf">scraping-hotels-Arro</a><a href="https://st9ph.fr/wp-content/uploads/2026/02/scraping-hotels-Arro.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-bfb2c785-03b1-496b-a4fa-695b44fbb4f5">Télécharger</a></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">👀 On constate qu&#8217;<strong>on s&#8217;éloigne un peu sur les dernières pages,</strong> mais pas de très loin, une quinzaine de kilomètres tout au plus.</p>



<p class="callout vert wp-block-paragraph">✅ J&#8217;ai <strong>une base de prospection téléphonique B2B</strong> qualifiée sur un secteur donné.</p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>A votre avis :</strong> Je peux les contacter, comme ça, sans tenir compte du RGPD ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="❌ Dit comme ça, c'est faux : moins de droits, certes, mais vous devez cesser de les démarcher s'ils vous le demandent (opt-out)">Oui, les personnes morales n&#8217;ont aucun droit RGPD</li>
    <li data-correct="false" data-feedback="❌ bloctel ne marche pas pour les pros (déjà que pour les particuliers ...), donc : on y va !">Pas s&#8217;ils sont sur bloctel, sinon : let&#8217;s go !</li>
    <li data-correct="true" data-feedback="✅ Oui, mais le droit à l'opt-out, tout de même ">Oui, bien entendu ! Pas besoin d&#8217;accord préalable pour les pros</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p> <!-- 👈🏻 Score local affiché ici -->
</div>

<style>
/* ===== STYLE QCM ===== */
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}

.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}

.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}

.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}

.qcm-options li:hover {
  background: #eef3ff;
}

.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}

.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}

.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}

.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
/* ===== QCM AVEC FEEDBACK ET SCORE LOCAL ===== */
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  // 👉🏻 Génération automatique A / B / C
  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return; // 🔒 Bloque après 1er clic
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      // Affichage feedback spécifique à la réponse
      feedback.textContent = option.dataset.feedback;

      // Score local : 1 point si correct, 0 si faux
      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="wp-block-paragraph">👉🏻 Je peux même établir une &#8220;tournée&#8221; de rendez vous avec <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark> My Maps (<a href="https://st9ph.fr/integrations-my-maps/">voir ce tuto</a> sur le blog)</p>



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">1️⃣ faites un scraping des 🍔 <strong>Fast-Food </strong>de <strong>Caen</strong></p>



<ul class="wp-block-list has-base-3-background-color has-background">
<li>Rendez-vous <a href="https://docs.google.com/spreadsheets/d/13oyDd0tGJB21w0jRTo-jOzhknosG4GRDMJqGh5_dKWk/edit?gid=439314332#gid=439314332" target="_blank" rel="noreferrer noopener">sur ce lien</a></li>



<li>Pointez  sur &#8220;<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">make a copy</mark>&#8221; puis <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">cliquez sur l&#8217;aperçu de tableur </mark>qui apparait (mais pas sur l&#8217;icone copier qui va juste vous le mettre dans le presse-papier)</li>



<li>Dans la nouvelle fenêtre confirmer &#8220;<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">créer une copie</mark>&#8220;</li>
</ul>



<p class="wp-block-paragraph">➡️ C&#8217;est dans la zone &#8220;<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">imput google maps url</mark>&#8221; que vous pourrez remplacer l&#8217;url de l&#8217;exemple (en double-clic) par la votre (celle de votre recherche maps)</p>
</div></div>



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID2' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID2">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID2' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID2" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID2' PAR TON ID ET 'Scrap9ur' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID2', 'Scrap9ur')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID2' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID2" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph">Vous devez obtenir cette liste (<a href="https://www.google.fr/maps/search/fast-food+caen/@49.1917275,-0.3868059,14z/data=!3m1!4b1?hl=fr&amp;entry=ttu&amp;g_ep=EgoyMDI2MDIyNS4wIKXMDSoASAFQAw%3D%3D">source </a><a href="https://www.google.fr/maps/search/fast-food+caen/@49.1917275,-0.3868059,14z/data=!3m1!4b1?hl=fr&amp;entry=ttu&amp;g_ep=EgoyMDI2MDIyNS4wIKXMDSoASAFQAw%3D%3D" target="_blank" rel="noreferrer noopener">Maps</a> &#8211;<a href="https://docs.google.com/spreadsheets/d/1QenLIYl4nmLqVGWl9fzzBc1MHZh-k18oj1MtbM65QjI/edit?usp=sharing" target="_blank" rel="noreferrer noopener"> scraper Sheets</a>) :</p>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-9e8f37ae-0c6e-4d12-8c2e-7ce03ab0257e" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-9e8f37ae-0c6e-4d12-8c2e-7ce03ab0257e" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-9e8f37ae-0c6e-4d12-8c2e-7ce03ab0257e" style="color: #000000; ">Copie de l&#8217;extraction</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-9e8f37ae-0c6e-4d12-8c2e-7ce03ab0257e">

<p class="wp-block-paragraph"></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-center" data-align="center">name</td><td class="has-text-align-center" data-align="center">address_1</td><td class="has-text-align-center" data-align="center">address_2</td><td class="has-text-align-center" data-align="center">phone_number</td><td class="has-text-align-center" data-align="center">website</td><td class="has-text-align-center" data-align="center">rating</td></tr><tr><td>Good Naan Caen</td><td>22 Rue de la Défense Passive</td><td>14000 Caen</td><td>+33 2 59 16 04 30</td><td><a href="https://goodnaan14.fr/" target="_blank" rel="noreferrer noopener">https://goodnaan14.fr/</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>Les Poutineurs</td><td>12 Av. de la Libération</td><td>14000 Caen</td><td>+33 2 61 10 03 74</td><td><a href="http://lespoutineurs.fr/" target="_blank" rel="noreferrer noopener">http://lespoutineurs.fr/</a></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Chez Poto</td><td>41 Rue de Geôle</td><td>14000 Caen</td><td>+33 6 83 75 37 35</td><td><a href="https://www.instagram.com/chezpoto/" target="_blank" rel="noreferrer noopener">https://www.instagram.com/chezpoto/</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>Galata Food</td><td>78 Rue Caponière</td><td>14000 Caen</td><td>+33 9 81 65 12 55</td><td><a href="https://galata-food.sumupstore.com/" target="_blank" rel="noreferrer noopener">https://galata-food.sumupstore.com/</a></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>Big M Caen</td><td>26 Quai Amiral Hamelin</td><td>14000 Caen</td><td>+33 6 84 62 52 59</td><td><a href="https://bigm-burger.fr/" target="_blank" rel="noreferrer noopener">https://bigm-burger.fr/</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Class Food</td><td>47 Pl. de l&#8217;Ancienne Boucherie</td><td>14000 Caen</td><td>+33 2 31 94 16 08</td><td></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>G La Dalle</td><td>21/23 Bd des Alliés</td><td>14000 Caen</td><td>+33 6 86 15 85 44</td><td><a href="https://g-ladalle.com/" target="_blank" rel="noreferrer noopener">https://g-ladalle.com/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>City Food</td><td>187 Rue Saint-Jean</td><td>14000 Caen</td><td>+33 2 61 92 73 83</td><td><a href="https://lekb-burger.fr/" target="_blank" rel="noreferrer noopener">https://lekb-burger.fr/</a></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>OKB</td><td>38 Pl. de la Gare 38</td><td>14000 Caen</td><td>+33 2 31 78 17 59</td><td><a href="https://o-kb-caen.eatbu.com/" target="_blank" rel="noreferrer noopener">https://o-kb-caen.eatbu.com/</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>NACHOS &#8211; MEXICAN GOOD FOOD</td><td>2 Rue Saint-Pierre</td><td>14000 Caen</td><td>+33 2 31 45 05 47</td><td><a href="https://nachos.fr/caen/?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://nachos.fr/caen/?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Vita Nova</td><td>141 Rue Saint-Pierre</td><td>14000 Caen</td><td>+33 2 31 43 56 31</td><td><a href="https://cucinavitanova.com/" target="_blank" rel="noreferrer noopener">https://cucinavitanova.com/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Food Court</td><td>3 Av. de Rouen</td><td>14000 Caen</td><td>+33 2 61 92 33 08</td><td><a href="http://foodcourtcaen.square.site/" target="_blank" rel="noreferrer noopener">http://foodcourtcaen.square.site/</a></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Magic Beau Gosse</td><td>29 Bd des Alliés</td><td>14000 Caen</td><td>+33 2 31 93 57 94</td><td><a href="http://magicbeaugosse.fr/" target="_blank" rel="noreferrer noopener">http://magicbeaugosse.fr/</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Aux délices express</td><td>31 Av. Président Coty</td><td>14000 Caen</td><td>+33 2 50 10 69 73</td><td></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>SO’FOOD</td><td>155 Rue Saint-Jean</td><td>14000 Caen</td><td>+33 2 61 92 44 88</td><td></td><td class="has-text-align-center" data-align="center">3.7</td></tr><tr><td>Quick</td><td>17 Rue Jean-Baptiste Colbert</td><td>14000 Caen</td><td>+33 2 31 91 15 19</td><td><a href="https://www.quick.fr/restaurants/caen-cote-de-nacre" target="_blank" rel="noreferrer noopener">https://www.quick.fr/restaurants/caen-cote-de-nacre</a></td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td>KFC</td><td>1 Av. du Six Juin</td><td>14000 Caen</td><td>+33 2 31 43 54 55</td><td><a href="https://kfc.fr/restaurants/kfc-caen-centre-ville/" target="_blank" rel="noreferrer noopener">https://kfc.fr/restaurants/kfc-caen-centre-ville/</a></td><td class="has-text-align-center" data-align="center">4.2</td></tr><tr><td>Cigkoftem Caen</td><td>15 Av. du Six Juin</td><td>14000 Caen</td><td>+33 2 14 74 98 46</td><td></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>O&#8217;Tacos</td><td>34 Rue Saint-Jean</td><td>14000 Caen</td><td></td><td><a href="https://restaurants.o-tacos.com/france/normandie/calvados/caen/caen-saint-jean?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://restaurants.o-tacos.com/france/normandie/calvados/caen/caen-saint-jean?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">3.9</td></tr><tr><td>Chicken House</td><td>16 Rue Montoir Poissonnerie</td><td>14000 Caen</td><td>+33 2 31 80 77 60</td><td></td><td class="has-text-align-center" data-align="center">4.1</td></tr><tr><td>Mevlana</td><td>4 Av. du Six Juin</td><td>14000 Caen</td><td>+33 2 50 08 70 18</td><td><a href="http://www.restomania.fr/" target="_blank" rel="noreferrer noopener">http://www.restomania.fr/</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>Chamas Tacos</td><td>40 Rue Saint-Pierre</td><td>14000 Caen</td><td>+33 2 31 08 95 72</td><td></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>BREZ</td><td>7 Rue du Gaillon</td><td>14000 Caen</td><td>+33 2 31 39 05 81</td><td></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>Food Factory</td><td>47 bis Rue de Bras</td><td>14000 Caen</td><td>+33 2 61 92 45 64</td><td></td><td class="has-text-align-center" data-align="center">5</td></tr><tr><td>Holy Moly</td><td>6 Quai Vendeuvre</td><td>14000 Caen</td><td>+33 2 31 47 93 30</td><td></td><td class="has-text-align-center" data-align="center">4.2</td></tr><tr><td>Les Burgers de Colette</td><td>6 Rue Buquet</td><td>14000 Caen</td><td>+33 2 31 39 55 03</td><td><a href="http://www.lesburgersdecolette.fr/" target="_blank" rel="noreferrer noopener">http://www.lesburgersdecolette.fr/</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Burger King</td><td>53 Rue de Geôle</td><td>14000 Caen</td><td>+33 2 31 08 87 96</td><td><a href="https://www.burgerking.fr/restaurants?y_source=1_MTUwMTQ1NjgtNzE1LWxvY2F0aW9uLndlYnNpdGU%3D" target="_blank" rel="noreferrer noopener">https://www.burgerking.fr/restaurants?y_source=1_MTUwMTQ1NjgtNzE1LWxvY2F0aW9uLndlYnNpdGU%3D</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>L&#8217;Éden Kebab</td><td>50 Bd des Alliés</td><td>14000 Caen</td><td>+33 2 31 85 50 14</td><td></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>L&#8217;Escale de la Gare</td><td>40 Pl. de la Gare</td><td>14000 Caen</td><td>+33 9 87 52 39 37</td><td></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>La Route de la Soie</td><td>10 Rue des Martyrs</td><td>14000 Caen</td><td>+33 9 50 33 08 17</td><td><a href="https://www.instagram.com/laroutedelasoiecaen/" target="_blank" rel="noreferrer noopener">https://www.instagram.com/laroutedelasoiecaen/</a></td><td class="has-text-align-center" data-align="center">5</td></tr><tr><td>McDonald&#8217;s</td><td>88 Bd Maréchal Leclerc</td><td>14000 Caen</td><td>+33 2 31 50 17 83</td><td><a href="http://www.restaurants.mcdonalds.fr/mcdonalds-caen-centre" target="_blank" rel="noreferrer noopener">http://www.restaurants.mcdonalds.fr/mcdonalds-caen-centre</a></td><td class="has-text-align-center" data-align="center">3.4</td></tr><tr><td>Le47b</td><td>47 bis Rue de Bras</td><td>14000 Caen</td><td>+33 2 61 92 45 64</td><td></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Chez AMIR</td><td>9 Rue Jules Oyer</td><td>14000 Caen</td><td>+33 6 09 92 26 98</td><td></td><td class="has-text-align-center" data-align="center">5</td></tr><tr><td>Goldy&#8217;s Burgers (Burger Gourmet)</td><td>26 Rue de la Défense Passive</td><td>14000 Caen</td><td>+33 2 58 50 30 83</td><td></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Chez Abbas</td><td>24 Av. de la Libération</td><td>14000 Caen</td><td>+33 2 61 92 52 82</td><td><a href="https://chez-abbas-kebab-caen.eatbu.com/" target="_blank" rel="noreferrer noopener">https://chez-abbas-kebab-caen.eatbu.com/</a></td><td class="has-text-align-center" data-align="center">5</td></tr><tr><td>Burger Street</td><td>13 Rue Caponière</td><td>14000 Caen</td><td>+33 6 13 28 34 10</td><td><a href="https://burgerstreetcaen.fr/" target="_blank" rel="noreferrer noopener">https://burgerstreetcaen.fr/</a></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>O&#8217;Tacos</td><td>49 Av. de la Côte de Nacre</td><td>14000 Caen</td><td></td><td><a href="https://restaurants.o-tacos.com/france/normandie/calvados/caen/caen-2-cote-de-nacre?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://restaurants.o-tacos.com/france/normandie/calvados/caen/caen-2-cote-de-nacre?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Crousty &amp; Escale Food</td><td>157 Rue Saint-Jean</td><td>14000 Caen</td><td>+33 2 59 16 47 47</td><td></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>Dwich Klub</td><td>7 Av. Henry Chéron</td><td>14000 Caen</td><td>+33 2 31 24 61 18</td><td></td><td class="has-text-align-center" data-align="center">5</td></tr><tr><td>A La Turka</td><td>40 Rue de Vaucelles</td><td>14000 Caen</td><td>+33 9 53 92 21 61</td><td></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Crousty</td><td>24 Rue Neuve Saint-Jean</td><td>14000 Caen</td><td>+33 9 51 00 09 70</td><td></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>LES BURGERS DE COLETTE</td><td>27 Rue Écuyère</td><td>14000 Caen</td><td>+33 2 31 50 13 44</td><td><a href="http://www.lesburgersdecolette.fr/" target="_blank" rel="noreferrer noopener">http://www.lesburgersdecolette.fr/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Ô Kebab &#8211; El Costo</td><td>26 Rue de l&#8217;Engannerie</td><td>14000 Caen</td><td>+33 9 86 31 78 77</td><td></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Le 213</td><td>114 Rue d&#8217;Auge</td><td>14000 Caen</td><td>+33 7 58 33 38 64</td><td></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>Babek</td><td>19 Rue Écuyère</td><td>14000 Caen</td><td></td><td><a href="https://babekstreetfood.fr/" target="_blank" rel="noreferrer noopener">https://babekstreetfood.fr/</a></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>P&#8217;tit Chef Tacos</td><td>1 Rue de Bernières</td><td>14000 Caen</td><td>+33 2 31 85 75 46</td><td></td><td class="has-text-align-center" data-align="center">3.8</td></tr><tr><td>McDonald&#8217;s</td><td>44 Av. de la Côte de Nacre</td><td>14000 Caen</td><td>+33 2 31 94 25 25</td><td><a href="http://www.restaurants.mcdonalds.fr/mcdonalds-caen-cote-de-nacre" target="_blank" rel="noreferrer noopener">http://www.restaurants.mcdonalds.fr/mcdonalds-caen-cote-de-nacre</a></td><td class="has-text-align-center" data-align="center">3.4</td></tr><tr><td>O&#8217;Cheese</td><td>134 Bd Maréchal Leclerc</td><td>14000 Caen</td><td>+33 2 31 24 47 85</td><td></td><td class="has-text-align-center" data-align="center">3.5</td></tr><tr><td>Pepe Chicken by FastGoodCuisine</td><td>26 Rue de la Défense Passive</td><td>14000 Caen</td><td></td><td><a href="https://www.pepechicken.fr/" target="_blank" rel="noreferrer noopener">https://www.pepechicken.fr/</a></td><td class="has-text-align-center" data-align="center">3.7</td></tr><tr><td>Quick Caen Mondeville</td><td>18 Rue Aristide Boucicaut</td><td>14120 Mondeville</td><td>+33 2 85 86 00 14</td><td><a href="https://www.quick.fr/restaurants/caen-mondeville" target="_blank" rel="noreferrer noopener">https://www.quick.fr/restaurants/caen-mondeville</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Marrakech Food</td><td>37 Rue de Vaucelles</td><td>14000 Caen</td><td>+33 2 31 34 33 68</td><td></td><td class="has-text-align-center" data-align="center">3.8</td></tr><tr><td>Chez Chef Murat</td><td>17 Pl. de la Justice</td><td>14000 Caen</td><td>+33 7 83 40 54 84</td><td></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>COQ BRAISÉ</td><td>90 Rue d&#8217;Auge</td><td>14000 Caen</td><td>+33 9 73 16 86 18</td><td></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Au Tacos Normand</td><td>33 Rue Basse</td><td>14000 Caen</td><td>+33 6 34 63 47 58</td><td></td><td class="has-text-align-center" data-align="center">3.6</td></tr><tr><td>Chez Adil</td><td></td><td></td><td>+33 6 70 79 78 56</td><td></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>Manger La Nuit</td><td>46 Rue de Bernières</td><td>14000 Caen</td><td>+33 2 31 30 03 00</td><td><a href="http://www.mangerlanuitcaen.com/" target="_blank" rel="noreferrer noopener">http://www.mangerlanuitcaen.com/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>FALAFEL &amp; VEG</td><td>19 Pass. d&#8217;Escoville</td><td>14000 Caen</td><td>+33 9 73 36 80 61</td><td></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>Smash Burger by Food Court de Caen</td><td>3 Av. de Rouen</td><td>14000 Caen</td><td>+33 2 58 50 48 64</td><td></td><td class="has-text-align-center" data-align="center">3.2</td></tr><tr><td>Safran</td><td>11 Rue Saint-Sauveur</td><td>14000 Caen</td><td>+33 2 31 38 72 27</td><td><a href="https://m.facebook.com/kebablesafran/" target="_blank" rel="noreferrer noopener">https://m.facebook.com/kebablesafran/</a></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Galatasaray 66</td><td>123 Av. Georges Clemenceau</td><td>14000 Caen</td><td>+33 9 51 01 59 11</td><td><a href="https://www.galatasaray66.fr/contact" target="_blank" rel="noreferrer noopener">https://www.galatasaray66.fr/contact</a></td><td class="has-text-align-center" data-align="center">4.1</td></tr><tr><td>Kebab Ecuyere</td><td>23 Rue Écuyère</td><td>14000 Caen</td><td></td><td></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Royal Kebab</td><td>94 Rue de Geôle</td><td>14000 Caen</td><td>+33 9 88 43 87 30</td><td><a href="https://facebook.com/pages/ROYAL-KEBAB-CAEN/497858200287551" target="_blank" rel="noreferrer noopener">https://facebook.com/pages/ROYAL-KEBAB-CAEN/497858200287551</a></td><td class="has-text-align-center" data-align="center">3.6</td></tr><tr><td>La Mie Câline</td><td>110 Rue Saint-Pierre</td><td>14000 Caen</td><td>+33 2 31 73 89 21</td><td><a href="https://www.lamiecaline.com/boutiques/caen/?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://www.lamiecaline.com/boutiques/caen/?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Le Schmilblic</td><td>Tél : 02 31 85 96</td><td>53 Rue Froide 99</td><td>+33 2 31 85 96 99</td><td></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Bœuf &amp; Cow</td><td>6 Bd des Alliés</td><td>14000 Caen</td><td>+33 2 31 86 37 75</td><td><a href="http://www.boeufandcow.com/" target="_blank" rel="noreferrer noopener">http://www.boeufandcow.com/</a></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Waffle Factory</td><td>Quai Amiral Hamelin</td><td>14000 Caen</td><td></td><td><a href="https://www.wafflefactory.com/" target="_blank" rel="noreferrer noopener">https://www.wafflefactory.com/</a></td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td>POKAWA Poké bowls</td><td>21 Bd Maréchal Leclerc</td><td>14000 Caen</td><td>+33 2 31 95 75 32</td><td><a href="https://restaurants.pokawa.com/france/normandie/calvados/caen/caen-centre-ville?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://restaurants.pokawa.com/france/normandie/calvados/caen/caen-centre-ville?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Chicken Street Caen Naan &amp; Fried Chicken</td><td>8 Bd des Alliés</td><td>14000 Caen</td><td></td><td><a href="https://restaurants.chickenstreet.fr/burger-caen-saint-pierre/?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://restaurants.chickenstreet.fr/burger-caen-saint-pierre/?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">3.6</td></tr><tr><td>Kebab Le Nil</td><td>23 Pl. du Commerce</td><td>14000 Caen</td><td>+33 2 31 34 31 26</td><td></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Le Roi du Poulet</td><td>09 Pass. d&#8217;Escoville</td><td>14000 Caen</td><td>+33 9 87 00 14 51</td><td></td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td>Heiko Poké bowl &#8211; Caen</td><td>13 Quai François Mitterrand</td><td>14000 Caen</td><td>+33 2 50 53 12 46</td><td><a href="https://heiko-poke.com/" target="_blank" rel="noreferrer noopener">https://heiko-poke.com/</a></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>L&#8217;Accès Soir</td><td>41 Quai François Mitterrand</td><td>14000 Caen</td><td>+33 2 59 22 98 85</td><td><a href="https://lacces-soir.com/" target="_blank" rel="noreferrer noopener">https://lacces-soir.com/</a></td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td>La Station</td><td>10 Pl. de la Gare</td><td>14000 Caen</td><td>+33 6 64 93 24 48</td><td></td><td class="has-text-align-center" data-align="center">3.6</td></tr><tr><td>Varsågood</td><td>12 Rue Gemare</td><td>14000 Caen</td><td></td><td><a href="https://varsagood.foxorders.com/" target="_blank" rel="noreferrer noopener">https://varsagood.foxorders.com/</a></td><td class="has-text-align-center" data-align="center">5</td></tr><tr><td>Dubble Caen Saint-Contest</td><td>le clos barbey</td><td>15 Rue du Clos Barbey za</td><td>+33 2 61 67 13 91</td><td><a href="https://www.dubble-food.com/restaurants/caen-saint-contest" target="_blank" rel="noreferrer noopener">https://www.dubble-food.com/restaurants/caen-saint-contest</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>Pepe Chicken by FastGoodCuisine</td><td>3 Av. de Rouen</td><td>14000 Caen</td><td></td><td><a href="https://www.pepechicken.fr/" target="_blank" rel="noreferrer noopener">https://www.pepechicken.fr/</a></td><td class="has-text-align-center" data-align="center">3.7</td></tr><tr><td>DINO KEBAB</td><td>160 Rue d&#8217;Auge</td><td>14000 Caen</td><td>+33 7 56 87 43 50</td><td></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>FRANCE</td><td>Rue d&#8217;Auge 55</td><td>14000 Caen</td><td>+33 2 14 47 71 48</td><td><a href="https://aaran-restaurant.eatbu.com/?lang=fr" target="_blank" rel="noreferrer noopener">https://aaran-restaurant.eatbu.com/?lang=fr</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>FLUNCH CAEN</td><td>Carrefour St Clair</td><td>Pl. Saint-Clair C.C</td><td>+33 2 31 95 35 60</td><td><a href="https://restaurant.flunch.fr/herouville-st-clair/flunch-caen/" target="_blank" rel="noreferrer noopener">https://restaurant.flunch.fr/herouville-st-clair/flunch-caen/</a></td><td class="has-text-align-center" data-align="center">3.7</td></tr><tr><td>Subway</td><td>10 Rue de Strasbourg</td><td>14000 Caen</td><td>+33 2 31 85 62 91</td><td><a href="https://restaurants.subwayfrance.fr/fr/normandie/calvados/caen/subway-caen-cv-250" target="_blank" rel="noreferrer noopener">https://restaurants.subwayfrance.fr/fr/normandie/calvados/caen/subway-caen-cv-250</a></td><td class="has-text-align-center" data-align="center">3.2</td></tr><tr><td>Fhc</td><td>20 Pl. de la Gare</td><td>14000 Caen</td><td></td><td></td><td class="has-text-align-center" data-align="center">2.9</td></tr><tr><td>Le Resto</td><td>46 Pl. Champlain</td><td>14000 Caen</td><td>+33 9 79 53 90 49</td><td><a href="https://le-resto-caen.fr/" target="_blank" rel="noreferrer noopener">https://le-resto-caen.fr/</a></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>KFC Caen Mondeville</td><td>Zone Mondeville 2 &#8211; Zone commerciale de l&#8217;Etoile</td><td>Rue Aristide Boucicaut</td><td>+33 2 31 78 03 16</td><td><a href="https://kfc.fr/restaurants/kfc-mondeville/" target="_blank" rel="noreferrer noopener">https://kfc.fr/restaurants/kfc-mondeville/</a></td><td class="has-text-align-center" data-align="center">3.7</td></tr><tr><td>Red Poule</td><td>78 Bd Maréchal Leclerc</td><td>14000 Caen</td><td>+33 2 31 28 07 09</td><td><a href="https://redpoule.com/" target="_blank" rel="noreferrer noopener">https://redpoule.com/</a></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Mac Boho</td><td>43 Rue du 11 Novembre</td><td>14000 Caen</td><td>+33 6 64 77 09 11</td><td></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Bagel Street</td><td>151 Rue Saint-Pierre</td><td>14000 Caen</td><td>+33 2 31 07 33 89</td><td></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Sasésu</td><td>156 Rue Saint-Jean</td><td>14000 Caen</td><td>+33 2 31 91 83 43</td><td><a href="https://sasesu.com/fr" target="_blank" rel="noreferrer noopener">https://sasesu.com/fr</a></td><td class="has-text-align-center" data-align="center">4.2</td></tr><tr><td>Popotes</td><td>18 Rue Montoir Poissonnerie</td><td>14000 Caen</td><td>+33 2 50 54 23 23</td><td><a href="http://www.popotescaen.fr/" target="_blank" rel="noreferrer noopener">http://www.popotescaen.fr/</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>KFC CAEN HEROUVILLE</td><td>4 Bd du Val Saint-Clair</td><td>14200 Hérouville-Saint-Clair</td><td>+33 2 31 53 04 05</td><td><a href="https://kfc.fr/restaurants/kfc-herouville-saint-clair/" target="_blank" rel="noreferrer noopener">https://kfc.fr/restaurants/kfc-herouville-saint-clair/</a></td><td class="has-text-align-center" data-align="center">3.7</td></tr><tr><td>Kebab Des Quatrans</td><td>35 Rue de Geôle</td><td>14000 Caen</td><td>+33 2 31 07 45 52</td><td></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Crêp’eat Caen Rives de l’Orne</td><td>l&#8217;Orme, Centre Commercial Les Rives de</td><td>Espl. Léopold-Sedar-Senghor</td><td>+33 2 31 34 01 26</td><td></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Ô Kané</td><td>9 Rue Arcisse de Caumont</td><td>14000 Caen</td><td></td><td><a href="https://www.facebook.com/snackokane/" target="_blank" rel="noreferrer noopener">https://www.facebook.com/snackokane/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>La Galettoire</td><td>33 Rue Saint-Sauveur</td><td>14000 Caen</td><td>+33 2 31 85 45 28</td><td><a href="https://la-galettoire.eatbu.com/?lang=fr&amp;utm_source=gmb" target="_blank" rel="noreferrer noopener">https://la-galettoire.eatbu.com/?lang=fr&amp;utm_source=gmb</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Sandwichs &amp; Salades</td><td>48 Rue Guillaume le Conquérant</td><td>14000 Caen</td><td></td><td><a href="https://instagram.com/sandwichs.et.salades?igshid=YzAwZjE1ZTI0Zg==" target="_blank" rel="noreferrer noopener">https://instagram.com/sandwichs.et.salades?igshid=YzAwZjE1ZTI0Zg==</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Horace</td><td>15 Rue du Vaugueux</td><td>14000 Caen</td><td>+33 2 31 93 50 76</td><td><a href="http://www.horace-caen.fr/" target="_blank" rel="noreferrer noopener">http://www.horace-caen.fr/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>KOUBA Couscous Caen</td><td>25 Rue du Général Moulin</td><td>14000 Caen</td><td>+33 2 31 80 20 38</td><td><a href="http://www.lecouscouskouba.fr/" target="_blank" rel="noreferrer noopener">http://www.lecouscouskouba.fr/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Out Fry &#8211; Korean Fried Chicken by Taster</td><td>26 Rue de la Défense Passive</td><td>14000 Caen</td><td>+33 9 73 05 78 10</td><td><a href="https://www.pepechicken.fr/" target="_blank" rel="noreferrer noopener">https://www.pepechicken.fr/</a></td><td class="has-text-align-center" data-align="center">3.5</td></tr><tr><td>Subway</td><td>Cc Quartier Les Rives Del&#8217;Orne</td><td>14000 Caen</td><td>+33 9 83 58 93 16</td><td><a href="https://restaurants.subwayfrance.fr/fr/normandie/calvados/caen/subway-caen-rives-de-lornes-263" target="_blank" rel="noreferrer noopener">https://restaurants.subwayfrance.fr/fr/normandie/calvados/caen/subway-caen-rives-de-lornes-263</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Kebab chez ramo caen</td><td>143 Rue de Bayeux</td><td>14000 Caen</td><td>+33 9 88 31 02 57</td><td></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Out Fry &#8211; Korean Fried Chicken by Taster</td><td>3 Av. de Rouen</td><td>14000 Caen</td><td>+33 9 78 46 63 14</td><td><a href="https://www.pepechicken.fr/" target="_blank" rel="noreferrer noopener">https://www.pepechicken.fr/</a></td><td class="has-text-align-center" data-align="center">3.3</td></tr><tr><td>Buffalo Grill Caen</td><td>9 Rue Professeur Joseph Rousselot</td><td>14000 Caen</td><td>+33 6 75 77 27 34</td><td><a href="https://www.buffalo-grill.fr/nos-restaurants/caen?utm_source=G&amp;utm_medium=local&amp;utm_campaign=google-local" target="_blank" rel="noreferrer noopener">https://www.buffalo-grill.fr/nos-restaurants/caen?utm_source=G&amp;utm_medium=local&amp;utm_campaign=google-local</a></td><td class="has-text-align-center" data-align="center">3.6</td></tr><tr><td>Le Grenier à Crêpes- Crêperie à Caen</td><td>182 Rue Saint-Jean</td><td>14000 Caen</td><td>+33 2 31 83 79 44</td><td><a href="https://www.legrenieracrepes.fr/" target="_blank" rel="noreferrer noopener">https://www.legrenieracrepes.fr/</a></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Le Bistronome</td><td>31 Rue Prairies Saint-Gilles</td><td>14000 Caen</td><td>+33 2 31 93 64 23</td><td><a href="http://bistronome-caen.com/" target="_blank" rel="noreferrer noopener">http://bistronome-caen.com/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>La Fromentine Crêperie-Pizzeria</td><td>6 Rue de la Gare</td><td>14000 Caen</td><td>+33 2 31 34 75 28</td><td></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Vtacos CAEN</td><td>84 Bd Maréchal Leclerc</td><td>14000 Caen</td><td></td><td><a href="https://lecaennais.fr/restaurant/vtacos-caen/" target="_blank" rel="noreferrer noopener">https://lecaennais.fr/restaurant/vtacos-caen/</a></td><td class="has-text-align-center" data-align="center">2.8</td></tr><tr><td>Sushi Shop Caen Château</td><td>8 Rue Saint-Pierre</td><td>14000 Caen</td><td>+33 826 82 66 28</td><td><a href="https://sushishop.commander1.com/c3/?tcs=2478&amp;chn=seo-yext&amp;src=yext&amp;cmp=annuaires-locaux-FR&amp;med=gmb&amp;cty=FR&amp;url=https://www.sushishop.fr/fr/restaurant/caen-chateau?utm_campaign=annuaires-locaux-FR&amp;utm_source=seo-yext&amp;utm_medium=gmb" target="_blank" rel="noreferrer noopener">https://sushishop.commander1.com/c3/?tcs=2478&amp;chn=seo-yext&amp;src=yext&amp;cmp=annuaires-locaux-FR&amp;med=gmb&amp;cty=FR&amp;url=https://www.sushishop.fr/fr/restaurant/caen-chateau?utm_campaign=annuaires-locaux-FR&amp;utm_source=seo-yext&amp;utm_medium=gmb</a></td><td class="has-text-align-center" data-align="center">4.1</td></tr><tr><td>Chez Ali</td><td>77 Rue du Général Moulin</td><td>14000 Caen</td><td>+33 2 31 71 04 48</td><td><a href="https://chez-ali-caen.eatbu.com/" target="_blank" rel="noreferrer noopener">https://chez-ali-caen.eatbu.com/</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>Raffaella &#8211; Le Clan des Mamma, Pizzas &amp; Cocktails &#8211; Caen Saint Sauveur</td><td>29 Pl. Saint-Sauveur</td><td>14000 Caen</td><td>+33 2 31 74 78 86</td><td><a href="https://www.leclandesmamma.com/restaurant/raffaella/" target="_blank" rel="noreferrer noopener">https://www.leclandesmamma.com/restaurant/raffaella/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>McDonald&#8217;s</td><td>Rue de Caen</td><td>14123 Ifs</td><td>+33 2 31 83 28 54</td><td><a href="http://www.restaurants.mcdonalds.fr/mcdonalds-ifs" target="_blank" rel="noreferrer noopener">http://www.restaurants.mcdonalds.fr/mcdonalds-ifs</a></td><td class="has-text-align-center" data-align="center">3.2</td></tr><tr><td>Domino&#8217;s Pizza Caen &#8211; Clémenceau</td><td>143 Av. Georges Clemenceau</td><td>14000 Caen</td><td>+33 2 31 71 01 01</td><td><a href="https://www.dominos.fr/?utm_source=google&amp;utm_medium=local&amp;utm_campaign=yext" target="_blank" rel="noreferrer noopener">https://www.dominos.fr/?utm_source=google&amp;utm_medium=local&amp;utm_campaign=yext</a></td><td class="has-text-align-center" data-align="center">3.7</td></tr><tr><td>La Buona Tavola</td><td>47 Rue Saint-Sauveur</td><td>14000 Caen</td><td>+33 2 31 50 35 35</td><td><a href="https://www.labuonatavola.fr/" target="_blank" rel="noreferrer noopener">https://www.labuonatavola.fr/</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Domino&#8217;s Pizza</td><td>228 Rue de Bayeux</td><td>14000 Caen</td><td>+33 2 31 39 10 10</td><td><a href="https://www.dominos.fr/?utm_source=google&amp;utm_medium=local&amp;utm_campaign=yext" target="_blank" rel="noreferrer noopener">https://www.dominos.fr/?utm_source=google&amp;utm_medium=local&amp;utm_campaign=yext</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>LA BOÎTE A PIZZA Caen</td><td>1 Av. de la Côte de Nacre</td><td>14000 Caen</td><td>+33 2 31 45 94 49</td><td><a href="https://www.laboiteapizza.com/caen/restaurant?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://www.laboiteapizza.com/caen/restaurant?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>Nomade Burger Traiteur Food Truck Caen Calvados Normandie</td><td>72 Rue Roland GARROS</td><td>14760 Bretteville sur Orne</td><td>+33 6 99 96 13 06</td><td><a href="https://www.nomadeburger.fr/" target="_blank" rel="noreferrer noopener">https://www.nomadeburger.fr/</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>Le Bouchon du Vaugueux</td><td>12 Rue Graindorge</td><td>14000 Caen</td><td>+33 2 31 44 26 26</td><td><a href="http://www.bouchonduvaugueux.com/" target="_blank" rel="noreferrer noopener">http://www.bouchonduvaugueux.com/</a></td><td class="has-text-align-center" data-align="center">4.7</td></tr><tr><td>Columbus Café &amp; Co</td><td>67 Rue Saint-Pierre</td><td>14000 Caen</td><td>+33 2 31 29 70 39</td><td><a href="https://www.columbuscafe.com/" target="_blank" rel="noreferrer noopener">https://www.columbuscafe.com/</a></td><td class="has-text-align-center" data-align="center">4.2</td></tr><tr><td>Délice Pizza Caen</td><td>26 Rue Louis Lechatellier</td><td>14000 Caen</td><td>+33 2 31 70 99 99</td><td><a href="https://delicepizza14.fr/" target="_blank" rel="noreferrer noopener">https://delicepizza14.fr/</a></td><td class="has-text-align-center" data-align="center">3.8</td></tr><tr><td>NA FAMILY FOOD</td><td>Rue de Caen 1047</td><td>14123 Ifs</td><td>+33 2 31 84 65 19</td><td><a href="https://na-food-family-restaurant.eatbu.com/" target="_blank" rel="noreferrer noopener">https://na-food-family-restaurant.eatbu.com/</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Pizza Bus</td><td>92 Bd André Detolle</td><td>14000 Caen</td><td>+33 6 81 08 37 78</td><td><a href="https://pizzabus.eatbu.com/" target="_blank" rel="noreferrer noopener">https://pizzabus.eatbu.com/</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>McDonald&#8217;s</td><td>Centre Commercial Mondeville</td><td>2 ZA L&#8217;Etoile</td><td>+33 2 31 84 45 43</td><td><a href="http://www.restaurants.mcdonalds.fr/mcdonalds-caen-mondeville" target="_blank" rel="noreferrer noopener">http://www.restaurants.mcdonalds.fr/mcdonalds-caen-mondeville</a></td><td class="has-text-align-center" data-align="center">3.4</td></tr><tr><td>Domino&#8217;s Pizza Caen &#8211; Falaise</td><td>114 Rue de Falaise</td><td>14000 Caen</td><td>+33 2 31 70 00 00</td><td><a href="https://www.dominos.fr/?utm_source=google&amp;utm_medium=local&amp;utm_campaign=yext" target="_blank" rel="noreferrer noopener">https://www.dominos.fr/?utm_source=google&amp;utm_medium=local&amp;utm_campaign=yext</a></td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td>miam&#8217;s caen</td><td>2 Pl. de Wurzburg</td><td>14000 Caen</td><td>+33 9 81 43 88 15</td><td><a href="https://frmapsy.com/business/miam-s-caen-IIr6aYZ4" target="_blank" rel="noreferrer noopener">https://frmapsy.com/business/miam-s-caen-IIr6aYZ4</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>Arslan Alikemal</td><td>77 Rue du Général Moulin</td><td>14000 Caen</td><td>+33 2 31 71 04 48</td><td></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>3 Brasseurs Caen &#8211; Mondeville</td><td>ZA de l&#8217;Etoile</td><td>Rue Aristide Boucicaut</td><td>+33 2 31 35 49 49</td><td><a href="https://restaurants.3brasseurs.com/fr/france-FR/450/3-brasseurs-caen-mondeville/details" target="_blank" rel="noreferrer noopener">https://restaurants.3brasseurs.com/fr/france-FR/450/3-brasseurs-caen-mondeville/details</a></td><td class="has-text-align-center" data-align="center">4.2</td></tr><tr><td>Les Burgers de Léa</td><td>37 Rue de Geôle</td><td>14000 Caen</td><td>+33 7 60 92 62 75</td><td><a href="https://lesburgersdelea.fr/" target="_blank" rel="noreferrer noopener">https://lesburgersdelea.fr/</a></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>Vegedal</td><td>84 Bd Maréchal Leclerc</td><td>14000 Caen</td><td></td><td></td><td class="has-text-align-center" data-align="center">2.9</td></tr><tr><td>Cap&#8217;kebab</td><td>78 Rue Caponière</td><td>14000 Caen</td><td>+33 9 51 56 09 05</td><td></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>AUGIA</td><td>18 Rue Prte au Berger</td><td>14000 Caen</td><td>+33 2 31 80 30 44</td><td><a href="https://www.augia.fr/" target="_blank" rel="noreferrer noopener">https://www.augia.fr/</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>Le Carlotta</td><td>16 Quai Vendeuvre</td><td>14000 Caen</td><td>+33 2 31 86 68 99</td><td><a href="https://www.beauvilliers.fr/le-carlotta/" target="_blank" rel="noreferrer noopener">https://www.beauvilliers.fr/le-carlotta/</a></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>Une Cuillère Carrée</td><td>22 Rue de Bernières</td><td>14000 Caen</td><td>+33 2 31 08 80 51</td><td><a href="https://unecuillerecarree.fr/" target="_blank" rel="noreferrer noopener">https://unecuillerecarree.fr/</a></td><td class="has-text-align-center" data-align="center">4.9</td></tr><tr><td>Le Rethel &#8211; Caen</td><td>59 Bd de Rethel</td><td>14000 Caen</td><td>+33 2 31 72 74 89</td><td><a href="https://www.facebook.com/p/LE-Rethel-100054317899185/" target="_blank" rel="noreferrer noopener">https://www.facebook.com/p/LE-Rethel-100054317899185/</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>La Fabrik à Salad Caen</td><td>26 Rue des Compagnons</td><td>14000 Caen</td><td>+33 2 31 58 18 97</td><td><a href="http://lafabrikasalad.fr/" target="_blank" rel="noreferrer noopener">http://lafabrikasalad.fr/</a></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Talemelerie Guillaume</td><td>52 Rue du Vaugueux</td><td>14000 Caen</td><td>+33 2 31 93 86 72</td><td></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>L&#8217;Acadiane</td><td>18 Av. d&#8217;Edimbourg</td><td>14000 Caen</td><td>+33 2 31 75 59 95</td><td></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>McDonald&#8217;s</td><td>Rte de Caen</td><td>14150 Ouistreham</td><td>+33 2 31 25 06 06</td><td><a href="http://www.restaurants.mcdonalds.fr/mcdonalds-ouistreham" target="_blank" rel="noreferrer noopener">http://www.restaurants.mcdonalds.fr/mcdonalds-ouistreham</a></td><td class="has-text-align-center" data-align="center">3.3</td></tr><tr><td>Carrefour City</td><td>56 Rue Saint-Ouen</td><td>14000 Caen</td><td>+33 2 31 74 58 51</td><td><a href="https://www.carrefour.fr/magasin/city-caen-saint-ouen" target="_blank" rel="noreferrer noopener">https://www.carrefour.fr/magasin/city-caen-saint-ouen</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>Double je</td><td>7 Rue du Gaillon</td><td>14000 Caen</td><td></td><td></td><td></td></tr><tr><td>Cafétéria Caen</td><td>Chem. de la Croix Vautier</td><td>14980 Rots</td><td>+33 2 31 26 31 28</td><td><a href="https://www.carrefour.fr/enseignes/cafeteria" target="_blank" rel="noreferrer noopener">https://www.carrefour.fr/enseignes/cafeteria</a></td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td>French Chicken Home</td><td>40 Av. de Caen</td><td>76100 Rouen</td><td>+33 9 50 85 03 48</td><td><a href="https://www.ubereats.com/en-FR/rouen/food-delivery/french-chicken-home/J03NfDq8SliYhOwwl5bT7A/#_" target="_blank" rel="noreferrer noopener">https://www.ubereats.com/en-FR/rouen/food-delivery/french-chicken-home/J03NfDq8SliYhOwwl5bT7A/#_</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>Glob&#8217;express café</td><td>8 Prte de l&#8217;Europe</td><td>14000 Caen</td><td>+33 2 31 53 71 17</td><td><a href="http://www.globexpresscafe.com/" target="_blank" rel="noreferrer noopener">http://www.globexpresscafe.com/</a></td><td class="has-text-align-center" data-align="center">4.6</td></tr><tr><td>Courtepaille Caen Mondeville</td><td>Zone d&#8217;activité commerciale De L&#8217;Etoile Centre Commercial Mondeville 2</td><td>14120 Mondeville</td><td>+33 2 31 84 20 85</td><td><a href="https://www.courtepaille.com/restaurant/courtepaille-caen-mondeville/" target="_blank" rel="noreferrer noopener">https://www.courtepaille.com/restaurant/courtepaille-caen-mondeville/</a></td><td class="has-text-align-center" data-align="center">4.1</td></tr><tr><td>Carrefour City</td><td>Rue de la Défense Passive</td><td>14000 Caen</td><td>+33 2 31 93 02 03</td><td><a href="https://www.carrefour.fr/magasin/city-caen-defense-passive" target="_blank" rel="noreferrer noopener">https://www.carrefour.fr/magasin/city-caen-defense-passive</a></td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td>Total Access</td><td>12 Av. de la Côte de Nacre</td><td>14000 Caen</td><td>+33 2 31 94 68 26</td><td><a href="https://locator.totalenergies.com/NF063239?type=FUELING&amp;business_type=RETAIL&amp;utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://locator.totalenergies.com/NF063239?type=FUELING&amp;business_type=RETAIL&amp;utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td>Carrefour Express</td><td>192 Rue Saint-Jean</td><td>14000 Caen</td><td>+33 9 66 85 86 05</td><td><a href="https://www.carrefour.fr/magasin/express-caen" target="_blank" rel="noreferrer noopener">https://www.carrefour.fr/magasin/express-caen</a></td><td class="has-text-align-center" data-align="center">3.8</td></tr><tr><td>La Cave à Huitres (EAC) &#8211; ACSEA</td><td>24 Quai Vendeuvre</td><td>14000 Caen</td><td>+33 2 31 75 58 65</td><td><a href="https://www.la-cave-a-huitres.fr/" target="_blank" rel="noreferrer noopener">https://www.la-cave-a-huitres.fr/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Le Louisiane</td><td>1 Bd Maréchal Juin</td><td>14000 Caen</td><td>+33 2 31 44 11 44</td><td></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>Carrefour Express Cheron Caen</td><td>48 Av. Henry Chéron</td><td>14000 Caen</td><td>+33 2 31 73 30 25</td><td><a href="https://www.carrefour.fr/magasin/express-caen-cheron" target="_blank" rel="noreferrer noopener">https://www.carrefour.fr/magasin/express-caen-cheron</a></td><td class="has-text-align-center" data-align="center">4.2</td></tr><tr><td>BOULANGERIE ANGE</td><td>ZI Ouest CAEN</td><td>2 Rue des Monts Panneaux</td><td>+33 2 31 57 77 26</td><td><a href="https://www.boulangerie-ange.fr/stores/boulangerie-ange-carpiquet/?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website" target="_blank" rel="noreferrer noopener">https://www.boulangerie-ange.fr/stores/boulangerie-ange-carpiquet/?utm_source=google&amp;utm_medium=organic&amp;utm_campaign=mybusiness-website</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Berlibab Caen</td><td>189 Rue Saint-Jean</td><td>14000 Caen</td><td></td><td><a href="https://chamas-tacos.com/" target="_blank" rel="noreferrer noopener">https://chamas-tacos.com/</a></td><td class="has-text-align-center" data-align="center">1</td></tr><tr><td>La minute blonde caen</td><td>500 Blvd Charles Cros</td><td>14123 Ifs</td><td>+33 2 31 99 01 73</td><td><a href="https://www.facebook.com/Minute-Blonde-Caen-108635494201360/" target="_blank" rel="noreferrer noopener">https://www.facebook.com/Minute-Blonde-Caen-108635494201360/</a></td><td class="has-text-align-center" data-align="center">4.8</td></tr><tr><td>Carrefour City</td><td>194 Rue d&#8217;Auge</td><td>14000 Caen</td><td></td><td><a href="https://www.carrefour.fr/magasin/city-caen-auge" target="_blank" rel="noreferrer noopener">https://www.carrefour.fr/magasin/city-caen-auge</a></td><td class="has-text-align-center" data-align="center">3.9</td></tr><tr><td>Kebab Amira</td><td>20 Bd Georges Pompidou</td><td>14000 Caen</td><td>+33 9 83 88 47 37</td><td><a href="https://www.facebook.com/kebabamiracaen/?utm_source=gmb" target="_blank" rel="noreferrer noopener">https://www.facebook.com/kebabamiracaen/?utm_source=gmb</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>Aire de Giberville Nord</td><td>A 13</td><td>14730 Giberville</td><td>+33 9 70 80 87 09</td><td><a href="https://www.autoroutes.sanef.com/fr/mon-voyage/aires-autoroute" target="_blank" rel="noreferrer noopener">https://www.autoroutes.sanef.com/fr/mon-voyage/aires-autoroute</a></td><td class="has-text-align-center" data-align="center">3.8</td></tr><tr><td>Miss Cookies Coffee Caen</td><td>Av. des Commerces</td><td>14120 Mondeville</td><td>+33 2 31 52 17 72</td><td><a href="https://www.misscookies.com/" target="_blank" rel="noreferrer noopener">https://www.misscookies.com/</a></td><td class="has-text-align-center" data-align="center">4.3</td></tr><tr><td>B et G Foods</td><td>13 Rue des Jacobins</td><td>14000 Caen</td><td></td><td></td><td></td></tr><tr><td>Frenchfood</td><td>100 Rue du Général Moulin</td><td>14000 Caen</td><td>+33 9 86 45 11 28</td><td></td><td class="has-text-align-center" data-align="center">4.4</td></tr><tr><td>QG &#8211; Caen</td><td>3 Rue de la Miséricorde</td><td>14000 Caen</td><td></td><td></td><td class="has-text-align-center" data-align="center">3.5</td></tr><tr><td>alphabet pizza</td><td>60T Rue de Bayeux</td><td>14000 Caen</td><td>+33 2 31 43 85 47</td><td><a href="https://www.alphabetpizza.fr/" target="_blank" rel="noreferrer noopener">https://www.alphabetpizza.fr/</a></td><td class="has-text-align-center" data-align="center">4.5</td></tr><tr><td>Ebenecook caen</td><td>14000 Caen</td><td>France</td><td>+33 7 69 26 10 28</td><td><a href="http://ebenecook.fr/" target="_blank" rel="noreferrer noopener">http://ebenecook.fr/</a></td><td></td></tr><tr><td>Tacos à pizza</td><td>1 Av. de Rouen</td><td>14000 Caen</td><td>+33 2 31 70 30 19</td><td><a href="http://www.tacos-a-pizza-caen.eatbu.com/" target="_blank" rel="noreferrer noopener">http://www.tacos-a-pizza-caen.eatbu.com/</a></td><td class="has-text-align-center" data-align="center">3.7</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"></p>

</div>
		</div>
</div></div></div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Recherche de décideur avec <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">©Pappers</mark></strong></h3>



<p class="wp-block-paragraph">👉🏻 Pour rappel :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="137" height="58" src="https://st9ph.fr/wp-content/uploads/2026/02/image-132.png" alt="" class="wp-image-35451"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Pappers</mark> Entreprises </strong>: Le plus complet, avec compte d&#8217;activités et surtout : <strong>qui fait quoi, avec Qui ?</strong> On trouve <strong>les mails et les numéros de téléphone</strong> (il faut créer un compte avec une adresse pro pour ce faire).</p>
</div>
</div>


<div style="min-height: 285px" class="ub_image_slider ub-navigation-outside wp-block-ub-image-slider" id="ub-image-slider-1f250fe4-ca07-42fc-8dca-d8db3934f485"><div class="ub-slider-wrapper"><div class="ub-swiper-button-prev swiper-button-prev"></div><div class="ub_image_slider swiper-container swiper" id="ub_image_slider_1f250fe4-ca07-42fc-8dca-d8db3934f485" data-swiper-data='{"speed":300,"spaceBetween":20,"slidesPerView":1,"loop":true,"pagination":{"el": ".swiper-pagination" , "type": "bullets", "clickable":true},"navigation": {"nextEl": ".ub-swiper-button-next", "prevEl": ".ub-swiper-button-prev"}, "keyboard": { "enabled": true }, "effect": "slide","autoplay":{"delay": 4000},"simulateTouch":false}'>
            <div class="swiper-wrapper"><figure class="swiper-slide">
                <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/Pappers-orange1.jpg" alt="" style="height: 250px;; ">
                <figcaption class="ub_image_slider_image_caption"></figcaption>
            </figure><figure class="swiper-slide">
                <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/Pappers-orange2.jpg" alt="" style="height: 250px;; ">
                <figcaption class="ub_image_slider_image_caption"></figcaption>
            </figure><figure class="swiper-slide">
                <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/Pappers-orange3.jpg" alt="" style="height: 250px;; ">
                <figcaption class="ub_image_slider_image_caption"></figcaption>
            </figure><figure class="swiper-slide">
                <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/Pappers-orange4.jpg" alt="" style="height: 250px;; ">
                <figcaption class="ub_image_slider_image_caption"></figcaption>
            </figure><figure class="swiper-slide">
                <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/Pappers-orange6.jpg" alt="" style="height: 250px;; ">
                <figcaption class="ub_image_slider_image_caption"></figcaption>
            </figure><figure class="swiper-slide">
                <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/Pappers-orange5.jpg" alt="" style="height: 250px;; ">
                <figcaption class="ub_image_slider_image_caption"></figcaption>
            </figure></div>
            <div class="swiper-pagination"></div>
            
        </div><div class="ub-swiper-button-next swiper-button-next"></div></div></div>


<p class="has-contrast-3-background-color has-background wp-block-paragraph">2️⃣ Qui dois-je contacter si je veux parler au(à la) gérant(e) du  🍎&#8221;Clos des Pommiers&#8221; à Arromanches ?</p>



<!-- =====================================================
     🔓 CONTRÔLE CORRIGÉ - VERSION MULTI ÉTAPES
     👉 Tu peux dupliquer ce bloc autant de fois que voulu
     ===================================================== -->

<div class="unlock-zone" style="margin:20px 0;">

  <input type="password"
         placeholder="🔒 me demander"
         class="unlock-input"
         style="padding:8px; border:1px solid #ccc; border-radius:6px;">

  <!-- 👇 TU CHANGES LE NOM DE CLASSE ET LE MOT DE PASSE CI-DESSOUS -->

  <button class="unlock-btn"
          data-target="corrige-etape2"
          data-password="Papp9rs"
          style="padding:8px 12px; border:none; border-radius:6px; cursor:pointer;">
          
    Afficher le corrigé
  </button>

</div>

<style>
/* 👇 TU CHANGES LE NOM DE CLASSE ICI AUSSI */
.corrige-etape2 {
  display: none;
}
</style>

<script>
document.addEventListener("click", function(e) {

  if (e.target.classList.contains("unlock-btn")) {

    var button = e.target;
    var input = button.previousElementSibling;

    var enteredPassword = input.value;
    var correctPassword = button.getAttribute("data-password");
    var targetClass = button.getAttribute("data-target");

    if (enteredPassword === correctPassword) {

      document.querySelectorAll("." + targetClass).forEach(function(el) {
        el.style.display = "block";
      });

      button.textContent = "Corrigé déverrouillé ✅";
      button.disabled = true;
      input.style.display = "none";

    } else {
      alert("Mot de passe incorrect 😉");
    }
  }
});
</script>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-0071d13d-7daa-4a2d-a919-b8724b10c0d8" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion corrige-etape2" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-0071d13d-7daa-4a2d-a919-b8724b10c0d8" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-0071d13d-7daa-4a2d-a919-b8724b10c0d8" style="color: #000000; ">➡️ solution</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-0071d13d-7daa-4a2d-a919-b8724b10c0d8">

<ul class="wp-block-list">
<li>taper les premières lettres dans le moteur de recherche :</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="998" height="208" src="https://st9ph.fr/wp-content/uploads/2026/02/image-133.png" alt="" class="wp-image-35460" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-133.png 998w, https://st9ph.fr/wp-content/uploads/2026/02/image-133-300x63.png 300w, https://st9ph.fr/wp-content/uploads/2026/02/image-133-768x160.png 768w" sizes="auto, (max-width: 998px) 100vw, 998px" /></figure>



<ul class="wp-block-list">
<li>la gérance depuis 2024 est assurée par <strong>Laurence et Guillaume ETIENNE </strong>(génération X &#8211; proche 50 ans) <a href="https://www.pappers.fr/entreprise/le-clos-des-pommiers-849801626" target="_blank" rel="noreferrer noopener">sur cette page </a></li>
</ul>

</div>
		</div>
</div>


<p class="has-medium-font-size wp-block-paragraph">👉🏻 Cet exemple montre <strong>les limites de Pappers</strong> pour <strong>les très petites structures</strong> :</p>



<ul class="wp-block-list">
<li>même si cet établissement le fait malgré tout, <strong>la dispense d&#8217;obligation de publier </strong>le CA et les résultats fait qu&#8217;il est souvent <strong>difficile de jauger la capacité d&#8217;investissement </strong>pour vos projets commerciaux. Ici, on constate qu&#8217;en se dégageant un budget de salaire annuel de <strong>6k€ pour l&#8217;ensemble du personnel </strong>et <strong>une trésorerie qui pèse 4 fois moins lourd que la dette financière,</strong> on ne sera pas franchement très réceptif.</li>



<li>Les <strong>données de contact </strong>ne sont pas forcément publiés (juste les noms),<strong> c&#8217;est par rebond </strong>sur la fiche My Business de l&#8217;établissement <strong>qu&#8217;on trouve</strong><a href="https://www.closdespommiers.com/" target="_blank" rel="noreferrer noopener"> le site</a> (en fait, c&#8217;est un loueur de chambre d&#8217;hôte et pas un hôtel à proprement parler), le téléphone : <strong>06 22 47 81 99</strong> et le mail <a href="mailto:clospommiers@gmail.com">clospommiers@gmail.com</a></li>
</ul>



<p class="has-medium-font-size wp-block-paragraph">👀 A voir aussi :</p>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">L&#8217;<b>INPI</b> (exemple ici : la restauration rapide &#8211; calvados)</span>
    <a class="resource-link" href="https://data.inpi.fr/search?advancedSearch=%257B%257D&#038;filter=%257B%257D&#038;nbResultsPerPage=20&#038;order=asc&#038;page=1&#038;q=restauration%20rapide&#038;sort=relevance&#038;type=companies" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text">L&#8217;<b>annuaire des entreprises</b> : code NAF 56-10C (resto rapide) sur Caen-La-Mer</span>
    <a class="resource-link" href="https://annuaire-entreprises.data.gouv.fr/rechercher?terme=&#038;cp_dep_label=CU%20Caen%20la%20Mer%20(EPCI)&#038;cp_dep_type=epci&#038;cp_dep=200065597&#038;naf=56.10C" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text">Les traditionnelles <b>pages jaunes</b>&nbsp;de La Poste (recherche resto rapide à Caen)</span>
    <a class="resource-link" href="https://www.pagesjaunes.fr/annuaire/chercherlespros?quoiqui=resto+rapide&#038;ou=Caen+%2814000%29&#038;univers=pagesjaunes&#038;idOu=" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.3 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>gratter les données B2C</strong></h3>



<p class="wp-block-paragraph">👉🏻 Les données personnelles en B2C <strong>ne sont pas publiques</strong>, comme celles des entreprises. Pour les obtenir, vous devrez trouver <strong>un moyen pour que vos leads y consentent</strong> !</p>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph">Quelle meilleure tactique que le 🎲 jeu concours ? </p>



<ul class="wp-block-list">
<li>Les répondants seront <strong>intéressés par gagner le lot en jeu</strong>, donc, ils seront dans votre 🎯 cible !</li>



<li>Ils consentiront volontiers à <strong>vous donner leurs coordonnées personnelles</strong> dans l&#8217;espoir d&#8217;être l&#8221;heureux 🏆gagnant. </li>
</ul>



<div class="wp-block-group callout jaune"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph">🤔 Gardez à l&#8217;esprit que :</p>



<ul class="wp-block-list">
<li><strong>Ceux qui nous intéressent vraiment seront &#8230; les perdants </strong>qu&#8217;on va relancer en leur annonçant qu&#8217;hélas ce n&#8217;est pas pour cette fois, mais que pour <strong>les remercier d&#8217;avoir participé,</strong> on leur propose le produit qu&#8217;ils n&#8217;ont pas gagné <strong>à des conditions avantageuses</strong>.</li>



<li>vous devrez préciser ce détail dans <strong>le règlement du concours</strong> : &#8220;<em>En participant, vous nous autoriser à vous recontacter pour faire des offres commerciales</em>&#8220;. Sans quoi, vous n&#8217;avez par l&#8217;<strong>opt-in.</strong></li>



<li>Vous devez <strong>obtenir des données exploitables </strong>et donc, les interroger dans le questionnaire sur leur RFM avec le produit.</li>
</ul>
</div></div>



<p class="wp-block-paragraph">➡️ Il existe de nombreux outils de sondage, mais comme nous sommes bien partis avec <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark></strong>, utilisons le sien : <img loading="lazy" decoding="async" width="23" height="30" class="wp-image-35476" style="width: 23px;" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-forms.jpg" alt=""><mark style="background-color:rgba(0, 0, 0, 0);color:#613c70" class="has-inline-color"><strong>Forms</strong></mark> que vous avez<a href="https://docs.google.com/forms/u/0/" target="_blank" rel="noreferrer noopener"> à cette adresse</a>.</p>



<p class="wp-block-paragraph">👇🏻 Sur le formulaire ci-dessous, nous sommes une entreprise qui vend des solutions de 🔥chauffage et nous faisons <strong>gagner un poêle à granulés.</strong> </p>



<ul class="wp-block-list">
<li>Merci de bien vouloir y <strong>répondre</strong> (même si vous n&#8217;envoyez pas à la fin), c&#8217;est juste <strong>pour l&#8217;examiner</strong></li>



<li>Je vous préviens, <strong>il n&#8217;y a rien à gagner en vrai !</strong></li>



<li><strong>le lien du règlement </strong>renvoie en fait sur <img loading="lazy" decoding="async" width="27" height="12" class="wp-image-33220" style="width: 27px;" src="https://st9ph.fr/wp-content/uploads/2025/01/marianne.jpg" alt=""> l<strong>a législation</strong> en la matière (bonne à relire)</li>



<li>Faites &#8220;semblant&#8221; d&#8217;être propriétaire (même si ce n&#8217;est pas le cas), sinon vous allez rater la page à visée RFM</li>
</ul>



<iframe loading="lazy" src="https://docs.google.com/forms/d/e/1FAIpQLSc3Tas9XV4bWUmowOM9PYyQUBPLBvsvfqB9nJEYBDEnhNzSMQ/viewform?embedded=true" width="640" height="456" frameborder="0" marginheight="0" marginwidth="0">Chargement…</iframe>



<p class="wp-block-paragraph">👉🏻 une fois <strong>les données collectées,</strong> vous pouvez les extraire dans <img loading="lazy" decoding="async" width="28" height="31" class="wp-image-35477" style="width: 28px;" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-sheets.jpg" alt=""><mark style="background-color:rgba(0, 0, 0, 0);color:#56a65b" class="has-inline-color"><strong>Sheets</strong></mark> pour <strong>les analyse</strong>r. Celles qui nous intéressent sont sur le milieu :</p>



<figure class="wp-block-image size-large is-style-zoooom"><img loading="lazy" decoding="async" width="1024" height="209" src="https://st9ph.fr/wp-content/uploads/2026/02/image-134-1024x209.png" alt="" class="wp-image-35479" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-134-1024x209.png 1024w, https://st9ph.fr/wp-content/uploads/2026/02/image-134-300x61.png 300w, https://st9ph.fr/wp-content/uploads/2026/02/image-134-768x157.png 768w, https://st9ph.fr/wp-content/uploads/2026/02/image-134.png 1058w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>Seuls <strong>les propriétaires</strong> seront éligibles à l&#8217;installation d&#8217;un poêle.</li>



<li><strong>l&#8217;âge</strong> permettra aussi de supposer <strong>le potentiel pouvoir d&#8217;achat</strong> (en milieu de cinquantaine et après, les enfants ont souvent terminé leurs études et la maison est payée)</li>



<li>Les <strong>maisons anciennes </strong>et / ou déclarées comme étant <strong>mal isolées</strong>, avec <strong>un système de chauffage couteux</strong> nous donneront une foule d&#8217;arguments commerciaux</li>
</ul>



<p class="wp-block-paragraph">👉🏻 Nous avons aussi le précieux sésame ✅d&#8217;<strong>opt-in</strong> pour <strong>utiliser les mails des répondants</strong> :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="478" height="89" src="https://st9ph.fr/wp-content/uploads/2026/02/image-136.png" alt="" class="wp-image-35481" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-136.png 478w, https://st9ph.fr/wp-content/uploads/2026/02/image-136-300x56.png 300w" sizes="auto, (max-width: 478px) 100vw, 478px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<figure class="wp-block-image size-full is-style-zoooom"><img loading="lazy" decoding="async" width="336" height="91" src="https://st9ph.fr/wp-content/uploads/2026/02/image-137.png" alt="" class="wp-image-35482" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-137.png 336w, https://st9ph.fr/wp-content/uploads/2026/02/image-137-300x81.png 300w" sizes="auto, (max-width: 336px) 100vw, 336px" /></figure>
</div>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>A votre avis :</strong> A quoi sert l&#8217;horodateur ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="❌ Non, au contraire, collectez les données même si elles ne pourront pas être tirées au sort">A refuser les réponses qui arrivent après la clôture du concours</li>
    <li data-correct="false" data-feedback="❌ Non, il y'a une potion dans forms pour interdire plusieurs réponses (et vous pouvez mettre cela en clause de nullité)">A ne retenir que la dernière réponse pour ceux qui répondent plusieurs fois</li>
    <li data-correct="true" data-feedback="✅ Oui, et vous avez intérêt à ce que cette date soit antérieure à une éventuelle demande d'opt-out si la CNIL vous contrôle.">A attester du moment où l&#8217;on reçoit l&#8217;opt-in en cas de contrôle</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p> <!-- 👈🏻 Score local affiché ici -->
</div>

<style>
/* ===== STYLE QCM ===== */
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}

.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}

.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}

.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}

.qcm-options li:hover {
  background: #eef3ff;
}

.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}

.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}

.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}

.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
/* ===== QCM AVEC FEEDBACK ET SCORE LOCAL ===== */
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  // 👉🏻 Génération automatique A / B / C
  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return; // 🔒 Bloque après 1er clic
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      // Affichage feedback spécifique à la réponse
      feedback.textContent = option.dataset.feedback;

      // Score local : 1 point si correct, 0 si faux
      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="callout jaune wp-block-paragraph">💡 Astuces : 1️⃣ dans <strong>le règlement de votre</strong> 🎲 <strong>Jeu concours </strong>indiquez &#8220;<em>un gagnant sera tiré au sort <strong>parmi les répondants</strong></em>&#8221; (plutôt que &#8220;&#8230; <em><strong>parmi les bonne réponses</strong></em>&#8220;) , cela vous évitera de <strong>faire le tri parmi les bonnes et les mauvaises réponses.</strong> 2️⃣ Ne proposez que <strong>des options ou des cases à cocher</strong>, cela <strong>facilitera les calculs </strong>pour définir un scoring.</p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> J&#8217;ai les droit d&#8217;envoyer un mail à mes clients B2C pour les avertir du jeu concours (autant qu&#8217;ils en bénéficient) ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="❌ C'est une Op Com donc, il faut vérifier qu'ils aient consenti à récevoir des propositions commerciales quand ils ont créé leur compte">Ben oui ! Evidemment !</li>
    <li data-correct="true" data-feedback="✅ exact, informer de l'OP COM dans la newsletter est permis (elle sert surtout à ça en fait)">oui, s&#8217;ils ont accepté de recevoir la newsletter</li>
    <li data-correct="false" data-feedback="❌Oh si ! Il vaudrait mieux ! S'ils apprennent que vous avez fait cela dans leur dos, ils ne vont pas être contents">Non, c&#8217;est pour gagner des propects, on ne va surtout pas le dire à nos clients !</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p> <!-- 👈🏻 Score local affiché ici -->
</div>

<style>
/* ===== STYLE QCM ===== */
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}

.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}

.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}

.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}

.qcm-options li:hover {
  background: #eef3ff;
}

.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}

.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}

.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}

.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
/* ===== QCM AVEC FEEDBACK ET SCORE LOCAL ===== */
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  // 👉🏻 Génération automatique A / B / C
  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return; // 🔒 Bloque après 1er clic
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      // Affichage feedback spécifique à la réponse
      feedback.textContent = option.dataset.feedback;

      // Score local : 1 point si correct, 0 si faux
      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="wp-block-paragraph">📚Voyez aussi sur le blog :</p>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">scoring RFM dans le tableur</span>
    <a class="resource-link" href="https://st9ph.fr/scoring-rfm-dans-excel/" target="_blank" rel="noopener">voir</a>
  </li>
  <li>
    🌐
    <span class="resource-text">Sondage intuitif dans Google Forms</span>
    <a class="resource-link" href="https://st9ph.fr/sondage-intuitif/" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img decoding="async" src="https://boutiq.st9ph.fr/56-product_main/peluche-panda.jpg" alt=""/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-medium-font-size wp-block-paragraph">3️⃣faites gagner via un jeu concours <img loading="lazy" decoding="async" width="23" height="30" class="wp-image-35476" style="width: 23px;" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-forms.jpg" alt=""> <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark></strong> <mark style="background-color:rgba(0, 0, 0, 0);color:#613c70" class="has-inline-color"><strong>Forms</strong></mark>, <a href="https://boutiq.st9ph.fr/28-peluche-panda.html" target="_blank" rel="noreferrer noopener">cette magnifique peluche</a> !</p>



<ul class="wp-block-list has-contrast-3-background-color has-background">
<li><strong>Prévoyez un règlement</strong> que le répondant devra <strong>accepter par une case à cocher.</strong></li>



<li><strong>Notre Huissier</strong> est <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Maitre Laclayssou-Laporte</mark> dont le cabinet est 1 rue du Père Cute à Caen 14000.</li>



<li>Le jeu se termine <strong>dimanche soir à minuit</strong></li>



<li>Nous allons exploiter ce fichier pour <strong>démarcher les perdants</strong>. Prévoir un <strong>questionnement RFM</strong>.</li>
</ul>
</div>
</div>



<!-- =====================================================
     🔓 CONTRÔLE CORRIGÉ - VERSION MULTI ÉTAPES
     👉 Tu peux dupliquer ce bloc autant de fois que voulu
     ===================================================== -->

<div class="unlock-zone" style="margin:20px 0;">

  <input type="password"
         placeholder="🔒 me demander"
         class="unlock-input"
         style="padding:8px; border:1px solid #ccc; border-radius:6px;">

  <!-- 👇 TU CHANGES LE NOM DE CLASSE ET LE MOT DE PASSE CI-DESSOUS -->

  <button class="unlock-btn"
          data-target="corrige-etape3"
          data-password="P9luch9"
          style="padding:8px 12px; border:none; border-radius:6px; cursor:pointer;">
          
    Afficher le corrigé
  </button>

</div>

<style>
/* 👇 TU CHANGES LE NOM DE CLASSE ICI AUSSI */
.corrige-etape3 {
  display: none;
}
</style>

<script>
document.addEventListener("click", function(e) {

  if (e.target.classList.contains("unlock-btn")) {

    var button = e.target;
    var input = button.previousElementSibling;

    var enteredPassword = input.value;
    var correctPassword = button.getAttribute("data-password");
    var targetClass = button.getAttribute("data-target");

    if (enteredPassword === correctPassword) {

      document.querySelectorAll("." + targetClass).forEach(function(el) {
        el.style.display = "block";
      });

      button.textContent = "Corrigé déverrouillé ✅";
      button.disabled = true;
      input.style.display = "none";

    } else {
      alert("Mot de passe incorrect 😉");
    }
  }
});
</script>



<div class="wp-block-group corrige-etape3"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-e669233d2c242a27011132adac1e0d62 wp-block-paragraph">🔷 Corrigé :</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline;">Règlement du jeu concours</span> :</p>



<ul class="wp-block-list callout bleu has-small-font-size">
<li>La boutique en ligne st9ph Market propose à concours la peluche de marque Panda vendue dans sa boutique sous la référence PELUCHEPANDA.</li>



<li>Ce jeu est doté de 2 lots (2 peluches) pour deux gagnants qui déclarent sur l&#8217;honneur n&#8217;être ni membre du personnel de l&#8217;entreprise st9ph Market, ni de famille proche avec l&#8217;un de ses employés.</li>



<li>Ce jeu est ouvert jusqu&#8217;au dimanche &#8230; (<em>date du dimanche suivant l&#8217;atelier)</em> à 23 h 59 via le formulaire de participation disponible à l&#8217;adresse &#8230; <em>(url du jeu</em>). Aucune réponse reçue plus tard (horodatage faisant foi) ne pourra être tirée au sort.</li>



<li>Il n&#8217;est autorisé qu&#8217;une seule réponse par foyer (même adresse postale)</li>



<li>Le tirage au sort des deux gagnants choisis aléatoirement parmi les répondants aura lieu en présence  de Maitre Laclayssou-Laporte, Huissier de justice officiant 1 rue du Père Cute à Caen 14000.</li>



<li>En participant à ce jeu concours, les répondants autorisent La boutique en ligne st9ph Market à les contacter par mail afin de leur annoncer les résultats et leurs proposer des offres commerciales</li>



<li>Les noms des gagnants seront publiés sur la page &#8230;(<em>url de la page des résultats</em>)</li>



<li>Vos coordonnées et vos réponses seront enregistrées numériquement</li>



<li>Selon la loi Informatique et Liberté,  les répondants disposent d&#8217;un droit d&#8217;accès, de réctification et de suppression des données les concernant, ils peuvent exercer ce droit en écrivant à cette adresse : dpo@st9ph-market.fr </li>



<li>Si vous ne disposez pas de compte GMAIL, vous pouvez tout de même participer sur papier libre à nous envoyer à st9ph mark9t &#8211; rue des mouettes &#8211; 14117 Arromanches-Les-Bains, le cachet de la poste faisant foi. Indiquer simplement &#8220;je participe au concours peluche panda&#8221;, votre prénom, votre nom et numéro de téléphone. Nous vous appellerons si vous avez gagné.</li>
</ul>



<p class="wp-block-paragraph"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">G</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#f79834" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#69cb46" class="has-inline-color">o</mark><mark style="background-color:rgba(0, 0, 0, 0);color:#c434bd" class="has-inline-color">g</mark>l<mark style="background-color:rgba(0, 0, 0, 0);color:#3ca0bf" class="has-inline-color">e</mark></strong> <img loading="lazy" decoding="async" width="23" height="30" class="wp-image-35476" style="width: 23px;" src="https://st9ph.fr/wp-content/uploads/2026/02/ico-forms.jpg" alt=""><mark style="background-color:rgba(0, 0, 0, 0);color:#613c70" class="has-inline-color"><strong>Forms</strong></mark> :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:130px">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="106" height="106" src="https://st9ph.fr/wp-content/uploads/2026/03/mni-panda.jpg" alt="" class="wp-image-35491"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:200px">
<div class="wp-block-uagb-buttons uagb-buttons__outer-wrap uagb-btn__default-btn uagb-btn-tablet__default-btn uagb-btn-mobile__default-btn uagb-block-e7d7accb"><div class="uagb-buttons__wrap uagb-buttons-layout-wrap ">
<div class="wp-block-uagb-buttons-child uagb-buttons__outer-wrap uagb-block-20bfadfe wp-block-button"><div class="uagb-button__wrapper"><a class="uagb-buttons-repeater wp-block-button__link" aria-label="" href="https://forms.gle/gjUhCz5PAMc3mqAh8" rel="follow noopener" target="_blank" role="button"><div class="uagb-button__link">répondre 💻 </div></a></div></div>
</div></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="450" height="450" src="https://st9ph.fr/wp-content/uploads/2026/03/qrcode_docs.google.com-12.png" alt="" class="wp-image-35492" style="width:113px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/03/qrcode_docs.google.com-12.png 450w, https://st9ph.fr/wp-content/uploads/2026/03/qrcode_docs.google.com-12-300x300.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/qrcode_docs.google.com-12-150x150.png 150w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>
</div>
</div>



<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-9eb310a78aa239abbb840af165c25822 wp-block-paragraph"><strong>Section</strong> 1️⃣</p>



<ul class="wp-block-list">
<li>Paramètres &gt; Réponses &gt; <strong>collecter adresses mail validées </strong></li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="708" height="141" src="https://st9ph.fr/wp-content/uploads/2026/03/image.png" alt="" class="wp-image-35493" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image.png 708w, https://st9ph.fr/wp-content/uploads/2026/03/image-300x60.png 300w" sizes="auto, (max-width: 708px) 100vw, 708px" /></figure>



<ul class="wp-block-list">
<li>champs <strong>prénoms et nom</strong>, </li>



<li>Collecte du mail (le champs vient automatiquement)</li>



<li><strong>Lien vers le réglement</strong></li>
</ul>



<ul class="wp-block-list">
<li>question <strong>choix multiple </strong>à<strong> une seule case</strong> pour l<strong>&#8216;opt-in </strong>&#8211; Dans<strong> validation de réponse</strong> :
<ul class="wp-block-list">
<li>demander<strong> au moins 1 case cochée</strong> (sur 1 possible) pour garantir que le répondant accepte</li>



<li>S&#8217;assurer que le bouton radio &#8220;<strong>réponse obligatoire</strong>&#8221; est<strong> activé</strong></li>



<li><strong>Personnalisez le message d&#8217;erreur</strong> &#8216;vous devez acceptez les conditions &#8230;&#8221;</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="746" height="327" src="https://st9ph.fr/wp-content/uploads/2026/03/image-1.png" alt="" class="wp-image-35494" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-1.png 746w, https://st9ph.fr/wp-content/uploads/2026/03/image-1-300x132.png 300w" sizes="auto, (max-width: 746px) 100vw, 746px" /></figure>



<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-9d1aed28633ab572cdb03fd625cb1749 wp-block-paragraph"><strong>Section</strong> 2️⃣</p>



<ul class="wp-block-list">
<li>Deux questions de concours avec <strong>deux objectifs</strong> :
<ul class="wp-block-list">
<li>Valider le fait que c&#8217;est une épreuve (même si elle est très facile)</li>



<li>obliger le répondant à visiter la boutique pour trouver la réponse (made in France pour la question 2)</li>
</ul>
</li>
</ul>



<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-762c9f5de8f077207c9d7061004d98c9 wp-block-paragraph"><strong>Section</strong> 3️⃣</p>



<ul class="wp-block-list">
<li>Ciblage :
<ul class="wp-block-list">
<li>Q1 &gt; qui est le consommateur ? Profil acheteur</li>



<li>Q2 &gt; déjà client ou 100% prospect ?</li>



<li>Q3 &gt; Génération / Age </li>
</ul>
</li>
</ul>



<p class="has-accent-color has-text-color has-link-color has-medium-font-size wp-elements-762c9f5de8f077207c9d7061004d98c9 wp-block-paragraph"><strong>Section</strong> 3️⃣</p>



<ul class="wp-block-list">
<li>RFM </li>
</ul>
</div></div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> J&#8217;ai vraiment besoin de poser des questions sur le produit à gagner (surtout si je ne contrôle pas les réponses, ça ne sert à rien) ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="❌ Et si, sans questions, votre concours devient une loterie et ce n'est pas la même réglementation">Par forcément, c&#8217;est vrai, autant zapper cette partie !</li>
    <li data-correct="true" data-feedback="✅ exact, ça devient une loterie et la réglementation est encore plus stricte !">oui, il en faut,  sinon, ce n&#8217;est plus un jeu concours !</li>
    <li data-correct="false" data-feedback="❌Oh si ! Il en faut! Sinon, ça devient une loterie et ce ce n'est pas la même réglementation.">C&#8217;est pire que cela, on a pas le droit d&#8217;en mettre. Ca favorise ceux qui connaissent déjà le produit</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p> <!-- 👈🏻 Score local affiché ici -->
</div>

<style>
/* ===== STYLE QCM ===== */
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}

.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}

.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}

.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}

.qcm-options li:hover {
  background: #eef3ff;
}

.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}

.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}

.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}

.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
/* ===== QCM AVEC FEEDBACK ET SCORE LOCAL ===== */
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  // 👉🏻 Génération automatique A / B / C
  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return; // 🔒 Bloque après 1er clic
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      // Affichage feedback spécifique à la réponse
      feedback.textContent = option.dataset.feedback;

      // Score local : 1 point si correct, 0 si faux
      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-base-3-background-color has-background has-medium-font-size wp-block-paragraph">4️⃣ Ce n&#8217;est pas vraiment le sujet de ce TP mais profitons-en ! Faites un mail type pour les perdants afin :</p>



<ul class="wp-block-list">
<li>de les informer qu<strong>&#8216;ils n&#8217;ont pas gagné</strong></li>



<li>de <strong>leur proposer notre produit à -10%</strong> avec le coupon &#8220;<strong>PETITBAMBOU</strong>&#8221; (valable 10 jours à compter d&#8217;aujourd&#8217;hui)</li>
</ul>



<p class="wp-block-paragraph">Prenez pour exemple cette répondante <strong>pour personnaliser</strong> votre communication :</p>



<figure class="wp-block-table"><table class="has-base-3-background-color has-background has-fixed-layout"><tbody><tr><td>Prénom</td><td><strong>Agathe</strong></td><td>client(e) de la boutique</td><td>non</td></tr><tr><td>Nom</td><td><strong>Zeblouze</strong></td><td>concoure pour </td><td>l&#8217;un(e) de mes enfants</td></tr><tr><td>a grandi avec </td><td>Monchhichi ou Kiki (le chhichi de tous les kikis)</td><td>Doudou compulsif(ve)</td><td>A fond ! Je devrais peut-être consulter ?</td></tr><tr><td>budget</td><td>entre 20 et 40 €</td><td>dernier achat</td><td>entre 3  et 6 mois</td></tr></tbody></table></figure>
</div></div>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- =====================================================
     🔓 CONTRÔLE CORRIGÉ - VERSION MULTI ÉTAPES
     👉 Tu peux dupliquer ce bloc autant de fois que voulu
     ===================================================== -->

<div class="unlock-zone" style="margin:20px 0;">

  <input type="password"
         placeholder="🔒 me demander"
         class="unlock-input"
         style="padding:8px; border:1px solid #ccc; border-radius:6px;">

  <!-- 👇 TU CHANGES LE NOM DE CLASSE ET LE MOT DE PASSE CI-DESSOUS -->

  <button class="unlock-btn"
          data-target="corrige-etape5"
          data-password="Agath9"
          style="padding:8px 12px; border:none; border-radius:6px; cursor:pointer;">
          
    Afficher le corrigé
  </button>

</div>

<style>
/* 👇 TU CHANGES LE NOM DE CLASSE ICI AUSSI */
.corrige-etape5 {
  display: none;
}
</style>

<script>
document.addEventListener("click", function(e) {

  if (e.target.classList.contains("unlock-btn")) {

    var button = e.target;
    var input = button.previousElementSibling;

    var enteredPassword = input.value;
    var correctPassword = button.getAttribute("data-password");
    var targetClass = button.getAttribute("data-target");

    if (enteredPassword === correctPassword) {

      document.querySelectorAll("." + targetClass).forEach(function(el) {
        el.style.display = "block";
      });

      button.textContent = "Corrigé déverrouillé ✅";
      button.disabled = true;
      input.style.display = "none";

    } else {
      alert("Mot de passe incorrect 😉");
    }
  }
});
</script>


<div class="wp-block-ub-content-toggle corrige-etape5 wp-block-ub-content-toggle-block" id="ub-content-toggle-block-d2b730fa-b677-43e8-9105-84e6920a5f3a" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion corrige-etape5" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-d2b730fa-b677-43e8-9105-84e6920a5f3a" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-d2b730fa-b677-43e8-9105-84e6920a5f3a" style="color: #000000; ">mail corrigé</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-d2b730fa-b677-43e8-9105-84e6920a5f3a">

<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> st9ph mark9t</span>
    <span><strong>À :</strong> azeblouze@icloud.com</span>
    <span><strong>Objet :</strong> 🐼 Avez vous gagné la peluche Panda ?</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour Agathe !</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">🎍 Ce n&#8217;est hélas pas pour cette fois ! Monchhichi n&#8217;aura pas de nouvel ami 🐼 Panda ce soir &#8230;</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">&#8230;. Quoique, quoique &#8230;. 🎫 un petit coupon de -10% pour vous remercier de votre participation, ça vous dit ?</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://boutiq.st9ph.fr/28-peluche-panda.html" class="cta-button" target="_blank">Activer mon code promo</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">Tapez BAMBOU&#8221; dans la zone &#8220;j&#8217;ai un code réduction&#8221; de votre panier et vous aurez -10% sur votre commande.<br>C&#8217;est valable sur tout le rayon enfant pendant 10 jours à compte d&#8217;aujourd&#8217;hui !</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">🙏🏻 Toute l&#8217;équipe de st9ph Market vous remercie pour votre intérêt pour notre enseigne et vous dit à bientôt dans notre boutique !</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Stéphane<br>Votre conseiller clientèle</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Vous recevez ce mail parce que vous avez participé à un concours organisé par boutique St9ph.</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &#8220;mon compte&#8221; (accès &amp; modification) ou contactez-nous &gt; sujet &#8220;mon compte&#8221; pour supprimer votre compte</div>
        <div class="footer-section">utlisez le lien contactez nous de la boutique pour toute demande ou appelez le 3568 (prix d&#8217;une communication locale sur un téléphone fixe en France métropolitaine) </div>
        <div class="footer-section">boutiq.st9ph.fr &#8211; Mars 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->

</div>
		</div>
</div>


<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> J&#8217;ai le droit de réserver mon jeu concours à des gens qui possèdent un compte Google ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="❌ Non, ce n'est pas interdit mais attention à votre réputation si on vous accuse de faire de la pub déguisée pour Google">Non, c&#8217;est une restriction non justifiée (à l&#8217;inverse d&#8217;un produit pour adulte qui justifierait qu&#8217;on demande un age minimum)</li>
    <li data-correct="true" data-feedback="✅ exact, c'est pour cela que je permets aussi de participer par courrier dans mon règlement !">Ce n&#8217;est pas conseillé d&#8217;imposer un outil mais Gmail est gratuit donc ce n&#8217;est pas illégal</li>
    <li data-correct="false" data-feedback="❌ Ah ? Alors tous ceux qui proposent une newsletter vont finir en prison alors ? 😉">Oui, bien sûr que c&#8217;est interdit ! S&#8217;abonner pour gagner un truc, c&#8217;est déloyal ! </li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p> <!-- 👈🏻 Score local affiché ici -->
</div>

<style>
/* ===== STYLE QCM ===== */
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}

.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}

.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}

.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}

.qcm-options li:hover {
  background: #eef3ff;
}

.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}

.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}

.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}

.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
/* ===== QCM AVEC FEEDBACK ET SCORE LOCAL ===== */
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  // 👉🏻 Génération automatique A / B / C
  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return; // 🔒 Bloque après 1er clic
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      // Affichage feedback spécifique à la réponse
      feedback.textContent = option.dataset.feedback;

      // Score local : 1 point si correct, 0 si faux
      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="wp-block-paragraph">👉🏻 Il faudra bien sûr <strong>suivre vos KPI </strong>pour mesurer l&#8217;impact de votre OP COM :</p>



<ul class="wp-block-list">
<li>Pour <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">vos mails</mark></strong> :
<ul class="wp-block-list">
<li>le <strong>taux d&#8217;ouverture</strong> (important car le lead attend une réponse)</li>



<li>le <strong>taux de bannissement</strong> après ouverture (ceux qui ont peur qu&#8217;on envahisse leur boite mail)</li>



<li>le<strong> taux de clic </strong>vers la boutique (engagement)</li>
</ul>
</li>



<li>Dans <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">la boutique </mark></strong>:
<ul class="wp-block-list">
<li>le <strong>taux de rebond</strong> après atterrissage (pas prêts à acheter ce qu&#8217;ils auraient voulu gagner)</li>



<li>le taux de <strong>paniers abandonnés </strong>après saisie du coupon (encore trop cher après ristourne ?)</li>



<li>le<strong> taux de conversion</strong>, bien entendu</li>



<li>Le <strong>cout par lead </strong>(CPL) soit le cout de la campagne / par le nombre de répondants</li>



<li>le <strong>ROI</strong> (marge cumulée moins le cout de la campagne)</li>
</ul>
</li>
</ul>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">&nbsp;voyez aussi sur le blog La<b>📨 newsletter</b></span>
    <a class="resource-link" href="https://st9ph.fr/crm-la-newsletter/" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<div class="chapter-title">
  <div class="chapter-number">2</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>
      <h2>Lead Nurturing</h2>
    </div>
    <ul class="chapter-points">
  <li>Qualifier et requalifier</li>
  <li>Créer l&#8217;engagement</li>
  <li>Réveiller les dormants &amp; CLTV</li>
</ul>
  </div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Qualifier et requalifier la data</strong></h3>



<p class="wp-block-paragraph">👉🏻 Ce qui fera l<strong>a pertinence de votre fichier </strong>de lead est <strong>la récence des informations </strong>qu&#8217;il contient, gage de <strong>leur pertinence</strong>. Il faudra donc<strong> établir des touch points</strong> afin de  <strong>vérifier leur adéquation</strong> et <strong>les actualiser</strong> si besoin.</p>



<p class="wp-block-paragraph">➡️ Voici la fiche d&#8217;un de nos clients de <strong>notre boutique en ligne </strong>:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="827" height="317" src="https://st9ph.fr/wp-content/uploads/2026/03/image-2.png" alt="" class="wp-image-35571" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-2.png 827w, https://st9ph.fr/wp-content/uploads/2026/03/image-2-300x115.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-2-768x294.png 768w" sizes="auto, (max-width: 827px) 100vw, 827px" /></figure>



<p class="wp-block-paragraph">🔷 On constate :</p>


<ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-c9e0b8b0-36d9-4142-9275-9155d63d1aa7">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-f2e39190-0c9a-407c-8e5b-2048e29b9e40">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">qu&#8217;il est dans le 🏆 <strong>top 20 </strong>de nos clients (basé sur le RFM)</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%23cf2e2e&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-b4dc5f3b-c42e-466c-8660-4972d57966d5">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#cf2e2e" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">qu&#8217;il ✒️  <strong>n&#8217;a pas renseigné son âge</strong> (relance anniversaire KO, c&#8217;est dommage)</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-fb05ba33-5b1c-4852-8e0b-85d5212e2d2d">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">qu&#8217;il est 🟢<strong> actif</strong> (R= moins d&#8217;un mois pour sa dernière connexion à l&#8217;heure où j&#8217;écris ce TP) et il semble 🖤 <strong>fidèle</strong> (client depuis 4,5 ans). </span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%23cf2e2e&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-cfdf8f6f-f809-4807-8c92-f11c4e93cf31">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#cf2e2e" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">qu&#8217;il n&#8217;a souscrit ni à la 📨 <strong><mark style="color:#af4343" class="has-inline-color">newsletter</mark></strong>, ni aux offres partenaires (réticent au push)</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-7c14cd69-e03f-4493-ab11-f66200654c80">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">qu&#8217;il est ✅ <strong>requalifié</strong> de fraiche date (moins d&#8217;un mois)</span>
			</div>
			
		</li>
</ul>


<p class="wp-block-paragraph">🔷 Si l&#8217;on regarde ces dernières connexions &#8230;.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="816" height="163" src="https://st9ph.fr/wp-content/uploads/2026/03/image-3.png" alt="" class="wp-image-35573" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-3.png 816w, https://st9ph.fr/wp-content/uploads/2026/03/image-3-300x60.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-3-768x153.png 768w" sizes="auto, (max-width: 816px) 100vw, 816px" /></figure>


<ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-02d500cf-ed70-4dd8-b496-38b0281eaa92">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-ba81068d-74cd-4eba-b3a6-994ad1489c88">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">Il a mis la boutique en ⭐  <strong>favori </strong>(lien direct)</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-c90b5540-87c3-44f6-93b9-7b3b5fe3d34f">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">Un <strong>nombre de pages vues par session</strong> de 5 (je ne montre que les deux dernières sur l&#8217;aperçu)</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-b77e69b5-1d75-4e60-81b8-f17babe440f6">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">Il nous visite <strong>4 fois par mois </strong>et plutôt en début de semaine (jour favori : le mardi)</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-d537842b-dab4-4f2e-b424-7a50a0d6ddc3">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">Il est souvent sur<strong> 2 impulsions</strong> (1ère visite pour comparer, temps de réflexion, 2nde visite qui convertit) mais il <strong><mark style="color:#c55656" class="has-inline-color">n&#8217;utilise pas</mark> les 🖤 listes d&#8217;envies </strong>(peur d&#8217;être relancé ?)</span>
			</div>
			
		</li>
</ul>


<p class="callout rouge wp-block-paragraph">📆 Il serait idéal de lui programmer <strong>les promos hebdomadaires qui partent le lundi</strong> mais <strong><mark style="background-color:rgba(0, 0, 0, 0);color:#ca5050" class="has-inline-color">il ne veut pas de la newsletter.</mark></strong></p>



<p class="wp-block-paragraph">👉🏻 L&#8217;objectif est de provoquer un <strong>touch point</strong> avec un <strong>magnet </strong>et <strong>CTA </strong>suffisamment attirants pour provoquer l&#8217;alimentation de la <strong>warehouse</strong>.</p>



<p class="callout rouge wp-block-paragraph">👆🏻 Si cette phrase n&#8217;est pas claire pour vous, <strong>revoyez d&#8217;urgence l&#8217;article sur le data mining</strong>  (lien en haut de cette page ou tapez data dans le moteur)</p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Puis-je relancer Gabin par mail pour lui suggérer d&#8217;utiliser les listes d&#8217;envies, de renseigner son age ou autre alors qu&#8217;il ne sollicte pas la newsletter ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="❌ Pas forcément, si on lui fait comprendre que c'est une communication ponctuelle, liée au service client et pas une communication commerciale">Non, on risque de le perdre si on fait ça</li>
    <li data-correct="false" data-feedback=" ❌ Si, on peut. Ce n'est pas parce que notre client ne veut pas de newsletter qu'on ne peut pas le contacter au titre du service client">On a pas le droit vu qu&#8217;il ne veut pas de newsletter</li>
    <li data-correct="true" data-feedback="✅ Bien-sur qu'on va le faire. Seulement, il faudra juste suggérer avec talent et convaincre que c'est dans son intérêt">Oui, il faut tenter </li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p> <!-- 👈🏻 Score local affiché ici -->
</div>

<style>
/* ===== STYLE QCM ===== */
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}

.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}

.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}

.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}

.qcm-options li:hover {
  background: #eef3ff;
}

.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}

.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}

.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}

.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
/* ===== QCM AVEC FEEDBACK ET SCORE LOCAL ===== */
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  // 👉🏻 Génération automatique A / B / C
  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return; // 🔒 Bloque après 1er clic
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      // Affichage feedback spécifique à la réponse
      feedback.textContent = option.dataset.feedback;

      // Score local : 1 point si correct, 0 si faux
      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">4️⃣ Justement:  <strong>à vous de jouer </strong>! </p>



<p class="has-base-3-background-color has-background wp-block-paragraph">⌨️ Bâtissez l&#8217;argumentaire commercial pour convaincre Gabin de répondre favorablement aux éléments donnés dans le formulaire puis envoyez-le moi.</p>



<ul class="wp-block-list">
<li><strong>On se dispense de footer </strong>pour cette fois, ce serait le même que dans l&#8217;exercice précédent.</li>



<li>donc : <strong>objet + corps du mail </strong>dans la même zone réponse</li>
</ul>
</div></div>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>


<div class="wp-block-ub-content-toggle corrige-etape6 wp-block-ub-content-toggle-block" id="ub-content-toggle-block-68adc66a-c5b9-4d55-8c78-1a365cbcbca2" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-68adc66a-c5b9-4d55-8c78-1a365cbcbca2" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-68adc66a-c5b9-4d55-8c78-1a365cbcbca2" style="color: #000000; ">corrigé 3 mails</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-68adc66a-c5b9-4d55-8c78-1a365cbcbca2">

<p class="wp-block-paragraph"></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>objectifs</th><th>🖤 liste d&#8217;envies</th><th>📆 Date de Nais.</th><th>📨 Newsletter</th></tr></thead><tbody><tr><td>Qualification</td><td>produits vus associés personnellement (les cookies ne font qu&#8217;une stat globale anonyme)</td><td>segmentation (cohortes comportementales)</td><td>CTA et moments qui fonctionnent</td></tr><tr><td>CES</td><td>retrouver les produits en 2 clics, se souvenir d&#8217;une envie, d&#8217;un bon plan</td><td>aucun impact</td><td>réduit le temps sur le catalogue si bien ciblé (oriente)</td></tr><tr><td>intérêt</td><td>mieux cibler le push, segmentation plus fine</td><td>relance anniversaire, offres par segments générationnels</td><td>booster les atterrissages et la fréquentation</td></tr><tr><td><strong>Réserves :</strong></td><td>ne pas confondre avec le panier abandonné (pas de relance)</td><td>data sensible, ne pas utiliser brute : &#8220;nos offres pour les personnes de 48 ans &#8230;&#8221;</td><td>Fréquence à établir avec modération,  cibler avec soin le contenu</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">🔷 Mail 🖤 <strong>liste d&#8217;envies</strong></p>



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> st9ph mark9t</span>
    <span><strong>À :</strong> gnelvet@gmail.com</span>
    <span><strong>Objet :</strong> Faites nous part de vos envies 🖤</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour monsieur Nelvet,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Vous êtes client de la boutique St9ph depuis plus de 4 ans et nous en sommes ravis. <br>Parfois, d&#8217;une visite à l&#8217;autre, vous avez peut-être eu du mal à retrouver des produits que vous aviez vu la fois d&#8217;avant ?</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">🔹Savez-vous que vous pouvez ajouter à votre liste d&#8217;envies les produits qui vous feraient plaisir pour plus tard ? Il suffit de cliquer sur le petit cœur dans le coin de la fiche et le tour est joué ! <br>🔹 c&#8217;est aussi un moyen pour nous, si vous le souhaitez, de vous alerter si le stock vient à diminuer beaucoup ou si d&#8217;autres produits similaires enrichissent notre catalogue.</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://boutiq.st9ph.fr/" class="cta-button" target="_blank">Voir notre catalogue</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">Vous retrouvez ces produits dans mon compte &gt; mes envies, alors profitez en !</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">Encore merci pour votre fidélité. Belle journée à vous !</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Célia<br>Votre conseillère clientèle</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Vous recevez ce mail parce vous êtes clients de la boutique St9ph.</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &#8220;mon compte&#8221; (accès &amp; modification) ou contactez-nous &gt; sujet &#8220;mon compte&#8221; pour supprimer votre compte</div>
        <div class="footer-section">utlisez le lien contactez nous de la boutique pour toute demande ou appelez le 3568 (prix d&#8217;une communication locale sur un téléphone fixe en France métropolitaine) </div>
        <div class="footer-section">boutiq.st9ph.fr &#8211; Mars 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<p class="wp-block-paragraph">🔷 Mail 📆 Date de Nais.</p>



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> st9ph mark9t</span>
    <span><strong>À :</strong> gnelvet@gmail.com</span>
    <span><strong>Objet :</strong>  Joyeux anniversaire ! 🎉</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour monsieur Nelvet,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Comment ça, ce n&#8217;est pas aujourd&#8217;hui ? 🤔<br>Vous êtes client de la boutique St9ph depuis plus de 4 ans et nous en sommes ravis. Mais cela fait donc 4 de vos anniversaires 🎂 que nous ne pouvons pas vous souhaiter parce que vous n&#8217;avez pas renseigné votre date de naissance ?</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">🔹Savez-vous que pour votre anniversaire, vous avez le droit comme tous nos autres clients à des réductions, des coupons cadeaux 🎁 et un mail avec des 🎊confettis (rien que pour cela, ça vaut le coup ! 😉) ?</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://boutiq.st9ph.fr/identite" class="cta-button" target="_blank">Renseigner ma date de naissance</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">👉🏻 Rien de plus simple dans : mon compte &gt; mes informations (ou cliquez sur le lien ci-dessus)</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">Encore merci pour votre fidélité. Belle journée à vous !</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Célia<br>Votre conseillère clientèle</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Vous recevez ce mail parce vous êtes clients de la boutique St9ph.</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &#8220;mon compte&#8221; (accès &amp; modification) ou contactez-nous &gt; sujet &#8220;mon compte&#8221; pour supprimer votre compte</div>
        <div class="footer-section">utlisez le lien contactez nous de la boutique pour toute demande ou appelez le 3568 (prix d&#8217;une communication locale sur un téléphone fixe en France métropolitaine) </div>
        <div class="footer-section">boutiq.st9ph.fr &#8211; Mars 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<p class="wp-block-paragraph">🔷 Mail 🆕 Newsletter</p>



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> st9ph mark9t</span>
    <span><strong>À :</strong> gnelvet@gmail.com</span>
    <span><strong>Objet :</strong>  🆕 les avantages de notre newsletter</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour monsieur Nelvet,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Vous êtes client chez nous depuis plus de 4 ans et nous en sommes ravis. <br>Mais nous avons constaté que vous n&#8217;aviez pas activé la réception de la newsletter.<br>Peur d&#8217;être submergé de propositions commerciales ? <br>On vous comprend et dans la boutique st9ph, on est soucieux de votre tranquillité : 1 mail par semaine maxi, c&#8217;est notre engagement !</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">Ca vaut le coup vraiment :<br>🔹des réductions exclusives, des ventes privées<br>🔹des avant-premières, des pré-commandes<br>On met le paquet pour vous remercier de nous lire !</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://boutiq.st9ph.fr/identite" class="cta-button" target="_blank">Activer la newsletter</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">👉🏻 Rien de plus simple dans : mon compte &gt; mes informations, cochez ☑️ Recevoir la newsletter (ou cliquez sur le lien ci-dessus). C&#8217;est réversible à votre guise !</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">Encore merci pour votre fidélité. Belle journée à vous !</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Célia<br>Votre conseillère clientèle</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Vous recevez ce mail parce vous êtes clients de la boutique St9ph.</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &#8220;mon compte&#8221; (accès &amp; modification) ou contactez-nous &gt; sujet &#8220;mon compte&#8221; pour supprimer votre compte</div>
        <div class="footer-section">utlisez le lien contactez nous de la boutique pour toute demande ou appelez le 3568 (prix d&#8217;une communication locale sur un téléphone fixe en France métropolitaine) </div>
        <div class="footer-section">boutiq.st9ph.fr &#8211; Mars 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<p class="wp-block-paragraph"></p>

</div>
		</div>
</div>


<!-- =====================================================
     🔓 CONTRÔLE CORRIGÉ - VERSION MULTI ÉTAPES
     👉 Tu peux dupliquer ce bloc autant de fois que voulu
     ===================================================== -->

<div class="unlock-zone" style="margin:20px 0;">

  <input type="password"
         placeholder="🔒 me demander"
         class="unlock-input"
         style="padding:8px; border:1px solid #ccc; border-radius:6px;">

  <!-- 👇 TU CHANGES LE NOM DE CLASSE ET LE MOT DE PASSE CI-DESSOUS -->

  <button class="unlock-btn"
          data-target="corrige-etape6"
          data-password="3M@ils"
          style="padding:8px 12px; border:none; border-radius:6px; cursor:pointer;">
          
    Afficher le corrigé
  </button>

</div>

<style>
/* 👇 TU CHANGES LE NOM DE CLASSE ICI AUSSI */
.corrige-etape6 {
  display: none;
}
</style>

<script>
document.addEventListener("click", function(e) {

  if (e.target.classList.contains("unlock-btn")) {

    var button = e.target;
    var input = button.previousElementSibling;

    var enteredPassword = input.value;
    var correctPassword = button.getAttribute("data-password");
    var targetClass = button.getAttribute("data-target");

    if (enteredPassword === correctPassword) {

      document.querySelectorAll("." + targetClass).forEach(function(el) {
        el.style.display = "block";
      });

      button.textContent = "Corrigé déverrouillé ✅";
      button.disabled = true;
      input.style.display = "none";

    } else {
      alert("Mot de passe incorrect 😉");
    }
  }
});
</script>



<p class="wp-block-paragraph">➡️ Autre exemple de qualification, <strong>cet appel</strong> que vous avez déjà entendu dans <strong>l&#8217;article sur le service client </strong>:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<ul class="wp-block-list">
<li>🎧 Réécoutez <strong>le début de l&#8217;appel </strong>(questionnement de Célia dans l<strong>es premières 40 secondes</strong>)</li>



<li>☑️ Quelles sont <strong>les informations</strong> qu&#8217;elle a <strong>requalifiées</strong> (celles que vous avez entendues) ? <strong>Cochez les </strong>ci-contre 👉🏻</li>
</ul>



<figure class="wp-block-audio"><audio controls src="https://st9ph.fr/wp-content/uploads/2026/02/dialogueSt9ph2.mp3"></audio><figcaption class="wp-element-caption"><strong><mark style="background-color:rgba(0, 0, 0, 0);color:#629b5f" class="has-inline-color">Appel initial</mark></strong></figcaption></figure>



<ul class="wp-block-list">
<li>🎧 Ecoutez maintenant <strong>cet appel alternatif</strong> (<em>je n&#8217;ai gardé que la partie après l&#8217;authentification par le code postal et avant le traitement de la demande du client)</em></li>



<li>☑️ <strong>Cochez les éléments requalifiés</strong> que vous entendez dans cette alternative (qui ne sont pas déjà cochés) 👉🏻</li>
</ul>



<figure class="wp-block-audio"><audio controls src="https://st9ph.fr/wp-content/uploads/2026/03/celia-gabin-qualif.mp3"></audio><figcaption class="wp-element-caption"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Appel alternatif</mark></strong></figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<!-- DÉBUT DU BLOC PERSONNALISÉ -->
<div id="quiz-container-8prop">
  <style>
    /* Styles CSS pour le bloc */
    #quiz-container-8prop {
     border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;

    }
    .quiz-item {
      display: flex;
      align-items: flex-start;
      margin-bottom: 15px;
      padding: 10px;
      background: #ffffff;
      border-radius: 5px;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    }
    .quiz-item input[type="checkbox"] {
      margin-top: 5px;
      margin-right: 12px;
      transform: scale(1.2);
      cursor: pointer;
    }
    .quiz-content {
      flex: 1;
    }
    .quiz-label {
      font-weight: 600;
      font-size: 16px;
      color: #333;
      display: block;
      margin-bottom: 4px;
    }
    .quiz-feedback {
      font-weight: bold;
      font-size: 14px;
      opacity: 0; /* Caché par défaut */
      transition: opacity 0.3s ease;
      margin-top: 5px;
    }
    .quiz-feedback.visible {
      opacity: 1;
    }
    .quiz-feedback.success {
      color: #2e7d32; /* Vert */
    }
    .quiz-feedback.error {
      color: #1E73BE; /* bleu */
    }
  </style>

  <div id="quiz-list">
    <!-- Les éléments seront générés ici par JavaScript -->
  </div>

  <script>
    (function() {
      // --- CONFIGURATION ---
      // Modifiez les textes et les valeurs true/false ci-dessous.
      // true = la réponse est correcte (affiche "Oui" en vert)
      // false = la réponse est incorrecte (affiche "Non" en rouge)
      const propositions = [
        { id: 1, texte: "son nom (Nelvet)", estVrai: true },
        { id: 2, texte: "son prénom (Gabin)", estVrai: true },
        { id: 3, texte: "son Email (gnelvet@gmail.com)", estVrai: true },
        { id: 4, texte: "son adresse (rue de Falaise)", estVrai: false },
        { id: 5, texte: "sa ville de résidence (Caen)", estVrai: false },
        { id: 6, texte: "son code postal (14000)", estVrai: true },
        { id: 7, texte: "sa date de naissance (12 décembre 1978)", estVrai: false },
        { id: 8, texte: "son statut newsletter (non abonné)", estVrai: false }
      ];

      // --- GÉNÉRATION DU CONTENU ---
      const container = document.getElementById('quiz-list');

      propositions.forEach(prop => {
        // Création de la structure HTML pour chaque ligne
        const itemDiv = document.createElement('div');
        itemDiv.className = 'quiz-item';

        const checkbox = document.createElement('input');
        checkbox.type = 'checkbox';
        checkbox.id = 'prop-' + prop.id;

        const contentDiv = document.createElement('div');
        contentDiv.className = 'quiz-content';

        const label = document.createElement('span');
        label.className = 'quiz-label';
        label.textContent = prop.texte;
        label.htmlFor = checkbox.id; // Clic sur le texte coche la case

        const feedback = document.createElement('div');
        feedback.className = 'quiz-feedback';
        feedback.id = 'feedback-' + prop.id;

        // Assemblage
        contentDiv.appendChild(label);
        contentDiv.appendChild(feedback);
        itemDiv.appendChild(checkbox);
        itemDiv.appendChild(contentDiv);
        container.appendChild(itemDiv);

        // --- LOGIQUE D'INTERACTION ---
        checkbox.addEventListener('change', function() {
          if (this.checked) {
            // Déterminer le message et la couleur
            if (prop.estVrai) {
              feedback.textContent = "Initial";
              feedback.className = "quiz-feedback visible success";
            } else {
              feedback.textContent = "Alternatif";
              feedback.className = "quiz-feedback visible error";
            }
          } else {
            // Si on décoche, on cache le commentaire
            feedback.className = "quiz-feedback";
            feedback.textContent = "";
          }
        });
      });
    })();
  </script>
</div>
<!-- FIN DU BLOC PERSONNALISÉ -->
</div>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Elle a le droit, Célia, de l&#8217;inscrire comme ça à la newsletter par téléphone ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Ben, il n'y a pas qu'elle, alors ! 😛 L'opt-in en phoning, ça marche aussi !">Non, elle devrait réviser son RGPD, il n&#8217;y a que Gabin qui a le droit pour lui-même</li>
    <li data-correct="false" data-feedback="Euh ... elle ne vend rien là ! 😄  On se calme !">Non, c&#8217;est de la vente forcée !</li>
    <li data-correct="true" data-feedback="Oui mais croisons les doigts que l'appel soit bien enregistré si la CNIL nous le demande.">Oui, si Gabin est d&#8217;accord.</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="has-medium-font-size wp-block-paragraph">🙄 Il nous manque toujours 🖤 la liste d&#8217;envies.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="245" height="160" src="https://st9ph.fr/wp-content/uploads/2026/03/image-4.png" alt="" class="wp-image-35614"/><figcaption class="wp-element-caption">fiche de Gabin</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">👈🏻 Célia a <strong>accès</strong> dans sa fiche client <strong>aux produits qu&#8217;il a dans sa liste</strong> (en l&#8217;occurrence : aucun). C&#8217;est délicat alors qu&#8217;elle <strong>a obtenu déjà 2 efforts</strong> d&#8217;en demander un 3ème.</p>



<p class="callout jaune wp-block-paragraph">&#8220;V<em>ous n&#8217;utilisez pas non plus la liste d&#8217;envies, il y&#8217;a bien un ou deux produits dans la boutique que vous aimeriez bien acheter ?</em>&#8220;, ça devient <strong>une enquête de télévente </strong>et ça  <strong>pourrait l&#8217;effrayer</strong>. </p>
</div>
</div>



<p class="wp-block-paragraph">➡️ Mieux vaut <strong>programmer un mail </strong>et conserver le bénéfice des 2 efforts déjà acquis.</p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> A votre avis, on met cela où ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="C'est vrai en prospection, mais là, c'est un feedback de SAV. La Priorité c'est qu'il y'ait toutes les infos.">Nulle part, il est déjà bien chargé ! On fait un second mail</li>
    <li data-correct="true" data-feedback="Oui, c'est l'endroit idéal car on concentre toutes les infos à mémoriser au même endroit.">Dans la Next Step après le rappel pour télécharger la facture</li>
    <li data-correct="false" data-feedback="C'est risqué, on lit rarement après la signature">Un bandeau avant le footer, après la signature, style &#8220;savez-vous que &#8230;&#8221;</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="wp-block-paragraph">👇🏻 Pourquoi ne pas profiter du mail récapitulatif de l&#8217;appel pour le faire ? Le voici pour rappel :</p>



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> st9ph mark9t</span>
    <span><strong>À :</strong> gnelvet@gmail.com</span>
    <span><strong>Objet :</strong> suite à votre appel au 📞3568</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour monsieur Nelvet,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Vous nous avez contacté au 📞3568 pour obtenir une facture que nous ne vous avions pas envoyée et nous vous remercions de votre appel.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">Nous avons vu ensemble qu&#8217;il s&#8217;agissait d&#8217;un oubli de notre serveur mail et je vous ai montré comment retrouver par vous-même tous vos documents dans votre espace client.</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://boutiq.st9ph.fr/historique-commandes" class="cta-button" target="_blank">Retrouver mes factures dans la boutique</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">Pour rappel, dans &#8220;mon compte&#8221; :<br>🔹Historique et détail des commandes<br>🔹cliquer sur l&#8217;icone pdf de la ligne de votre commande pour télécharger la facture.<br>Ou cliquez sur le lien ci-dessus (il faut être en connexion automatique &#8220;se souvenir de moi&#8221; pour que le lien fonctionne)</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">Encore toutes nos excuses pour ce désagrément.<br>Toute l&#8217;équipe st9ph Market reste à votre disposition, vous remercie de votre fidélité et vous dit à bientôt sur notre boutique en ligne.</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Célia<br>Votre conseillère clientèle</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Vous recevez ce mail parce vous êtes clients de la boutique St9ph.</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &#8220;mon compte&#8221; (accès &#038; modification) ou contactez-nous > sujet &#8220;mon compte&#8221; pour supprimer votre compte</div>
        <div class="footer-section">utlisez le lien contactez nous de la boutique pour toute demande ou appelez le 3568 (prix d&#8217;une communication locale sur un téléphone fixe en France métropolitaine) </div>
        <div class="footer-section">boutiq.st9ph.fr &#8211; Mars 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">6️⃣ <strong>A vous de jouer </strong>!</p>



<p class="has-base-3-background-color has-background wp-block-paragraph">⌨️ Recommencez la partie du mail récapitulatif dans laquelle vous ajoutez la suggestion de 🖤 liste d&#8217;envies</p>



<ul class="wp-block-list">
<li><strong>On se dispense des autres zones</strong></li>



<li>Mais<strong> on réécrit la Next Step complétement</strong></li>
</ul>
</div></div>



<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7]</div>



<!-- =====================================================
     🔓 CONTRÔLE CORRIGÉ - VERSION MULTI ÉTAPES
     👉 Tu peux dupliquer ce bloc autant de fois que voulu
     ===================================================== -->

<div class="unlock-zone" style="margin:20px 0;">

  <input type="password"
         placeholder="🔒 me demander"
         class="unlock-input"
         style="padding:8px; border:1px solid #ccc; border-radius:6px;">

  <!-- 👇 TU CHANGES LE NOM DE CLASSE ET LE MOT DE PASSE CI-DESSOUS -->

  <button class="unlock-btn"
          data-target="corrige-etape7"
          data-password="co9ur"
          style="padding:8px 12px; border:none; border-radius:6px; cursor:pointer;">
          
    Afficher le corrigé
  </button>

</div>

<style>
/* 👇 TU CHANGES LE NOM DE CLASSE ICI AUSSI */
.corrige-etape7 {
  display: none;
}
</style>

<script>
document.addEventListener("click", function(e) {

  if (e.target.classList.contains("unlock-btn")) {

    var button = e.target;
    var input = button.previousElementSibling;

    var enteredPassword = input.value;
    var correctPassword = button.getAttribute("data-password");
    var targetClass = button.getAttribute("data-target");

    if (enteredPassword === correctPassword) {

      document.querySelectorAll("." + targetClass).forEach(function(el) {
        el.style.display = "block";
      });

      button.textContent = "Corrigé déverrouillé ✅";
      button.disabled = true;
      input.style.display = "none";

    } else {
      alert("Mot de passe incorrect 😉");
    }
  }
});
</script>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="787" height="432" src="https://st9ph.fr/wp-content/uploads/2026/03/image-64.png" alt="" class="wp-image-36358" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-64.png 787w, https://st9ph.fr/wp-content/uploads/2026/03/image-64-300x165.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-64-768x422.png 768w" sizes="auto, (max-width: 787px) 100vw, 787px" /></figure>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Créer l&#8217;engagement pour alimenter la data</strong></h3>



<p class="wp-block-paragraph">👉🏻 On parlera de &#8220;<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Magnet</mark></strong>&#8221; : faire bénéficier de quelque chose <strong>en échange d&#8217;un nom et d&#8217;un mail</strong>.</p>



<figure class="wp-block-image size-full"><a href="https://www.emasphere.com/fr/ressources/ebooks/kpis-de-reference-du-dirigeant-dentreprise?utm_medium=paid_search&amp;utm_source=google&amp;utm_term=indicateur%20de%20performance&amp;utm_campaign=%5BG%5D+%5BSEARCH%5D+%5BFR-FR%5D+Acquisition+(Subscriber)&amp;hsa_acc=7251903503&amp;hsa_cam=14542648796&amp;hsa_grp=124737129097&amp;hsa_ad=544031463972&amp;hsa_src=g&amp;hsa_tgt=kwd-305250389686&amp;hsa_kw=indicateur%20de%20performance&amp;hsa_mt=b&amp;hsa_net=adwords&amp;hsa_ver=3&amp;gad_source=1&amp;gad_campaignid=14542648796&amp;gbraid=0AAAAADOO3dHoDl-es2XZjptnGHrlXkX4H&amp;gclid=CjwKCAiAqprNBhB6EiwAMe3yhkUiDCQffqcsYtdRCS3eJO0DWc3y81H8r6Y98vYlJzWLAVi6zEhSVRoCcZ8QAvD_BwE" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="777" height="457" src="https://st9ph.fr/wp-content/uploads/2026/03/image-5.png" alt="" class="wp-image-35629" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-5.png 777w, https://st9ph.fr/wp-content/uploads/2026/03/image-5-300x176.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-5-768x452.png 768w" sizes="auto, (max-width: 777px) 100vw, 777px" /></a><figcaption class="wp-element-caption"><em>Cliquez sur l&#8217;image pour voir directement le site (si vous le souhaitez)</em></figcaption></figure>



<p class="callout bleu wp-block-paragraph">📘 Ici, c&#8217;est le fameux &#8220;<strong>livre blanc</strong>&#8221; (e-book) qu&#8217;on va pouvoir télécharger pour apprendre plein de choses !</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="360" height="122" src="https://st9ph.fr/wp-content/uploads/2026/03/image-6.png" alt="" class="wp-image-35630" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-6.png 360w, https://st9ph.fr/wp-content/uploads/2026/03/image-6-300x102.png 300w" sizes="auto, (max-width: 360px) 100vw, 360px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-base-2-background-color has-background wp-block-paragraph">👈🏻 N&#8217;oubliez pas de préciser que vous allez utiliser ces données à des fins commerciales ! </p>
</div>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Dans la mesure où EMAsphère demande une adresse professionnelle, est elle soumise à l&#8217;opt-in RGPD ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Elle peut argumenter qu'elle vise une cible B2B (donc, dispense d'opt-in pour démarcher)">Mais oui, ce n&#8217;est pas parce que le livre blanc est gratuit qu&#8217;elle ne doit pas prévenir</li>
    <li data-correct="true" data-feedback="Exact mais c'est tout de même mieux de prévenir d'un point de vue 'bonnes pratiques'">Non, elle peut s&#8217;en passer (visant le B2B)</li>
    <li data-correct="false" data-feedback="Mais si, on a le droit ! Même que là, en B2B, on pourrait se dispenser de prévenir (mais c'est mieux de la faire tout de même) !">La collecte de données via un pop-up est interdite, c&#8217;est un piège votre question !</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="wp-block-paragraph">👇🏻 Ci-dessous, vous pouvez jouer à <strong>mieux valoriser ce pop-up </strong>exemple que je pourrais mettre sur le site pour &#8220;forer du mail&#8221; si je voulais en faire un commerce :</p>



<!-- DÉBUT DU CODE POP-UP & CONFIGURATION -->
<style>
    /* Styles pour le formulaire de configuration */
    .popup-config-panel {
        border: 1px solid #ccc;
        padding: 20px;
        background: #f9f9f9;
        margin-bottom: 20px;
        font-family: sans-serif;
    }
    .popup-config-panel input, .popup-config-panel textarea {
        width: 100%;
        padding: 8px;
        margin-bottom: 10px;
        box-sizing: border-box;
    }
    .popup-config-panel button {
        padding: 10px 20px;
        background: #0066cc;
        color: white;
        border: none;
        cursor: pointer;
    }
    .popup-config-panel button:hover {
        background: #0052a3;
    }

    /* Styles du Pop-up (Modal) */
    .custom-modal-overlay {
        display: none; /* Caché par défaut */
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.6);
        z-index: 9999;
        justify-content: center;
        align-items: center;
    }

    .custom-modal-content {
        background: #fff;
        width: 90%;
        max-width: 800px;
        display: flex;
        flex-direction: row;
        position: relative;
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    }

    /* Partie Gauche : Image */
    .modal-left {
        flex: 1;
        background: #f0f0f0;
        min-width: 250px;
    }
    .modal-left img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    /* Partie Droite : Contenu */
    .modal-right {
        flex: 1.5;
        padding: 30px;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    }

    /* Croix de fermeture */
    .modal-close {
        position: absolute;
        top: 10px;
        right: 15px;
        font-size: 24px;
        font-weight: bold;
        color: #333;
        cursor: pointer;
        line-height: 20px;
        z-index: 10;
    }
    .modal-close:hover {
        color: #cc0000;
    }

    /* Typographie et Champs */
    .modal-title {
        margin-top: 0;
        margin-bottom: 15px;
        font-size: 22px;
        color: #333;
    }
    .modal-argument {
        font-size: 14px;
        color: #555;
        margin-bottom: 20px;
        line-height: 1.5;
    }

    .modal-form input {
        width: 100%;
        padding: 10px;
        margin-bottom: 12px;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-sizing: border-box;
        font-size: 14px;
    }

    .modal-btn-submit {
        background: #28a745;
        color: white;
        border: none;
        padding: 12px;
        width: 100%;
        font-size: 16px;
        font-weight: bold;
        border-radius: 4px;
        cursor: pointer;
        text-decoration: none;
        display: inline-block;
        text-align: center;
        box-sizing: border-box;
    }
    .modal-btn-submit:hover {
        background: #218838;
    }

    /* Responsive : Empiler sur mobile */
    @media (max-width: 768px) {
        .custom-modal-content {
            flex-direction: column;
            max-height: 90vh;
            overflow-y: auto;
        }
        .modal-left {
            min-height: 200px;
            flex: none;
        }
    }
</style>

<!-- 1. PANNEAU DE CONFIGURATION -->
<div class="popup-config-panel">
    <h3>Configuration du Pop-up</h3>
    <label><strong>Titre du pop-up :</strong></label>
    <input type="text" id="config-title" placeholder="Ex: Téléchargez notre livre blanc" value="Téléchargez le mémo exclusif de st9ph.fr">
    
    <label><strong>Argumentaire du pop-up :</strong></label>
    <textarea id="config-argument" rows="3" placeholder="Ex: Découvrez nos meilleures astuces...">Découvrez le tuto complet pour réussir votre épreuve Prestashop au BTS ! Remplissez le formulaire pour recevoir le PDF immédiatement.</textarea>
    
    <button onclick="previewPopup()">Visualiser le pop-up</button>
</div>

<!-- 2. STRUCTURE DU POP-UP (Cachée par défaut) -->
<div id="myCustomModal" class="custom-modal-overlay">
    <div class="custom-modal-content">
        <!-- Croix de fermeture -->
        <span class="modal-close" onclick="closeModal()">&times;</span>
        
        <!-- Gauche : Image -->
        <div class="modal-left">
            <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/03/book-presta-shot.jpg" alt="Illustration Livre">
        </div>
        
        <!-- Droite : Contenu -->
        <div class="modal-right">
            <h2 id="modal-display-title" class="modal-title">Titre du pop-up</h2>
            <p id="modal-display-argument" class="modal-argument">Argumentaire du pop-up</p>
            
            <div class="modal-form">
                <input type="text" placeholder="Nom" aria-label="Nom">
                <input type="text" placeholder="Prénom" aria-label="Prénom">
                <input type="email" placeholder="Adresse e-mail" aria-label="Email">
            <p>  <FONT size="-3">En cliquant sur ce bouton, vous autorisez st9ph.fr à vous contacter occasionnellement pour vous communiquer ses actualités et ses bons plans </font> </p>    
                <!-- Bouton d'action -->
                <a href="https://kdrive.infomaniak.com/app/share/368426/d279779e-edbe-40b5-a5c8-6f1a087a72d0/files/2963/preview/pdf/295" target="_blank" class="modal-btn-submit">
                    Obtenir le PDF
                </a>
            </div>
        </div>
    </div>
</div>

<!-- 3. JAVASCRIPT POUR LA LOGIQUE -->
<script>
    // Fonction pour ouvrir le modal
    function openModal() {
        document.getElementById('myCustomModal').style.display = 'flex';
    }

    // Fonction pour fermer le modal
    function closeModal() {
        document.getElementById('myCustomModal').style.display = 'none';
    }

    // Fermer si on clique en dehors du contenu (sur le fond gris)
    window.onclick = function(event) {
        var modal = document.getElementById('myCustomModal');
        if (event.target == modal) {
            modal.style.display = "none";
        }
    }

    // Fonction pour prévisualiser avec les champs du formulaire de config
    function previewPopup() {
        var title = document.getElementById('config-title').value;
        var arg = document.getElementById('config-argument').value;
        
        document.getElementById('modal-display-title').innerText = title;
        document.getElementById('modal-display-argument').innerText = arg;
        
        openModal();
    }
</script>
<!-- FIN DU CODE POP-UP -->



<p class="wp-block-paragraph">➡️ D&#8217;autres <strong>magnets</strong> :</p>



<ul class="wp-block-list">
<li>Inviter à des <strong>évènements </strong>🗓️</li>



<li>proposer des devis ou  des <strong>estimations </strong>personnalisées gratuits 📊</li>



<li><strong>abonner </strong>à vos pages de réseaux, à vos blogs contre des codes promos réguliers 🏷️ diffusés uniquement par ce canal ou en réservant l&#8217;accès 🔒 de certaines sections aux abonnés.</li>
</ul>



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">7️⃣ Justement, à vous de jouer :</p>



<ul class="wp-block-list">
<li>Choisissez <strong>l&#8217;une des trois thématiques </strong>ci-dessous 👇🏻</li>



<li>créez la 🌐<strong>page d&#8217;atterrissage</strong> correspondant aux consignes de votre thématique sur le blog d&#8217;entrainement (son nom : <em>TP Magnet &#8211; prénoms des équipiers</em>)</li>



<li>Grace au <strong>configurateur </strong>, <strong>créez le pop-up Magnet</strong>
<ul class="wp-block-list">
<li> <strong>Titre, argumentaire, texte du bouton, choix de l&#8217;image</strong></li>



<li>pensez aussi à renseigner <strong>l&#8217;adresse de votre page en frontoffice</strong> dans le champs &#8220;url de destination&#8221;.</li>
</ul>
</li>



<li><strong>Testez votre pop-up</strong> en renseignant les champs et en cliquant pour vous inscrire
<ul class="wp-block-list">
<li>Vous devez <strong>atterrir sur la page que vous avez créé</strong></li>



<li>Vous devez <strong>avoir un nouveau csv dans votre répertoire de téléchargement </strong>habituel <strong>contenant les données que vous avez grattées</strong>.</li>
</ul>
</li>
</ul>
</div></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center has-medium-font-size wp-block-paragraph">🆕 Newsletter du site st9ph.fr</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="658" height="1024" src="https://st9ph.fr/wp-content/uploads/2026/03/aboNewsSt9ph-658x1024.jpg" alt="" class="wp-image-35677" srcset="https://st9ph.fr/wp-content/uploads/2026/03/aboNewsSt9ph-658x1024.jpg 658w, https://st9ph.fr/wp-content/uploads/2026/03/aboNewsSt9ph-193x300.jpg 193w, https://st9ph.fr/wp-content/uploads/2026/03/aboNewsSt9ph-768x1195.jpg 768w, https://st9ph.fr/wp-content/uploads/2026/03/aboNewsSt9ph.jpg 896w" sizes="auto, (max-width: 658px) 100vw, 658px" /></figure>



<p class="callout bleu wp-block-paragraph">Une page de remerciement</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center has-medium-font-size wp-block-paragraph">🍺 invitation soirée Saint-Patrick</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="384" height="633" src="https://st9ph.fr/wp-content/uploads/2026/03/PromeStPat.jpg" alt="" class="wp-image-35678" srcset="https://st9ph.fr/wp-content/uploads/2026/03/PromeStPat.jpg 384w, https://st9ph.fr/wp-content/uploads/2026/03/PromeStPat-182x300.jpg 182w" sizes="auto, (max-width: 384px) 100vw, 384px" /></figure>



<p class="callout bleu wp-block-paragraph">Une page indiquant le lieu (bar de Caen de votre choix) et l&#8217;heure du RDV</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center has-medium-font-size wp-block-paragraph">🐼 inscription vente privée marque Panda</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="259" height="414" src="https://st9ph.fr/wp-content/uploads/2026/03/promoPanda.jpg" alt="" class="wp-image-35679" srcset="https://st9ph.fr/wp-content/uploads/2026/03/promoPanda.jpg 259w, https://st9ph.fr/wp-content/uploads/2026/03/promoPanda-188x300.jpg 188w" sizes="auto, (max-width: 259px) 100vw, 259px" /></figure>



<p class="callout bleu wp-block-paragraph">une page indiquant un code réduction</p>
</div>
</div>



<!-- DÉBUT DU CODE POP-UP 2 (EXERCICE ÉTUDIANT - VERSION EXPORT CSV) -->
<style>
    /* Styles spécifiques au panneau de config 2 */
    .popup-config-panel-2 {
        border: 1px solid #0066cc;
        padding: 20px;
        background: #f0f7ff;
        margin-bottom: 20px;
        font-family: sans-serif;
    }
    .popup-config-panel-2 input, 
    .popup-config-panel-2 textarea,
    .popup-config-panel-2 select {
        width: 100%;
        padding: 8px;
        margin-bottom: 10px;
        box-sizing: border-box;
    }
    .popup-config-panel-2 button {
        padding: 10px 20px;
        background: #0066cc;
        color: white;
        border: none;
        cursor: pointer;
    }
    .popup-config-panel-2 button:hover {
        background: #004499;
    }
    .config-note {
        font-size: 11px;
        color: #666;
        margin-top: -5px;
        margin-bottom: 15px;
        font-style: italic;
    }

    /* Styles du Pop-up 2 (Modal) */
    .custom-modal-overlay-2 {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.6);
        z-index: 9998;
        justify-content: center;
        align-items: center;
    }

    .custom-modal-content-2 {
        background: #fff;
        width: 90%;
        max-width: 800px;
        display: flex;
        flex-direction: row;
        position: relative;
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    }

    .modal-left-2 {
        flex: 1;
        background: #f0f0f0;
        min-width: 250px;
    }
    .modal-left-2 img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: opacity 0.3s ease;
    }

    .modal-right-2 {
        flex: 1.5;
        padding: 30px;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    }

    .modal-close-2 {
        position: absolute;
        top: 10px;
        right: 15px;
        font-size: 24px;
        font-weight: bold;
        color: #333;
        cursor: pointer;
        line-height: 20px;
        z-index: 10;
    }
    .modal-close-2:hover {
        color: #cc0000;
    }

    .modal-title-2 {
        margin-top: 0;
        margin-bottom: 15px;
        font-size: 22px;
        color: #333;
    }
    .modal-argument-2 {
        font-size: 14px;
        color: #555;
        margin-bottom: 20px;
        line-height: 1.5;
    }

    .modal-form-2 input {
        width: 100%;
        padding: 10px;
        margin-bottom: 12px;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-sizing: border-box;
        font-size: 14px;
    }

    .modal-btn-submit-2 {
        background: #28a745;
        color: white;
        border: none;
        padding: 12px;
        width: 100%;
        font-size: 16px;
        font-weight: bold;
        border-radius: 4px;
        cursor: pointer;
        text-decoration: none;
        display: inline-block;
        text-align: center;
        box-sizing: border-box;
        transition: background 0.2s;
    }
    .modal-btn-submit-2:hover {
        background: #218838;
    }

    @media (max-width: 768px) {
        .custom-modal-content-2 {
            flex-direction: column;
            max-height: 90vh;
            overflow-y: auto;
        }
        .modal-left-2 {
            min-height: 200px;
            flex: none;
        }
    }
</style>

<!-- 1. PANNEAU DE CONFIGURATION 2 -->
<div class="popup-config-panel-2">
    <h3>⚙️ Configuration de votre Pop-Up Exercice</h3>
    
    <label><strong>Titre du pop-up :</strong></label>
    <input type="text" id="config-title-2" value="Choisissez votre header">
    
    <label><strong>Argumentaire :</strong></label>
    <textarea id="config-argument-2" rows="3">Définissez ici votre CTA (pourquoi ça vaut le coup de vous donner son mail ?.</textarea>
    
    <label><strong>Sélection de l&#8217;image selon le magnet que vous avez choisi :</strong></label>
    <select id="config-image-select-2" onchange="updateImage2()">
        <option value="https://st9ph.fr/wp-content/uploads/2026/03/aboNewsSt9ph.jpg">Choix 1 : Abonnement Newsletter St9ph</option>
        <option value="https://st9ph.fr/wp-content/uploads/2026/03/PromeStPat.jpg">Choix 2 : Invitation Saint Patrick</option>
        <option value="https://st9ph.fr/wp-content/uploads/2026/03/promoPanda.jpg">Choix 3 : vente privée marque Panda</option>
    </select>
    <p class="config-note">(N&#8217;oubliez pas, ce serait bête qu&#8217;il n&#8217;y ait pas le bon visuel !)</p>

    <hr style="border:0; border-top:1px solid #ccc; margin: 15px 0;">
    
    <label><strong>Texte du bouton d&#8217;action :</strong></label>
    <input type="text" id="config-btn-text-2" value="Texte du bouton" placeholder="Ex: Obtenir le code, S'inscrire...">
    
    <label><strong>URL de destination (cible) :</strong></label>
    <input type="text" id="config-btn-url-2" value="https://st9ph.fr" placeholder="https://...">
    <p class="config-note">Le fichier CSV des leads sera téléchargé automatiquement avant d&#8217;ouvrir ce lien.</p>

    <button onclick="previewPopup2()">Visualiser le pop-up 2</button>
</div>

<!-- 2. STRUCTURE DU POP-UP 2 -->
<div id="myCustomModal2" class="custom-modal-overlay-2">
    <div class="custom-modal-content-2">
        <span class="modal-close-2" onclick="closeModal2()">&times;</span>
        
        <!-- Gauche : Image -->
        <div class="modal-left-2">
            <img decoding="async" id="modal-image-2" src="https://st9ph.fr/wp-content/uploads/2026/03/book-presta-shot.jpg" alt="Illustration Dynamique">
        </div>
        
        <!-- Droite : Contenu -->
        <div class="modal-right-2">
            <h2 id="modal-display-title-2" class="modal-title-2">Titre du pop-up</h2>
            <p id="modal-display-argument-2" class="modal-argument-2">Argumentaire du pop-up</p>
            
            <div class="modal-form-2">
                <input type="text" id="input-name-2" placeholder="Nom" aria-label="Nom">
                <input type="text" id="input-firstname-2" placeholder="Prénom" aria-label="Prénom">
                <input type="email" id="input-email-2" placeholder="Adresse e-mail" aria-label="Email">
                
                <!-- Bouton d'action (dynamique) -->
                <button id="modal-btn-action-2" class="modal-btn-submit-2" onclick="handleLeadAndRedirect()">
                    Obtenir le PDF
                </button>
            </div>
        </div>
    </div>
</div>

<!-- 3. JAVASCRIPT POUR LA LOGIQUE 2 -->
<script>
    // Fonction pour ouvrir le modal 2
    function openModal2() {
        document.getElementById('myCustomModal2').style.display = 'flex';
    }

    // Fonction pour fermer le modal 2
    function closeModal2() {
        document.getElementById('myCustomModal2').style.display = 'none';
    }

    // Fermer si on clique en dehors
    window.onclick = function(event) {
        var modal = document.getElementById('myCustomModal2');
        if (event.target == modal) {
            modal.style.display = "none";
        }
    }

    // Fonction pour mettre à jour l'image selon la liste déroulante
    function updateImage2() {
        var select = document.getElementById('config-image-select-2');
        var imageUrl = select.value;
        var imgElement = document.getElementById('modal-image-2');
        
        imgElement.style.opacity = 0;
        setTimeout(function() {
            imgElement.src = imageUrl;
            imgElement.style.opacity = 1;
        }, 200);
    }

    // Fonction principale : Récupérer les données, créer le CSV, puis rediriger
    function handleLeadAndRedirect() {
        // 1. Récupération des valeurs
        var name = document.getElementById('input-name-2').value.trim();
        var firstname = document.getElementById('input-firstname-2').value.trim();
        var email = document.getElementById('input-email-2').value.trim();
        
        // Récupérer la thématique choisie (texte de l'option sélectionnée)
        var select = document.getElementById('config-image-select-2');
        var theme = select.options[select.selectedIndex].text;

        // Récupérer l'URL cible
        var targetUrl = document.getElementById('config-btn-url-2').value;

        // 2. Validation simple
        if(!name || !firstname || !email) {
            alert("Merci de remplir tous les champs (Nom, Prénom, Email) avant de continuer.");
            return;
        }

        // 3. Création du contenu CSV
        // En-têtes + Données + Date
        var date = new Date().toLocaleString();
        var csvContent = "data:text/csv;charset=utf-8," 
            + "Nom,Prenom,Email,Thematique,Date\n"
            + name + "," + firstname + "," + email + "," + theme + "," + date;

        // 4. Création du lien de téléchargement virtuel
        var encodedUri = encodeURI(csvContent);
        var link = document.createElement("a");
        link.setAttribute("href", encodedUri);
        link.setAttribute("download", "lead_export.csv");
        document.body.appendChild(link); // Requis pour Firefox
        
        // 5. Déclenchement du téléchargement
        link.click();
        
        // Nettoyage
        document.body.removeChild(link);

        // 6. Redirection vers l'URL cible (dans un nouvel onglet)
        if(targetUrl) {
            window.open(targetUrl, '_blank');
        }
        
        // Optionnel : Fermer le pop-up après l'action
        // closeModal2(); 
    }

    // Fonction de prévisualisation complète
    function previewPopup2() {
        // Mise à jour des textes
        var title = document.getElementById('config-title-2').value;
        var arg = document.getElementById('config-argument-2').value;
        var btnText = document.getElementById('config-btn-text-2').value;
        
        document.getElementById('modal-display-title-2').innerText = title;
        document.getElementById('modal-display-argument-2').innerText = arg;
        document.getElementById('modal-btn-action-2').innerText = btnText;
        
        // Mise à jour de l'image
        updateImage2();
        
        // Ouverture
        openModal2();
    }
</script>
<!-- FIN DU CODE POP-UP 2 -->


<div class="wp-block-ub-content-toggle corrige-etape8 wp-block-ub-content-toggle-block" id="ub-content-toggle-block-3aee06d5-5488-44fa-a14c-ee0023ffa620" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-3aee06d5-5488-44fa-a14c-ee0023ffa620" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-3aee06d5-5488-44fa-a14c-ee0023ffa620" style="color: #000000; ">Corrigé Magnet</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-3aee06d5-5488-44fa-a14c-ee0023ffa620">

<p class="wp-block-paragraph">🆕 Pop-up newsletter :</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="807" height="469" src="https://st9ph.fr/wp-content/uploads/2026/03/image-7.png" alt="" class="wp-image-35684" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-7.png 807w, https://st9ph.fr/wp-content/uploads/2026/03/image-7-300x174.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-7-768x446.png 768w" sizes="auto, (max-width: 807px) 100vw, 807px" /></figure>



<ul class="wp-block-list">
<li class="callout vert"><strong>sur votre page :</strong>
<ul class="wp-block-list">
<li>un <strong>message de remerciement </strong>(rassurant aussi sur la fréquence modeste des envois)</li>



<li>Quelques<strong> thématiques mises en avant </strong>pour créer le rebond (vous ne pourrez pas utiliser le bloc &#8220;derniers articles&#8221; ou &#8220;catégories&#8221; vu que ce n&#8217;est pas le même blog mais faites de Screenshot avec des liens).</li>



<li>un message expliquant <strong>comment se désinscrire </strong>(RGPD)</li>
</ul>
</li>
</ul>



<p class="has-medium-font-size wp-block-paragraph">🍺 Saint Patrick</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="806" height="492" src="https://st9ph.fr/wp-content/uploads/2026/03/image-8.png" alt="" class="wp-image-35687" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-8.png 806w, https://st9ph.fr/wp-content/uploads/2026/03/image-8-300x183.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-8-768x469.png 768w" sizes="auto, (max-width: 806px) 100vw, 806px" /></figure>



<ul class="wp-block-list">
<li class="callout vert"><strong>sur votre page :</strong>
<ul class="wp-block-list">
<li>un <strong>message de remerciement </strong></li>



<li>les informations de <strong>date, d&#8217;heure et de lieu de rendez-vous </strong>(Google Maps bienvenue)</li>



<li>un <strong>lien pour recevoir le QR code</strong> pour la conso gratuite (un bouton d&#8217;action)</li>
</ul>
</li>
</ul>



<p class="has-medium-font-size wp-block-paragraph">🐼 Promo Panda</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="804" height="481" src="https://st9ph.fr/wp-content/uploads/2026/03/image-9.png" alt="" class="wp-image-35693" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-9.png 804w, https://st9ph.fr/wp-content/uploads/2026/03/image-9-300x179.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-9-768x459.png 768w" sizes="auto, (max-width: 804px) 100vw, 804px" /></figure>



<div class="wp-block-group callout vert"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="wp-block-paragraph"><strong>sur votre page :</strong></p>



<ul class="wp-block-list">
<li>un <strong>message de remerciement </strong></li>



<li>Une invitation à s&#8217;inscrire à la newsletter pour ne pas rater les prochaines</li>



<li>Le coupon est une brève explication de la manière de l&#8217;utiliser</li>
</ul>
</div></div>



<p class="callout vert wp-block-paragraph"></p>

</div>
		</div>
</div>




<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Le double opt-in est il obligatoire sur ce type de pop-up ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Mais non, mais c'est tout de même une bonne pratique recommandée">Oui, on ne peut pas ajouter un B2C sur une liste de diffusion sans double confirmation</li>
    <li data-correct="false" data-feedback="Non, ni pour l'un, ni pour l'autre.">Oui, en B2B comme en B2C</li>
    <li data-correct="true" data-feedback="C'est vrai, d'où mon conseil de le rajouter sur votre page d'atterrissage">Non, c&#8217;est juste une bonne pratique que beaucoup utilisent</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="wp-block-paragraph">👇🏻 La sortie se fait sur <strong>un fichier CSV</strong> avec un contenu comme celui-ci :</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="645" height="68" src="https://st9ph.fr/wp-content/uploads/2026/03/image-10.png" alt="" class="wp-image-35714" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-10.png 645w, https://st9ph.fr/wp-content/uploads/2026/03/image-10-300x32.png 300w" sizes="auto, (max-width: 645px) 100vw, 645px" /></figure>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>🤔 C&#8217;est quoi un CSV ?</summary>
<p class="wp-block-paragraph">C&#8217;est un fichier universel pour tableur et base de données (idéale pour la Warehouse). C&#8217;est comme un <img decoding="async" width="12" height="11" fetchpriority="low" class="wp-image-33359" style="width: 12px;" src="https://st9ph.fr/wp-content/uploads/2026/01/pdf.png" alt="">pdf mais pour Excel ou autre. Ca permet d&#8217;envoyer des tableaux sous forme de fichier texte, séparés par des virgules (d&#8217;où son nom : Comma Separated Values). <a href="https://st9ph.fr/exploitation-fichier-csv/" target="_blank" rel="noreferrer noopener">Voir ce tuto</a> pour apprendre à les remettre en tableau.</p>
</details>



<p class="callout jaune wp-block-paragraph">📁 Il est possible de <strong>définir un script </strong>pour que chaque nouvelle inscription aille alimenter votre CRM et même si <strong>cela demande quelques notions de programmation,</strong> vous pouvez connecter l&#8217;outil à n&#8217;importe quelle warehouse.</p>



<p class="wp-block-paragraph">👉🏻 Il existe aussi <strong>des plug-in </strong>🗝️&#8221;clés en main&#8221; qui font &#8220;tout le boulot&#8221; (dont la version pro de <img loading="lazy" decoding="async" width="17" height="16" class="wp-image-33631" style="width: 17px;" src="https://st9ph.fr/wp-content/uploads/2024/12/ico-spectra.png" alt=""> Spectra) mais je n&#8217;en ai pas trouvé de gratuits.</p>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.3 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Réveiller les dormants 😴</strong></h3>



<p class="wp-block-paragraph">👉🏻 C&#8217;est souvent dans le scoring RFM qu&#8217;on va trouver ceux de nos clients en perte de fidélité. En effet, le LMOT se conclut par :</p>



<ul class="wp-block-list">
<li>une boucle où
<ul class="wp-block-list">
<li>soit <strong>le client repart en ZMOT</strong> (curieux de renouveller, remplacer)</li>



<li>Soit <strong>il disparait </strong>(Churn)</li>
</ul>
</li>



<li>Un <strong>score RFM qui chute</strong> inexorablement</li>



<li>un <strong>taux d&#8217;ouverture de notre newsletter </strong>et de nos offres personnalisées <strong>de plus en plus bas</strong>.</li>
</ul>



<p class="wp-block-paragraph">➡️ La <strong>data</strong>, là encore, <strong>va nous aider à les débusquer</strong> et à les relancer</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="950" height="313" src="https://st9ph.fr/wp-content/uploads/2026/03/image-11.png" alt="" class="wp-image-35717" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-11.png 950w, https://st9ph.fr/wp-content/uploads/2026/03/image-11-300x99.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-11-768x253.png 768w" sizes="auto, (max-width: 950px) 100vw, 950px" /></figure>



<p class="wp-block-paragraph">👆🏻 Dans l&#8217;exemple ci-dessus, on observe que notre client Abel-Yves et <strong>en perte de fidélité</strong> (c&#8217;est même flagrant sur les graphiques<strong> si on le compare à l&#8217;ensemble des clients</strong> qui ont les mêmes caractéristiques que lui (cohorte) :</p>



<ul class="wp-block-list">
<li>sa r<strong>écence de visite</strong>, déjà i<strong>nférieure de 4 jours</strong> sur la cohorte en année N-2 <strong>s&#8217;allonge à 52 jours </strong>l&#8217;année dernière</li>



<li>sa fréquence de visites, déjà<strong> inférieure de 11 fois </strong>en N- 2 <strong>s&#8217;allonge encore à 43 fois</strong> plus que la moyenne de fréquentation de la cohorte (il vient 6 fois moins souvent que l&#8217;année précédente)</li>



<li>C&#8217;est obligé, avec <strong>seulement six visites</strong>, le <strong>CA </strong>qu&#8217;il génère est <strong>en dessous des 10%</strong> <strong>de la moyenne </strong>de sa cohorte et il chute de 4112,50 € soit <strong>89 % de moins </strong>qu&#8217;en N-2 !</li>
</ul>



<p class="has-medium-font-size wp-block-paragraph">⚠️ Ce client s&#8217;endort ! </p>



<div class="wp-block-group has-contrast-3-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-medium-font-size wp-block-paragraph">8️⃣ Travail à faire</p>



<ul class="wp-block-list">
<li>Téléchargez le tableur exercice TP-Scoring</li>



<li>Dans Excel, trouvez une méthode de scoring pour cibler les clients qui deviennent dormants</li>



<li>Quel est le top 5 des clients à relancer ?</li>
</ul>
</div></div>



<div class="wp-block-file"><a id="wp-block-file--media-cbc19a84-4bc4-48c1-8524-3f531f44b51e" href="https://st9ph.fr/wp-content/uploads/2026/03/tp-scoring.xlsx">tp-scoring</a><a href="https://st9ph.fr/wp-content/uploads/2026/03/tp-scoring.xlsx" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-cbc19a84-4bc4-48c1-8524-3f531f44b51e">Télécharger</a></div>


<div class="wp-block-ub-content-toggle corrige-etape9 wp-block-ub-content-toggle-block" id="ub-content-toggle-block-974192eb-1b18-400c-bc77-d1714c39bafa" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-974192eb-1b18-400c-bc77-d1714c39bafa" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-974192eb-1b18-400c-bc77-d1714c39bafa" style="color: #000000; ">📈 Corrigé scoring</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-974192eb-1b18-400c-bc77-d1714c39bafa">

<div class="wp-block-file"><a id="wp-block-file--media-54d55055-01f9-4baa-9669-5793b9faa371" href="https://st9ph.fr/wp-content/uploads/2026/03/tp-scoring-corrige.xlsx">tp-scoring-corrigé</a><a href="https://st9ph.fr/wp-content/uploads/2026/03/tp-scoring-corrige.xlsx" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-54d55055-01f9-4baa-9669-5793b9faa371">Télécharger</a></div>



<p class="wp-block-paragraph"></p>



<ul class="wp-block-list">
<li>Les colonnes insérées servent à établir un scoring</li>



<li>Les lignes au dessus calculent les valeur max et min de l&#8217;échantillon</li>



<li>chaque 5ème de l&#8217;écart entre max et min sont les palliers de 1 à 5
<ul class="wp-block-list">
<li>Ex : en colonne C, l&#8217;écart et de 48 jours, donc (globalement) tous les 10 jours sans visites valent 1 point supplémentaire (c&#8217;est celui qui a le plus mauvais comportement qui a la meilleure note)</li>
</ul>
</li>



<li>On fait la moyenne RFM N1 et N2 en O et P et on tri en décroissant sur P (plus récent) puis O.</li>
</ul>



<p class="wp-block-paragraph">🏅 Le top 5 :</p>



<figure class="wp-block-image size-large is-style-zoooom"><img loading="lazy" decoding="async" width="1024" height="143" src="https://st9ph.fr/wp-content/uploads/2026/03/image-12-1024x143.png" alt="" class="wp-image-35724" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-12-1024x143.png 1024w, https://st9ph.fr/wp-content/uploads/2026/03/image-12-300x42.png 300w, https://st9ph.fr/wp-content/uploads/2026/03/image-12-768x107.png 768w, https://st9ph.fr/wp-content/uploads/2026/03/image-12.png 1409w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Déborah, avec 69 jours sans visite, une fréquence de 11 visites par an et un CA de 1070 € est la cliente la plus dormante du panel.</p>



<p class="wp-block-paragraph">👉🏻 La méthode ne pondère pas : chacun des R, F et M a le même poids. C&#8217;est pourquoi Abel-Yves, malgré qu&#8217;il ait le prie score en M n&#8217;est que 4ème parce que globalement il a un taux de fréquentation et une récence plus forte</p>



<p class="callout rouge wp-block-paragraph">On remarque aussi que<strong> les écarts de l&#8217;ensemble de l&#8217;échantillon</strong> sont plus cohérents que les données d&#8217;Abel-Yves. <strong>Des curiosités aussi</strong> : Malo, par exemple, a un CA qui progresse mais se retrouve en haut à cause de <strong>son écart à la moyenne des autres.</strong> Aucune méthode n&#8217;est parfaite et<strong> il faut admettre un taux d&#8217;erreur de 5% environ,</strong> quelle que soit celle qu&#8217;on choisit.</p>

</div>
		</div>
</div>


<!-- =====================================================
     🔓 CONTRÔLE CORRIGÉ - VERSION MULTI ÉTAPES
     👉 Tu peux dupliquer ce bloc autant de fois que voulu
     ===================================================== -->

<div class="unlock-zone" style="margin:20px 0;">

  <input type="password"
         placeholder="🔒 me demander"
         class="unlock-input"
         style="padding:8px; border:1px solid #ccc; border-radius:6px;">

  <!-- 👇 TU CHANGES LE NOM DE CLASSE ET LE MOT DE PASSE CI-DESSOUS -->

  <button class="unlock-btn"
          data-target="corrige-etape9"
          data-password="Scoring9"
          style="padding:8px 12px; border:none; border-radius:6px; cursor:pointer;">
          
    Afficher le corrigé
  </button>

</div>

<style>
/* 👇 TU CHANGES LE NOM DE CLASSE ICI AUSSI */
.corrige-etape9 {
  display: none;
}
</style>

<script>
document.addEventListener("click", function(e) {

  if (e.target.classList.contains("unlock-btn")) {

    var button = e.target;
    var input = button.previousElementSibling;

    var enteredPassword = input.value;
    var correctPassword = button.getAttribute("data-password");
    var targetClass = button.getAttribute("data-target");

    if (enteredPassword === correctPassword) {

      document.querySelectorAll("." + targetClass).forEach(function(el) {
        el.style.display = "block";
      });

      button.textContent = "Corrigé déverrouillé ✅";
      button.disabled = true;
      input.style.display = "none";

    } else {
      alert("Mot de passe incorrect 😉");
    }
  }
});
</script>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="has-medium-font-size wp-block-paragraph">🎯 Vous voyez, les moyens de collecte sont nombreux et les occasions de requalifier fréquentes. Le carburant de votre warehouse est une alchimie à trouver entre l&#8217;abondance de sourcing et sa pertinence.</p>
</blockquote>



<p class="has-medium-font-size wp-block-paragraph">➡️ Dans ce TP, nous avons appris :</p>


<ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-1d791f07-beb7-4c65-ab2b-25c5c77290a4">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-366a123c-1545-48d7-ab5c-55a2d3db646d">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">A scrapper des données B2B avec Sheets et Maps</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-d1ae84e1-a687-49b2-8a56-4e66f13946c3">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">A les affiner et compléter via Pappers</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-988fe09e-79ff-457e-b318-4eadf874fb8a">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">A collecter des données B2C via Forms</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-0f86ec73-ad90-4e88-9409-e4a8f7d97bc4">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">A qualifier ou requalifier des données en service client</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-6dffff2b-a84b-4c6d-af1e-88ca0a5dafa5">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">A collecter des données B2C ou B2B via des magnets en pop-up</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;&lt;path fill=&quot;%2300d084&quot; d=&quot;M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-fb7308d5-7ad8-474b-9e4c-45196e5296d3">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#00d084" d="M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path></svg>
				</span>
				<span class="ub_list_item_text">A détecter le LMOT pour la relance en scoring la bd client</span>
			</div>
			
		</li>
</ul>


<script>
document.addEventListener("DOMContentLoaded", function () {

  let scoreTotal = 0;
  let questionsRepondues = 0;

  const blocs = document.querySelectorAll(".bloc-qcm");

  blocs.forEach(qcm => {

    const options = qcm.querySelectorAll(".qcm-options li");
    const feedback = qcm.querySelector(".qcm-feedback");
    let answered = false;

    options.forEach(option => {
      option.addEventListener("click", function () {

        if (answered) return;
        answered = true;

        questionsRepondues++;

        const isCorrect = option.dataset.correct === "true";

        if (isCorrect) {
          scoreTotal++;
          this.classList.add("correct");
        } else {
          this.classList.add("wrong");
        }

        feedback.textContent = option.dataset.feedback +" | Ton score : " + scoreTotal + " / " + questionsRepondues;

        const global = document.getElementById("score-global");
        if (global) {
          global.textContent =
            "Score total : " + scoreTotal + " / " + questionsRepondues;
        }

      });
    });

  });

});
</script>



<script>
document.addEventListener("DOMContentLoaded", function () {

  const today = new Date();
  today.setDate(today.getDate() + 10);

  const options = { day: 'numeric', month: 'long', year: 'numeric' };
  const dateFormatee = today.toLocaleDateString('fr-FR', options);

  const cible = document.getElementById("date-plus-10");
  if (cible) {
    cible.textContent = dateFormatee;
  }

});
</script>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-data-mining/">🎓TP- Data Mining</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://st9ph.fr/%f0%9f%8e%93tp-data-mining/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		<enclosure url="https://st9ph.fr/wp-content/uploads/2026/02/dialogueSt9ph2.mp3" length="1290672" type="audio/mpeg" />
<enclosure url="https://st9ph.fr/wp-content/uploads/2026/03/celia-gabin-qualif.mp3" length="1021104" type="audio/mpeg" />

		<post-id xmlns="com-wordpress:feed-additions:1">35402</post-id>	</item>
		<item>
		<title>🎓TP &#8211; Légalité de l&#8217;action digitale</title>
		<link>https://st9ph.fr/%f0%9f%8e%93tp-legalite-de-laction-digitale/</link>
					<comments>https://st9ph.fr/%f0%9f%8e%93tp-legalite-de-laction-digitale/#respond</comments>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Thu, 16 Apr 2026 11:18:00 +0000</pubDate>
				<category><![CDATA[😎 privé]]></category>
		<guid isPermaLink="false">https://st9ph.fr/?p=36691</guid>

					<description><![CDATA[<p>C&#8217;est parti pour un petit tour d&#8217;horizon de la mise en place des éléments de légalité et des points de vigilance sur tous les canaux digitaux. 1 Légalité en CRC RGPD des données de Phoning Bandeau de légalité dans le footer des mails Retour produit en SAV 🔒 Contenu réservé à mes étudiants Demandez moi ... <a title="🎓TP &#8211; Légalité de l&#8217;action digitale" class="read-more" href="https://st9ph.fr/%f0%9f%8e%93tp-legalite-de-laction-digitale/" aria-label="En savoir plus sur 🎓TP &#8211; Légalité de l&#8217;action digitale">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-legalite-de-laction-digitale/">🎓TP &#8211; Légalité de l&#8217;action digitale</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">C&#8217;est parti pour un petit tour d&#8217;horizon de la mise en place des éléments de légalité et des points de vigilance sur tous les canaux digitaux.</p>



<!-- DÉBUT TITRE CHAPITRE -->
<style>
.chapter-title { display: flex; align-items: stretch; margin: 1.7rem 0; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.chapter-number { background: #1e73be; color: #fff; font-weight: 700; font-size: 2.8rem; padding: 0 1.1rem; display: flex; align-items: center; justify-content: center; }
.chapter-content { padding: 1.3rem 1.5rem; width: 100%; }
.chapter-heading { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.6rem; }
.chapter-logo { width: 42px; height: 42px; flex-shrink: 0; display:block; }
.chapter-logo img { width: 100%; height: 100%; object-fit: contain; }
.chapter-content h2 { margin: 0; font-size: 2.1rem; font-weight: 700; color: #1e73be; }
.chapter-points { margin: 0; padding-left: 0; list-style: none; }
.chapter-points li { margin-bottom: 0.35rem; color: #444; font-size: 0.95rem; line-height: 1.45; }
.chapter-points li::before { content: "🔹 "; }
</style>

<div class="chapter-title">
  <div class="chapter-number">1</div>
  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo">
      </a>
      <h2>Légalité en CRC</h2>
    </div>
    <ul class="chapter-points"><li>RGPD des données de Phoning</li><li>Bandeau de légalité dans le footer des mails</li><li>Retour produit en SAV</li></ul>
  </div>
</div>
<!-- FIN TITRE CHAPITRE -->



<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID1">
    <p><strong>🔒 Contenu réservé à mes étudiants</strong></p>
    <p class="tp-wall-msg">Demandez moi le code pour déverrouiller la 1ere partie.</p>
    <p class="tp-wall-msg">Vous obtiendrez les autres codes chaque fois que vous posterez un TP d&#8217;étape.</p>
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID1' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID1" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID1' PAR TON ID ET 'L9g@lité' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID1', 'L9g@lité')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID1" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="395" height="160" src="https://st9ph.fr/wp-content/uploads/2026/04/image-2.png" alt="" class="wp-image-36713" srcset="https://st9ph.fr/wp-content/uploads/2026/04/image-2.png 395w, https://st9ph.fr/wp-content/uploads/2026/04/image-2-300x122.png 300w" sizes="auto, (max-width: 395px) 100vw, 395px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="callout rouge wp-block-paragraph"><strong>X</strong> Fermez le panneau des cookies qui est apparu sur la droite, c&#8217;est pour tout à l&#8217;heure. ↘️</p>
</div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>RGPD des données de phoning</strong></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="246" height="280" src="https://st9ph.fr/wp-content/uploads/2026/04/image-1.png" alt="" class="wp-image-36692"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">🎧 Ecoutez la première minute du SVI du s<strong>ervice client st9ph</strong> et indiquez quelle étape RGPD est énoncée dans la grille ci dessous.</p>



<figure class="wp-block-audio"><audio controls src="https://st9ph.fr/wp-content/uploads/2026/01/SVI-St9ph-leadP.mp3"></audio></figure>
</div>
</div>



<!-- DÉBUT QCM MATRICIEL V3 -->
<div id="mqcm-ndu6sey9l" class="mqcm-container">
<style>
.mqcm-container { font-family: sans-serif; max-width: 900px; margin: 20px auto; }
.mqcm-row { background: #fff; border: 1px solid #ddd; border-radius: 6px; padding: 15px; margin-bottom: 15px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 15px; }
.mqcm-prop { flex: 2; min-width: 250px; font-weight: 600; color: #2c3e50; padding-top: 10px; line-height: 1.4; }
.mqcm-options { flex: 3; min-width: 300px; display: flex; gap: 15px; justify-content: space-around; background: #f9f9f9; padding: 10px; border-radius: 6px; border: 1px solid #eee; }
.mqcm-radio-label { cursor: pointer; font-size: 0.95em; display: flex; align-items: center; gap: 5px; user-select: none; }
.mqcm-radio-label input { cursor: pointer; }
.mqcm-feedback { width: 100%; margin-top: 10px; padding: 10px; background: #fff3cd; border-left: 4px solid #ffc107; color: #856404; border-radius: 4px; display: none; font-size: 0.9em; }
.mqcm-validate-btn { display: block; width: 100%; padding: 15px; background: #1e73be; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: 1.1em; font-weight: bold; margin-top: 20px; }
.mqcm-validate-btn:disabled { background: #ccc; cursor: not-allowed; }
.mqcm-score { text-align: center; margin-top: 15px; font-weight: bold; font-size: 1.2em; }
/* Styles de validation */
.mqcm-row.correct-answer { border-color: #4caf50; background: #e8f5e9; }
.mqcm-row.wrong-answer { border-color: #f44336; background: #ffebee; }
.mqcm-radio-label.correct { color: #2e7d32; font-weight: bold; }
.mqcm-radio-label.wrong { color: #c62828; text-decoration: line-through; }
@media (max-width: 768px) {
.mqcm-row { flex-direction: column; }
.mqcm-options { width: 100%; flex-direction: column; gap: 8px; }
}
</style>

<div class="mqcm-row" data-correct="droit-acces" data-feedback="Réécouter l'appel, c'est accéder à la donnée transactionnelle">
<div class="mqcm-prop">&#8220;En fin de communication, vous pouvez réécouter &#8230; &#8220;</div>
<div class="mqcm-options">
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_0" value="opt-in"> Opt-in
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_0" value="droit-acces"> Droit d&#8217;accès
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_0" value="opt-out"> Opt-out
</label>
</div>
<div class="mqcm-feedback"></div>
</div>
<div class="mqcm-row" data-correct="opt-in" data-feedback="C'est le consentement préalable à la collecte des données audio de la conversation">
<div class="mqcm-prop">&#8220;Cet échange sera enregistré, si vous ne le souhaitez pas &#8230;&#8221;</div>
<div class="mqcm-options">
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_1" value="opt-in"> Opt-in
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_1" value="droit-acces"> Droit d&#8217;accès
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_1" value="opt-out"> Opt-out
</label>
</div>
<div class="mqcm-feedback"></div>
</div>
<div class="mqcm-row" data-correct="droit-acces" data-feedback="majoritairement l'accès et la modification mais si vous avez répondu suppression, ce n'est pas faux non plus.">
<div class="mqcm-prop">&#8220;Conformément au règlement européen &#8230;&#8221;</div>
<div class="mqcm-options">
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_2" value="opt-in"> Opt-in
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_2" value="droit-acces"> Droit d&#8217;accès
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ndu6sey9l_2" value="opt-out"> Opt-out
</label>
</div>
<div class="mqcm-feedback"></div>
</div>
<button class="mqcm-validate-btn" onclick="validateMatrixQCM('mqcm-ndu6sey9l')">✅ Valider mes réponses</button>
<div id="mqcm-ndu6sey9l-score" class="mqcm-score"></div>
</div>
<script>
function validateMatrixQCM(uid) {
const container = document.getElementById(uid);
const rows = container.querySelectorAll('.mqcm-row');
let score = 0;
let total = rows.length;
let allAnswered = true;
rows.forEach(row => {
const correctVal = row.getAttribute('data-correct');
const feedbackText = row.getAttribute('data-feedback');
const feedbackDiv = row.querySelector('.mqcm-feedback');
const inputs = row.querySelectorAll('input[type="radio"]');
const labels = row.querySelectorAll('.mqcm-radio-label');
// Reset
row.classList.remove('correct-answer', 'wrong-answer');
labels.forEach(l => l.classList.remove('correct', 'wrong'));
feedbackDiv.style.display = 'none';
let selectedVal = null;
let selectedLabel = null;
inputs.forEach((inp, idx) => {
if (inp.checked) {
selectedVal = inp.value;
selectedLabel = labels[idx];
}
inp.disabled = true; // Bloquer tout
});
if (!selectedVal) {
allAnswered = false;
return;
}
feedbackDiv.style.display = 'block';
feedbackDiv.textContent = feedbackText;
if (selectedVal === correctVal) {
score++;
row.classList.add('correct-answer');
if(selectedLabel) selectedLabel.classList.add('correct');
} else {
row.classList.add('wrong-answer');
if(selectedLabel) selectedLabel.classList.add('wrong');
// Montrer la bonne
inputs.forEach((inp, idx) => {
if(inp.value === correctVal) labels[idx].classList.add('correct');
});
}
});
const scoreDiv = document.getElementById(uid + '-score');
if (!allAnswered) {
scoreDiv.textContent = "⚠️ Veuillez répondre à toutes les lignes.";
scoreDiv.style.color = "#e67e22";
} else {
scoreDiv.textContent = "Score : " + score + " / " + total;
scoreDiv.style.color = score === total ? "#27ae60" : "#c0392b";
const btn = container.querySelector('.mqcm-validate-btn');
btn.disabled = true;
btn.textContent = "Réponses validées";
}
}
</script>
<!-- FIN QCM MATRICIEL V3 -->



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Si votre service client téléphonique est payant, l&#8217;attente initiale (avant la prise en charge) est :</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="Oui, même si des frais supplémentaires de l'opérateur GSM du client peuvent parfois s'appliquer, ce n'est pas vous qui les percevez. Précisez bien 'depuis un téléphone fixe'">Gratuite</li>
    <li data-correct="false" data-feedback="Non, la loi interdit de facturer le client avant le décroché réel.">Payante aussi.</li>
    <li data-correct="false" data-feedback="Non, ce n'est pas vous qui les percevez, votre attente est gratuite mais depuis un téléphone fixe.">Gratuite hors frais supplémentaires  éventuels de l&#8217;opérateur du client</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Et si je transfère le client à un autre service et qu&#8217;il est remis en attente là-bas, il ne paye pas l&#8217;attente initiale ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Hélas si, le compteur tourne depuis le premier décroché. C'est pourquoi on conseille au client de rappeler directement l'autre service plutôt que de le basculer.">Non, pas avant le décroché sur l&#8217;autre plateau</li>
    <li data-correct="false" data-feedback="Non, le SVI facture éventuellement (si le service est payant) au 1ere atterrissage. Les externalisés concurrents qui gèrent plusieurs services d'une même enseigne s'accordent pour interdire le basculement entre eux pour ne pas être lésés.">Ca dépend si c&#8217;est le même call center</li>
    <li data-correct="true" data-feedback="Oui, le 1er décroché du 1er plateau est le seul point zéro.">Si, dans tous les cas.</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Mais, d&#8217;ailleurs, c&#8217;est légal, ça, de faire payer le service client ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="C'est vrai que cela coute cher mais la loi impose au moins un canal de contact gratuit (mais pas forcément le téléphone)">Oui, c&#8217;est un coût qu&#8217;il faut amortir !</li>
    <li data-correct="true" data-feedback="Exact, on peut faire payer l'appel à condition qu'un autre moyen soit proposé gratuitement (tchat, mail ....)">Oui à condition de proposer au moins un canal gratuit de contact</li>
    <li data-correct="false" data-feedback="Presque ! Gratuitement sur au moins un canal, mais pas forcément le téléphone.">Non, le service client est dû gratuitement</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> A quel moment le temps d&#8217;attente initiale est il calculé ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Non, hélas, il faut attendre le dispatching pour caller une position d'attente (et donc, pouvoir la mesurer)">Dès que le SVI prend en charge</li>
    <li data-correct="false" data-feedback="Un peu avant, le temps est mesuré dès le dispatching mais annoncé en synthèse vocale quelques instants plus tard.">Dès que le temps d&#8217;attente est annoncé</li>
    <li data-correct="true" data-feedback="Oui, c'est en effet au moment où le SVI du plateau d'arrivée prend en charge une attente qu'on peut la mesurer.">Dès que le dispatching (&#8216;tapez 1 &#8230; tapez 2 &#8230;&#8217;) est effectué</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Comment peut-on calculer le temps d&#8217;attente exact ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="Oui, et cela dépend essentiellement du respect de la DMT">On ne peut pas, l&#8217;ACD l&#8217;estime en fonction de la DMT, des autres attentes en cours et du nombre d&#8217;agents sur le plateau.</li>
    <li data-correct="false" data-feedback="Non, le prédictive dialer sert à numéroter les appels à passer. Le temps d'attente est une estimation, avec ou sans IA">C&#8217;est le rôle du predictive dialer avec l&#8217;aide de l&#8217;IA, fiable à 95%</li>
    <li data-correct="false" data-feedback="Non, on peut être plus précis que cela avec les KPI mais cela demeure une estimation si chacun respecte la DMT">C&#8217;est juste une estimation basée sur la moyenne des temps d&#8217;attente constatés</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>Bandeau de légalité du footer des emails</strong></h3>



<p class="wp-block-paragraph">➡️ Observez le footer du mail ci-dessous et trouverez à quelles étapes du RGPD correspondent les éléments donnés dans la grille qui suit.</p>



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> boutique st9ph</span>
    <span><strong>À :</strong> mail client</span>
    <span><strong>Objet :</strong> notre T-Shirt Petit Dauphin</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour Sarah VIGOTE,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Vous souhaitez commander notre T-Shirt Petit Dauphin (référence : TSPD78r) et vous nous contactez pour nous demander conseil. Nous sommes toujours ravis de pouvoir vous renseigner.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">Selon le gabarit donné en description, ce produit en âge &#8220;7-8 ans&#8221; pour des enfants de taille entre 1 m 16 et 1 m 28 devrait parfaitement convenir à votre fils. 👍<br>Quant à la couleur, je vous confirme que le rose et le bleu sont proposés indifféremment pour les garçons ou pour les filles. Il peut choisir le rose s&#8217;il le préfère au bleu. Nous avons les deux en stock en 7-8 ans.</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://boutiq.st9ph.fr/23-66-t-shirt-petit-dauphin.html#/18-couleur-rose/35-age-7_8" class="cta-button" target="_blank">Voir le T-Shirt Petit Dauphin dans la boutique</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">C&#8217;était important de vous renseigner, en effet, car nous ne sommes pas en mesure de reprendre ni d&#8217;échanger des produits qui se portent à même la peau par mesure d&#8217;hygiène.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">Toute l&#8217;équipe st9ph Market reste à votre disposition, vous remercie de votre intérêt pour nos produits et vous dit à bientôt sur notre boutique en ligne.</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Stéphane,<br>Votre conseiller commercial.</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">vous recevez ce mail en tant que client de la boutique st9ph</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &#8220;mon compte&#8221; (accès &#038; modification) ou contactez-nous > sujet &#8220;mon compte&#8221; pour supprimer votre compte</div>
        <div class="footer-section">Utilisez le lien &#8220;contactez nous&#8221; pour toutes vos demandes au service client ou appelez le 📞3568</div>
        <div class="footer-section">shop.st9ph.fr &#8211; [mois -année]</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<!-- DÉBUT QCM MATRICIEL V3 -->
<div id="mqcm-ofkgmjanw" class="mqcm-container">
<style>
.mqcm-container { font-family: sans-serif; max-width: 900px; margin: 20px auto; }
.mqcm-row { background: #fff; border: 1px solid #ddd; border-radius: 6px; padding: 15px; margin-bottom: 15px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 15px; }
.mqcm-prop { flex: 2; min-width: 250px; font-weight: 600; color: #2c3e50; padding-top: 10px; line-height: 1.4; }
.mqcm-options { flex: 3; min-width: 300px; display: flex; gap: 15px; justify-content: space-around; background: #f9f9f9; padding: 10px; border-radius: 6px; border: 1px solid #eee; }
.mqcm-radio-label { cursor: pointer; font-size: 0.95em; display: flex; align-items: center; gap: 5px; user-select: none; }
.mqcm-radio-label input { cursor: pointer; }
.mqcm-feedback { width: 100%; margin-top: 10px; padding: 10px; background: #fff3cd; border-left: 4px solid #ffc107; color: #856404; border-radius: 4px; display: none; font-size: 0.9em; }
.mqcm-validate-btn { display: block; width: 100%; padding: 15px; background: #1e73be; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: 1.1em; font-weight: bold; margin-top: 20px; }
.mqcm-validate-btn:disabled { background: #ccc; cursor: not-allowed; }
.mqcm-score { text-align: center; margin-top: 15px; font-weight: bold; font-size: 1.2em; }
/* Styles de validation */
.mqcm-row.correct-answer { border-color: #4caf50; background: #e8f5e9; }
.mqcm-row.wrong-answer { border-color: #f44336; background: #ffebee; }
.mqcm-radio-label.correct { color: #2e7d32; font-weight: bold; }
.mqcm-radio-label.wrong { color: #c62828; text-decoration: line-through; }
@media (max-width: 768px) {
.mqcm-row { flex-direction: column; }
.mqcm-options { width: 100%; flex-direction: column; gap: 8px; }
}
</style>

<div class="mqcm-row" data-correct="opt-in" data-feedback="Rappel de l'opt-in pour être exact :  quelle est l'autorisation donnée pour utiliser son mail pour lui écrire.">
<div class="mqcm-prop">&#8220;vous recevez ce mail en tant que client de la boutique st9ph&#8221;</div>
<div class="mqcm-options">
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_0" value="opt-in"> Opt-in
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_0" value="droit-acces"> Droit d&#8217;accès
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_0" value="opt-out"> Opt-out
</label>
</div>
<div class="mqcm-feedback"></div>
</div>
<div class="mqcm-row" data-correct="opt-out" data-feedback="C'est le droit à ne plus consentir, donc, l'opt-out">
<div class="mqcm-prop">&#8220;Se désinscrire&#8221;</div>
<div class="mqcm-options">
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_1" value="opt-in"> Opt-in
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_1" value="droit-acces"> Droit d&#8217;accès
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_1" value="opt-out"> Opt-out
</label>
</div>
<div class="mqcm-feedback"></div>
</div>
<div class="mqcm-row" data-correct="droit-acces" data-feedback="il n'y avait pas de piège. C'était pour vous faire un point facile.">
<div class="mqcm-prop">vous disposez d’un droit d’accès et de rectification</div>
<div class="mqcm-options">
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_2" value="opt-in"> Opt-in
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_2" value="droit-acces"> Droit d&#8217;accès
</label>
<label class="mqcm-radio-label">
<input type="radio" name="q_mqcm-ofkgmjanw_2" value="opt-out"> Opt-out
</label>
</div>
<div class="mqcm-feedback"></div>
</div>
<button class="mqcm-validate-btn" onclick="validateMatrixQCM('mqcm-ofkgmjanw')">✅ Valider mes réponses</button>
<div id="mqcm-ofkgmjanw-score" class="mqcm-score"></div>
</div>
<script>
function validateMatrixQCM(uid) {
const container = document.getElementById(uid);
const rows = container.querySelectorAll('.mqcm-row');
let score = 0;
let total = rows.length;
let allAnswered = true;
rows.forEach(row => {
const correctVal = row.getAttribute('data-correct');
const feedbackText = row.getAttribute('data-feedback');
const feedbackDiv = row.querySelector('.mqcm-feedback');
const inputs = row.querySelectorAll('input[type="radio"]');
const labels = row.querySelectorAll('.mqcm-radio-label');
// Reset
row.classList.remove('correct-answer', 'wrong-answer');
labels.forEach(l => l.classList.remove('correct', 'wrong'));
feedbackDiv.style.display = 'none';
let selectedVal = null;
let selectedLabel = null;
inputs.forEach((inp, idx) => {
if (inp.checked) {
selectedVal = inp.value;
selectedLabel = labels[idx];
}
inp.disabled = true; // Bloquer tout
});
if (!selectedVal) {
allAnswered = false;
return;
}
feedbackDiv.style.display = 'block';
feedbackDiv.textContent = feedbackText;
if (selectedVal === correctVal) {
score++;
row.classList.add('correct-answer');
if(selectedLabel) selectedLabel.classList.add('correct');
} else {
row.classList.add('wrong-answer');
if(selectedLabel) selectedLabel.classList.add('wrong');
// Montrer la bonne
inputs.forEach((inp, idx) => {
if(inp.value === correctVal) labels[idx].classList.add('correct');
});
}
});
const scoreDiv = document.getElementById(uid + '-score');
if (!allAnswered) {
scoreDiv.textContent = "⚠️ Veuillez répondre à toutes les lignes.";
scoreDiv.style.color = "#e67e22";
} else {
scoreDiv.textContent = "Score : " + score + " / " + total;
scoreDiv.style.color = score === total ? "#27ae60" : "#c0392b";
const btn = container.querySelector('.mqcm-validate-btn');
btn.disabled = true;
btn.textContent = "Réponses validées";
}
}
</script>
<!-- FIN QCM MATRICIEL V3 -->



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
<p class="qcm-question">🤔 <strong>Question :</strong> Comment le client donne-t-il son autorisation à recevoir des mails du service client ?</p>
<ul class="qcm-options">
<li data-correct="true" data-feedback="Oui, il faut prévoir un article dans les CGU indiquant : en créant un compte dans notre boutique, vous nous autorisez à vous contacter par mail chaque fois qu'une opération exige que vous soyez informé(e)">Quand il crée son compte, c&#8217;est dans les CGU.</li>
<li data-correct="false" data-feedback="Non, c'est indépendant ! La Newsletter sert à diffuser des offres commerciales et non à gérer le service client">Quand il s&#8217;abonne à la newsletter</li>
<li data-correct="false" data-feedback="Non, même dans ce cas, l'autorisation qu'il nous a donné d'utiliser son mail est indispensable.">C&#8217;est implicite. Toute création de compte induit des communications dont certaines sont même obligatoires (facturation par ex.)</li>
</ul>
<p class="qcm-feedback"></p>
<p class="qcm-local-score"></p>
</div>
<style>
.bloc-qcm {
border-left: 4px solid #1e73be;
background: #f5f9ff;
padding: 16px 18px;
margin: 24px 0;
border-radius: 4px;
font-size: 15px;
}
.qcm-options {
list-style: none;
padding: 0;
margin: 12px 0;
}
.qcm-options li {
position: relative;
padding: 10px 12px 10px 42px;
margin-bottom: 8px;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s;
}
.qcm-options li::before {
content: attr(data-letter);
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
font-weight: bold;
color: #1e73be;
}
.qcm-options li:hover {
background: #eef3ff;
}
.qcm-options li.correct {
background: #e6f4ea;
border-color: #188038;
}
.qcm-options li.wrong {
background: #fdecec;
border-color: #dc2626;
}
.qcm-feedback {
margin-top: 12px;
font-weight: bold;
}
.qcm-local-score {
margin-top: 6px;
font-weight: bold;
}
</style>
<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
const options = qcm.querySelectorAll('.qcm-options li');
const feedback = qcm.querySelector('.qcm-feedback');
const localScore = qcm.querySelector('.qcm-local-score');
let answered = false;
options.forEach((option, index) => {
option.dataset.letter = String.fromCharCode(65 + index);
});
options.forEach(option => {
option.addEventListener('click', () => {
if (answered) return;
answered = true;
options.forEach(o => o.classList.remove('correct', 'wrong'));
if (option.dataset.correct === "true") {
option.classList.add('correct');
} else {
option.classList.add('wrong');
}
feedback.textContent = option.dataset.feedback;
let point = option.dataset.correct === "true" ? 1 : 0;
localScore.textContent = "Tu marques " + point + " point";
});
});
});
</script>



<p class="wp-block-paragraph"></p>



<!-- CODE POP-UP COOKIES À COLLER DANS VOTRE SITE -->

        <!-- DÉBUT POP-UP COOKIES -->
        <div id="cp-wrapper" style="position:fixed; bottom:20px; right:20px; z-index:9999; font-family:sans-serif;">
            <button id="cp-btn-show" onclick="document.getElementById('cp-box').style.display='block'; this.style.display='none'" style="background: rgb(51, 51, 51); color: rgb(255, 255, 255); border: none; padding: 12px 20px; border-radius: 30px; cursor: pointer; box-shadow: rgba(0, 0, 0, 0.15) 0px 4px 12px; font-size: 0.9em; display: none; align-items: center; gap: 8px;">
                🍪 Voir les cookies
            </button>
            
            <div id="cp-box" style="width: 380px; background: rgb(255, 255, 255); border-radius: 12px; box-shadow: rgba(0, 0, 0, 0.2) 0px 10px 40px; overflow: hidden; display: block; border: 1px solid rgb(238, 238, 238);">
                <div style="background:#f8f9fa; padding:15px 20px; border-bottom:1px solid #eee; display:flex; justify-content:space-between; align-items:center;">
                    <div style="font-size:1.1em; font-weight:bold; color:#2c3e50; display:flex; align-items:center; gap:10px; margin:0;">
                        🍪 Cookies &#8211; st9ph.fr
                    </div>
                    <button onclick="document.getElementById('cp-box').style.display='none'; document.getElementById('cp-btn-show').style.display='flex'" style="background:none; border:none; font-size:1.5em; color:#aaa; cursor:pointer; line-height:1; width:30px; height:30px;">×</button>
                </div>
                
                <div style="padding:20px;">
                    <p style="font-size:0.9em; color:#666; line-height:1.6; margin-bottom:20px;">Nous utilisons des cookies pour améliorer votre expérience. <a href="https://st9ph.fr/cgu/" style="color:#25B9D7; text-decoration:none; font-weight:600;">En savoir plus</a>.</p>
                    
                    <div style="display:flex; flex-direction:column; gap:8px; margin-bottom:15px;">
                        <button onclick="validateCp('accept')" style="padding:12px; border:none; border-radius:6px; font-weight:bold; cursor:pointer; background:#27ae60; color:#fff; font-size:0.9em;">✅ Tout accepter</button>
                        <button onclick="validateCp('refuse')" style="padding:12px; border:2px solid #dc3545; background:#fff; border-radius:6px; font-weight:bold; cursor:pointer; color:#dc3545; font-size:0.9em;">❌ Tout refuser</button>
                        <button onclick="document.getElementById('cp-panel').style.display='block'" style="padding:12px; border:1px solid #ddd; background:#f8f9fa; border-radius:6px; font-weight:bold; cursor:pointer; color:#6c757d; font-size:0.9em;">⚙️ Personnaliser</button>
                    </div>
                    
                    <div id="cp-panel" style="background: rgb(248, 249, 250); border: 1px solid rgb(238, 238, 238); border-radius: 6px; padding: 15px; display: block;">
                        <div style="display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid #e0e0e0;">
                            <div style="font-size:0.85em;">
                                <div style="font-weight:600; color:#333; margin-bottom:3px;">🔒 Nécessaires</div>
                                <div style="color:#888; font-size:0.8em;">Indispensables au site</div>
                            </div>
                            <label style="display:flex; align-items:center; gap:6px; cursor:pointer;">
                                <input type="checkbox" checked="" disabled="" style="transform:scale(1.1);">
                                <span style="font-size:0.85em; font-weight:600; color:#555;">Actif</span>
                            </label>
                        </div>
                        <div style="display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid #e0e0e0;">
                            <div style="font-size:0.85em;">
                                <div style="font-weight:600; color:#333; margin-bottom:3px;">📊 Statistiques</div>
                                <div style="color:#888; font-size:0.8em;">Analyse d&#8217;audience</div>
                            </div>
                            <label style="display:flex; align-items:center; gap:6px; cursor:pointer;">
                                <input type="checkbox" id="optStats" checked="" style="transform:scale(1.1);">
                                <span style="font-size:0.85em; font-weight:600; color:#555;">Actif</span>
                            </label>
                        </div>
                        <div style="display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid #e0e0e0;">
                            <div style="font-size:0.85em;">
                                <div style="font-weight:600; color:#333; margin-bottom:3px;">🎯 Marketing</div>
                                <div style="color:#888; font-size:0.8em;">Publicités ciblées</div>
                            </div>
                            <label style="display:flex; align-items:center; gap:6px; cursor:pointer;">
                                <input type="checkbox" id="optMark" style="transform:scale(1.1);">
                                <span style="font-size:0.85em; font-weight:600; color:#555;">Actif</span>
                            </label>
                        </div>
                        <div style="display:flex; justify-content:space-between; align-items:center; padding:10px 0;">
                            <div style="font-size:0.85em;">
                                <div style="font-weight:600; color:#333; margin-bottom:3px;">📱 Réseaux Sociaux</div>
                                <div style="color:#888; font-size:0.8em;">Boutons de partage</div>
                            </div>
                            <label style="display:flex; align-items:center; gap:6px; cursor:pointer;">
                                <input type="checkbox" id="optSocial" style="transform:scale(1.1);">
                                <span style="font-size:0.85em; font-weight:600; color:#555;">Actif</span>
                            </label>
                        </div>
                        <button onclick="validateCp('custom')" style="width:100%; margin-top:15px; padding:10px; border:none; background:#27ae60; color:#fff; border-radius:6px; font-weight:bold; cursor:pointer; font-size:0.85em;">Valider mes choix</button>
                    </div>
                </div>
            </div>
        </div>
        
        <div id="cp-result" style="position:fixed; top:20px; right:20px; background:#2c3e50; color:#fff; padding:20px; border-radius:8px; z-index:10000; display:none; max-width:320px; box-shadow:0 10px 30px rgba(0,0,0,0.3); border-left:5px solid #25B9D7;">
            <span onclick="this.parentElement.style.display='none'" style="position:absolute; top:8px; right:12px; cursor:pointer; font-size:1.4em; color:#aaa;">×</span>
            <div style="font-size:1.1em; font-weight:bold; color:#25B9D7; margin-bottom:12px;">✅ Choix enregistrés</div>
            <ul id="cp-result-list" style="margin:0; padding-left:20px; font-size:0.9em; line-height:1.6;"></ul>
        </div>
        
        <script>
        function validateCp(action) {
            document.getElementById('cp-box').style.display='none';
            document.getElementById('cp-btn-show').style.display='flex';
            document.getElementById('cp-panel').style.display='none';
            
            const resDiv = document.getElementById('cp-result');
            const list = document.getElementById('cp-result-list');
            let choices = [];
            
            if (action === 'accept') {
                choices = ['Nécessaires', 'Statistiques', 'Marketing', 'Réseaux Sociaux'];
            } else if (action === 'refuse') {
                choices = ['Nécessaires (uniquement)'];
            } else {
                if(document.getElementById('optStats').checked) choices.push('Statistiques');
                if(document.getElementById('optMark').checked) choices.push('Marketing');
                if(document.getElementById('optSocial').checked) choices.push('Réseaux Sociaux');
                choices.unshift('Nécessaires');
            }
            
            list.innerHTML = choices.map(c => '<li>' + c + '</li>').join('');
            resDiv.style.display='block';
        }
        </script>
        <!-- FIN POP-UP COOKIES -->



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.3 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong>obligations légales et règles à respecter pour les retours produits</strong></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<style>
.ps-product-card { background: #fff; border: 1px solid #e7e7e7; border-radius: 4px; width: 100%; max-width: 300px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; transition: box-shadow 0.3s ease; position: relative; overflow: hidden; text-decoration: none; color: inherit; display: block; }
.ps-product-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.ps-product-image-wrapper { position: relative; width: 100%; padding-top: 100%; overflow: hidden; background: #f5f5f5; }
.ps-product-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.ps-product-card:hover .ps-product-image { transform: scale(1.05); }
.ps-wishlist-icon { position: absolute; top: 10px; right: 10px; background: rgba(255, 255, 255, 0.8); width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; z-index: 2; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.ps-wishlist-icon svg { width: 20px; height: 20px; fill: #7a7a7a; transition: fill 0.2s; }
.ps-wishlist-icon:hover { background: #fff; transform: scale(1.1); }
.ps-wishlist-icon:hover svg { fill: #ff4848; }
.ps-product-rating { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; z-index: 2; background: rgba(0,0,0,0.4); padding: 4px 8px; border-radius: 20px; }
.ps-star { color: #ffd700; font-size: 14px; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }
.ps-product-content { padding: 15px; text-align: center; background: #fff; }
.ps-product-name { font-size: 15px; color: #333; margin: 0 0 10px 0; font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: 42px; }
.ps-product-price { font-size: 18px; font-weight: 700; color: #25B9D7; margin: 0 0 15px 0; }
.ps-product-btn { background-color: #25B9D7; color: #fff; border: none; padding: 10px 15px; border-radius: 4px; font-size: 13px; font-weight: 600; text-transform: uppercase; cursor: pointer; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background 0.2s; text-decoration: none; box-sizing: border-box; }
.ps-product-btn:hover { background-color: #1fa3c0; color: #fff; }
.ps-product-btn svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 768px) { .ps-product-card { max-width: 100%; } }
</style>
<!-- DÉBUT VIGNETTE PRODUIT -->
<a href="https://boutiq.st9ph.fr/34-puzzle-panda.html" target="_blank" class="ps-product-card">
    <div class="ps-product-image-wrapper">
        <img decoding="async" src="https://boutiq.st9ph.fr/77-product_main_2x/puzzle-panda.jpg" alt="Puzzle Panda" class="ps-product-image">
        <div class="ps-wishlist-icon" title="Ajouter aux favoris" onclick="event.preventDefault(); event.stopPropagation(); alert('Fonctionnalité liste d\'envie à connecter.');">
            <svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
        </div>
        <div class="ps-product-rating">
            <span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span>
        </div>
    </div>
    <div class="ps-product-content">
        <h3 class="ps-product-name">Puzzle Panda</h3>
        <div class="ps-product-price">14,50 €</div>
        <div class="ps-product-btn">
            Voir dans la boutique
            <svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
        </div>
    </div>
</a>
<!-- FIN VIGNETTE PRODUIT -->
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">Madame Fonfec à commandé le produit ci-contre (cliquer sur le lien pour le voir dans la boutique). Voilà <strong>la photo</strong> qu&#8217;elle nous envoie <strong>du colis qu&#8217;elle à reçu ! </strong>👇🏻</p>



<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/04/sophie-puzzleabime.jpg" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->
</div>
</div>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph">😡 Inutile de vous dire qu&#8217;elle n&#8217;est pas contente (mais je le dis quand même) !</p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Quelle est le délai à respecter pour madame Fonfec pour que sa demande soit prise en compte ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="Non, ça, c'est pour le délai de rétraction (L. 221-18 du code de la consommation). Là on parle d'un produit qui n'est pas conforme. Elle a 2 ans pour ce manifester mais plus elle tardera, plus la faute de la boutique sera difficile à mettre en cause en cas de litige">se manifester dans les 14 jours</li>
    <li data-correct="false" data-feedback="Non, la conformité d'un produit neuf est garantie 2 ans, quelque soit le produit (hors périssable)">La durée de la garantie du produit (en général, 1 an)</li>
    <li data-correct="true" data-feedback="Oui, la garantie de conformité est de 2 ans, quelque soit le produit (hors périssable)">2 ans à compter de la réception</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<div class="resources-box">
<ul>
  <li>
    🌐
    <span class="resource-text">tout savoir sur la garantie légale de conformité sur le site de Bercy</span>
    <a class="resource-link" href="https://www.economie.gouv.fr/particuliers/mes-droits-conso/bien-consommer/tout-savoir-sur-la-garantie-legale-de-conformite#" target="_blank" rel="noopener">voir</a>
  </li>
<li>
    🌐
    <span class="resource-text">Voir aussi l&#8217;article sur les retours produits, chp1️⃣</span>
    <a class="resource-link" href="https://st9ph.fr/prestashop-cas-de-retours-produits/" target="_blank" rel="noopener">voir</a>
  </li>
</ul>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Faut-il faire revenir ce produit ?</p>

  <ul class="qcm-options">
    <li data-correct="true" data-feedback="Oui, si vous avez également négocié avec lui les frais de retours à sa charge, sinon, ça ne vaut parfois pas la peine.">Oui, c&#8217;est une preuve pour que notre fournisseur nous rembourse</li>
    <li data-correct="false" data-feedback="Ce n'est pas faux mais c'est bien de faire confiance à ses clients à priori, d'autant que c'est un produit à 15 €">Oui, avec l&#8217;IA, on peut truquer les photos comme on veut.</li>
    <li data-correct="true" data-feedback="Oui, si la marchandise est de faible valeur, irréparable, impossible à reconditionner...  ça ne vaut pas le coup.">Non, ça va nous couter de l&#8217;argent pour rien</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<p class="has-medium-font-size wp-block-paragraph">➡️ L&#8217;appel que passe la cliente à notre SAV. 👇🏻</p>



<p class="has-small-font-size wp-block-paragraph"> Il est parfois externalisé au Québec, pour info, parce que cela va s&#8217;entendre. </p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="SAV | retour produit" width="900" height="506" src="https://www.youtube.com/embed/WQ7zix4kJSE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">➡️le mail de remboursement :</p>



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> Boutique Steph</span>
    <span><strong>À :</strong> sfonfec35@gmail.com</span>
    <span><strong>Objet :</strong> Votre SAV n°SC01234 &#8211; retour produit</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour madame Sophie FONFEC,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Vous avez rencontré une difficulté avec votre commande CD098765 concernant le produit REF : <br>PANDA-PZZL1 et nous avons ouvert un ticket de suivi n°SC01234 pour gérer cet incident.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">Nous avons convenu ensemble par téléphone de procéder au remboursement de ce produit sous la forme d&#8217;un avoir.<br></div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://boutiq.st9ph.fr/panier?action=show" class="cta-button" target="_blank">PUZZLE-SOPHIE</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">Entrez le code <b>PUZZLE-SOPHIE</b> dans la zone &#8216;J&#8217;ai un code réduction&#8217; lors de vos prochains achats. Ce bon est valable sur tous nos produits, jusqu&#8217;à épuisement du solde, pour une période de deux ans, conformément à l&#8217;article L. 221-24 du code de la consommation. Un second mail vous parviendra pour les modalités de retour de votre produit défectueux.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">Nous restons disponibles en cas de difficulté avec cette procédure et nous renouvelons toutes nos excuses pour ce désagrément.</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Sheila Chenille<br>Votre conseillère commerciale</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Vous recevez ce mail en tant que client(e) de la boutique st9ph</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &#8220;mon compte&#8221; (accès &#038; modification) ou contactez-nous > sujet &#8220;mon compte&#8221; pour supprimer votre compte</div>
        <div class="footer-section">Ne répondez pas à ce mail, il serait perdu. Utilisez le lien contactez nous en rappelant la référence de commande CD098765 </div>
        <div class="footer-section">boutiq.st9ph.fr &#8211;  Avril 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<p class="wp-block-paragraph">➡️ Le mail de retour :</p>



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> Boutique Steph</span>
    <span><strong>À :</strong> sfonfec35@gmail.com</span>
    <span><strong>Objet :</strong> Votre SAV n°SC01234 &#8211; retour produit</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour madame Sophie FONFEC,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Vous avez rencontré une difficulté avec votre commande CD098765 concernant le produit REF : <br>PANDA-PZZL1 et nous avons ouvert un ticket de suivi n°SC01234 pour gérer cet incident.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">Nous avons bien reçu votre mail avec la photo témoin de l&#8217;état du produit et ne pouvons que constater avec vous qu&#8217;il a été détérioré lors de son entreposage ou lors de sa livraison. Nous allons bien sûr procéder à son remboursement et au retour de ce produit entièrement à notre charge.<br></div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://st9ph.fr/wp-content/uploads/2026/04/bon2retour.pdf" class="cta-button" target="_blank">Télécharger le bon de retour</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">Cliquez sur le bouton ci-dessus pour télécharger votre bon de retour à imprimer et à coller sur le colis à nous retourner (idéalement, celui que nous vous avions envoyé). Merci de suivre les instructions en marge de l&#8217;étiquette.<br>Vous serez informée de son remboursement  par un second mail.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">Nous restons disponibles en cas de difficulté avec cette procédure et nous renouvelons toutes nos excuses pour ce désagrément.</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Sheila Chenille<br>Votre conseillère commerciale</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Vous recevez ce mail en tant que client(e) de la boutique st9ph</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &#8220;mon compte&#8221; (accès &#038; modification) ou contactez-nous > sujet &#8220;mon compte&#8221; pour supprimer votre compte</div>
        <div class="footer-section">Ne répondez pas à ce mail, il serait perdu. Utilisez le lien contactez nous en rappelant la référence de commande CD098765 </div>
        <div class="footer-section">boutiq.st9ph.fr &#8211;  Avril 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> Quel sera le Customer Effort Score une fois le produit renvoyé ?</p>

  <ul class="qcm-options">
    <li data-correct="false" data-feedback="l'achat, la réception, l'envoi du mail avec la photo, la consultation de la réponse du SAV, la préparation du colis, se rendre à la poste, ça fait 6">5</li>
    <li data-correct="true" data-feedback="l'achat, la réception, l'envoi du mail avec la photo, la consultation de la réponse du SAV, la préparation du colis, se rendre à la poste, ça fait 6">6</li>
    <li data-correct="false" data-feedback="l'achat, la réception, l'envoi du mail avec la photo, la consultation de la réponse du SAV, la préparation du colis, se rendre à la poste, ça fait 6">7</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
</script>



<script>
document.addEventListener("DOMContentLoaded", function () {

  let scoreTotal = 0;
  let questionsRepondues = 0;

  const blocs = document.querySelectorAll(".bloc-qcm");

  blocs.forEach(qcm => {

    const options = qcm.querySelectorAll(".qcm-options li");
    const feedback = qcm.querySelector(".qcm-feedback");
    let answered = false;

    options.forEach(option => {
      option.addEventListener("click", function () {

        if (answered) return;
        answered = true;

        questionsRepondues++;

        const isCorrect = option.dataset.correct === "true";

        if (isCorrect) {
          scoreTotal++;
          this.classList.add("correct");
        } else {
          this.classList.add("wrong");
        }

        feedback.textContent = option.dataset.feedback +" | Ton score : " + scoreTotal + " / " + questionsRepondues;

        const global = document.getElementById("score-global");
        if (global) {
          global.textContent =
            "Score total : " + scoreTotal + " / " + questionsRepondues;
        }

      });
    });

  });

});
</script>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://st9ph.fr/%f0%9f%8e%93tp-legalite-de-laction-digitale/">🎓TP &#8211; Légalité de l&#8217;action digitale</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://st9ph.fr/%f0%9f%8e%93tp-legalite-de-laction-digitale/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://st9ph.fr/wp-content/uploads/2026/01/SVI-St9ph-leadP.mp3" length="4931478" type="audio/mpeg" />

		<post-id xmlns="com-wordpress:feed-additions:1">36691</post-id>	</item>
		<item>
		<title>E5A &#124; Sujet mars 2026</title>
		<link>https://st9ph.fr/e5a-sujet-mars-2026/</link>
					<comments>https://st9ph.fr/e5a-sujet-mars-2026/#respond</comments>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Tue, 24 Mar 2026 11:21:22 +0000</pubDate>
				<category><![CDATA[😎 privé]]></category>
		<guid isPermaLink="false">https://st9ph.fr/?p=36370</guid>

					<description><![CDATA[<p>🔒 ce contenu est réservé à mes étudiants Merci de votre compréhension Déverrouiller ❌ Code incorrect. Réessayez. BREVET DE TECHNICIEN SUPERIEUR Négociation et Digitalisation de la Relation Client E5 – Relation client à distance et digitalisation 📁Dossier 1 &#124;⏺️ Omnicanal 🔹13 pts Q1 observation de l&#8217;implantation digitale Quelle analyse faites-vous de la présence digitale des ... <a title="E5A &#124; Sujet mars 2026" class="read-more" href="https://st9ph.fr/e5a-sujet-mars-2026/" aria-label="En savoir plus sur E5A &#124; Sujet mars 2026">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/e5a-sujet-mars-2026/">E5A | Sujet mars 2026</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID1">
    <p><strong>🔒 ce contenu est réservé à mes étudiants</strong></p>
    <p class="tp-wall-msg">Merci de votre compréhension</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID1' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID1" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID1' PAR TON ID ET 'F9rn@nd' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID1', 'F9rn@nd')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID1" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="267" height="189" src="https://st9ph.fr/wp-content/uploads/2026/03/image-65.png" alt="" class="wp-image-36373"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="has-text-align-center wp-block-paragraph">BREVET DE TECHNICIEN SUPERIEUR</p>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph"><strong>Négociation et Digitalisation de la Relation Client</strong></p>



<p class="has-text-align-center wp-block-paragraph"><strong>E5</strong> – Relation client à distance et digitalisation</p>
</div>
</div>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://st9ph.fr/wp-content/uploads/2026/03/NDRC1A-Grp1-Sujet-E5A-BTS_blanc_BigFernand.pdf" type="application/pdf" style="width:100%;height:300px" aria-label="Contenu embarqué NDRC1A-Grp1-Sujet-E5A-BTS_blanc_BigFernand."></object><a id="wp-block-file--media-fde1dc1d-0db1-4ca0-ba4d-dea0592ff8fd" href="https://st9ph.fr/wp-content/uploads/2026/03/NDRC1A-Grp1-Sujet-E5A-BTS_blanc_BigFernand.pdf">NDRC1A-Grp1-Sujet-E5A-BTS_blanc_BigFernand</a><a href="https://st9ph.fr/wp-content/uploads/2026/03/NDRC1A-Grp1-Sujet-E5A-BTS_blanc_BigFernand.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-fde1dc1d-0db1-4ca0-ba4d-dea0592ff8fd">Télécharger</a></div>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">📁Dossier 1 |⏺️ <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Omnicanal</mark>  🔹<sup><sub>13 pts</sub></sup></h2>



<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q1</div>
  <div class="chapter-content">
    <h3>observation de l&#8217;implantation digitale</h3>
    <p class="chapter-subtitle"> Quelle analyse faites-vous de la présence digitale des concurrents de Big Fernand ? 🔹8pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>l&#8217;analyse est structurée (par canaux, par annexes, en lecture +/ -, &#8230;)</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>6 touch points sont identifiés et exposés clairement (sans redite ou confusion)</td><td>0,0</td><td>1,0</td><td>2.0</td><td>3,0</td></tr><tr><td>Des explication sur l&#8217;importance et des points de vigilance sont donnés</td><td>0,0</td><td>1.0</td><td>2,0</td><td>3,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-bd0ddd5f-4907-4d90-a884-beda3e70de63" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-bd0ddd5f-4907-4d90-a884-beda3e70de63" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-bd0ddd5f-4907-4d90-a884-beda3e70de63" style="color: #000000; ">Corrigé 1-1</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-bd0ddd5f-4907-4d90-a884-beda3e70de63">

<p class="wp-block-paragraph"></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>Item</td><td>Points forts</td><td>Axes d’amélioration</td></tr><tr><td>Google my business Fiche signalétique qui permet de visualiser l’emplacement (donc de faire un itinéraire, les horaires d’ouverture, le lien vers le site web,  les coordonnées, les avis Google d’une SVP</td><td>Exemple de l’Atelier du Burger : Avis nombreux et favorables, Horaires d’ouverture et possibilité de livraison Lien vers le partenaire uber Eats</td><td>Mac Donald ne figure pas dans le top 3 sur le mot clé hamburger</td></tr><tr><td>SEO Ensemble des stratégies qui permettent la visibilité sur Internet</td><td>Burger Street apparait en 1<sup>ere </sup>page. D’ailleurs, la meta description et de bonne longueur et inclut les mots clés de requête cible « burgers à Caen » Selon FEVAD 40 % des internautes français ne vont jamais en page 2 d’une recherche</td><td>Les autres concurrents n’apparaissent pas en page 1 et sont devancés par Burger Street , trip Adivisor et Caen Ma Ville par manque de maillage affiliate</td></tr><tr><td>SEA Référencement payant basé sur le Pay Per Click et permettant de passer devant les concurrents mieux référencés en SEO</td><td>Niche à conquérir</td><td>Aucun ne fait de SEA pour passer devant les concurrents</td></tr><tr><td>Affiliations : système de liens provenant de sites extérieurs (non sponsorisés)</td><td>Trip Advisor montre sur le podium trois de nos concurrents Atelier du Burger, Holy Moly et le café de Caen Sur la page on parle de nous de l’atelier est en lien avec l’IUT avec Lilyavia et avec Caen tu rencontres Paris</td><td>Les autres n’ont pas saisi cette opportunité, même Burger Street.</td></tr><tr><td>Click and collect (outil de cross canal) permet de commander sans faire la queue ou même sans rendre en SVP (queue busting)</td><td>Les grands leaders comme burger king et mac Donald le pratiquent depuis toujours</td><td>Holy Moly ne le pratique pas encore (mais le met en place)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"></p>

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q2</div>
  <div class="chapter-content">
    <h3>collecte de données</h3>
    <p class="chapter-subtitle">Les gérants veulent ouvrir une franchise à Caen. Comment peuvent-ils se constituer une base de prospection afin de recruter un restaurateur susceptible d’adopter l’enseigne ? 
🔹5pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>le préalable de la légalité de la collecte des données est abordée</td><td>0,0</td><td>&#8212;</td><td>&#8212;</td><td>1,0</td></tr><tr><td>les moyens et méthodes sont variés et adaptés au B2B</td><td>0,0</td><td>0,6</td><td>1.4</td><td>2,0</td></tr><tr><td>Des outils digitaux sont proposés et expliqués</td><td>0,0</td><td>0.6</td><td>1,4</td><td>2,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-5d58f521-3f68-4392-9eab-42bec448483b" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-5d58f521-3f68-4392-9eab-42bec448483b" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-5d58f521-3f68-4392-9eab-42bec448483b" style="color: #000000; ">Corrigé 1-2 </p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-5d58f521-3f68-4392-9eab-42bec448483b">

<p class="wp-block-paragraph">Précautions juridiques : Juste l’Opt-Out dans notre communication (les données sont publiques)</p>



<ul class="wp-block-list">
<li>Scraping (logiciel d’extraction de données ciblées depuis google maps par exemple) – solution à moins de 40 € / mois</li>



<li>RS : Linked In est un réseau spécialisé pro</li>



<li>Compte premium à moins de 30 € par mois permet d’obtenir les coordonnées complètes pré-segmentées (que les restaurateurs de la région)</li>



<li>Achat de fichier : prestaire de CRC compter 5 € la fiche qualifiée (donc, c’est assez cher)</li>



<li>Pages jaunes ou autre annuaire spécialisé</li>



<li>réseautage (foire de Caen, salon de la gastronomie &#8230;)</li>
</ul>

</div>
		</div>
</div>


<h2 class="wp-block-heading">📁Dossier 2 | 🏷️<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Animation RC</mark> 🔹<sup><sub>17pts</sub></sup></h2>



<p class="wp-block-paragraph"></p>



<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q1</div>
  <div class="chapter-content">
    <h3>Com digitale</h3>
    <p class="chapter-subtitle"> Rédigez un mail type a destination des restaurateurs que vous avez ciblés🔹7pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>la réponse est organisé avec header &#8211; body- footer</td><td>0,0</td><td>0,3</td><td>0,7</td><td>1,0</td></tr><tr><td>l&#8217;objet appelle à la curiosité, le FOMO, l&#8217;appat du gain ou la personnalisation sans mot  spam, sans tronquée (5 mots au plus)</td><td>0,0</td><td>0,3</td><td>0,7</td><td>1,0</td></tr><tr><td>les phases sont respectées</td><td>0,0</td><td>0.3</td><td>0,7</td><td>1,0</td></tr><tr><td>Un CTA est proposé, central, attirant et l&#8217;atterrissage est précisé</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>le message respecte la tonalité de l&#8217;annexe 5 sans la recopier</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-79a84f6a-f429-4fe1-a86c-59420e18138f" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-79a84f6a-f429-4fe1-a86c-59420e18138f" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-79a84f6a-f429-4fe1-a86c-59420e18138f" style="color: #000000; ">Corrigé 2-1</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-79a84f6a-f429-4fe1-a86c-59420e18138f">

<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> Big Fernand</span>
    <span><strong>À :</strong> restaurateur ciblé</span>
    <span><strong>Objet :</strong> 🍔 Devenez Fernanchisé !</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/03/image-65.png" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour [prénom],</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Il parait qu&#8217;on vient chez vous avec le sourire, parce qu&#8217;on y mange bien mais aussi parce que vous êtes sympa. Quand on est de passage, vous savez orienter vos clients vers les trésors caennais à ne pas manquer, donner le sourire, et pas seulement pour la qualité de vos plats ?</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">Vous avez le profil pour devenir notre nouveau franchisé dans la cité de Guillaume et on aimerait en discuter avec vous. Il ne vous manque que le béret et la chemise à carreaux.</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://bigfernand.com/devenez-franchises-big-fernand/" class="cta-button" target="_blank">Allez ! Je suis curieux</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">Un petit clic pour vous &#8230; un grand bond pour votre activité ! Laissez nous vous convaincre qu&#8217;il y&#8217;a un avant et un après Fernand en prenant rendez-vous pour en discuter.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">Une bien belle journée avec ou sans béret !</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">[prénom] [ Nom]<br>Team Big Fernand</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section"></div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section"></div>
        <div class="footer-section">utiliser le formulaire de contact du site pour toute information sur BIG GROUP SAS</div>
        <div class="footer-section">Siège social : 118-120, rue de Rivoli – 75001 Paris &#8211; mars 2026</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q2</div>
  <div class="chapter-content">
    <h3>légalité de l&#8217;action</h3>
    <p class="chapter-subtitle">  Faites apparaitre dans cette communication les obligations à respecter pour la collecte de données en conformité avec la législation en vigueur. 🔹2pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>TS</th></tr></thead><tbody><tr><td>La réponse se focalise sur le  B2B (opt-out &#8211; contact et datage)</td><td>0,0</td><td>1,0</td></tr><tr><td>en cas d&#8217;erreur (B2C) le footer est complet (rappel opt-in, opt-out, rappel loi, droit d&#8217;accès DPO, contact et datage)</td><td>0,0</td><td>1,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-a531c5b7-ceff-4fbe-8104-8038684afcb8" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-a531c5b7-ceff-4fbe-8104-8038684afcb8" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-a531c5b7-ceff-4fbe-8104-8038684afcb8" style="color: #000000; ">corrigé 2-2</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-a531c5b7-ceff-4fbe-8104-8038684afcb8">

<p class="has-text-align-center wp-block-paragraph">Voir le footer de 2-1 👆🏻 vs ce qu&#8217;il ne fallait pas faire ci-dessous 👇🏻</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="654" height="251" src="https://st9ph.fr/wp-content/uploads/2026/03/image-66.png" alt="" class="wp-image-36376" srcset="https://st9ph.fr/wp-content/uploads/2026/03/image-66.png 654w, https://st9ph.fr/wp-content/uploads/2026/03/image-66-300x115.png 300w" sizes="auto, (max-width: 654px) 100vw, 654px" /></figure>
</div>


<ul class="wp-block-list">
<li>✅ Toléré en B2B : rappel de la loi sans &#8220;vous disposez d&#8217;un droit d&#8217;accès &#8230;&#8221;, DPO</li>



<li>➡️ Obligatoire : opt-out, datage, origine (siège ou site en .fr)</li>



<li>❌ opt-in proscrit (pas d&#8217;autorisation préalable requise)</li>
</ul>

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q3</div>
  <div class="chapter-content">
    <h3>Apport digital à l&#8217;action commerciale</h3>
    <p class="chapter-subtitle">3- Faites le tour des pratiques innovantes et des alternatives au Burger dans la restauration rapide afin d’établir une fiche des innovations digitales, des produits et services
incontournables que Big Fernand devrait adopter ou renforcer pour devenir leader sur son segment. 
🔹8pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>La réponse est structurée en parties cohérentes, l&#8217;approche est logique et non répétitive (pas de redites ou boucles sur une même thématique par manque d&#8217;idées)</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>La culture commerciale et digitale du candidat va au delà des éléments en annexes (idées issues de son expérience consommateur et de sa veille digitale)</td><td>0,0</td><td>0,6</td><td>1.4</td><td>2,0</td></tr><tr><td>les innovations ciblent bien le fast food et des produits alternatifs au burger</td><td>0,0</td><td>0.6</td><td>1,4</td><td>2,0</td></tr><tr><td>Les éléments sont justifiés (intérêt souligné et pas juste énumérés)</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-aea819c7-cfbe-482a-95d2-b6768ba78fbb" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-aea819c7-cfbe-482a-95d2-b6768ba78fbb" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-aea819c7-cfbe-482a-95d2-b6768ba78fbb" style="color: #000000; ">Corrigé 2-3</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-aea819c7-cfbe-482a-95d2-b6768ba78fbb">

<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>pratique / alternative</th><th>caractère innovant</th><th>mesure / impact</th></tr></thead><tbody><tr><td>Pratiques alimentaires de la génération Z : manger plus sain, le bio, les végétariens</td><td>communiquer sur le local, le frais (ingrédients) la variété (salades d&#8217;accompagnement)</td><td>en afiliate : mobiliser les blogs sur le conso en proposant des interviews, voir l&#8217;engagement sur nos posts sur les RS (thématiques + types de contenus) =&gt; crée du maillage pour de l&#8217;atterrissage sur nos canaux</td></tr><tr><td>modes de consommation : les restaurants 100% à distance, les restaurants immersifs</td><td>inclure la livraison à domicile, s&#8217;implanter et fidéliser sur un marché à la base plutôt orienté pizzas et tacos<br>proposer des ambiances, des animations, des expériences</td><td>les dark kitchens (cuisines sans salle) réduire les couts de fonctionnement tout en répondant à un service plébiscité<br>pour l&#8217;immersion, le &#8220;gouter à l&#8217;aveugle&#8221; est très à la mode, très &#8220;instagramable &#8220;, va créer de l&#8217;engagement. On peut aussi faire des ambainces Western, proposer des jeux </td></tr><tr><td>des outils &#8220;reversifs&#8221; comme les bornes de commande, les appls mobiles &#8230;</td><td>Créer du reverse, du selfcare, c&#8217;est donner plus de maitrise aux clients, plus de confort, cela modernise l&#8217;image de l&#8217;enseigne</td><td>les problématiques déceptives de &#8220;plus de place&#8221; quand on peut savoir sur l&#8217;appli, les queues pour commander, ce sera du passé. Appréciable aussi les pushs par notification<br>Les &#8220;Ghost Restaurants&#8221; ou restaurants virtuels peuvent palier l&#8217;implantation territoriale de Big Fernand sur ce mode de conso en attendant l&#8217;ouverture d&#8217;une franchise</td></tr></tbody></table></figure>

</div>
		</div>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">✍🏻Réflexion commerciale Structurée </h2>



<blockquote class="wp-block-quote has-medium-font-size is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>En quoi le digital peut-il améliorer le commerce d’un restaurateur ?</em></p>
</blockquote>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>La réponse est structurée en intro (reformulation, annonce de plan) &#8211; 2 parties &#8211; conclusion</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>chaque partie propose au moins 3 éléments pertinents (sujet et plan)</td><td>0,0</td><td>0,6</td><td>1.4</td><td>2,0</td></tr><tr><td>Chaque élément est argumenté afin de démontrer son utilité</td><td>0,0</td><td>0.6</td><td>1,4</td><td>2,0</td></tr><tr><td>Chaque élément est exemplarisé (cas ou enseigne)</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>la RCS démontre des savoirs et du vocabulaire en marketing digital</td><td>0,0</td><td>0,6</td><td>1.4</td><td>2.0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-939fed05-d3de-4d43-9d1c-89928a651a82" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-939fed05-d3de-4d43-9d1c-89928a651a82" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-939fed05-d3de-4d43-9d1c-89928a651a82" style="color: #000000; ">corrigé RCS</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-939fed05-d3de-4d43-9d1c-89928a651a82">

<p class="has-contrast-2-color has-text-color has-link-color wp-elements-2ed102d1552207f38744192363c71bb0 wp-block-paragraph">(Introduction avec reformulation et annonce de plan : )</p>



<p class="wp-block-paragraph">Aujourd’hui, la restauration ne peut plus se contenter de son canal historique de vente : la Surface de Vente Physique (SVP) et doit s’appuyer sur les canaux et outils digitaux pour exister parmi ses concurrents. Voyons quel apport le digital peut apporter en termes de conquête puis de fidélisation</p>



<p class="has-contrast-2-color has-text-color has-link-color wp-elements-b4fee3cb818ee422f51735c321a66dfe wp-block-paragraph">(première partie : la conquête)</p>



<p class="wp-block-paragraph">Acquérir de nouveaux clients, c’est s’adapter à leur phase de curiosité. Elle est digitalisée. La recherche de restaurants se fait en ligne et les résultats de recherche sont des sites.</p>



<p class="wp-block-paragraph">La création d’une fiche Google My Business (Google truste 90 % des consommateurs) permet d’obtenir ce site numérique avec un drapeau de géolocalisation, les horaires d’ouverture et le recueil d’avis clients (le Reverse marketing visant a faire parler les consommateurs de leurs expérience clients et le Call To Action le plus performant). Des enseignes comme Mc Donald sont souvent demandées en itinéraires par des consommateurs nomades qui veulent retrouver &#8220;leur restaurant&#8221; partout où ils vont.</p>



<p class="wp-block-paragraph">La présence sur les réseaux sociaux ciblés où se divertit votre audience est le moyen le plus sur de vous faire connaitre auprès d’eux en leurs proposant des bons plans , en leurs faisant découvrir votre univers et vos valeurs. Proposez des recettes, des animations musicales et des reportages afin de créer du partage. Réagissez aux commentaires également pour créer du lien. Bennie, par exemple, communique sur sa culture écoresponsable avec beaucoup de succès.</p>



<p class="wp-block-paragraph">Favorisez les commentaires de vos clients pour en conquérir de nouveaux en leurs proposant en QR codes sur les tables, des notifications sur appli afin d&#8217;accroitre votre visibilité sur les plateformes qui en font le palmarès. C&#8217;est aussi fort et plus facile que d&#8217;être sur une 1ere SERP. Tripadvisor et Google Avis placent l&#8217;Atelier Du Burger numéro 1 de la satisfaction client à Caen, lui assurant une visibilité royale.</p>



<p class="has-contrast-2-color has-text-color has-link-color wp-elements-44314aa01263e545aec9c833729cd6a7 wp-block-paragraph">(2<sup>nde</sup> partie : fidélisation)</p>



<p class="wp-block-paragraph">Créer de l&#8217;engagement, c&#8217;est donner des outils ludiques et facilitants mais aussi collecter la Data pour mieux cibler.</p>



<p class="wp-block-paragraph">Proposez un programme de fidélité sur applis mobiles en créant des jeux concours (réductions à la première réservation, boisson offert …). Subway, par exemple, mise sur les &#8220;subcoins&#8221;, un outil de cashback, certes, mais amélioré par la possibilité de marquer des &#8220;subpoints&#8221; on jouant sur l&#8217;appli. </p>



<p class="wp-block-paragraph">La collecte de ces données permettra aussi d’affiner votre connaissance de votre audience (les moments préférés, les bons plans qui marchent le mieux) et d’affiner votre Buyer Persona (et, donc, votre communication auprès de lui). L&#8217;appli mobile va vous y aider si vous donnez des avantages à vos clients à l&#8217;installer.  Burger King l&#8217;a bien compris avec son slogan &#8220;soyez traité comme un King&#8221; en proposant des avantages exclusifs (tarifs, cashback &#8230;) via son appli.</p>



<p class="wp-block-paragraph">Les réseaux sociaux vous aideront à maintenir votre audience. Faites s’abonner vos clients en échange d’avantages, donnez leurs du contenu dans lequel ils se reconnaitront (reportages de vos animations à thèmes) et qu’ils pourront plus facilement partager. Réagissez aux commentaires pour faire exister plus encore vos publications. Pique-Poule, par exemple, sait canaliser son audience sur le &#8220;label rouge&#8221; de sa viande de poulet.</p>



<p class="wp-block-paragraph"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-contrast-2-color">(Conclusion)</mark> L’intérêt de recourir au digital en restauration est donc indéniable. Que ce soit pour conquérir en proposant des Hot Points sur les plateformes et les cartes numériques ou en fidélisation pour afficher vos bons plans et vos animations, vous vous affirmerez devant vos concurrents si vous savez faire vivre vos outils afin de créer du flux et du maillage qui parle de votre restaurant.</p>



<p class="has-small-font-size wp-block-paragraph"><em>41 lignes</em></p>

</div>
		</div>
</div>


<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://st9ph.fr/e5a-sujet-mars-2026/">E5A | Sujet mars 2026</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://st9ph.fr/e5a-sujet-mars-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">36370</post-id>	</item>
		<item>
		<title>E5A &#124; Sujet Avril 2026</title>
		<link>https://st9ph.fr/e5a-sujet-avril-2026/</link>
					<comments>https://st9ph.fr/e5a-sujet-avril-2026/#respond</comments>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 09:53:29 +0000</pubDate>
				<category><![CDATA[😎 privé]]></category>
		<guid isPermaLink="false">https://st9ph.fr/?p=36864</guid>

					<description><![CDATA[<p>🔒 Contenu verrouillé Entrez le code pour continuer. Déverrouiller ❌ Code incorrect. Réessayez. BREVET DE TECHNICIEN SUPERIEUR Négociation et Digitalisation de la Relation Client E5 – Relation client à distance et digitalisation 📁Dossier 1 &#124;⏺️ Omnicanal 🔹15 pts Q1.1 Buyer persona Vérifier à l’aide d’une méthode de scoring que les 15-24 ans sont bien une ... <a title="E5A &#124; Sujet Avril 2026" class="read-more" href="https://st9ph.fr/e5a-sujet-avril-2026/" aria-label="En savoir plus sur E5A &#124; Sujet Avril 2026">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/e5a-sujet-avril-2026/">E5A | Sujet Avril 2026</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<!-- DÉBUT DU MUR DE FLOU - VERSION MULTI-BLOCS -->
<style>
    .tp-wall-container {
        margin: 40px 0;
        background: #f9f9f9;
        border: 2px dashed #1E73BE;
        border-radius: 8px;
        padding: 25px;
        text-align: center;
        position: relative;
        z-index: 10;
        clear: both; /* Important pour éviter les conflits de flottants */
    }
    .tp-wall-msg { font-size: 14px; color: #555; margin-bottom: 15px; }
    .tp-wall-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
    .tp-wall-form input {
        padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; width: 200px;
    }
    .tp-wall-form button {
        padding: 10px 20px; background: #1E73BE; color: white; border: none;
        border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.2s;
    }
    .tp-wall-form button:hover { background: #155a96; }
    
    .tp-blurred-content {
        filter: blur(10px) !important;
        -webkit-filter: blur(10px) !important;
        opacity: 0.2 !important;
        pointer-events: none !important;
        user-select: none !important;
        transition: all 0.8s ease !important;
        overflow: hidden;
    }
    .tp-error-msg {
        display: none; color: red; font-weight: bold; margin-top: 10px;
    }
</style>

<!-- LE BLOC DE VERROUILLAGE -->
<!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT UNIQUE (ex: phase1, phase2...) -->
<div class="tp-wall-container" id="tp-wall-box-ID1">
    <p><strong>🔒 Contenu verrouillé</strong></p>
    <p class="tp-wall-msg">Entrez le code pour continuer.</p>
    
    <div class="tp-wall-form">
        <!-- ⚠️ REMPLACE 'ID1' PAR LE MÊME IDENTIFIANT QUE CI-DESSUS -->
        <input type="password" id="tp-pass-input-ID1" placeholder="Mot de passe..." autocomplete="off">
        
        <!-- ⚠️ REMPLACE 'ID1' PAR TON ID ET 'M@rkst9in' PAR TON MOT DE PASSE -->
        <button type="button" onclick="checkPass('ID1', 'M@rkst9in')">Déverrouiller</button>
    </div>
    
    <!-- ⚠️ REMPLACE 'ID1' PAR TON IDENTIFIANT -->
    <p id="tp-error-display-ID1" class="tp-error-msg">❌ Code incorrect. Réessayez.</p>
</div>

<!-- LE SCRIPT (À METTRE UNE SEULE FOIS PAR PAGE, OU DANS CHAQUE BLOC, IL EST IDÉMPOTENT) -->
<!-- Note: Si tu mets ce script dans chaque bloc, c'est ok, il ne s'exécutera qu'une fois correctement grâce aux IDs uniques -->
<script>
function checkPass(id, pass) {
    var inputVal = document.getElementById('tp-pass-input-' + id).value.trim();
    var errorBox = document.getElementById('tp-error-display-' + id);
    var wallBox = document.getElementById('tp-wall-box-' + id);
    
    if (!wallBox) {
        console.error("Erreur: Bloc introuvable pour l'ID " + id);
        return;
    }

    if (inputVal === pass) {
        // SUCCÈS
        wallBox.style.display = 'none';
        if(errorBox) errorBox.style.display = 'none';
        
        // On défloute UNIQUEMENT les éléments suivants CE bloc précis
        var next = wallBox.nextElementSibling;
        while (next) {
            // On s'arrête si on tombe sur un AUTRE bloc de verrouillage (pour ne pas déflouter le verrou suivant !)
            // C'est la clé pour avoir plusieurs phases.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break; 
            }
            
            if (next.nodeType === 1) { 
                next.classList.remove('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    } else {
        // ÉCHEC
        if(errorBox) errorBox.style.display = 'block';
        var inputField = document.getElementById('tp-pass-input-' + id);
        inputField.style.border = '2px solid red';
        setTimeout(() => { inputField.style.border = '1px solid #ccc'; }, 2000);
    }
}

// Initialisation au chargement : Gère TOUS les blocs de la page
document.addEventListener("DOMContentLoaded", function() {
    var allBoxes = document.querySelectorAll('.tp-wall-container');
    
    allBoxes.forEach(function(box) {
        var next = box.nextElementSibling;
        while (next) {
            // CRITICAL FIX: On arrête de flouter si on rencontre un AUTRE bloc de verrouillage.
            // Ainsi, le Bloc 1 floute le Contenu 1, mais s'arrête avant le Bloc 2.
            // Le Bloc 2 s'occupera de flouter le Contenu 2.
            if (next.classList && next.classList.contains('tp-wall-container')) {
                break;
            }
            
            if (next.nodeType === 1 && next.style.display !== 'none') {
                next.classList.add('tp-blurred-content');
            }
            next = next.nextElementSibling;
        }
    });
});
</script>
<!-- FIN DU MUR DE FLOU -->



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="225" height="225" src="https://st9ph.fr/wp-content/uploads/2026/04/image-5.png" alt="" class="wp-image-36866" srcset="https://st9ph.fr/wp-content/uploads/2026/04/image-5.png 225w, https://st9ph.fr/wp-content/uploads/2026/04/image-5-150x150.png 150w" sizes="auto, (max-width: 225px) 100vw, 225px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="has-text-align-center wp-block-paragraph">BREVET DE TECHNICIEN SUPERIEUR</p>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph"><strong>Négociation et Digitalisation de la Relation Client</strong></p>



<p class="has-text-align-center wp-block-paragraph"><strong>E5</strong> – Relation client à distance et digitalisation</p>
</div>
</div>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://st9ph.fr/wp-content/uploads/2026/04/BTSBLANC2A-E5A-2604-markstein.pdf" type="application/pdf" style="width:100%;height:300px" aria-label="Contenu embarqué BTSBLANC2A-E5A-2604-markstein."></object><a id="wp-block-file--media-a72775ac-b38d-47ef-a75c-542678067aeb" href="https://st9ph.fr/wp-content/uploads/2026/04/BTSBLANC2A-E5A-2604-markstein.pdf">BTSBLANC2A-E5A-2604-markstein</a><a href="https://st9ph.fr/wp-content/uploads/2026/04/BTSBLANC2A-E5A-2604-markstein.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-a72775ac-b38d-47ef-a75c-542678067aeb">Télécharger</a></div>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">📁Dossier 1 |⏺️ <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Omnicanal</mark> 🔹<sup><sub>15 pts</sub></sup></h2>



<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q1.1</div>
  <div class="chapter-content">
    <h3>Buyer persona</h3>
    <p class="chapter-subtitle"> Vérifier à l’aide d’une méthode de scoring que les 15-24 ans sont bien une cible à réactiver. 
 🔹4pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>l&#8217;analyse propose une méthodologie, une démarche explicative</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>la cible 15-24 est démontrée par un scoring cohérent</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-53797773-2d89-4eb9-9b01-b3edee2904af" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-53797773-2d89-4eb9-9b01-b3edee2904af" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-53797773-2d89-4eb9-9b01-b3edee2904af" style="color: #000000; ">Corrigé 1-1</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-53797773-2d89-4eb9-9b01-b3edee2904af">

<p class="wp-block-paragraph">Pour vérifier si la cible des 15-24 ans est à réactiver, nous appliquons le barème de scoring fourni dans l&#8217;Annexe 2 aux clients de cette tranche d&#8217;âge présents dans l&#8217;échantillon (Clients n°1, n°5 et n°7).</p>



<p class="wp-block-paragraph">Barème (Annexe 2) :</p>



<ul class="wp-block-list">
<li>Jours depuis dernier achat : ≥ 15 jours = 0 pt ; 10-14 jours = 3 pts ; ≤ 10 jours = 5 pts.</li>



<li>Nombre de transactions : &lt; 10 = 0 pt ; 10-19 = 4 pts ; ≥ 20 = 6 pts.</li>



<li>Montant dépensé : &lt; 400 € = 0 pt ; 400-799 € = 3 pts ; ≥ 800 € = 5 pts.</li>
</ul>



<p class="wp-block-paragraph">Interprétation des scores :</p>



<ul class="wp-block-list">
<li>Score ≥ 15 : Très bon client</li>



<li>9 ≤ Score ≤ 14 : Bon client</li>



<li>5 &lt; Score &lt; 9 : Client à fidéliser</li>



<li>Score ≤ 5 : Client à réactiver</li>
</ul>



<p class="wp-block-paragraph">Calculs pour la cible 15-24 ans :</p>



<ul class="wp-block-list">
<li>Client n°1 (18 ans) :
<ul class="wp-block-list">
<li>Jours : 20 (≥ 15) → 0 pt</li>



<li>Transactions : 5 (&lt; 10) → 0 pt</li>



<li>Montant : 250 € (&lt; 400) → 0 pt</li>



<li>Score Total : 0 → <em>Client à réactiver</em></li>
</ul>
</li>



<li>Client n°5 (20 ans) :
<ul class="wp-block-list">
<li>Jours : 30 (≥ 15) → 0 pt</li>



<li>Transactions : 7 (&lt; 10) → 0 pt</li>



<li>Montant : 430 € (400-799) → 3 pts</li>



<li>Score Total : 3 → <em>Client à réactiver</em></li>
</ul>
</li>



<li>Client n°7 (23 ans) :
<ul class="wp-block-list">
<li>Jours : 5 (≤ 10) → 5 pts</li>



<li>Transactions : 8 (&lt; 10) → 0 pt</li>



<li>Montant : 240 € (&lt; 400) → 0 pt</li>



<li>Score Total : 5 → <em>Client à réactiver</em> (limite basse de la catégorie &#8220;à fidéliser&#8221;, mais considéré comme à réactiver selon la grille stricte ≤ 5).</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">Conclusion : Les trois clients de la tranche 15-24 ans présents dans l&#8217;échantillon ont un score inférieur ou égal à 5. Ils sont donc tous classés « Clients à réactiver ». Cela confirme, sur la base de cet échantillon, que les 15-24 ans constituent bien une cible prioritaire à réactiver, ce qui corrobore les dires de Thomas CRON dans l&#8217;Annexe 1 concernant la perte de clientèle jeune.</p>



<p class="wp-block-paragraph"></p>

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q1.2</div>
  <div class="chapter-content">
    <h3>Production digitale</h3>
    <p class="chapter-subtitle"> Rédiger le post de lancement du compte Instagram.
🔹4pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>les codes d&#8217;une publication RS sont respectés (avec CTA et image suggérée)</td><td>0,0</td><td>0,6</td><td>1.4</td><td>2,0</td></tr><tr><td>le produit est valorisé dans l&#8217;argumentaire et le contenu est adapté au buyer</td><td>0,0</td><td>0.6</td><td>1,4</td><td>2,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-9949d4eb-0e69-4c1c-8150-23169bfb0551" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-9949d4eb-0e69-4c1c-8150-23169bfb0551" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-9949d4eb-0e69-4c1c-8150-23169bfb0551" style="color: #000000; ">Corrigé 1-2 </p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-9949d4eb-0e69-4c1c-8150-23169bfb0551">

<p class="wp-block-paragraph">Visuel suggéré : Une photo dynamique d&#8217;un jeune en luge sur rail ou en VTT avec un panorama des Vosges en arrière-plan, aux couleurs vives.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="546" height="536" src="https://st9ph.fr/wp-content/uploads/2026/04/image-7.png" alt="" class="wp-image-36870" srcset="https://st9ph.fr/wp-content/uploads/2026/04/image-7.png 546w, https://st9ph.fr/wp-content/uploads/2026/04/image-7-300x295.png 300w" sizes="auto, (max-width: 546px) 100vw, 546px" /></figure>
</div>


<p class="wp-block-paragraph">Légende du post :</p>



<p class="wp-block-paragraph">🎿 Le Markstein se réinvente pour vous ! 🏂</p>



<p class="wp-block-paragraph">Salut les riders ! 👋 Vous pensiez que Le Markstein, c&#8217;était uniquement du ski classique ? Détrompez-vous ! Située au cœur des Vosges, notre station authentique devient votre nouveau QG pour des sensations fortes toute l&#8217;année. 🌲🚀</p>



<p class="wp-block-paragraph">Au programme : 🛷 La luge sur rail la plus longue de la région (plus d&#8217;1 km de glisse !). 🚴 Des traces mythiques du Tour de France pour les VTTistes. 🪂 Le plus grand site de vol libre de l&#8217;Est.</p>



<p class="wp-block-paragraph">On mise sur le durable et le fun pour construire la montagne de demain avec vous. 🌍💚</p>



<p class="wp-block-paragraph">👉 Activez les notifications 🔔 pour ne rien rater des prochaines sessions et des offres spéciales jeunes qui arrivent très vite !</p>



<p class="has-small-font-size wp-block-paragraph">(N&#8217;oubliez pas les emojis et les #tags, le jury adore 🙂</p>



<p class="wp-block-paragraph">#LeMarkstein #Vosges #JeunesRiders #LugeSurRail #VTT #EcoResponsable #NouvelleSaison #GrandEst #SkiFun #Nature</p>

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q1.3</div>
  <div class="chapter-content">
    <h3>choix des outils digitaux</h3>
    <p class="chapter-subtitle"> Justifier la mise en place d’une application mobile pour la station. 

🔹3pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>3 arguments pertinents sont justifiés</td><td>0,0</td><td>0,6</td><td>1.4</td><td>2,0</td></tr><tr><td>Les annexes sont utilisées pour justifier les arguments</td><td>0,0</td><td>0.3</td><td>0,7</td><td>1,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-9d2fc4f8-6630-4653-acfd-f94be8a769e4" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-9d2fc4f8-6630-4653-acfd-f94be8a769e4" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-9d2fc4f8-6630-4653-acfd-f94be8a769e4" style="color: #000000; ">Corrigé 1-3 </p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-9d2fc4f8-6630-4653-acfd-f94be8a769e4">

<p class="wp-block-paragraph">La création d&#8217;une application mobile pour Le Markstein est stratégique pour plusieurs raisons, étayées par l&#8217;Annexe 3 et le contexte du dossier :</p>



<p class="wp-block-paragraph">Fidélisation et Engagement : L&#8217;application permet de garder un contact permanent avec le client (même hors station), de cumuler des points de fidélité et de pousser des contenus personnalisés, essentiels pour réactiver la cible jeune.</p>



<p class="wp-block-paragraph">Adéquation avec la cible jeune : 94 % des 15-29 ans possèdent un smartphone et les applications représentent 89 % du temps passé sur mobile en France. Pour toucher cette cible prioritaire identifiée dans le Dossier 1, l&#8217;application est le canal naturel.</p>



<p class="wp-block-paragraph">Taux de conversion supérieur : Selon France Num (cité dans l&#8217;Annexe 3), le taux de conversion sur application est 7 fois plus élevé que sur un site mobile. Cela favorisera la vente de forfaits et de services annexes (location, restauration).</p>



<p class="wp-block-paragraph">Expérience utilisateur enrichie : Contrairement à un site web statique, une application permet d&#8217;offrir des services en temps réel (météo, état des pistes, webcams) et d&#8217;interagir directement avec le client sur place (géolocalisation, notifications push), répondant au besoin d&#8217;outils digitaux adéquats mentionné par Thomas CRON (Annexe 1).</p>

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q1.4</div>
  <div class="chapter-content">
    <h3>montrer la valeur ajoutée de l&#8217;outil digital</h3>
    <p class="chapter-subtitle"> Proposer les principales fonctionnalités qui pourraient figurer dans l’application afin d’améliorer d’une part l’expérience des utilisateurs et d’autre part leur engagement. 

🔹4pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>la réponse est enveloppée en respect des deux phases (organisée)</td><td>0,0</td><td>0,3</td><td>0,7</td><td>1,0</td></tr><tr><td>les fonctionnalités apportent une réelle valeur ajoutée (sur la base de 3 + 3)</td><td>0,0</td><td>0.9</td><td>2,1</td><td>3,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-d5a1f1dd-b037-4f37-98b4-26ec5e39c97c" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-d5a1f1dd-b037-4f37-98b4-26ec5e39c97c" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-d5a1f1dd-b037-4f37-98b4-26ec5e39c97c" style="color: #000000; ">Corrigé 1-4</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-d5a1f1dd-b037-4f37-98b4-26ec5e39c97c">

<p class="wp-block-paragraph">Pour améliorer l&#8217;expérience utilisateur et l&#8217;engagement, voici les fonctionnalités clés à intégrer :</p>



<p class="wp-block-paragraph">Pour l&#8217;expérience utilisateur (Facilité &amp; Service) :</p>



<ul class="wp-block-list">
<li>Tableau de bord temps réel : Météo locale, enneigement, état d&#8217;ouverture des pistes et des remontées mécaniques.</li>



<li>Achat et stockage des forfaits : Intégration du pass @Mark’PASS avec QR code directement dans l&#8217;appli pour éviter les files d&#8217;attente.</li>



<li>Carte interactive géolocalisée : Positionnement de l&#8217;utilisateur sur les pistes, localisation des restaurants, points de location et secours.</li>



<li>Calcul d&#8217;itinéraire : Pour les randonneurs et VTTistes en été.</li>
</ul>



<p class="wp-block-paragraph">Pour l&#8217;engagement (Interaction &amp; Fidélisation) :</p>



<ul class="wp-block-list">
<li>Module de réservation : Réservation directe des cours de ski, des restaurants et des activités été (luge, parapente). </li>



<li>Programme de fidélité gamifié : Cumul de points à chaque descente ou achat, déblocage de badges (ex: &#8220;Roi de la luge&#8221;, &#8220;Expert VTT&#8221;), échange contre des réductions. </li>



<li>Partage social intégré : Bouton pour partager facilement ses statistiques de journée (dénivelé, kilomètres) ou des photos sur Instagram/WhatsApp avec un filtre dédié Le Markstein. </li>



<li>Notifications push personnalisées : Alertes &#8220;poudreuse&#8221;, offres flash de dernière minute, ou rappels pour renouveler un forfait.</li>
</ul>

</div>
		</div>
</div>


<h2 class="wp-block-heading">📁Dossier 2 | 🏷️<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">Animation RC</mark> 🔹<sup><sub>15pts</sub></sup></h2>



<p class="wp-block-paragraph"></p>



<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q2.1</div>
  <div class="chapter-content">
    <h3>Culture économique</h3>
    <p class="chapter-subtitle"> Présenter les externalités négatives des stations de montagne et les solutions pour y remédier. 🔹3pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>la réponse est structurée en Externalités et solutions, se réfère aux annexes</td><td>0,0</td><td>0,3</td><td>0,7</td><td>1,0</td></tr><tr><td>3 E + 3S parmi celles-ci ou autres pertinentes, chiffrées est un + </td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-2f49a449-66a2-42e9-ae0f-cad053f23d30" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-2f49a449-66a2-42e9-ae0f-cad053f23d30" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-2f49a449-66a2-42e9-ae0f-cad053f23d30" style="color: #000000; ">Corrigé 2-1</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-2f49a449-66a2-42e9-ae0f-cad053f23d30">

<p class="wp-block-paragraph">Externalités négatives des stations de montagne (Contexte général &amp; Annexe 4) :</p>



<ul class="wp-block-list">
<li>Impact climatique : Manque d&#8217;enneigement naturel dû au réchauffement, recours énergivore à la neige de culture.</li>



<li>Pollution : Émissions de CO2 liées aux transports des visiteurs et à l&#8217;usage des dameuses et engins de chantier.</li>



<li>Gestion des ressources : Surconsommation d&#8217;eau pour la neige artificielle au détriment de l&#8217;agriculture locale et de la biodiversité.</li>



<li>Déchets : Augmentation significative des déchets liés à la fréquentation touristique.</li>
</ul>



<p class="wp-block-paragraph">Solutions mises en œuvre (Basé sur les Annexes 4 et 5) :</p>



<ul class="wp-block-list">
<li>Mobilité douce : Développement des transports en commun (ex: Chamonix) et incitation aux déplacements non motorisés sur le domaine (ex: Châtel).</li>



<li>Réduction de l&#8217;empreinte carbone : Éco-conduite des dameuses, utilisation de matériaux durables pour les constructions (ex: Avoriaz), plan climat territorial.</li>



<li>Gestion raisonnée des ressources : Optimisation de la production de neige, gestion de l&#8217;eau pour préserver l&#8217;agriculture (engagement spécifique du Markstein), tri sélectif des déchets.</li>



<li>Préservation de la biodiversité : Protection des espaces naturels et maintien des activités pastorales traditionnelles.</li>
</ul>



<p class="wp-block-paragraph">Le Markstein s&#8217;inscrit dans cette démarche via les « Domaines Skiables de France » avec 16 éco-engagements visant le « zéro émission » d&#8217;ici 2037 (Annexe 5)</p>

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q2.2</div>
  <div class="chapter-content">
    <h3>Production digitale</h3>
    <p class="chapter-subtitle">   Réaliser un projet de contenu éditorial pour les mois de novembre, décembre, mars et avril des articles à paraître sur le site qui mettront en avant les activités de la station et l’écoresponsabilité. 🔹6pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>La réponse précise les règles de la charte éditoriale et les applique</td><td>0,0</td><td>0,3</td><td>0,7</td><td>1,0</td></tr><tr><td>3 canevas de réponse avec adaptation selon temporalité, titres engageants </td><td>0,0</td><td>0,9</td><td>2.1</td><td>3,0</td></tr><tr><td>Les contenus sont variés et adaptés à la temporalité</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-1ebb5628-bdf7-432e-ba11-4d130371e0ab" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-1ebb5628-bdf7-432e-ba11-4d130371e0ab" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-1ebb5628-bdf7-432e-ba11-4d130371e0ab" style="color: #000000; ">corrigé 2-2</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-1ebb5628-bdf7-432e-ba11-4d130371e0ab">

<p class="wp-block-paragraph">Conformément à la Charte éditoriale (Annexe 7) (ton positif, vouvoiement, phrases courtes, pas d&#8217;abréviations, &#8220;Nous&#8221;) et à la trame de l&#8217;Annexe 6.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Date de l’article 1</th><th class="has-text-align-left" data-align="left">Novembre </th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">Titre de l’article</td><td class="has-text-align-left" data-align="left">Le Markstein : Une saison d&#8217;hiver 100 % engagée pour la nature</td></tr><tr><td class="has-text-align-left" data-align="left">Objectifs de l’article</td><td class="has-text-align-left" data-align="left">Annoncer l&#8217;ouverture de la saison, mettre en avant les engagements écoresponsables de la station et attirer une clientèle sensible à l&#8217;environnement.</td></tr><tr><td class="has-text-align-left" data-align="left">Idées de contenus</td><td class="has-text-align-left" data-align="left">Présentation des 16 éco-engagements signés avec &#8220;Domaines Skiables de France&#8221;. Focus sur l&#8217;éco-conduite des dameuses et la gestion de l&#8217;eau pour les agriculteurs locaux. Invitation à découvrir les pistes dans le respect de la biodiversité des Vosges. Ton accueillant : &#8220;Nous vous accueillons dans une station qui protège son territoire.&#8221;</td></tr></tbody></table></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Date de l’article 2</th><th class="has-text-align-left" data-align="left">Décembre </th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">Titre de l’article</td><td class="has-text-align-left" data-align="left">Vivez des sensations fortes tout en préservant nos sommets</td></tr><tr><td class="has-text-align-left" data-align="left">Objectifs de l’article</td><td class="has-text-align-left" data-align="left">Promouvoir les activités phares (luge, ski) tout en rappelant l&#8217;aspect durable. Fidéliser les jeunes et les familles.</td></tr><tr><td class="has-text-align-left" data-align="left">Idées de contenus</td><td class="has-text-align-left" data-align="left">Zoom sur la luge sur rail et les pistes de ski. Explication des mesures d&#8217;économie d&#8217;électricité sur les remontées mécaniques. Encouragement à utiliser les transports en commun pour venir. Mise en avant du caractère &#8220;authentique et à taille humaine&#8221; de la station.</td></tr></tbody></table></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Date de l’article 3</th><th class="has-text-align-left" data-align="left">Mars </th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">Titre de l’article</td><td class="has-text-align-left" data-align="left">Le printemps arrive : préparez vos VTT sur les traces du Tour de France</td></tr><tr><td class="has-text-align-left" data-align="left">Objectifs de l’article</td><td class="has-text-align-left" data-align="left">Assurer la transition hiver/été, promouvoir le tourisme quatre saisons et les activités cyclistes.</td></tr><tr><td class="has-text-align-left" data-align="left">Idées de contenus</td><td class="has-text-align-left" data-align="left">Rappel des étapes du Tour de France (2014, 2019, 2023) passées par Le Markstein. Présentation des itinéraires VTT accessibles. Focus sur le maintien des activités pastorales et l&#8217;élevage local comme gage de tradition et de durabilité.</td></tr></tbody></table></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Date de l’article 4</th><th class="has-text-align-left" data-align="left">Avril </th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">Titre de l’article</td><td class="has-text-align-left" data-align="left">Envolez-vous : Le plus grand site de vol libre de l&#8217;Est vous attend</td></tr><tr><td class="has-text-align-left" data-align="left">Objectifs de l’article</td><td class="has-text-align-left" data-align="left">Promouvoir l&#8217;activité estivale majeure (parapente) et l&#8217;image de station de loisirs complète.</td></tr><tr><td class="has-text-align-left" data-align="left">Idées de contenus</td><td class="has-text-align-left" data-align="left">Présentation du site de parapente et des panoramas exceptionnels. Rappel de la politique de gestion des déchets sur l&#8217;ensemble du domaine pour garder un site propre. Invitation à venir profiter du calme et de la nature en famille.</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"></p>

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q2.3</div>
  <div class="chapter-content">
    <h3>Apport digital à l&#8217;action commerciale</h3>
    <p class="chapter-subtitle">Analyser la réponse de la station à l’avis Google Maps et rédiger une nouvelle proposition 🔹2pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>Le candidat expose en préambule les défauts de la communication donnée en annexe</td><td>0,0</td><td>0,3</td><td>0,7</td><td>1,0</td></tr><tr><td>La réponse est empathique et renforce l&#8217;image de marque</td><td>0,0</td><td>0,3</td><td>0,7</td><td>1,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-905aa55c-bb23-41c1-93d0-68e3c71857b6" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-905aa55c-bb23-41c1-93d0-68e3c71857b6" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-905aa55c-bb23-41c1-93d0-68e3c71857b6" style="color: #000000; ">Corrigé 2-3</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-905aa55c-bb23-41c1-93d0-68e3c71857b6">

<p class="wp-block-paragraph">Analyse de la réponse actuelle (Annexe 8) : La réponse actuelle est contre-productive et non conforme à la charte éditoriale (Annexe 7).</p>



<ul class="wp-block-list">
<li>Ton inadapté : Le ton est défensif (&#8220;nous sommes étonnés&#8221;), voire accusateur envers le client (&#8220;si vous avez besoin&#8230;&#8221;). Il n&#8217;est pas &#8220;positif et accueillant&#8221;.</li>



<li>Négation du ressenti : La station nie le problème rencontré par le client au lieu de l&#8217;écouter.</li>



<li>Manque d&#8217;empathie : Aucune excuse pour la frustration ressentie, même si le fait reproché est contesté.</li>



<li>Risque d&#8217;image : Cela confirme l&#8217;impression d&#8217;un service client froid et peu à l&#8217;écoute, ce qui nuit à l&#8217;e-réputation.</li>
</ul>



<p class="wp-block-paragraph">Nouvelle proposition de réponse (Conforme à la charte : vouvoiement, &#8220;Nous&#8221;, ton positif et accueillant) :</p>



<p class="wp-block-paragraph">L&#8217;équipe du Markstein&#8221;</p>



<p class="wp-block-paragraph">&#8220;Bonjour,</p>



<p class="wp-block-paragraph">Nous sommes sincèrement désolés d&#8217;apprendre que votre expérience n&#8217;a pas été à la hauteur de vos attentes. Chez Le Markstein, nous mettons un point d&#8217;honneur à vous accueillir dans un esprit familial et convivial.</p>



<p class="wp-block-paragraph">Vos remarques concernant la difficulté à nous joindre et l&#8217;accueil téléphonique nous interpellent directement. Nous allons mener une enquête interne immédiate pour comprendre ce dysfonctionnement et améliorer notre réactivité. Notre objectif est de vous conseiller au mieux pour que vous profitiez pleinement de notre domaine.</p>



<p class="wp-block-paragraph">Nous vous invitons à nous contacter directement par message privé avec vos coordonnées afin que nous puissions échanger de vive voix et trouver une solution.</p>



<p class="wp-block-paragraph">Nous espérons avoir l&#8217;opportunité de vous revoir bientôt pour vous offrir l&#8217;expérience authentique que nous défendons.</p>

</div>
		</div>
</div>


<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 2.5rem 0;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  min-width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.2rem 1.5rem;
}

.chapter-content h3 {
  margin: 0;
  font-size: 1.5rem;
}

.chapter-subtitle {
  margin-top: 0.3rem;
  color: #555;
  font-size: 0.95rem;
}
</style>

<div class="chapter-title">
  <div class="chapter-number">Q2.4</div>
  <div class="chapter-content">
    <h3>Analyse KPI</h3>
    <p class="chapter-subtitle"> Analyser et commenter le Net Promoter Score (NPS).🔹4pts/40</p>
  </div>
</div>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>la répartition promoteur / neutres /  détracteurs est exacte et le NPS OK</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>l&#8217;analyse des KPI est pertinente et suggère des points de vigilance</td><td>0,0</td><td>0.6</td><td>1,4</td><td>2,0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-3d9c9ab3-e1bf-4423-ad83-47884da2067d" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-3d9c9ab3-e1bf-4423-ad83-47884da2067d" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-3d9c9ab3-e1bf-4423-ad83-47884da2067d" style="color: #000000; ">Corrigé 2-4</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-3d9c9ab3-e1bf-4423-ad83-47884da2067d">

<p class="wp-block-paragraph">Le NPS se calcule en soustrayant le pourcentage de &#8220;Détracteurs&#8221; (notes 0 à 6) du pourcentage de &#8220;Promoteurs&#8221; (notes 9 et 10). Les &#8220;Passifs&#8221; (notes 7 et 8) ne sont pas comptés dans le calcul mais indiquent une satisfaction neutre.</p>



<p class="wp-block-paragraph">Données de l&#8217;enquête (Annexe 9) &#8211; Total : 100 skieurs :</p>



<ul class="wp-block-list">
<li>Détracteurs (0 à 6) : 2 + 2 + 0 + 1 + 2 + 4 + 4 = 15 personnes (15 %)</li>



<li>Passifs (7 et 8) : 10 + 5 = 15 personnes (15 %)</li>



<li>Promoteurs (9 et 10) : 40 + 30 = 70 personnes (70 %)</li>
</ul>



<p class="wp-block-paragraph">Calcul du NPS : NPS = % Promoteurs &#8211; % Détracteurs NPS = 70 &#8211; 15 = +55</p>



<p class="wp-block-paragraph">Commentaire : </p>



<ul class="wp-block-list">
<li>Un NPS de +55 est un score excellent. 
<ul class="wp-block-list">
<li>Il indique que la grande majorité des clients (70 %) sont très satisfaits et recommandent activement la station. </li>



<li>La base de clients fidèles est solide. </li>
</ul>
</li>



<li>Cependant, l&#8217;existence de 15 % de détracteurs (comme illustré par l&#8217;avis Google Maps négatif) montre des failles ponctuelles :
<ul class="wp-block-list">
<li>dans l&#8217;accueil ou la communication qui, si elles ne sont pas corrigées, peuvent nuire à l&#8217;image globale, surtout auprès des nouveaux clients qui consultent les avis en ligne.</li>
</ul>
</li>



<li> La station doit capitaliser sur ses promoteurs tout en traitant rapidement les causes de mécontentement des détracteurs pour viser un score encore plus élevé.</li>
</ul>

</div>
		</div>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">✍🏻Réflexion commerciale Structurée <sup>🔹10 pts / 40</sup></h2>



<blockquote class="wp-block-quote has-medium-font-size is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>En quoi les outils digitaux impactent-ils l’image de l’organisation ?</em></p>
</blockquote>



<figure class="wp-block-table"><table><thead><tr><th>Critère d&#8217;évaluation</th><th>TI</th><th>-I</th><th>-S</th><th>TS</th></tr></thead><tbody><tr><td>La réponse est structurée en intro (reformulation, annonce de plan) &#8211; 2 parties &#8211; conclusion</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>chaque partie propose au moins 3 éléments pertinents (sujet et plan)</td><td>0,0</td><td>0,6</td><td>1.4</td><td>2,0</td></tr><tr><td>Chaque élément est argumenté afin de démontrer son utilité</td><td>0,0</td><td>0.6</td><td>1,4</td><td>2,0</td></tr><tr><td>Chaque élément est exemplarisé (cas ou enseigne)</td><td>0,0</td><td>0,6</td><td>1,4</td><td>2,0</td></tr><tr><td>la RCS démontre des savoirs et du vocabulaire en marketing digital</td><td>0,0</td><td>0,6</td><td>1.4</td><td>2.0</td></tr></tbody></table></figure>


<div class="wp-block-ub-content-toggle wp-block-ub-content-toggle-block" id="ub-content-toggle-block-65bc6954-efdb-45c7-8031-e53248eef629" data-mobilecollapse="false" data-desktopcollapse="true" data-preventcollapse="false" data-showonlyone="false">
<div class="wp-block-ub-content-toggle-accordion" style="border-color: var(--contrast-3); " id="ub-content-toggle-panel-block-">
			<div class="wp-block-ub-content-toggle-accordion-title-wrap" style="background-color: var(--contrast-3);" aria-controls="ub-content-toggle-panel-0-65bc6954-efdb-45c7-8031-e53248eef629" tabindex="0">
			<p class="wp-block-ub-content-toggle-accordion-title ub-content-toggle-title-65bc6954-efdb-45c7-8031-e53248eef629" style="color: #000000; ">corrigé RCS</p>
			<div class="wp-block-ub-content-toggle-accordion-toggle-wrap right" style="color: #000000;"><span class="wp-block-ub-content-toggle-accordion-state-indicator wp-block-ub-chevron-down"></span></div>
		</div>
			<div role="region" aria-expanded="false" class="wp-block-ub-content-toggle-accordion-content-wrap ub-hide" id="ub-content-toggle-panel-0-65bc6954-efdb-45c7-8031-e53248eef629">

<p class="wp-block-paragraph">Les outils digitaux transforment profondément l&#8217;image des organisations en agissant sur deux leviers majeurs : la construction maîtrisée de la marque et la gestion d&#8217;une réputation désormais transparente et volatile.</p>



<p class="has-text-align-center has-contrast-2-color has-text-color has-link-color has-small-font-size wp-elements-a31c71b73cd7184f137b60d51b6b2541 wp-block-paragraph">(passer deux lignes)</p>



<p class="wp-block-paragraph">Dans une première logique de construction et de maîtrise de l&#8217;image, le digital offre un canal direct pour valoriser ses engagements.</p>



<p class="wp-block-paragraph"> Premièrement, il permet une segmentation précise du discours pour toucher des cibles spécifiques avec des messages sur-mesure. Cela est crucial pour rajeunir une audience, comme le fait la station Le Markstein en lançant un compte Instagram dédié aux jeunes pour promouvoir ses activités de luge et de VTT, délaissant ainsi une image trop familiale ou vieillissante. </p>



<p class="wp-block-paragraph">Deuxièmement, les outils mobiles fidélisent par l&#8217;expérience utilisateur en intégrant services et gamification. L&#8217;application mobile, dont le taux de conversion est sept fois supérieur au web mobile, permet à des enseignes de transformer un client passif en utilisateur engagé via des programmes de points ou des défis, renforçant ainsi l&#8217;attachement à la marque au quotidien. </p>



<p class="wp-block-paragraph">Troisièmement, le contenu éditorial en ligne positionne l&#8217;organisation comme experte et responsable. En publiant régulièrement des articles sur ses actions concrètes, comme les éco-engagements &#8220;Domaines Skiables de France&#8221;, une structure ancre sa légitimité environnementale dans l&#8217;esprit du public, bien au-delà de la simple publicité commerciale.</p>



<p class="has-text-align-center has-contrast-2-color has-text-color has-link-color has-small-font-size wp-elements-a31c71b73cd7184f137b60d51b6b2541 wp-block-paragraph">(passer deux lignes)</p>



<p class="wp-block-paragraph">Cependant, cette maîtrise se heurte à une transparence immédiate et une réputation volatile que le digital amplifie. </p>



<p class="wp-block-paragraph">D&#8217;abord, les plateformes d&#8217;avis exposent instantanément les défaillances opérationnelles à tous. Un seul avis négatif sur Google Maps, comme celui critiquant l&#8217;accueil téléphonique du Markstein, devient visible mondialement et peut dissuader autant de clients que dix recommandations positives, rendant la moindre faille critique. </p>



<p class="wp-block-paragraph">Ensuite, la viralité des réseaux sociaux accélère les crises d&#8217;image. Une mauvaise expérience partagée en story ou un tweet mécontent peut se propager en quelques heures, obligeant les enseignes à une réactivité extrême, car le silence est souvent interprété comme un mépris, aggravant la situation initiale. </p>



<p class="wp-block-paragraph">Enfin, la réponse en ligne devient un acte public de gestion de crise. La manière dont une organisation répond à une critique définit son image actuelle plus que l&#8217;incident lui-même ; une réponse défensive nuit durablement, tandis qu&#8217;une réponse empathique et constructive, comme le suggère la charte éditoriale, peut transformer un détracteur en témoin de la qualité de service.</p>



<p class="has-text-align-center has-contrast-2-color has-text-color has-link-color has-small-font-size wp-elements-a31c71b73cd7184f137b60d51b6b2541 wp-block-paragraph">(passer deux lignes)</p>



<p class="wp-block-paragraph">En somme, le digital est un accélérateur d&#8217;image qui exige une cohérence totale entre les promesses diffusées et la réalité vécue par le client.</p>

</div>
		</div>
</div>


<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://st9ph.fr/e5a-sujet-avril-2026/">E5A | Sujet Avril 2026</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://st9ph.fr/e5a-sujet-avril-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">36864</post-id>	</item>
		<item>
		<title>Prestashop &#124; OP Com dans la Eshop</title>
		<link>https://st9ph.fr/prestashop-op-com-dans-la-eshop/</link>
					<comments>https://st9ph.fr/prestashop-op-com-dans-la-eshop/#respond</comments>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 17:27:24 +0000</pubDate>
				<category><![CDATA[PrestaShop]]></category>
		<category><![CDATA[🛠️ création de sites]]></category>
		<category><![CDATA[🌐 public]]></category>
		<category><![CDATA[opérations commerciales prestashop]]></category>
		<category><![CDATA[pack produit prestashop]]></category>
		<category><![CDATA[réduction déclinaison prestashop]]></category>
		<category><![CDATA[réduction marque prestashop]]></category>
		<category><![CDATA[réduction produit prestashop]]></category>
		<guid isPermaLink="false">https://st9ph.fr/?p=34861</guid>

					<description><![CDATA[<p>PrestaShop &#124; 💥OP Com dans la Eshop ➡️ Que ce soit pour &#8230; &#8230; il faudra créer des évènements dans votre boutique en ligne avec des Call To actions qui pousseront à la commande 🛒. En complément de cet article (plus global) : Part d&#8217;IA /5 dans cet article voyez le menu flottant (à droite) ... <a title="Prestashop &#124; OP Com dans la Eshop" class="read-more" href="https://st9ph.fr/prestashop-op-com-dans-la-eshop/" aria-label="En savoir plus sur Prestashop &#124; OP Com dans la Eshop">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/prestashop-op-com-dans-la-eshop/">Prestashop | OP Com dans la Eshop</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">


<p class="has-medium-font-size wp-block-paragraph"><strong>PrestaShop</strong></p>



<p class="has-accent-color has-text-color has-link-color has-x-large-font-size wp-elements-9024c7da84bf9d975ea2c3f458c234da wp-block-paragraph"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-contrast-color">|</mark> 💥OP Com dans la Eshop</p>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="has-text-align-right has-medium-font-size wp-block-paragraph">➡️ Que ce soit pour &#8230;</p>



<ul class="wp-block-list has-medium-font-size">
<li>vider les stocks 📦,</li>



<li> mettre en avant certains produits 🎈,</li>



<li> attirer de nouveaux prospects🪝 </li>



<li>ou ramener vos clients dormants 😴, </li>
</ul>



<p class="has-text-align-right has-medium-font-size wp-block-paragraph">&#8230; il faudra créer des évènements dans votre boutique en ligne avec des Call To actions qui pousseront à la commande 🛒.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph"><strong>En complément de cet article</strong> (plus global) :</p>



			<div class="wp-block-uagb-post-grid uagb-post-grid  uagb-post__image-position-top uagb-post__image-enabled uagb-block-70d172dc     uagb-post__items uagb-post__columns-1 is-grid uagb-post__columns-tablet-2 uagb-post__columns-mobile-1 uagb-post__equal-height" data-total="1" style="">

												<article class="uagb-post__inner-wrap">								<div class='uagb-post__image'>
									<a href="https://st9ph.fr/%f0%9f%9b%92e-commerce-operations-commerciales-en-digital/" target="_self" rel="bookmark noopener noreferrer" class='uagb-image-ratio-inherit'><img loading="lazy" decoding="async" width="724" height="186" src="https://st9ph.fr/wp-content/uploads/2026/01/image-23.png" class="attachment-large size-large" alt="" srcset="https://st9ph.fr/wp-content/uploads/2026/01/image-23.png 724w, https://st9ph.fr/wp-content/uploads/2026/01/image-23-300x77.png 300w" sizes="auto, (max-width: 724px) 100vw, 724px" />					</a>
							</div>
						<h4 class="uagb-post__title uagb-post__text">
				<a href="https://st9ph.fr/%f0%9f%9b%92e-commerce-operations-commerciales-en-digital/" target="_self" rel="bookmark noopener noreferrer">🛒E-Commerce | Opérations commerciales en digital</a>
			</h4>
						<div class='uagb-post__text uagb-post-grid-byline'>
								<time datetime="2026-01-04T18:45:48+01:00" class="uagb-post__date">
				<span class="dashicons-calendar dashicons"></span>					4 janvier 2026				</time>
						</div>
						<div class="uagb-post__text uagb-post__cta wp-block-button">
				<a class="wp-block-button__link uagb-text-link" style="" href="https://st9ph.fr/%f0%9f%9b%92e-commerce-operations-commerciales-en-digital/" target="_self" rel="bookmark noopener noreferrer">Voir</a>
			</div>
			
									</article>
											</div>
			</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="233" height="211" src="https://st9ph.fr/wp-content/uploads/2025/12/IA.png" alt="" class="wp-image-31733" style="width:79px;height:auto"/></figure>
</div>


<p class="has-small-font-size wp-block-paragraph">Part d&#8217;IA /5 dans cet article</p>



<p class="wp-block-paragraph"></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<div class="wp-block-columns has-base-2-background-color has-background is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-3f6c374a-959b-4682-93ac-9818c952cacc">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-0"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-1"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-2"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-3"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-4"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-3f6c374a-959b-4682-93ac-9818c952cacc-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">♨️ Sources</div>
		</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-2244d65d-8865-47c6-bd28-4ed5ebba335e">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-0"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-1"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-2"><rect height="150" width="150" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-3"><rect height="150" width="75" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-4"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-2244d65d-8865-47c6-bd28-4ed5ebba335e-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">🖼️ Images</div>
		</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div style="gap: 20px" class="ub-star-rating ub-star-rating-text-top ub-star-rating-align-left wp-block-ub-star-rating-block" id="ub-star-rating-181718a6-76f5-46c5-b8e1-f1b33d7efc20">
			<div class="ub-star-outer-container" style="justify-content: flex-start; ">
				<div class="ub-star-inner-container"><div class=""><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-0"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star0" mask="url(#ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-0)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-1"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star1" mask="url(#ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-1)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-2"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star2" mask="url(#ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-2)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-3"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star3" mask="url(#ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-3)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg><svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewbox="0 0 150 150">
			<defs><mask id="ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-4"><rect height="150" width="0" y="0" x="0" fill="#fff"></rect></mask></defs> <path fill="none" stroke-width="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path><path class="star" id="star4" mask="url(#ub_star_rating_filter-181718a6-76f5-46c5-b8e1-f1b33d7efc20-4)" fill="#ffb901" strokewidth="2.5" d="m0.75,56.89914l56.02207,0l17.31126,-56.14914l17.31126,56.14914l56.02206,0l-45.32273,34.70168l17.31215,56.14914l-45.32274,-34.70262l-45.32274,34.70262l17.31215,-56.14914l-45.32274,-34.70168z" stroke="#ffb901"></path>
			</svg></div></div>
			</div><div class="ub-review-text" style="text-align: left; ">✒️Contenu</div>
		</div></div>
</div>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="51" height="53" src="https://st9ph.fr/wp-content/uploads/2025/12/image-153.png" alt="" class="wp-image-33778" style="width:33px;height:auto"/></figure>



<p class="has-small-font-size wp-block-paragraph">v<em>oyez le menu flottant (à droite) pour les sources, un glossaire et la méthodologie </em></p>
</div>
</div>
</div>



<div class="wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-d05cb3ef wp-block-group-is-layout-flex">
<p class="wp-block-paragraph">⏱️Temps de lecture :</p>


<div class="wp-elements-2660b74cdd79da9184a09a62f3b8f226 wp-block-post-time-to-read has-text-color has-accent-color">22–33 minutes</div>


<p class="wp-block-paragraph">|</p>


<div class="wp-block-post-time-to-read">5 162 mots</div>


<p class="wp-block-paragraph">|</p>



<p class="has-accent-color has-text-color has-link-color wp-elements-f8515b49564e2f8ad2c183e4ed182d7c wp-block-paragraph">🗓️ dernière modification le</p>


<div class="has-link-color wp-block-post-date__modified-date wp-elements-c7e6b51b55b0dff84108436fc6f3823e wp-block-post-date has-text-color has-accent-color"><time datetime="2026-03-30T17:44:47+02:00">30 mars  2026</time></div></div>


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-6cd5ced2      uagb-toc__collapse--list"
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							au menu de cet article : 						</div>
												<div class="uagb-toc__loader"></div>										<div class="uagb-toc__list-wrap uagb-toc__list-hidden">
						<ol class="uagb-toc__list"><li class="uagb-toc__list "><a href="#11-la-ristourne-ou-la-baisse-de-prix" class="uagb-toc-link__trigger">🔹1.1 | la ristourne ou la baisse de prix ?</a><li class="uagb-toc__list "><a href="#12-mettre-en-lot" class="uagb-toc-link__trigger">🔹1.2 | Mettre en lot</a><li class="uagb-toc__list "><a href="#13-mettre-en-pack" class="uagb-toc-link__trigger">🔹1.3 | Mettre en Pack</a><li class="uagb-toc__list "><a href="#pack-mug-et-vase-panda" class="uagb-toc-link__trigger">pack Mug et Vase Panda</a><li class="uagb-toc__list "><a href="#21-promotion-sur-un-rayon-catégorie" class="uagb-toc-link__trigger">🔹2.1 | Promotion sur un rayon (catégorie)</a><li class="uagb-toc__list "><a href="#22-remises-sur-les-déclinaisons-ou-caractéristiques" class="uagb-toc-link__trigger">🔹2.2 | Remises sur les déclinaisons ou caractéristiques</a><li class="uagb-toc__list "><a href="#23-ristourne-sur-une-marque-ciblée" class="uagb-toc-link__trigger">🔹2.3 | Ristourne sur une marque ciblée</a></ol>					</div>
									</div>
				</div>
			


<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""><strong> la ristourne ou la baisse de prix</strong> ?</h3>



<p class="wp-block-paragraph">👉🏻 Il s&#8217;agit soit :</p>



<ul class="wp-block-list">
<li>Un produit dont <strong>les ventes s&#8217;essoufflent</strong> 🍂(un produit concurrent ou une 🆕 nouvelle version lui vole la vedette 😎)</li>



<li>Un produit récent dont <strong>les ventes ne décollent pas</strong> 🛩️ (&#8220;il n&#8217;a pas rencontre sa cible&#8221;, comme on dit poliment quand on a raté son business plan)</li>



<li>Un produit populaire 💥 mais <strong>qui vous encombre</strong> 📦 (vous avez été gourmand et ne l&#8217;écoulez pas aussi vite que prévu ou il <strong>vous empêche un réassort </strong>de produits qui margent plus, tellement <strong>il encombre vos stocks</strong>)</li>
</ul>



<p class="wp-block-paragraph">➡️ En tout cas, il faut donner <strong>un petit coup de pouce</strong> à vos clients pour qu&#8217;ils l&#8217;ajoutent au panier 🛒 !</p>



<p class="has-text-align-center has-medium-font-size wp-block-paragraph">🤔 Baisser ses prix ou mettre en promo ?</p>



<ul class="wp-block-list">
<li>Une <strong>promo</strong> est ✅ <strong>plus visible</strong> mais elle doit rester ❌<strong>ponctuelle</strong></li>



<li>Une <strong>baisse de prix</strong> passera ❌ <strong>inaperçue</strong> pour une partie de vos clients mais elle vous rendra ✅<strong>plus concurrentielle</strong> dans les comparateurs de prix en ligne</li>
</ul>



<figure class="wp-block-video"><video height="294" style="aspect-ratio: 700 / 294;" width="700" autoplay loop muted src="https://st9ph.fr/wp-content/uploads/2026/02/carrousel-produits-comparateur.mp4" playsinline></video></figure>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
<p class="qcm-question">🤔 <strong>Question :</strong> J&#8217;ai le droit de baisser mes prix, comme ça, du jour au lendemain ?</p>
<ul class="qcm-options">
<li data-correct="false" data-feedback="❌ Heureusement que si ! Vous imaginez les pompistes, par exemple, avec les cours du pétrole qui varient sans arrêt ?">Ah non ! Une fois fixé, le prix ne bouge plus,, il faut passer par une promo.</li>
<li data-correct="true" data-feedback="✅ Oui, à condition de ne pas vendre à perte (et même là, il y'a des exceptions)">Ben oui ! Je fais ce que je veux !</li>
<li data-correct="false" data-feedback="❌ Ah ? C'est vraiment dommage si on ne peut pas baisser ses prix durant les soldes vu que c'est un peu fait pour cela à la base.">Oui, sauf pendant les soldes.</li>
</ul>
<p class="qcm-feedback"></p>
<p class="qcm-local-score"></p>
</div>
<style>
.bloc-qcm {
border-left: 4px solid #1e73be;
background: #f5f9ff;
padding: 16px 18px;
margin: 24px 0;
border-radius: 4px;
font-size: 15px;
}
.qcm-options {
list-style: none;
padding: 0;
margin: 12px 0;
}
.qcm-options li {
position: relative;
padding: 10px 12px 10px 42px;
margin-bottom: 8px;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s;
}
.qcm-options li::before {
content: attr(data-letter);
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
font-weight: bold;
color: #1e73be;
}
.qcm-options li:hover {
background: #eef3ff;
}
.qcm-options li.correct {
background: #e6f4ea;
border-color: #188038;
}
.qcm-options li.wrong {
background: #fdecec;
border-color: #dc2626;
}
.qcm-feedback {
margin-top: 12px;
font-weight: bold;
}
.qcm-local-score {
margin-top: 6px;
font-weight: bold;
}
</style>
<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
const options = qcm.querySelectorAll('.qcm-options li');
const feedback = qcm.querySelector('.qcm-feedback');
const localScore = qcm.querySelector('.qcm-local-score');
let answered = false;
options.forEach((option, index) => {
option.dataset.letter = String.fromCharCode(65 + index);
});
options.forEach(option => {
option.addEventListener('click', () => {
if (answered) return;
answered = true;
options.forEach(o => o.classList.remove('correct', 'wrong'));
if (option.dataset.correct === "true") {
option.classList.add('correct');
} else {
option.classList.add('wrong');
}
feedback.textContent = option.dataset.feedback;
let point = option.dataset.correct === "true" ? 1 : 0;
localScore.textContent = "Tu marques " + point + " point";
});
});
});
</script>



<div class="bloc-rappel">
🖥️ A l&#8217;épreuve E5B, on vous demandera seulement <strong> une promo </strong>, si on vous demande une opération commerciale sur un produit (ça tombe souvent).</div>

<style>
.bloc-rappel {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-c4722e0f-4605-4962-8bd2-09f6c1d2513b">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-8f768acd-f9f3-4133-8e2f-80a6c70286e1">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Catalogue &gt; Produit &gt; votre produit &gt; <strong>onglet prix </strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-37a4d208-9880-4ad6-b0fa-2fd89738ab24">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ <strong>Ajouter un prix spécifique </strong>+</span>
			</div>
			
		</li>
</ul>


<p class="wp-block-paragraph">👉🏻 Vous pouvez définir :</p>



<ul class="wp-block-list">
<li>un <strong>groupe précis</strong> (réserver à ceux qui ont un compte client ou au VIP si vous les avez créés)</li>



<li>Une ristourne <strong>en % ou en numéraire </strong>(l&#8217;effet sera plus fort en % pour un petit montant)</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="376" height="86" src="https://st9ph.fr/wp-content/uploads/2026/02/image-95.png" alt="" class="wp-image-34869" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-95.png 376w, https://st9ph.fr/wp-content/uploads/2026/02/image-95-300x69.png 300w" sizes="auto, (max-width: 376px) 100vw, 376px" /></figure>



<div class="bloc-attention">
  ⚠️ N&#8217;oubliez pas d&#8217;indiquer <strong>une date de fin. </strong> C&#8217;est obligatoire.
</div>

<style>
.bloc-attention {
  border-left: 4px solid #dc2626;
  background: #fff1f1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:280px">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/image-96.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->
</div>
</div>



<ul class="wp-block-list">
<li>Cette magnifique peluche Panda est <strong>marquée d&#8217;une étiquette</strong> -10%</li>



<li>Son <strong>prix remisé</strong> s&#8217;affiche à côté de son <strong>prix initial barré</strong> (mais c&#8217;est <img loading="lazy" decoding="async" width="27" height="12" class="wp-image-33220" style="width: 27px;" src="https://st9ph.fr/wp-content/uploads/2025/01/marianne.jpg" alt=""> la loi)</li>



<li>👇🏻 Vous pouvez aussi ajouter <strong>l&#8217;étiquette &#8220;Promo&#8221;</strong> en plus (dans le même onglet)</li>
</ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="345" height="30" src="https://st9ph.fr/wp-content/uploads/2026/02/image-98.png" alt="" class="wp-image-34872" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-98.png 345w, https://st9ph.fr/wp-content/uploads/2026/02/image-98-300x26.png 300w" sizes="auto, (max-width: 345px) 100vw, 345px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="319" height="44" src="https://st9ph.fr/wp-content/uploads/2026/02/image-99.png" alt="" class="wp-image-34873" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-99.png 319w, https://st9ph.fr/wp-content/uploads/2026/02/image-99-300x41.png 300w" sizes="auto, (max-width: 319px) 100vw, 319px" /></figure>
</div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""> Mettre en lot</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="590" height="306" src="https://st9ph.fr/wp-content/uploads/2026/02/image-100.png" alt="" class="wp-image-34875" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-100.png 590w, https://st9ph.fr/wp-content/uploads/2026/02/image-100-300x156.png 300w" sizes="auto, (max-width: 590px) 100vw, 590px" /></figure>



<p class="wp-block-paragraph">🌐 <a href="https://www.mydestockage.com/blog/boost/vente-en-gros-alimentaire-particulier-la-revolution-de-la-consommation-des-menages/" target="_blank" rel="noreferrer noopener">Un lien</a> pour vous faire votre propre opinion.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="wp-block-paragraph">👉🏻 C&#8217;est le principe de faire une bonne affaire <strong>au volume d&#8217;achat.</strong> L&#8217;opportunité plus que le coup de cœur.</p>



<p class="has-background wp-block-paragraph" style="background-color:#dfe8f1">🤔 Il n&#8217;est pas certain que ©Cora soit <strong>le pionner de la vente &#8220;en gros&#8221; pour les particuliers </strong>comme il l&#8217;affirme sur l&#8217;affiche ci-contre (J&#8217;aurais dit Metro) mais ce qui est sur, c&#8217;est que <strong>c&#8217;est relativement récent.</strong> Quand on sait que les GSA n&#8217;ont que 60 ans, 1985, c&#8217;est crédible &#8230;</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">👉🏻 C&#8217;est <strong>au même endroit </strong>que cela se passe !</p>


<ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-7cbf8825-0d31-4073-af61-4f1335175674">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-5a6dc3b7-5801-4ef0-9e76-5a21fb771a33">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Catalogue &gt; Produit &gt; votre produit &gt; <strong>onglet prix </strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-71684163-7a49-45f3-a847-af920c3b2855">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Nombre minimal d&#8217;unités achetées</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 576 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-4d0c1d9e-875c-441f-bb13-3aca7dff8e96">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 576 512"><path fill="#000000" d="M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z"></path></svg>
				</span>
				<span class="ub_list_item_text">Saisir la quantité du lot</span>
			</div>
			
		</li>
</ul>


<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="237" height="74" src="https://st9ph.fr/wp-content/uploads/2026/02/image-101.png" alt="" class="wp-image-34877"/></figure>



<div class="bloc-a-retenir">
 ⚠️ Ca marche par <strong>palliers</strong> donc, si c&#8217;est graduel, penser à créer une règle par pallier de quantité.
</div>

<style>
.bloc-a-retenir {
  border-left: 4px solid #d97706;
  background: #fff8e1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="448" height="387" src="https://st9ph.fr/wp-content/uploads/2026/02/image-102.png" alt="" class="wp-image-34878" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-102.png 448w, https://st9ph.fr/wp-content/uploads/2026/02/image-102-300x259.png 300w" sizes="auto, (max-width: 448px) 100vw, 448px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
<p class="qcm-question">🤔 <strong>Question :</strong> &#8216;1 produit acheté, 1 produit offert&#8217;, c&#8217;est légal ?</p>
<ul class="qcm-options">
<li data-correct="false" data-feedback="❌ Non,  c'est possible sauf dans l'alimentaire (en GSA) où c'est  limité à 33 % (2 achetés, 1 offert, ça passe)">Oui, c&#8217;est une autre façon de faire un rabais de 50 %</li>
<li data-correct="true" data-feedback="✅ oui, 2 achetés, 1 offert, ça passe">Oui, sauf dans l&#8217;alimentaire où un rabais ne peut pas dépasser 33 %</li>
<li data-correct="false" data-feedback="❌ Non, c'est possible mais limité à 33 % dans l'alimentaire">C&#8217;est interdit : la notion de &#8220;cadeau&#8221; est incompatible avec un achat</li>
</ul>
<p class="qcm-feedback"></p>
<p class="qcm-local-score"></p>
</div>
<style>
.bloc-qcm {
border-left: 4px solid #1e73be;
background: #f5f9ff;
padding: 16px 18px;
margin: 24px 0;
border-radius: 4px;
font-size: 15px;
}
.qcm-options {
list-style: none;
padding: 0;
margin: 12px 0;
}
.qcm-options li {
position: relative;
padding: 10px 12px 10px 42px;
margin-bottom: 8px;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s;
}
.qcm-options li::before {
content: attr(data-letter);
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
font-weight: bold;
color: #1e73be;
}
.qcm-options li:hover {
background: #eef3ff;
}
.qcm-options li.correct {
background: #e6f4ea;
border-color: #188038;
}
.qcm-options li.wrong {
background: #fdecec;
border-color: #dc2626;
}
.qcm-feedback {
margin-top: 12px;
font-weight: bold;
}
.qcm-local-score {
margin-top: 6px;
font-weight: bold;
}
</style>
<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
const options = qcm.querySelectorAll('.qcm-options li');
const feedback = qcm.querySelector('.qcm-feedback');
const localScore = qcm.querySelector('.qcm-local-score');
let answered = false;
options.forEach((option, index) => {
option.dataset.letter = String.fromCharCode(65 + index);
});
options.forEach(option => {
option.addEventListener('click', () => {
if (answered) return;
answered = true;
options.forEach(o => o.classList.remove('correct', 'wrong'));
if (option.dataset.correct === "true") {
option.classList.add('correct');
} else {
option.classList.add('wrong');
}
feedback.textContent = option.dataset.feedback;
let point = option.dataset.correct === "true" ? 1 : 0;
localScore.textContent = "Tu marques " + point + " point";
});
});
});
</script>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="457" height="396" src="https://st9ph.fr/wp-content/uploads/2026/02/image-108.png" alt="" class="wp-image-34887" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-108.png 457w, https://st9ph.fr/wp-content/uploads/2026/02/image-108-300x260.png 300w" sizes="auto, (max-width: 457px) 100vw, 457px" /></figure>
</div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">1.3 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""> Mettre en Pack</h3>



<p class="wp-block-paragraph">➡️<strong> Associer un produit </strong>qui marche moyennement <strong>avec un qui marche bien</strong> peut être une très bonne idée. Le regard du consommateur changera s&#8217;il le voit <strong>comme un bonus </strong>et plus comme <strong>un produit à part entière</strong>.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li>Il faudra<strong> créer un nouveau produit</strong> et choisir &#8220;<strong><em>pack de produits</em></strong>&#8221; 👇🏻</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="373" height="196" src="https://st9ph.fr/wp-content/uploads/2026/02/image-104.png" alt="" class="wp-image-34880" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-104.png 373w, https://st9ph.fr/wp-content/uploads/2026/02/image-104-300x158.png 300w" sizes="auto, (max-width: 373px) 100vw, 373px" /></figure>
</div>


<ul class="wp-block-list">
<li>Il faudra aussi prévoir<strong> au moins un visuel des </strong>deux (ou plus) <strong>produits ensemble </strong>et la mettre comme<strong> image de couverture</strong></li>



<li><strong>Décrivez</strong> votre pack <strong>comme un produit normal</strong></li>
</ul>



<div class="bloc-a-retenir">
 ⚠️ Faites attention dans le descriptif à bien reporter les informations techniques ou obligatoires <strong>de tous les produits</strong>
</div>

<style>
.bloc-a-retenir {
  border-left: 4px solid #d97706;
  background: #fff8e1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/image-103.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/image-105.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-2abef99f-3fa8-428a-9dd9-4e671d67ae5d">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-90104938-e955-4359-975f-2849cd7ed770">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Onglet Pack</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 576 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-fed2010b-079a-420c-855f-3dc354eb278d">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 576 512"><path fill="#000000" d="M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z"></path></svg>
				</span>
				<span class="ub_list_item_text">tapez <strong>les 1eres lettres du produit</strong> à mettre dans le pack pour qu&#8217;il apparaisse dans la liste</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-bd924afa-5207-485a-a5f9-99510a867535">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Cliquer dessus <strong>pour l&#8217;ajouter</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-42fe8688-2053-42bc-b943-f34305d5b938">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text"><strong>Répéter l&#8217;opération </strong>avec les autres produits</span>
			</div>
			
		</li>
</ul>


<div class="bloc-a-retenir">
 ⚠️ Attention si le produit <strong>comporte plusieurs déclinaisons </strong> à choisir la bonne.
</div>

<style>
.bloc-a-retenir {
  border-left: 4px solid #d97706;
  background: #fff8e1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/image-106.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/image-107.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">➡️ Pensez à définir <strong>un prix plus avantageux</strong> que pour l&#8217;achat des produits achetés indépendamment sinon, ça ne sert à rien, d&#8217;autant que <strong>le récap en détail produit </strong>montre au client<strong>les prix initiaux et l&#8217;économie générée</strong>.</p>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
<p class="qcm-question">🤔 <strong>Question :</strong> Si je mélange deux produits avec une TVA différente dans un pack, quelle TVA appliquer ?</p>
<ul class="qcm-options">
<li data-correct="false" data-feedback="Ce n'est pas totalement faux dans le cas où le produit dont la TVA est la plus forte est considéré comme étant central dans le pack (les autres n'étant que des accessoires) mais ce n'est vraiment pas la règle générale.">La TVA la plus forte l&#8217;emporte et tous les produits du pack l&#8217;adoptent.</li>
<li data-correct="true" data-feedback="Oui, sauf rares exceptions">Il faut &#8220;ventiler&#8221;, c&#8217;est à dire que chaque produit garde sa TVA originelle.</li>
<li data-correct="false" data-feedback="Non, sauf de très rares exceptions comme des chocolats qui contiennent de la liqueur ou les babas au rhum en boulangerie qui restent à 5,5 % contrairement aux autres produits alcoolisés.">La TVA la plus faible l&#8217;emporte.</li>
</ul>
<p class="qcm-feedback"></p>
<p class="qcm-local-score"></p>
</div>
<style>
.bloc-qcm {
border-left: 4px solid #1e73be;
background: #f5f9ff;
padding: 16px 18px;
margin: 24px 0;
border-radius: 4px;
font-size: 15px;
}
.qcm-options {
list-style: none;
padding: 0;
margin: 12px 0;
}
.qcm-options li {
position: relative;
padding: 10px 12px 10px 42px;
margin-bottom: 8px;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s;
}
.qcm-options li::before {
content: attr(data-letter);
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
font-weight: bold;
color: #1e73be;
}
.qcm-options li:hover {
background: #eef3ff;
}
.qcm-options li.correct {
background: #e6f4ea;
border-color: #188038;
}
.qcm-options li.wrong {
background: #fdecec;
border-color: #dc2626;
}
.qcm-feedback {
margin-top: 12px;
font-weight: bold;
}
.qcm-local-score {
margin-top: 6px;
font-weight: bold;
}
</style>
<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
const options = qcm.querySelectorAll('.qcm-options li');
const feedback = qcm.querySelector('.qcm-feedback');
const localScore = qcm.querySelector('.qcm-local-score');
let answered = false;
options.forEach((option, index) => {
option.dataset.letter = String.fromCharCode(65 + index);
});
options.forEach(option => {
option.addEventListener('click', () => {
if (answered) return;
answered = true;
options.forEach(o => o.classList.remove('correct', 'wrong'));
if (option.dataset.correct === "true") {
option.classList.add('correct');
} else {
option.classList.add('wrong');
}
feedback.textContent = option.dataset.feedback;
let point = option.dataset.correct === "true" ? 1 : 0;
localScore.textContent = "Tu marques " + point + " point";
});
});
});
</script>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<style>
.ps-product-card { background: #fff; border: 1px solid #e7e7e7; border-radius: 4px; width: 100%; max-width: 300px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; transition: box-shadow 0.3s ease; position: relative; overflow: hidden; text-decoration: none; color: inherit; display: block; }
.ps-product-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.ps-product-image-wrapper { position: relative; width: 100%; padding-top: 100%; overflow: hidden; background: #f5f5f5; }
.ps-product-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.ps-product-card:hover .ps-product-image { transform: scale(1.05); }
.ps-wishlist-icon { position: absolute; top: 10px; right: 10px; background: rgba(255, 255, 255, 0.8); width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; z-index: 2; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.ps-wishlist-icon svg { width: 20px; height: 20px; fill: #7a7a7a; transition: fill 0.2s; }
.ps-wishlist-icon:hover { background: #fff; transform: scale(1.1); }
.ps-wishlist-icon:hover svg { fill: #ff4848; }
.ps-product-rating { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; z-index: 2; background: rgba(0,0,0,0.4); padding: 4px 8px; border-radius: 20px; }
.ps-star { color: #ffd700; font-size: 14px; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }
.ps-product-content { padding: 15px; text-align: center; background: #fff; }
.ps-product-name { font-size: 15px; color: #333; margin: 0 0 10px 0; font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: 42px; }
.ps-product-price { font-size: 18px; font-weight: 700; color: #25B9D7; margin: 0 0 15px 0; }
.ps-product-btn { background-color: #25B9D7; color: #fff; border: none; padding: 10px 15px; border-radius: 4px; font-size: 13px; font-weight: 600; text-transform: uppercase; cursor: pointer; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background 0.2s; text-decoration: none; box-sizing: border-box; }
.ps-product-btn:hover { background-color: #1fa3c0; color: #fff; }
.ps-product-btn svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 768px) { .ps-product-card { max-width: 100%; } }
</style>
<!-- DÉBUT VIGNETTE PRODUIT -->
<a href="https://boutiq.st9ph.fr/25-pack-mug-et-vase-panda.html" target="_blank" class="ps-product-card">
<div class="ps-product-image-wrapper">
<img decoding="async" src="https://boutiq.st9ph.fr/46-product_main/pack-mug-et-vase-panda.jpg" alt="pack Mug et Vase Panda" class="ps-product-image">
<div class="ps-wishlist-icon" title="Ajouter aux favoris" onclick="event.preventDefault(); event.stopPropagation(); alert('Fonctionnalité liste d\'envie à connecter.');">
<svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
</div>
<div class="ps-product-rating">
<span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span>
</div>
</div>
<div class="ps-product-content">
<h3 class="ps-product-name">pack Mug et Vase Panda</h3>
<div class="ps-product-price">24,95 €</div>
<div class="ps-product-btn">
Voir dans la boutique
<svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
</div>
</div>
</a>
<!-- FIN VIGNETTE PRODUIT -->
</div>
</div>



<style>
.chapter-title {
  display: flex;
  align-items: stretch;
  margin: 1.7rem 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.chapter-number {
  background: #1e73be;
  color: #fff;
  font-weight: 700;
  font-size: 2.8rem;
  padding: 0 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chapter-content {
  padding: 1.3rem 1.5rem;
  width: 100%;
}

/* Ligne titre + logo */
.chapter-heading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.6rem;
}

/* Logo carré */
.chapter-logo {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
}

.chapter-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* H2 */
.chapter-content h2 {
  margin: 0;
  font-size: 2.1rem;
  font-weight: 700;
  color: #1e73be; /* personnalisable */
}

/* Puces */
.chapter-points {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.chapter-points li {
  margin-bottom: 0.35rem;
  color: #444;
  font-size: 0.95rem;
  line-height: 1.45;
}

.chapter-points li::before {
  content: "🔹 ";
}
</style>

<div class="chapter-title">
  <div class="chapter-number">2</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>

      <h2>opérations sur un ensemble de produits</h2>
    </div>

    <ul class="chapter-points">
      <li>Promo sur un rayon</li>
      <li>Remise sur tous les produits d&#8217;une couleur, d&#8217;une taille ou autre</li>
      <li>Ristourne sur une marque de produits</li>
    </ul>
  </div>
</div>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.1 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""> Promotion sur un rayon (catégorie)</h3>



<p class="wp-block-paragraph">👉🏻 On fait souvent cela dans <strong>le prêt-à-porter</strong> quand une <strong>nouvelle collection </strong>est attendue et qu&#8217;il faut faire de la place ou <strong>chez les déstockeurs </strong>qui viennent d&#8217;emporter <strong>un lot inattendu</strong> chez leur fournisseur alors que leur arrière-boutique est déjà pleine à craquer :<strong> la promo sur tout un rayon !</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="571" height="139" src="https://st9ph.fr/wp-content/uploads/2026/02/image-109.png" alt="" class="wp-image-34888" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-109.png 571w, https://st9ph.fr/wp-content/uploads/2026/02/image-109-300x73.png 300w" sizes="auto, (max-width: 571px) 100vw, 571px" /></figure>
</div>


<p class="has-text-align-center has-medium-font-size wp-block-paragraph">Alors ? <mark style="background-color:rgba(0, 0, 0, 0);color:#875023" class="has-inline-color">Dans Presta&#8217;, on ne sait jamais</mark> : une règle de panier ou de catalogue ?</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="570" height="173" src="https://st9ph.fr/wp-content/uploads/2026/02/image-110.png" alt="" class="wp-image-34889" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-110.png 570w, https://st9ph.fr/wp-content/uploads/2026/02/image-110-300x91.png 300w" sizes="auto, (max-width: 570px) 100vw, 570px" /></figure>
</div>


<p class="wp-block-paragraph">La différence réside dans la manière d&#8217;obtenir l&#8217;avantage :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<ul class="wp-block-list">
<li>🧺 Une règle de panier <strong>génère un coupon de réduction </strong>qu&#8217;il faut donner<strong> dans le tunnel d&#8217;achat</strong> pour l&#8217;obtenir 👉🏻</li>
</ul>



<div class="bloc-astuce">
 ✅ Idéal pour susciter la sensation d&#8217;un <strong> avantage exclusif </strong> qui récompense la fidélité. C&#8217;est également  un outil idéal pour <strong>les gestes co, les récompenses, les CTA de mails de relance &#8230; </strong>
</div>

<style>
.bloc-astuce {
  border-left: 4px solid #188038;
  background: #eefaf1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="393" height="192" src="https://st9ph.fr/wp-content/uploads/2026/02/image-111.png" alt="" class="wp-image-34891" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-111.png 393w, https://st9ph.fr/wp-content/uploads/2026/02/image-111-300x147.png 300w" sizes="auto, (max-width: 393px) 100vw, 393px" /></figure>
</div>
</div>



<ul class="wp-block-list">
<li>Une règle de catalogue est <strong>transparente,</strong> idéale <strong>pour les avantages permanents</strong> ou pour les groupes spéciaux (VIP)</li>
</ul>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
<p class="qcm-question">🤔 <strong>Question :</strong> La livraison gratuite à partir de 50 € d&#8217;achats, c&#8217;est &#8230;.</p>
<ul class="qcm-options">
<li data-correct="false" data-feedback="❌ Il faudra saisir le coupon à chaque fois, alors ? Cela fera des litiges, certains oubliant de le saisir (même si vous le mettez en avant) diront que vous le faites exprès pour qu'on passe à côté.">Un règle de panier</li>
<li data-correct="true" data-feedback="✅ Oui, sinon vous obligez à saisir un coupon chaque fois et cela fera des litiges, certains oubliant de le saisir (même si vous le mettez en avant) diront que vous le faites exprès pour qu'on passe à côté.">une règle de prix catalogue</li>
<li data-correct="false" data-feedback="❌ Pas faux, mais, il faut bien le définir tout de même en règle de prix">ni l&#8217;un ni l&#8217;autre comme c&#8217;est un avantage permanent (réassurance)</li>
</ul>
<p class="qcm-feedback"></p>
<p class="qcm-local-score"></p>
</div>
<style>
.bloc-qcm {
border-left: 4px solid #1e73be;
background: #f5f9ff;
padding: 16px 18px;
margin: 24px 0;
border-radius: 4px;
font-size: 15px;
}
.qcm-options {
list-style: none;
padding: 0;
margin: 12px 0;
}
.qcm-options li {
position: relative;
padding: 10px 12px 10px 42px;
margin-bottom: 8px;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s;
}
.qcm-options li::before {
content: attr(data-letter);
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
font-weight: bold;
color: #1e73be;
}
.qcm-options li:hover {
background: #eef3ff;
}
.qcm-options li.correct {
background: #e6f4ea;
border-color: #188038;
}
.qcm-options li.wrong {
background: #fdecec;
border-color: #dc2626;
}
.qcm-feedback {
margin-top: 12px;
font-weight: bold;
}
.qcm-local-score {
margin-top: 6px;
font-weight: bold;
}
</style>
<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
const options = qcm.querySelectorAll('.qcm-options li');
const feedback = qcm.querySelector('.qcm-feedback');
const localScore = qcm.querySelector('.qcm-local-score');
let answered = false;
options.forEach((option, index) => {
option.dataset.letter = String.fromCharCode(65 + index);
});
options.forEach(option => {
option.addEventListener('click', () => {
if (answered) return;
answered = true;
options.forEach(o => o.classList.remove('correct', 'wrong'));
if (option.dataset.correct === "true") {
option.classList.add('correct');
} else {
option.classList.add('wrong');
}
feedback.textContent = option.dataset.feedback;
let point = option.dataset.correct === "true" ? 1 : 0;
localScore.textContent = "Tu marques " + point + " point";
});
});
});
</script>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-38a43bf1-181e-41b9-bf84-d9bb938fcd4d">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-0b791107-1827-428b-ada0-73381a8b35b5">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">(onglet) <strong>conditions</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-3115e972-a6ef-4360-a4c3-23b219ef028d">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text"><strong>Sélection de produit</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-657140ae-1eae-4825-8106-4ed199550f81">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Choisir &#8220;<strong>Catégories</strong>&#8220;</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-1e67324f-7d94-47a9-8868-38d7dcc67b11">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ <strong>+ Ajouter</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-95fe987d-5a26-4fe1-a152-6048adf5abc3">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ ⇶ <strong>Choisir</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-6465c79b-da41-4ec1-b6c6-17be6c5faed9">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Cliquer sur la / les <strong>catégorie(s) à promouvoir </strong>pour qu&#8217;elle(s) passe(nt) dans<strong> la liste &#8220;sélectionnés&#8221;</strong> puis</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-3d9d2215-0424-4f30-be3e-ac1f46e8d9e1">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ ⇜ <strong>Ajouter</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-44cada6c-b5bd-470f-9717-f86eb990e08b">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">cliquer sur<strong> la croix </strong>X</span>
			</div>
			
		</li>
</ul></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/image-112.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->
</div>
</div>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="779" height="155" src="https://st9ph.fr/wp-content/uploads/2026/02/image-113.png" alt="" class="wp-image-34893" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-113.png 779w, https://st9ph.fr/wp-content/uploads/2026/02/image-113-300x60.png 300w, https://st9ph.fr/wp-content/uploads/2026/02/image-113-768x153.png 768w" sizes="auto, (max-width: 779px) 100vw, 779px" /><figcaption class="wp-element-caption"><em>Ici, une promo dans tout le rayon femmes</em></figcaption></figure>


<ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-dccf51e5-bff5-40cd-8d59-bf9a138e9447">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 640 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-d041cc9b-5be0-44fa-b959-73568e6a5b39">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 640 512"><path fill="#000000" d="M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z"></path></svg>
				</span>
				<span class="ub_list_item_text">N&#8217;oubliez pas de définir votre promotion dans action</span>
			</div>
			
		</li>
</ul>


<div class="bloc-a-retenir">
  🧮 Il faut bien étudier <strong> votre ROI</strong> en suivant l&#8217;évolution des ventes par rapport à ce que vous avez sacrifié de votre marge pour voir si l&#8217;opération est rentable.
</div>

<style>
.bloc-a-retenir {
  border-left: 4px solid #d97706;
  background: #fff8e1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>



<p class="wp-block-paragraph">➡️ N&#8217;oubliez pas non plus de la mettre en avant dans le carrousel ou la bannière 👇🏻 :</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="816" height="305" src="https://st9ph.fr/wp-content/uploads/2026/02/image-116.png" alt="" class="wp-image-34898" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-116.png 816w, https://st9ph.fr/wp-content/uploads/2026/02/image-116-300x112.png 300w, https://st9ph.fr/wp-content/uploads/2026/02/image-116-768x287.png 768w" sizes="auto, (max-width: 816px) 100vw, 816px" /></figure>



<div class="bloc-qcm">
  <p class="qcm-question">
    💥 <strong>Alors ?</strong> Le mieux pour cette OP Com de promo sur tout le rayon femme ?
  </p>

  <ul class="qcm-options">
    <li data-correct="true">un coupon réduction en règle de panier ?</li>
    <li data-correct="false">une promo catalogue ?</li>
    <li data-correct="false">Ca n&#8217;a pas d&#8217;importance ?</li>
  </ul>

  <p class="qcm-feedback"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}

.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}

.qcm-options li {
  padding: 10px 12px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}

.qcm-options li:hover {
  background: #eef3ff;
}

.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}

.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}

.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');

  options.forEach(option => {
    option.addEventListener('click', () => {
      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
        feedback.textContent = "✅ Oui, le coupon va renforcer le sentiment de privilège";
        feedback.style.color = "#188038";
      } else {
        option.classList.add('wrong');
        feedback.textContent = "❌ Ca se discute mais, franchement, le coupon va renforcer l'effet bon plan";
        feedback.style.color = "#dc2626";
      }
    });
  });
});
</script>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.2 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""> Remises sur les déclinaisons ou caractéristiques</h3>



<p class="wp-block-paragraph">👉🏻 C&#8217;est souvent à l&#8217;occasion d&#8217;un évènement du 📆 c<strong>alendrier marketing</strong> que vous aurez l&#8217;occasion de <strong>mettre en valeur</strong> votre boutique <strong>sur des critères de déclinaisons.</strong> <mark style="background-color:rgba(0, 0, 0, 0);color:#20771e" class="has-inline-color">Ici, les produits de couleur verte pour la Saint patrice</mark>, <strong>ou de caractéristique</strong> &#8220;made in France&#8221;, &#8220;Artisanat responsable&#8221; &#8230;</p>



<p class="has-background wp-block-paragraph" style="background-color:#dbedd3">🍀 C&#8217;est aussi un formidable vecteur pour obliger vos visiteurs <strong>à &#8220;fouiller&#8221; dans vos rayons</strong> pour dénicher la perle rare (et ainsi, <strong>doper vos temps de sessions</strong>) 📈 et créer de<strong> l&#8217;opportunité</strong>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="646" src="https://st9ph.fr/wp-content/uploads/2026/02/saint-patrice-1024x646.png" alt="" class="wp-image-34903" srcset="https://st9ph.fr/wp-content/uploads/2026/02/saint-patrice-1024x646.png 1024w, https://st9ph.fr/wp-content/uploads/2026/02/saint-patrice-300x189.png 300w, https://st9ph.fr/wp-content/uploads/2026/02/saint-patrice-768x485.png 768w, https://st9ph.fr/wp-content/uploads/2026/02/saint-patrice-1536x970.png 1536w, https://st9ph.fr/wp-content/uploads/2026/02/saint-patrice-2048x1293.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-da13b055-e06a-4afb-81f7-f967348b14c9">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-456f1aea-0d97-4640-8428-7a2f75eac904">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">(onglet) <strong>conditions</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-e34b95e2-c1b9-4db3-b64f-694127db74fb">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text"><strong>Sélection de produit</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-7dc576dd-64d0-4e12-9fd9-bd4b6350bdee">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Choisir &#8220;<strong>attributs</strong>&#8220;</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-29de8260-3999-4465-8953-7408ee942b7c">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ <strong>+ Ajouter</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-d15f6411-05c1-432c-99cc-af3908f09865">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ ⇶ <strong>Choisir</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-e0f7a0ec-fa0a-4d5c-bf38-34043cf00471">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Cliquer sur la / les <strong>déclinaisons </strong>pour qu&#8217;elle(s) passe(nt) dans<strong> la liste &#8220;sélectionnés&#8221;</strong> puis</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-a7b94c45-2628-4f07-b89f-4b03adca5c5b">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ ⇜ <strong>Ajouter</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-570ce755-d4a6-4249-b93a-591d664c364b">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">cliquer sur<strong> la croix </strong>X</span>
			</div>
			
		</li>
</ul></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/image-118.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->



<div class="bloc-astuce">
  👉🏻 C&#8217;est la même manipulation que pour <strong> les catégories </strong> que nous avons vus dans le sous-chapitre précédent
</div>

<style>
.bloc-astuce {
  border-left: 4px solid #188038;
  background: #eefaf1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>
</div>
</div>



<p class="wp-block-paragraph">💡 Vous pouvez aussi faire  :</p>



<ul class="wp-block-list">
<li>une semaine 👗&#8221;<em>grandes tailles</em>&#8221; (XL, XXL &#8230;), 👠&#8221;<em>grands pieds</em>&#8221; pointures &gt; 44 &#8230;</li>



<li>un week-end 🚚 &#8220;<em>livraison offerte</em>&#8221; sur vos 🗄️ meubles de gros gabarit (dimensions : hauteurs ou longueurs importantes)</li>



<li>une quinzaine ♻️ &#8220;écolo&#8221; sur les produits ayant la caractéristique &#8220;recyclé&#8221; &#8230;</li>
</ul>



<p class="has-medium-font-size wp-block-paragraph">💥 Soyez imaginatifs !</p>



<h3 class="wp-block-heading" style="font-size:28px">🔹<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-accent-color">2.3 |</mark></strong><img loading="lazy" decoding="async" width="25" height="30" class="wp-image-34820" style="width: 25px;" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-mini.jpg" alt=""> Ristourne sur une marque ciblée</h3>



<p class="wp-block-paragraph">👉🏻 Mettre en valeur une de vos marques ou l&#8217;un de vos fournisseurs, c&#8217;est aussi un moyen de viser une hausse des ventes suffisamment substantielle pour <strong>renégocier votre contrat</strong> avec lui ! Vous vendez plus ses produits =&gt; il vous les procure moins cher.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="826" height="418" src="https://st9ph.fr/wp-content/uploads/2026/02/image-119.png" alt="" class="wp-image-34909" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-119.png 826w, https://st9ph.fr/wp-content/uploads/2026/02/image-119-300x152.png 300w, https://st9ph.fr/wp-content/uploads/2026/02/image-119-768x389.png 768w" sizes="auto, (max-width: 826px) 100vw, 826px" /></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><ul style="padding-left: 1.1em;text-align: left;--ub-list-item-icon-top: 3px;--ub-list-item-icon-size: 0.9em;);--ub-list-item-fa-li-top: 3px;--ub-list-item-spacing: 0px;column-count: 1;--ub-list-mobile-column-count: 1" class="wp-block-ub-styled-list ub_styled_list" id="ub_styled_list-09a78981-3e44-4e0d-84bf-bf97d714609f">
<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-27251c0e-81d3-4d6a-9138-d0e7f631b156">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">(onglet) <strong>conditions</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-e1aaee44-7191-4020-a142-65d271fe941a">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text"><strong>Sélection de produit</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-14f909c4-ab8b-4da8-86a1-653b36d8cdec">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Choisir &#8220;<strong>Marques</strong>&#8220;</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-2831ddc7-8221-47a3-b071-a897c66d8dd8">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ <strong>+ Ajouter</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-3428e6db-d5c2-414d-a277-6a0b634adaf7">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ ⇶ <strong>Choisir</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-b3bd30a6-db54-4b45-b741-f1638918eeb9">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">Cliquer sur la / les <strong>marque(s) </strong>pour qu&#8217;elle(s) passe(nt) dans<strong> la liste &#8220;sélectionnés&#8221;</strong> puis</span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-7a6a8c31-7b7e-4ad2-ac6e-ca4f280c1027">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">⬛ ⇜ <strong>Ajouter</strong></span>
			</div>
			
		</li>

<li class="ub_styled_list_item" style="--ub-list-item-icon-top: 3px; --ub-list-item-icon-size: 0.9em; --ub-list-item-background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 320 512&quot;&gt;&lt;path fill=&quot;%23000000&quot; d=&quot;M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;'); " id="ub-styled-list-item-a1678151-6249-4c4a-9bc7-676b6f660d7d">
			<div class="ub_list_item_content">
				<span class="ub_list_item_icon">
					<svg width="0.9em" height="0.9em" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512"><path fill="#000000" d="M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"></path></svg>
				</span>
				<span class="ub_list_item_text">cliquer sur<strong> la croix </strong>X</span>
			</div>
			
		</li>
</ul></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/image-120.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->



<div class="bloc-astuce">
  👉🏻 C&#8217;est toujours la même manipulation que pour <strong> les catégories ou les déclinaisons</strong> que nous avons vus dans les deux sous-chapitres précédents
</div>

<style>
.bloc-astuce {
  border-left: 4px solid #188038;
  background: #eefaf1;
  padding: 12px 18px;
  margin: 20px 0;
  font-size: 15px;
  color: #0f172a;
  border-radius: 4px;
  font-family: Arial, sans-serif;
}
</style>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="316" height="524" src="https://st9ph.fr/wp-content/uploads/2026/02/image-121.png" alt="" class="wp-image-34912" style="width:375px;height:auto" srcset="https://st9ph.fr/wp-content/uploads/2026/02/image-121.png 316w, https://st9ph.fr/wp-content/uploads/2026/02/image-121-181x300.png 181w" sizes="auto, (max-width: 316px) 100vw, 316px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">N&#8217;oubliez pas de <strong>notifier les clients</strong> que vous ciblez pour cette OP :</p>



<ul class="wp-block-list">
<li>Ceux qui ont<strong> déjà consulté </strong>👀 ces produits,</li>



<li>ceux qui les ont <strong>ajouté au panier </strong>🛒 <strong>puis abandonnés </strong>(si le frein était le cout ou le moment, il va peut-être tomber)</li>



<li>Ceux qui ont <strong>des produits similaires</strong> dans leur 🖤 <strong>liste d&#8217;envies</strong></li>



<li>Ceux <strong>dormants </strong>😴 qui ne réagissent pas à vos <strong>newsletters sur les nouveautés</strong>, l&#8217;appat du gain est un levier à tenter.</li>



<li>Ceux qui ont déjà <strong>ce type de produit </strong>mais <strong>depuis longtemps</strong> 🕸️</li>
</ul>



<p class="wp-block-paragraph"></p>



<p class="has-base-2-background-color has-background wp-block-paragraph">🪙 Votre <strong>base de données client </strong>est une mine d&#8217;or et vos OP COM <strong>un outil de fidélisation </strong>sans égal.</p>
</div>
</div>



<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
<p class="qcm-question">🤔 <strong>Question :</strong> 2 achetés, 1 offert, je fais comment dans 🐧 Prestashop ?</p>
<ul class="qcm-options">
<li data-correct="false" data-feedback="❌ Possible mais une règle de panier à chaque fois, il y'a plus simple et cela oblige aussi le client à saisir un code réduction">Un coupon sur le produit de 33,33 %</li>
<li data-correct="false" data-feedback="❌ Ca ne marcherait pas, il faut que les produits soient différents pour faire partie d'un pack">Un pack de trois produits identiques et le 3ème dont on ramène le prix à zéro</li>
<li data-correct="true" data-feedback="✅ Oui, c'est le plus simple">un prix spécifique : qté 3 => 33,33 % sur l&#8217;ensemble</li>
</ul>
<p class="qcm-feedback"></p>
<p class="qcm-local-score"></p>
</div>
<style>
.bloc-qcm {
border-left: 4px solid #1e73be;
background: #f5f9ff;
padding: 16px 18px;
margin: 24px 0;
border-radius: 4px;
font-size: 15px;
}
.qcm-options {
list-style: none;
padding: 0;
margin: 12px 0;
}
.qcm-options li {
position: relative;
padding: 10px 12px 10px 42px;
margin-bottom: 8px;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: background 0.2s;
}
.qcm-options li::before {
content: attr(data-letter);
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
font-weight: bold;
color: #1e73be;
}
.qcm-options li:hover {
background: #eef3ff;
}
.qcm-options li.correct {
background: #e6f4ea;
border-color: #188038;
}
.qcm-options li.wrong {
background: #fdecec;
border-color: #dc2626;
}
.qcm-feedback {
margin-top: 12px;
font-weight: bold;
}
.qcm-local-score {
margin-top: 6px;
font-weight: bold;
}
</style>
<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
const options = qcm.querySelectorAll('.qcm-options li');
const feedback = qcm.querySelector('.qcm-feedback');
const localScore = qcm.querySelector('.qcm-local-score');
let answered = false;
options.forEach((option, index) => {
option.dataset.letter = String.fromCharCode(65 + index);
});
options.forEach(option => {
option.addEventListener('click', () => {
if (answered) return;
answered = true;
options.forEach(o => o.classList.remove('correct', 'wrong'));
if (option.dataset.correct === "true") {
option.classList.add('correct');
} else {
option.classList.add('wrong');
}
feedback.textContent = option.dataset.feedback;
let point = option.dataset.correct === "true" ? 1 : 0;
localScore.textContent = "Tu marques " + point + " point";
});
});
});
</script>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p class="has-text-align-right has-medium-font-size wp-block-paragraph">Un petit 🎓TP pour finir ?</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<style>
.alert-jf5cyz-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.6); backdrop-filter: blur(3px); z-index: 9999; justify-content: center; align-items: center; }
.alert-jf5cyz-dialog { background: #fff; width: 90%; max-width: 400px; border-radius: 8px; box-shadow: 0 10px 25px rgba(0,0,0,0.2); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; overflow: hidden; animation: popInalert-jf5cyz 0.2s ease-out; border: 1px solid #ddd; }
@keyframes popInalert-jf5cyz { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.alert-jf5cyz-header { padding: 20px 20px 10px 20px; display: flex; align-items: flex-start; }
.alert-jf5cyz-icon { font-size: 28px; margin-right: 15px; flex-shrink: 0; line-height: 1; }
.alert-jf5cyz-title { font-weight: 600; font-size: 16px; color: #333; margin: 0; line-height: 1.3; }
.alert-jf5cyz-body { padding: 0 20px 20px 55px; font-size: 14px; color: #333; line-height: 1.5; }
.alert-jf5cyz-footer { border-top: 1px solid #eee; padding: 10px 20px; display: flex; justify-content: flex-end; gap: 10px; background: #f9f9f9; }
.alert-jf5cyz-btn { padding: 8px 16px; border-radius: 4px; font-size: 13px; font-weight: 500; cursor: pointer; border: none; transition: background 0.2s; }
.alert-jf5cyz-btn-cancel { background: #e0e0e0; color: #333; } .alert-jf5cyz-btn-cancel:hover { background: #d0d0d0; }
.alert-jf5cyz-btn-confirm { background: #0066cc; color: white; } .alert-jf5cyz-btn-confirm:hover { background: #0052a3; }
.alert-jf5cyz-btn-close { background: #2196f3; color: white; width: 100%; } .alert-jf5cyz-btn-close:hover { background: #1976d2; }
.alert-jf5cyz-trigger { background: #ff9800; color: white; border: none; padding: 10px 20px; font-size: 14px; border-radius: 4px; cursor: pointer; font-family: sans-serif; display: inline-block; margin: 10px 0; } .alert-jf5cyz-trigger:hover { background: #e68900; }
</style><!-- DÉBUT ALERTE MODALE (Généré) -->
<div id="alert-jf5cyz-overlay" class="alert-jf5cyz-overlay">
<div class="alert-jf5cyz-dialog">
<div class="alert-jf5cyz-header">
<div class="alert-jf5cyz-icon" style="color: #ff9800">⚠️</div>
<div><div class="alert-jf5cyz-title">st9ph.fr indique</div></div>
</div>
<div class="alert-jf5cyz-body">Les travaux pratiques sont réservés à 🧑🏻‍🎓 mes étudiants. Il vous faudra un 🔑 mot de passe pour progresser dans le contenu. Merci de votre compréhension.</div>
<div class="alert-jf5cyz-footer">
<button class="alert-jf5cyz-btn alert-jf5cyz-btn-cancel" onclick="document.getElementById('alert-jf5cyz-overlay').style.display='none'">Rester sur la page</button>
<button class="alert-jf5cyz-btn alert-jf5cyz-btn-confirm" onclick="if('https://st9ph.fr/%f0%9f%8e%93tp-op-com/') window.location.href='https://st9ph.fr/%f0%9f%8e%93tp-op-com/'; else document.getElementById('alert-jf5cyz-overlay').style.display='none';">continuer vers le 🎓TP</button>
</div>
</div>
</div>
<button onclick="document.getElementById('alert-jf5cyz-overlay').style.display='flex'" class="alert-jf5cyz-trigger">Même pas peur !</button>
<!-- FIN ALERTE MODALE -->
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<!-- Bouton principal -->
<button id="uxMenuBtn" style="
  position: fixed;
  right: 14px;
  bottom: 40%;
  padding: 12px 14px;
  background: #111;
  color: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  z-index: 9999;
  font-size: 18px;
">
  ☰
</button>

<!-- Menu -->
<div id="uxMenu" style="
  display:none;
  position: fixed;
  right: 14px;
  bottom: 48%;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  z-index: 10000;
  font-family: Arial, sans-serif;
">
  <button class="uxItem" data-popup="sources">📚 Sources</button>
  <button class="uxItem" data-popup="methodo">🧑‍🎓NDRC</button>
  <button class="uxItem" data-popup="glossary">📘 Glossaire</button>
</div>

<!-- Overlay -->
<div id="uxOverlay" style="
  display:none;
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  background:rgba(0,0,0,0.55);
  z-index:10001;
"></div>

<!-- POPUPS -->

<div class="uxPopup" id="sources" data-title="📚 Sources UX mobile">
 

  <img decoding="async" 
    src="https://st9ph.fr/wp-content/uploads/2026/02/logo-blogst9ph-small.jpg"
    alt="blog st9ph"
    style="
      width:100%;
      max-width:120px;
      display:block;
      margin:12px auto 20px;
      border-radius:8px;
    "
  >
<h4>📚 Sources</h4>
<ul>
 <!--  ✅ contenus 📚 Sources -->
<li><strong>mydestockage.com</strong> – article sur la vente en volume</li>
<li><strong>🔊 Voicertool</strong> &#8211; introduction parlée </li>
<li><strong>Nano Banana Pro de Google Gemini</strong> – personnage d&#8217;illustration et image en avant</li>
</ul>
</div>

<div class="uxPopup" id="methodo" data-title="🧑‍🎓 NDRC">


  <img decoding="async" 
    src="https://st9ph.fr/wp-content/uploads/2026/02/logo-blogst9ph-small.jpg"
    alt="blog st9ph"
    style="
      width:100%;
      max-width:120px;
      display:block;
      margin:12px auto 20px;
      border-radius:8px;
    "
  >
<h4>🧑‍🎓 NDRC</h4>
<!--  ✅ contenus 🧑‍🎓 NDRC -->
<p> 🟦 Cet article est à visée de l&#8217;épreuve technique E5B.</p>
<ul>
<li>savoir effectuer tout type de réduction sur un produit</li>
<li>savoir effectuer tout type de réduction sur une déclinaison, une caractéristique ou une marque de produits</li>
<li>savoir créer un pack de produits</li>
</ul>
<p>👉 voir aussi les autres articles de la section Prestashop </p>
</div>

<div class="uxPopup" id="glossary" data-title="📘 Glossaire UX mobile">


  <img decoding="async" 
    src="https://st9ph.fr/wp-content/uploads/2026/02/logo-blogst9ph-small.jpg"
    alt="blog st9ph"
    style="
      width:100%;
      max-width:120px;
      display:block;
      margin:12px auto 20px;
      border-radius:8px;
    "
  >
<h4>📘 Glossaire</h4>
<!-- ✅ contenus 📘 Glossaire -->
<ul>
<li><strong>Réassortir</strong> regarnir les rayons avec les produits qui manquaient </li>
<li><strong>Numéraire</strong> quand la réduction est en euros (-10€) plutôt qu&#8217;en % </li>
<li><strong>Régle de panier</strong> Réduction sous forme de coupon et individualisable (geste Co par exemple) </li>
<li><strong>Régle de catalogue</strong> Réduction automatique et collective (pas d&#8217;action spécifique à effectuer si on remplit les conditions) </li>
</ul>
</div>

<!-- Style popup -->
<style>
.uxItem {
  display: block;
  padding: 10px 16px;
  background: #fff;
  border: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  color: #111;        /* ✅ TEXTE VISIBLE */
  font-size: 14px;
}

.uxItem:hover {
  background: #f0f0f0;
}
.uxItem:hover { background:#f0f0f0; }

.uxPopup {
  display:none;
  position:fixed;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  background:#fff;
  width:90%;
  max-width:560px;
  max-height:80%;
  padding:24px;
  border-radius:10px;
  box-shadow:0 10px 40px rgba(0,0,0,0.25);
  z-index:10002;
  overflow-y:auto;
}
</style>
<style>
@media (max-width: 768px) {
  #uxMenuBtn,
  #uxMenu {
    display: none !important;
  }
}
</style>
<style>
@media (max-width: 768px) {
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }
}
</style>
<style>
@media (max-width: 768px) {
  #uxMenuBtn,
  #uxMenu,
  #uxOverlay,
  .uxPopup {
    position: static !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    display: none !important;
  }
}
</style>

<script>
(function () {

  // === DÉSACTIVATION MOBILE ===
  if (window.innerWidth <= 768) {
    return; // on ne fait RIEN sur mobile
  }

  // === RÉFÉRENCES ===
  const menuBtn = document.getElementById("uxMenuBtn");
  const menu = document.getElementById("uxMenu");
  const overlay = document.getElementById("uxOverlay");
  const popups = document.querySelectorAll(".uxPopup");

  if (!menuBtn || !menu || !overlay) return;

  // === OUVERTURE / FERMETURE MENU ===
  menuBtn.addEventListener("click", () => {
    menu.style.display = menu.style.display === "block" ? "none" : "block";
  });

  // === OUVERTURE POPUPS ===
  document.querySelectorAll(".uxItem").forEach(btn => {
    btn.addEventListener("click", () => {
      popups.forEach(p => p.style.display = "none");
      const target = document.getElementById(btn.dataset.popup);
      if (target) target.style.display = "block";
      overlay.style.display = "block";
      menu.style.display = "none";
    });
  });

  // === FERMETURE OVERLAY ===
  overlay.addEventListener("click", () => {
    popups.forEach(p => p.style.display = "none");
    overlay.style.display = "none";
  });

})();
</script>



</script>
<script>
(function () {
  if (window.innerWidth <= 768) {
    const uxPanel = document.querySelector('.ux-panel');
    if (uxPanel) {
      uxPanel.remove();
    }
  }
})();
</script>



<!-- =====================================================
     BADGE DE LECTURE + BADGE "DÉJÀ LU"
     - % de lecture en temps réel
     - Devient vert à 75 %
     - Mémorisé en session (déjà lu)
     ===================================================== -->

<!-- ✅ STRUCTURE HTML DU BADGE -->
<div id="readBadge">
  📖 Lecture : 0 %
</div>

<style>
/* ===============================
   STYLE DU BADGE
   =============================== */
#readBadge {
  position: fixed;
  bottom: 20px;
  left: 20px;
  background: #111;
  color: #fff;
  padding: 8px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-family: Arial, sans-serif;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease;
  z-index: 9999;
}

/* Badge visible */
#readBadge.show {
  opacity: 1;
  transform: translateY(0);
}

/* Badge vert = article lu */
#readBadge.read {
  background: #188038;
}
</style>

<script>
/* ===============================
   LOGIQUE JAVASCRIPT
   =============================== */
(function () {

  const badge = document.getElementById("readBadge");

  // ✅ Clé unique par page (URL)
  const storageKey = "articleLu_" + window.location.pathname;

  // ✅ Si déjà lu dans la session
  if (sessionStorage.getItem(storageKey)) {
    badge.classList.add("show", "read");
    badge.innerText = "✅ Article déjà lu";
    return; // on ne recalcule plus le scroll
  }

  let badgeShown = false;
  let articleMarkedAsRead = false;

  window.addEventListener("scroll", function () {

    const scrollTop = window.scrollY;
    const docHeight = document.body.scrollHeight - window.innerHeight;
    const percent = Math.round((scrollTop / docHeight) * 100);

    // Mise à jour du texte
    badge.innerText = "📖 Lecture : " + percent + " %";

    // Affichage du badge dès 10 %
    if (percent >= 10 && !badgeShown) {
      badge.classList.add("show");
      badgeShown = true;
    }

    // ✅ Article considéré comme lu à 75 %
    if (percent >= 75 && !articleMarkedAsRead) {
      badge.classList.add("read");
      badge.innerText = "✅ Article lu à " + percent + " %";
      sessionStorage.setItem(storageKey, "true");
      articleMarkedAsRead = true;
    }

  });

})();
</script>



<script>
document.addEventListener("DOMContentLoaded", function () {

  let scoreTotal = 0;
  let questionsRepondues = 0;

  const blocs = document.querySelectorAll(".bloc-qcm");

  blocs.forEach(qcm => {

    const options = qcm.querySelectorAll(".qcm-options li");
    const feedback = qcm.querySelector(".qcm-feedback");
    let answered = false;

    options.forEach(option => {
      option.addEventListener("click", function () {

        if (answered) return;
        answered = true;

        questionsRepondues++;

        const isCorrect = option.dataset.correct === "true";

        if (isCorrect) {
          scoreTotal++;
          this.classList.add("correct");
        } else {
          this.classList.add("wrong");
        }

        feedback.textContent = option.dataset.feedback +" | Ton score : " + scoreTotal + " / " + questionsRepondues;

        const global = document.getElementById("score-global");
        if (global) {
          global.textContent =
            "Score total : " + scoreTotal + " / " + questionsRepondues;
        }

      });
    });

  });

});
</script>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%"><div class="yoast-breadcrumbs"><span><span><a href="https://st9ph.fr/">Accueil</a></span> » <span class="breadcrumb_last" aria-current="page">Vous avez cherché tp</span></span></div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:25%"></div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">

<div class="wp-block-ub-social-share" id="ub-social-share-34cb1b13-3295-452f-ad1e-918dc902bc11">
			<div class="social-share-icons align-icons-center orientation-icons-row"><a aria-label="linkedin-logo" target="_blank" rel="nofollow" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fst9ph.fr%2Fprestashop-op-com-dans-la-eshop%2F" class="ub-social-share-linkedin-container" style="border-color: #2867b2; ">
				<span class="social-share-icon ub-social-share-linkedin square" style="width: 30px; height: 30px; "><svg xmlns="http://www.w3.org/2000/svg" style="fill:#ffffff" fill="#ffffff" width="20" height="20" viewbox="0 0 448 512"><path d="M100.3 480H7.4V180.9h92.9V480zM53.8 140.1C24.1 140.1 0 115.5 0 85.8 0 56.1 24.1 32 53.8 32c29.7 0 53.8 24.1 53.8 53.8 0 29.7-24.1 54.3-53.8 54.3zM448 480h-92.7V334.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V480h-92.8V180.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V480z"></path></svg></span><span style="">partager</span>
			</a></div>
		</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="has-text-align-center wp-block-paragraph"><strong>donnez votre avis</strong> (star ranking) en bas de cette page</p>



<p class="has-text-align-center has-large-font-size wp-block-paragraph">⬇️</p>



<p class="wp-block-paragraph"></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-jetpack-repeat-visitor"></div></div>
</div>
<p>L’article <a href="https://st9ph.fr/prestashop-op-com-dans-la-eshop/">Prestashop | OP Com dans la Eshop</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://st9ph.fr/prestashop-op-com-dans-la-eshop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://st9ph.fr/wp-content/uploads/2026/02/carrousel-produits-comparateur.mp4" length="707952" type="video/mp4" />

		<post-id xmlns="com-wordpress:feed-additions:1">34861</post-id>	</item>
		<item>
		<title>code</title>
		<link>https://st9ph.fr/code/</link>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Thu, 26 Feb 2026 18:10:06 +0000</pubDate>
				<guid isPermaLink="false">https://st9ph.fr/?page_id=35396</guid>

					<description><![CDATA[<p>ParagrapheTitre H3Titre H4Liste B 🔵 🔴 🟢 ParagrapheTitre H3Titre H4Liste B 🔵 🔴 🟢 ParagrapheTitre H3Titre H4Liste B 🔵 🔴 🟢 ParagrapheTitre H3Titre H4Liste B 🔵 🔴 🟢 Assembler le code 📋 Copier dans le presse-papiers 🏭 Usine à Titres de Chapitre Numéro du chapitre : 0123456789 URL du Logo / Icône : Titre du ... <a title="code" class="read-more" href="https://st9ph.fr/code/" aria-label="En savoir plus sur code">Lire la suite</a></p>
<p>L’article <a href="https://st9ph.fr/code/">code</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="generator">

  <!-- ===== OUTIL 1 ===== -->
  <div class="gen-row">
    <select class="gen-type">
      <option value="p">Paragraphe</option>
      <option value="h3">Titre H3</option>
      <option value="h4">Titre H4</option>
      <option value="li">Liste</option>
    </select>

    <div class="toolbar">
      <button onclick="fmt(this,'bold')"><strong>B</strong></button>
      <button onclick="fmt(this,'blue')">🔵</button>
      <button onclick="fmt(this,'red')">🔴</button>
      <button onclick="fmt(this,'green')">🟢</button>
    </div>

    <div class="gen-text" contenteditable="true"></div>
  </div>

  <!-- ===== OUTIL 2 ===== -->
  <div class="gen-row">
    <select class="gen-type">
      <option value="p">Paragraphe</option>
      <option value="h3">Titre H3</option>
      <option value="h4">Titre H4</option>
      <option value="li">Liste</option>
    </select>

    <div class="toolbar">
      <button onclick="fmt(this,'bold')"><strong>B</strong></button>
      <button onclick="fmt(this,'blue')">🔵</button>
      <button onclick="fmt(this,'red')">🔴</button>
      <button onclick="fmt(this,'green')">🟢</button>
    </div>

    <div class="gen-text" contenteditable="true"></div>
  </div>

  <!-- ===== OUTIL 3 ===== -->
  <div class="gen-row">
    <select class="gen-type">
      <option value="p">Paragraphe</option>
      <option value="h3">Titre H3</option>
      <option value="h4">Titre H4</option>
      <option value="li">Liste</option>
    </select>

    <div class="toolbar">
      <button onclick="fmt(this,'bold')"><strong>B</strong></button>
      <button onclick="fmt(this,'blue')">🔵</button>
      <button onclick="fmt(this,'red')">🔴</button>
      <button onclick="fmt(this,'green')">🟢</button>
    </div>

    <div class="gen-text" contenteditable="true"></div>
  </div>

  <!-- ===== OUTIL 4 ===== -->
  <div class="gen-row">
    <select class="gen-type">
      <option value="p">Paragraphe</option>
      <option value="h3">Titre H3</option>
      <option value="h4">Titre H4</option>
      <option value="li">Liste</option>
    </select>

    <div class="toolbar">
      <button onclick="fmt(this,'bold')"><strong>B</strong></button>
      <button onclick="fmt(this,'blue')">🔵</button>
      <button onclick="fmt(this,'red')">🔴</button>
      <button onclick="fmt(this,'green')">🟢</button>
    </div>

    <div class="gen-text" contenteditable="true"></div>
  </div>

  <button class="build" onclick="buildHTML()">Assembler le code</button>

  <textarea id="result" readonly></textarea>

  <button class="copy" onclick="copyHTML()">📋 Copier dans le presse-papiers</button>

</div>



<style>
.generator {
  max-width: 900px;
  margin: 2rem auto;
  font-family: system-ui, sans-serif;
}

.gen-row {
  border-left: 4px solid #1e73be;
  padding: 12px;
  margin-bottom: 16px;
  background: #f9fafb;
}

.gen-type {
  margin-bottom: 8px;
}

.toolbar button {
  margin-right: 6px;
  cursor: pointer;
}

.gen-text {
  min-height: 60px;
  padding: 8px;
  background: #fff;
  border: 1px solid #ccc;
}

.build, .copy {
  margin-top: 12px;
  padding: 10px 14px;
  cursor: pointer;
}

#result {
  width: 100%;
  min-height: 160px;
  margin-top: 12px;
  font-family: monospace;
}
.generator-chapter {
  border-left: 4px solid #1e73be;
  padding: 1rem;
  margin: 2rem 0;
  background: #f8fbff;
}

.generator-chapter h3 {
  margin-top: 0;
}

.gen-input {
  border: 1px dashed #bbb;
  padding: 0.6rem;
  margin: 0.5rem 0;
  min-height: 1.4em;
  background: #fff;
}

.gen-input:focus {
  outline: none;
  border-color: #1e73be;
  background: #f1f7ff;
}

.gen-list-type {
  margin: 0.8rem 0;
}

textarea {
  width: 100%;
  margin-top: 0.8rem;
  font-family: monospace;
}
</style>



<script>
function fmt(btn, type) {
  btn.closest('.gen-row').querySelector('.gen-text').focus();

  if (type === 'bold') {
    document.execCommand('bold');
  }
  if (type === 'blue') {
    document.execCommand('foreColor', false, '#1e73be');
  }
  if (type === 'red') {
    document.execCommand('foreColor', false, '#dc2626');
  }
  if (type === 'green') {
    document.execCommand('foreColor', false, '#188038');
  }
}

function buildHTML() {
  let output = '';
  let listBuffer = [];

  document.querySelectorAll('.gen-row').forEach(row => {
    const type = row.querySelector('.gen-type').value;
    const content = row.querySelector('.gen-text').innerHTML.trim();
    if (!content) return;

    if (type === 'li') {
      listBuffer.push(`<li>${content}</li>`);
    } else {
      if (listBuffer.length) {
        output += `<ul>\n${listBuffer.join('\n')}\n</ul>\n\n`;
        listBuffer = [];
      }
      output += `<${type}>${content}</${type}>\n\n`;
    }
  });

  if (listBuffer.length) {
    output += `<ul>\n${listBuffer.join('\n')}\n</ul>`;
  }

  document.getElementById('result').value = output.trim();
}

function copyHTML() {
  const textarea = document.getElementById('result');
  textarea.select();
  document.execCommand('copy');
  alert('Code copié ✔️');
}
</script>



<!-- DÉBUT USINE À TITRES DE CHAPITRE (V2 - CORRIGÉE) -->
<style>
    .chapter-factory { background: #f8f9fa; border: 1px solid #ddd; border-radius: 8px; padding: 20px; max-width: 900px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; }
    .chapter-factory h2 { margin-top: 0; color: #2c3e50; text-align: center; }
    .factory-row { margin-bottom: 15px; }
    .factory-row label { display: block; font-weight: bold; margin-bottom: 5px; color: #555; }
    .factory-row input, .factory-row select { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-family: inherit; }
    
    .points-group { background: #fff; border: 1px solid #e0e0e0; padding: 15px; border-radius: 6px; margin-bottom: 15px; }
    .points-group h3 { margin-top: 0; font-size: 16px; color: #1e73be; border-bottom: 2px solid #f0f0f0; padding-bottom: 8px; margin-bottom: 12px; }
    
    .btn-group { display: flex; gap: 10px; margin-top: 20px; }
    .btn-factory { flex: 1; padding: 12px; border: none; border-radius: 6px; font-weight: bold; cursor: pointer; color: #fff; transition: opacity 0.2s; }
    .btn-gen { background: #25B9D7; }
    .btn-copy { background: #27ae60; }
    .btn-factory:hover { opacity: 0.9; }
    
    #chapter-result { width: 100%; height: 300px; margin-top: 20px; font-family: monospace; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 13px; }
    .preview-area { margin-top: 30px; border-top: 2px dashed #ccc; padding-top: 20px; }
</style>

<div class="chapter-factory">
    <h2>🏭 Usine à Titres de Chapitre</h2>
    
    <div class="factory-row">
        <label>Numéro du chapitre :</label>
        <select id="chap-num">
            <option value="0">0</option><option value="1">1</option><option value="2">2</option>
            <option value="3">3</option><option value="4">4</option><option value="5">5</option>
            <option value="6">6</option><option value="7">7</option><option value="8">8</option>
            <option value="9">9</option>
        </select>
    </div>

    <div class="factory-row">
        <label>URL du Logo / Icône :</label>
        <input type="text" id="chap-logo" value="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png">
    </div>

    <div class="factory-row">
        <label>Titre du chapitre (H2) :</label>
        <input type="text" id="chap-title" placeholder="Ex: Opérations sur les produits">
    </div>

    <div class="points-group">
        <h3>Points du plan (laisser vide pour masquer)</h3>
        <div class="factory-row"><input type="text" class="chap-point" placeholder="Point 1"></div>
        <div class="factory-row"><input type="text" class="chap-point" placeholder="Point 2"></div>
        <div class="factory-row"><input type="text" class="chap-point" placeholder="Point 3"></div>
        <div class="factory-row"><input type="text" class="chap-point" placeholder="Point 4"></div>
        <div class="factory-row"><input type="text" class="chap-point" placeholder="Point 5"></div>
        <div class="factory-row"><input type="text" class="chap-point" placeholder="Point 6"></div>
    </div>

    <div class="btn-group">
        <button class="btn-factory btn-gen" onclick="generateChapterCode()">⚙️ Générer le code</button>
        <button class="btn-factory btn-copy" onclick="copyChapterCode()">📋 Copier le code</button>
    </div>
    <textarea id="chapter-result" placeholder="Le code apparaîtra ici après avoir cliqué sur Générer..."></textarea>
    
    <div class="preview-area">
        <p style="text-align:center; color:#777; font-style:italic;">Aperçu :</p>
        <div id="chapter-preview"></div>
    </div>
</div>

<script>
    function generateChapterCode() {
        // 1. Récupération des valeurs simples
        const num = document.getElementById('chap-num').value;
        const logoUrl = document.getElementById('chap-logo').value;
        const title = document.getElementById('chap-title').value;
        
        if(!title) { 
            alert("Merci de mettre un titre !"); 
            return; 
        }

        // 2. Récupération des points (on utilise la classe .chap-point)
        const pointInputs = document.querySelectorAll('.chap-point');
        let pointsHtml = "";
        let hasPoints = false;

        pointInputs.forEach(input => {
            const val = input.value.trim();
            if(val !== "") {
                pointsHtml += `<li>${val}</li>`;
                hasPoints = true;
            }
        });

        if(!hasPoints) {
            if(!confirm("Tu n'as mis aucun point dans la liste. Générer quand même le titre seul ?")) {
                return;
            }
        }

        // 3. Construction du code final
        const finalCode = `<!-- DÉBUT TITRE CHAPITRE -->
<style>
.chapter-title { display: flex; align-items: stretch; margin: 1.7rem 0; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.chapter-number { background: #1e73be; color: #fff; font-weight: 700; font-size: 2.8rem; padding: 0 1.1rem; display: flex; align-items: center; justify-content: center; }
.chapter-content { padding: 1.3rem 1.5rem; width: 100%; }
.chapter-heading { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.6rem; }
.chapter-logo { width: 42px; height: 42px; flex-shrink: 0; display:block; }
.chapter-logo img { width: 100%; height: 100%; object-fit: contain; }
.chapter-content h2 { margin: 0; font-size: 2.1rem; font-weight: 700; color: #1e73be; }
.chapter-points { margin: 0; padding-left: 0; list-style: none; }
.chapter-points li { margin-bottom: 0.35rem; color: #444; font-size: 0.95rem; line-height: 1.45; }
.chapter-points li::before { content: "🔹 "; }
</style>

<div class="chapter-title">
  <div class="chapter-number">${num}</div>
  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="${logoUrl}" alt="Logo">
      </a>
      <h2>${title}</h2>
    </div>
    ${hasPoints ? '<ul class="chapter-points">' + pointsHtml + '</ul>' : ''}
  </div>
</div>
<!-- FIN TITRE CHAPITRE -->`;

        // 4. Affichage dans le textarea
        document.getElementById('chapter-result').value = finalCode;
        
        // 5. Affichage de l'aperçu (on injecte le HTML directement)
        // On crée un conteneur temporaire pour nettoyer les balises style/script si besoin, mais ici on injecte direct
        document.getElementById('chapter-preview').innerHTML = finalCode;
    }

    function copyChapterCode() {
        const t = document.getElementById('chapter-result');
        if(!t.value) {
            alert("Génère d'abord le code en cliquant sur le bouton bleu !");
            return;
        }
        t.select(); 
        t.setSelectionRange(0, 99999); // Pour mobile
        try {
            document.execCommand('copy');
            const btn = document.querySelector('.btn-copy');
            const oldText = btn.textContent;
            btn.textContent = "✅ Copié !"; 
            btn.style.background = "#219150";
            setTimeout(() => { 
                btn.textContent = oldText; 
                btn.style.background = "#27ae60"; 
            }, 2000);
        } catch(e) { 
            alert("Erreur lors de la copie. Sélectionne le texte manuellement."); 
        }
    }
</script>
<!-- FIN USINE À TITRES DE CHAPITRE -->



<div class="generator-chapter">

  <h3>🧱 Générateur — Titre de chapitre à puces</h3>

  <!-- Numéro -->
  <label>
    Numéro du chapitre :
    <select id="gen-chapter-number">
      <option value="1">1</option><option value="2">2</option>
      <option value="3">3</option><option value="4">4</option>
      <option value="5">5</option><option value="6">6</option>
      <option value="7">7</option><option value="8">8</option>
      <option value="9">9</option>
    </select>
  </label>

  <!-- Titre -->
  <div contenteditable="true" class="gen-input" id="gen-chapter-title">
    Titre principal du chapitre
  </div>

  <!-- Type de liste -->
  <div class="gen-list-type">
    <label><input type="radio" name="listType" value="ul" checked> Puces</label>
    <label><input type="radio" name="listType" value="ol"> Numérotation</label>
  </div>

  <!-- Lignes -->
  <div contenteditable="true" class="gen-input" data-point>Première idée clé</div>
  <div contenteditable="true" class="gen-input" data-point>Deuxième idée clé</div>
  <div contenteditable="true" class="gen-input" data-point>Troisième idée clé</div>

  <button onclick="generateChapterBlock()">Générer le bloc</button>

  <textarea id="gen-chapter-output" rows="14" readonly></textarea>
  <button onclick="copyChapter()">📋 Copier le code</button>

</div>



<script>
function generateChapterBlock() {

  const number = document.getElementById("gen-chapter-number").value;
  const title = document.getElementById("gen-chapter-title").innerHTML.trim();

  const points = [...document.querySelectorAll('[data-point]')]
    .map(p => p.innerHTML.trim())
    .filter(p => p !== "");

  const listType = document.querySelector('input[name="listType"]:checked').value;

  let listHTML = "";
  if (points.length) {
    listHTML += `<${listType} class="chapter-points">\n`;
    points.forEach(p => {
      listHTML += `  <li>${p}</li>\n`;
    });
    listHTML += `</${listType}>`;
  }

  const html = `
<div class="chapter-title">
  <div class="chapter-number">${number}</div>

  <div class="chapter-content">
    <div class="chapter-heading">
      <a class="chapter-logo" href="https://st9ph.fr" target="_blank" rel="noopener">
        <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/st9ph-ico-sansTxt.png" alt="Logo St9ph">
      </a>
      <h2>${title}</h2>
    </div>
    ${listHTML}
  </div>
</div>`.trim();

  document.getElementById("gen-chapter-output").value = html;
}

function copyChapter() {
  const textarea = document.getElementById("gen-chapter-output");
  textarea.select();
  document.execCommand("copy");
}
</script>



<div class="generator-resources">
  <h3>🧩 Générateur – Bloc ressources</h3>

  <!-- Ressource 1 à 5 -->
  <div class="resource-row" data-type="link">
    <select class="res-type">
      <option value="link">🌐 Lien</option>
      <option value="pdf">📄 PDF</option>
    </select>

    <div class="res-label" contenteditable="true">Intitulé de la ressource</div>
    <input class="res-url" type="text" placeholder="https://…" />
  </div>

  <div class="resource-row" data-type="link">
    <select class="res-type">
      <option value="link">🌐 Lien</option>
      <option value="pdf">📄 PDF</option>
    </select>

    <div class="res-label" contenteditable="true"></div>
    <input class="res-url" type="text" />
  </div>

  <div class="resource-row" data-type="link">
    <select class="res-type">
      <option value="link">🌐 Lien</option>
      <option value="pdf">📄 PDF</option>
    </select>

    <div class="res-label" contenteditable="true"></div>
    <input class="res-url" type="text" />
  </div>

  <div class="resource-row" data-type="link">
    <select class="res-type">
      <option value="link">🌐 Lien</option>
      <option value="pdf">📄 PDF</option>
    </select>

    <div class="res-label" contenteditable="true"></div>
    <input class="res-url" type="text" />
  </div>

  <div class="resource-row" data-type="link">
    <select class="res-type">
      <option value="link">🌐 Lien</option>
      <option value="pdf">📄 PDF</option>
    </select>

    <div class="res-label" contenteditable="true"></div>
    <input class="res-url" type="text" />
  </div>

  <button onclick="generateResources()">Générer le bloc</button>

  <textarea id="resources-output" rows="10" style="width:100%;margin-top:1rem;"></textarea>
  <button onclick="copyResources()">📋 Copier</button>
</div>



<script>
function generateResources() {
  const rows = document.querySelectorAll(".resource-row");
  let html = `<div class="resources-box">\n<ul>\n`;

  rows.forEach(row => {
    const type = row.querySelector(".res-type").value;
    const label = row.querySelector(".res-label").innerHTML.trim();
    const url = row.querySelector(".res-url").value.trim();

    if (!label || !url) return;

    const icon = type === "pdf"
      ? `<span class="resource-icon"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/01/pdf.png" alt="PDF"></span>`
      : `🌐`;

    html += `  <li>
    ${icon}
    <span class="resource-text">${label}</span>
    <a class="resource-link" href="${url}" target="_blank" rel="noopener">voir</a>
  </li>\n`;
  });

  html += `</ul>\n</div>`;
  document.getElementById("resources-output").value = html;
}

function copyResources() {
  const output = document.getElementById("resources-output");
  output.select();
  document.execCommand("copy");
}
</script>



<div style="background:#ffffff;padding:20px;border:1px solid #ccc;border-radius:6px;max-width:900px;font-family:Arial;">

<h2>Générateur de QCM</h2>

<label>Question :</label><br>
<input type="text" id="question" style="width:100%;margin-bottom:15px;"><br>

<hr>

<h3>Réponse A</h3>
<label><input type="radio" name="correctA" value="true"> Bonne réponse</label>
<label><input type="radio" name="correctA" value="false" checked> Mauvaise réponse</label><br>
<input type="text" id="repA" placeholder="Texte réponse A" style="width:100%;margin:5px 0;">
<input type="text" id="feedA" placeholder="Feedback pour A" style="width:100%;margin-bottom:10px;">

<h3>Réponse B</h3>
<label><input type="radio" name="correctB" value="true"> Bonne réponse</label>
<label><input type="radio" name="correctB" value="false" checked> Mauvaise réponse</label><br>
<input type="text" id="repB" placeholder="Texte réponse B" style="width:100%;margin:5px 0;">
<input type="text" id="feedB" placeholder="Feedback pour B" style="width:100%;margin-bottom:10px;">

<h3>Réponse C</h3>
<label><input type="radio" name="correctC" value="true"> Bonne réponse</label>
<label><input type="radio" name="correctC" value="false" checked> Mauvaise réponse</label><br>
<input type="text" id="repC" placeholder="Texte réponse C" style="width:100%;margin:5px 0;">
<input type="text" id="feedC" placeholder="Feedback pour C" style="width:100%;margin-bottom:20px;">

<button onclick="genererCode()">Générer le code</button>
<button onclick="copierCode()">Copier le code</button>

<h3>Code généré :</h3>
<textarea id="resultat" style="width:100%;height:300px;"></textarea>

</div>

<script>
function genererCode() {

let question = document.getElementById('question').value;

let repA = document.getElementById('repA').value;
let feedA = document.getElementById('feedA').value;
let correctA = document.querySelector('input[name="correctA"]:checked').value;

let repB = document.getElementById('repB').value;
let feedB = document.getElementById('feedB').value;
let correctB = document.querySelector('input[name="correctB"]:checked').value;

let repC = document.getElementById('repC').value;
let feedC = document.getElementById('feedC').value;
let correctC = document.querySelector('input[name="correctC"]:checked').value;

let code = `<!-- ===== BLOQ QCM COMPLET AVEC SCORE LOCAL ===== -->
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> ${question}</p>

  <ul class="qcm-options">
    <li data-correct="${correctA}" data-feedback="${feedA}">${repA}</li>
    <li data-correct="${correctB}" data-feedback="${feedB}">${repB}</li>
    <li data-correct="${correctC}" data-feedback="${feedC}">${repC}</li>
  </ul>

  <p class="qcm-feedback"></p>
  <p class="qcm-local-score"></p>
</div>

<style>
.bloc-qcm {
  border-left: 4px solid #1e73be;
  background: #f5f9ff;
  padding: 16px 18px;
  margin: 24px 0;
  border-radius: 4px;
  font-size: 15px;
}
.qcm-options {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}
.qcm-options li {
  position: relative;
  padding: 10px 12px 10px 42px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.qcm-options li::before {
  content: attr(data-letter);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
  color: #1e73be;
}
.qcm-options li:hover {
  background: #eef3ff;
}
.qcm-options li.correct {
  background: #e6f4ea;
  border-color: #188038;
}
.qcm-options li.wrong {
  background: #fdecec;
  border-color: #dc2626;
}
.qcm-feedback {
  margin-top: 12px;
  font-weight: bold;
}
.qcm-local-score {
  margin-top: 6px;
  font-weight: bold;
}
</style>

<script>
document.querySelectorAll('.bloc-qcm').forEach(qcm => {
  const options = qcm.querySelectorAll('.qcm-options li');
  const feedback = qcm.querySelector('.qcm-feedback');
  const localScore = qcm.querySelector('.qcm-local-score');

  let answered = false;

  options.forEach((option, index) => {
    option.dataset.letter = String.fromCharCode(65 + index);
  });

  options.forEach(option => {
    option.addEventListener('click', () => {
      if (answered) return;
      answered = true;

      options.forEach(o => o.classList.remove('correct', 'wrong'));

      if (option.dataset.correct === "true") {
        option.classList.add('correct');
      } else {
        option.classList.add('wrong');
      }

      feedback.textContent = option.dataset.feedback;

      let point = option.dataset.correct === "true" ? 1 : 0;
      localScore.textContent = "Tu marques " + point + " point";
    });
  });
});
<\/script>`;

document.getElementById('resultat').value = code;
}

function copierCode() {
  let texte = document.getElementById('resultat').value;

  if (navigator.clipboard && window.isSecureContext) {
    navigator.clipboard.writeText(texte);
  } else {
    let textarea = document.getElementById('resultat');
    textarea.select();
    document.execCommand('copy');
  }
}
</script>



<script>
function genererQCM() {

  const question = document.getElementById("gen-question").value;

  const correct = document.querySelector('input[name="correct"]:checked');

  if (!correct) {
    alert("Sélectionne la bonne réponse !");
    return;
  }

  const bonneLettre = correct.value;

  function getData(letter) {
    return {
      text: document.getElementById("gen-" + letter.toLowerCase() + "-text").value,
      feedback: document.getElementById("gen-" + letter.toLowerCase() + "-feedback").value,
      isCorrect: bonneLettre === letter
    };
  }

  const A = getData("A");
  const B = getData("B");
  const C = getData("C");

  const code = `
<div class="bloc-qcm">
  <p class="qcm-question">🤔 <strong>Question :</strong> ${question}</p>

  <ul class="qcm-options">
    <li data-correct="${A.isCorrect}" data-feedback="${A.feedback}">${A.text}</li>
    <li data-correct="${B.isCorrect}" data-feedback="${B.feedback}">${B.text}</li>
    <li data-correct="${C.isCorrect}" data-feedback="${C.feedback}">${C.text}</li>
  </ul>

  <p class="qcm-feedback"></p>
</div>
`;

  document.getElementById("gen-output").value = code.trim();
}

function copierCode() {
  const textarea = document.getElementById("gen-output");
  textarea.select();
  document.execCommand("copy");
  alert("Code copié !");
}
</script>



<!-- DÉBUT DU GÉNÉRATEUR D'ALERTE MODALE ULTIME -->
<style>
    /* Styles du Générateur (Interface Admin) */
    .gen-wrapper {
        border: 2px solid #0066cc;
        background: #f0f7ff;
        padding: 25px;
        border-radius: 8px;
        font-family: 'Segoe UI', sans-serif;
        max-width: 900px;
        margin: 20px auto;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    }
    .gen-title { color: #004499; margin-top: 0; border-bottom: 2px solid #cce0ff; padding-bottom: 15px; font-size: 24px; }
    .gen-section { background: #fff; padding: 15px; border-radius: 6px; margin-bottom: 20px; border: 1px solid #e1e8ed; }
    .gen-section h3 { margin-top: 0; font-size: 16px; color: #555; text-transform: uppercase; letter-spacing: 1px; }
    .gen-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
    .gen-field { margin-bottom: 15px; }
    .gen-field label { display: block; font-weight: 600; margin-bottom: 6px; color: #333; font-size: 13px; }
    .gen-field input, .gen-field textarea, .gen-field select {
        width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 14px; transition: border 0.2s;
    }
    .gen-field input:focus, .gen-field textarea:focus { border-color: #0066cc; outline: none; }
    
    .gen-btn-group { margin-top: 25px; display: flex; gap: 15px; flex-wrap: wrap; align-items: center; }
    .gen-btn {
        padding: 14px 24px; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; font-size: 15px; transition: all 0.2s; display: inline-flex; align-items: center; gap: 8px;
    }
    .btn-preview { background: #0066cc; color: white; }
    .btn-preview:hover { background: #004499; transform: translateY(-1px); }
    .btn-generate { background: #28a745; color: white; }
    .btn-generate:hover { background: #218838; transform: translateY(-1px); }
    .btn-copy { background: #ffc107; color: #333; display: none; }
    .btn-copy:hover { background: #e0a800; transform: translateY(-1px); }
    .btn-copy.copied { background: #28a745; color: white; }

    .gen-output-area {
        margin-top: 25px;
        display: none;
        background: #fff;
        border: 1px solid #ddd;
        padding: 20px;
        border-radius: 6px;
        box-shadow: inset 0 0 10px rgba(0,0,0,0.05);
    }
    .gen-output-area h4 { margin-top: 0; color: #28a745; display: flex; align-items: center; gap: 10px; }
    .gen-code-box {
        width: 100%; height: 250px; background: #2d2d2d; color: #f8f8f2;
        padding: 15px; border-radius: 4px; font-family: 'Consolas', 'Monaco', monospace; font-size: 12px;
        resize: vertical; box-sizing: border-box; border: 1px solid #ccc; line-height: 1.4;
    }
    .gen-note { font-size: 13px; color: #666; margin-top: 15px; font-style: italic; background: #fff3cd; padding: 10px; border-radius: 4px; border-left: 4px solid #ffc107; }

    /* Styles de l'Alerte (Pour la prévisualisation uniquement) */
    .fake-system-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.6); backdrop-filter: blur(3px); z-index: 10000; justify-content: center; align-items: center; }
    .fake-system-dialog { background: #fff; width: 90%; max-width: 400px; border-radius: 8px; box-shadow: 0 10px 25px rgba(0,0,0,0.2); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; overflow: hidden; animation: popInAlert 0.2s ease-out; border: 1px solid #ddd; }
    @keyframes popInAlert { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }
    .fake-system-header { padding: 20px 20px 10px 20px; display: flex; align-items: flex-start; }
    .fake-system-icon { font-size: 28px; margin-right: 15px; flex-shrink: 0; line-height: 1; }
    .icon-warning { color: #ff9800; } .icon-info { color: #2196f3; }
    .fake-system-title { font-weight: 600; font-size: 16px; color: #333; margin: 0; line-height: 1.3; }
    .fake-system-source { font-weight: 400; color: #555; font-size: 13px; margin-top: 4px; display: block; }
    .fake-system-body { padding: 0 20px 20px 55px; font-size: 14px; color: #333; line-height: 1.5; }
    .fake-system-footer { border-top: 1px solid #eee; padding: 10px 20px; display: flex; justify-content: flex-end; gap: 10px; background: #f9f9f9; }
    .fake-btn { padding: 8px 16px; border-radius: 4px; font-size: 13px; font-weight: 500; cursor: pointer; border: none; transition: background 0.2s; }
    .fake-btn-cancel { background: #e0e0e0; color: #333; } .fake-btn-cancel:hover { background: #d0d0d0; }
    .fake-btn-confirm { background: #0066cc; color: white; } .fake-btn-confirm:hover { background: #0052a3; }
    .fake-btn-close-only { background: #2196f3; color: white; width: 100%; } .fake-btn-close-only:hover { background: #1976d2; }
    
    @media (max-width: 600px) { .gen-grid { grid-template-columns: 1fr; } }
</style>

<div class="gen-wrapper">
    <h2 class="gen-title">🏭 Usine à Alertes Modales (Version Complète)</h2>
    <p>Configurez chaque texte précisément. Le code généré sera propre et prêt à l'emploi.</p>

    <!-- SECTION 1 : CONFIGURATION GÉNÉRALE -->
    <div class="gen-section">
        <h3>1. Configuration Globale</h3>
        <div class="gen-grid">
            <div class="gen-field">
                <label>Type d'alerte :</label>
                <select id="gen-type" onchange="toggleUrlField()">
                    <option value="warning">⚠️ Déplacement (2 boutons : Annuler / Continuer)</option>
                    <option value="info">ℹ️ Information (1 bouton : Fermer)</option>
                </select>
            </div>
            <div class="gen-field">
                <label>Source (ex: st9ph.fr indique...) :</label>
                <input type="text" id="gen-source" value="st9ph.fr indique" placeholder="Titre en gras">
            </div>
        </div>
        <div class="gen-field">
            <label>Message principal :</label>
            <textarea id="gen-msg" rows="2" placeholder="Le contenu du message...">Ce bouton doit emmener vers l'URL de votre formulaire d'inscription. Êtes-vous sûr de vouloir quitter cette page ?</textarea>
        </div>
        <div class="gen-field" id="field-url">
            <label>URL de destination (si mode Déplacement) :</label>
            <input type="text" id="gen-url" value="https://infomaniak.com/gtl/marketing-events.newsletters" placeholder="https://...">
        </div>
    </div>

    <!-- SECTION 2 : TEXTES DES BOUTONS -->
    <div class="gen-section">
        <h3>2. Textes des Boutons (Copywriting)</h3>
        <div class="gen-grid">
            <div class="gen-field">
                <label>🔘 Bouton DÉCLENCHEUR (dans l'article) :</label>
                <input type="text" id="gen-btn-trigger" value="🔔 Voir l'alerte importante" placeholder="Texte du bouton visible dans la page">
            </div>
            <div class="gen-field">
                <label>🔘 Bouton FERMETURE (Mode Info) :</label>
                <input type="text" id="gen-btn-info" value="J'ai compris" placeholder="Texte unique pour le mode Info">
            </div>
        </div>
        <div class="gen-grid" id="grid-warning-btns">
            <div class="gen-field">
                <label>⛔ Bouton ANNULER (Mode Déplacement) :</label>
                <input type="text" id="gen-btn-cancel" value="Rester sur la page" placeholder="Texte du bouton gauche">
            </div>
            <div class="gen-field">
                <label>✅ Bouton CONTINUER (Mode Déplacement) :</label>
                <input type="text" id="gen-btn-confirm" value="Aller au formulaire" placeholder="Texte du bouton droit">
            </div>
        </div>
    </div>

    <div class="gen-btn-group">
        <button class="gen-btn btn-preview" onclick="previewGenAlert()">👁️ Prévisualiser</button>
        <button class="gen-btn btn-generate" onclick="generateCode()">🛠️ Générer le code</button>
        <button class="gen-btn btn-copy" id="btn-copy" onclick="copyCode()">📋 Copier le code</button>
    </div>

    <div class="gen-output-area" id="output-area">
        <h4>✅ Code prêt à l'emploi :</h4>
        <textarea id="final-code" class="gen-code-box" readonly></textarea>
        <p class="gen-note">
            <strong>Instruction :</strong> Copiez tout le code ci-dessus (Ctrl+C).<br>
            Allez dans votre article WordPress, ajoutez un bloc <strong>HTML personnalisé</strong>, et collez-le (Ctrl+V).<br>
            Seul le bouton déclencheur apparaîtra. Le panneau de configuration restera dans cet article "Usine".
        </p>
    </div>
</div>

<!-- Structure de prévisualisation (cachée) -->
<div id="preview-overlay" class="fake-system-overlay">
    <div class="fake-system-dialog">
        <div class="fake-system-header">
            <div class="fake-system-icon" id="prev-icon">⚠️</div>
            <div><div class="fake-system-title" id="prev-source">Source</div></div>
        </div>
        <div class="fake-system-body" id="prev-msg">Message</div>
        <div class="fake-system-footer" id="prev-footer"></div>
    </div>
</div>

<script>
    // Gestion de l'affichage des champs selon le mode
    function toggleUrlField() {
        var type = document.getElementById('gen-type').value;
        var urlField = document.getElementById('field-url');
        var gridWarn = document.getElementById('grid-warning-btns');
        
        if(type === 'info') {
            urlField.style.display = 'none';
            gridWarn.style.opacity = '0.5';
            gridWarn.style.pointerEvents = 'none';
        } else {
            urlField.style.display = 'block';
            gridWarn.style.opacity = '1';
            gridWarn.style.pointerEvents = 'auto';
        }
    }

    // Prévisualisation
    function previewGenAlert() {
        var type = document.getElementById('gen-type').value;
        var source = document.getElementById('gen-source').value;
        var msg = document.getElementById('gen-msg').value;
        var btnTrigger = document.getElementById('gen-btn-trigger').value; // Pas utilisé dans la modal, mais bon à savoir
        var btnInfo = document.getElementById('gen-btn-info').value;
        var btnCancel = document.getElementById('gen-btn-cancel').value;
        var btnConfirm = document.getElementById('gen-btn-confirm').value;
        var url = document.getElementById('gen-url').value;
        
        var icon = document.getElementById('prev-icon');
        var footer = document.getElementById('prev-footer');

        document.getElementById('prev-source').innerText = source;
        document.getElementById('prev-msg').innerText = msg;
        footer.innerHTML = '';

        if(type === 'info') {
            icon.innerHTML = 'ℹ️'; icon.className = 'fake-system-icon icon-info';
            var btn = document.createElement('button');
            btn.className = 'fake-btn fake-btn-close-only';
            btn.innerText = btnInfo;
            btn.onclick = function() { document.getElementById('preview-overlay').style.display = 'none'; };
            footer.appendChild(btn);
        } else {
            icon.innerHTML = '⚠️'; icon.className = 'fake-system-icon icon-warning';
            
            var btn1 = document.createElement('button');
            btn1.className = 'fake-btn fake-btn-cancel';
            btn1.innerText = btnCancel;
            btn1.onclick = function() { document.getElementById('preview-overlay').style.display = 'none'; };
            
            var btn2 = document.createElement('button');
            btn2.className = 'fake-btn fake-btn-confirm';
            btn2.innerText = btnConfirm;
            btn2.onclick = function() { 
                if(url) window.location.href = url; 
                else alert("Aucune URL définie !");
            };
            
            footer.appendChild(btn1);
            footer.appendChild(btn2);
        }
        document.getElementById('preview-overlay').style.display = 'flex';
    }

    // GÉNÉRATION DU CODE FINAL
    function generateCode() {
        var type = document.getElementById('gen-type').value;
        var source = document.getElementById('gen-source').value;
        var msg = document.getElementById('gen-msg').value;
        var url = document.getElementById('gen-url').value;
        
        var btnTrigger = document.getElementById('gen-btn-trigger').value;
        var btnInfo = document.getElementById('gen-btn-info').value;
        var btnCancel = document.getElementById('gen-btn-cancel').value;
        var btnConfirm = document.getElementById('gen-btn-confirm').value;

        var uniqueId = 'alert-' + Math.random().toString(36).substr(2, 6); 
        var colorIcon = type === 'info' ? '#2196f3' : '#ff9800';
        var iconChar = type === 'info' ? 'ℹ️' : '⚠️';

        // 1. CSS
        var css = `<style>
.${uniqueId}-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.6); backdrop-filter: blur(3px); z-index: 9999; justify-content: center; align-items: center; }
.${uniqueId}-dialog { background: #fff; width: 90%; max-width: 400px; border-radius: 8px; box-shadow: 0 10px 25px rgba(0,0,0,0.2); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; overflow: hidden; animation: popIn${uniqueId} 0.2s ease-out; border: 1px solid #ddd; }
@keyframes popIn${uniqueId} { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.${uniqueId}-header { padding: 20px 20px 10px 20px; display: flex; align-items: flex-start; }
.${uniqueId}-icon { font-size: 28px; margin-right: 15px; flex-shrink: 0; line-height: 1; }
.${uniqueId}-title { font-weight: 600; font-size: 16px; color: #333; margin: 0; line-height: 1.3; }
.${uniqueId}-body { padding: 0 20px 20px 55px; font-size: 14px; color: #333; line-height: 1.5; }
.${uniqueId}-footer { border-top: 1px solid #eee; padding: 10px 20px; display: flex; justify-content: flex-end; gap: 10px; background: #f9f9f9; }
.${uniqueId}-btn { padding: 8px 16px; border-radius: 4px; font-size: 13px; font-weight: 500; cursor: pointer; border: none; transition: background 0.2s; }
.${uniqueId}-btn-cancel { background: #e0e0e0; color: #333; } .${uniqueId}-btn-cancel:hover { background: #d0d0d0; }
.${uniqueId}-btn-confirm { background: #0066cc; color: white; } .${uniqueId}-btn-confirm:hover { background: #0052a3; }
.${uniqueId}-btn-close { background: #2196f3; color: white; width: 100%; } .${uniqueId}-btn-close:hover { background: #1976d2; }
.${uniqueId}-trigger { background: #ff9800; color: white; border: none; padding: 10px 20px; font-size: 14px; border-radius: 4px; cursor: pointer; font-family: sans-serif; display: inline-block; margin: 10px 0; } .${uniqueId}-trigger:hover { background: #e68900; }
</style>`;

        // 2. HTML & LOGIQUE BOUTONS
        var buttonsHtml = '';
        if(type === 'info') {
            buttonsHtml = `<button class="${uniqueId}-btn ${uniqueId}-btn-close" onclick="document.getElementById('${uniqueId}-overlay').style.display='none'">${btnInfo}</button>`;
        } else {
            // Échapper les quotes dans l'URL pour le JS inline
            var safeUrl = url.replace(/'/g, "\\'");
            buttonsHtml = `
                <button class="${uniqueId}-btn ${uniqueId}-btn-cancel" onclick="document.getElementById('${uniqueId}-overlay').style.display='none'">${btnCancel}</button>
                <button class="${uniqueId}-btn ${uniqueId}-btn-confirm" onclick="if('${safeUrl}') window.location.href='${safeUrl}'; else document.getElementById('${uniqueId}-overlay').style.display='none';">${btnConfirm}</button>
            `;
        }

        var html = `<!-- DÉBUT ALERTE MODALE (Généré) -->
<div id="${uniqueId}-overlay" class="${uniqueId}-overlay">
    <div class="${uniqueId}-dialog">
        <div class="${uniqueId}-header">
            <div class="${uniqueId}-icon" style="color: ${colorIcon}">${iconChar}</div>
            <div><div class="${uniqueId}-title">${source}</div></div>
        </div>
        <div class="${uniqueId}-body">${msg}</div>
        <div class="${uniqueId}-footer">${buttonsHtml}</div>
    </div>
</div>
<button onclick="document.getElementById('${uniqueId}-overlay').style.display='flex'" class="${uniqueId}-trigger">${btnTrigger}</button>
<!-- FIN ALERTE MODALE -->`;

        document.getElementById('final-code').value = css + html;
        document.getElementById('output-area').style.display = 'block';
        document.getElementById('btn-copy').style.display = 'inline-flex';
        document.getElementById('output-area').scrollIntoView({behavior: "smooth"});
    }

    // Copie dans le presse-papiers
    function copyCode() {
        var copyText = document.getElementById("final-code");
        copyText.select();
        copyText.setSelectionRange(0, 99999); 
        navigator.clipboard.writeText(copyText.value).then(function() {
            var btn = document.getElementById('btn-copy');
            var originalText = btn.innerHTML;
            btn.innerHTML = "✅ Copié !";
            btn.classList.add('copied');
            setTimeout(function() {
                btn.innerHTML = originalText;
                btn.classList.remove('copied');
            }, 3000);
        }, function(err) {
            alert("Erreur lors de la copie. Sélectionnez le texte et faites Ctrl+C.");
        });
    }
</script>
<!-- FIN DU GÉNÉRATEUR -->



<!-- DÉBUT DU GÉNÉRATEUR DE POP-UP TEASER AUDIO -->
<style>
    /* Styles de l'interface du Générateur (Admin) */
    .gen-audio-wrapper {
        border: 2px solid #1E73BE;
        background: #f0f7ff;
        padding: 25px;
        border-radius: 8px;
        font-family: 'Segoe UI', sans-serif;
        max-width: 900px;
        margin: 20px auto;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    }
    .gen-audio-title { color: #004499; margin-top: 0; border-bottom: 2px solid #cce0ff; padding-bottom: 15px; font-size: 24px; }
    .gen-audio-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 15px; }
    .gen-audio-field { margin-bottom: 15px; }
    .gen-audio-field label { display: block; font-weight: 600; margin-bottom: 6px; color: #333; font-size: 13px; }
    .gen-audio-field input, .gen-audio-field textarea {
        width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 14px; transition: border 0.2s;
    }
    .gen-audio-field input:focus, .gen-audio-field textarea:focus { border-color: #1E73BE; outline: none; background: #fff; }
    
    .gen-audio-btn-group { margin-top: 25px; display: flex; gap: 15px; flex-wrap: wrap; align-items: center; }
    .gen-audio-btn {
        padding: 14px 24px; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; font-size: 15px; transition: all 0.2s; display: inline-flex; align-items: center; gap: 8px;
    }
    .btn-preview { background: #1E73BE; color: white; }
    .btn-preview:hover { background: #155a96; transform: translateY(-1px); }
    .btn-generate { background: #28a745; color: white; }
    .btn-generate:hover { background: #218838; transform: translateY(-1px); }
    .btn-copy { background: #ffc107; color: #333; display: none; }
    .btn-copy:hover { background: #e0a800; transform: translateY(-1px); }
    .btn-copy.copied { background: #28a745; color: white; }

    .gen-audio-output-area {
        margin-top: 25px;
        display: none;
        background: #fff;
        border: 1px solid #ddd;
        padding: 20px;
        border-radius: 6px;
        box-shadow: inset 0 0 10px rgba(0,0,0,0.05);
    }
    .gen-audio-output-area h4 { margin-top: 0; color: #28a745; display: flex; align-items: center; gap: 10px; }
    .gen-audio-code-box {
        width: 100%; height: 300px; background: #2d2d2d; color: #f8f8f2;
        padding: 15px; border-radius: 4px; font-family: 'Consolas', 'Monaco', monospace; font-size: 12px;
        resize: vertical; box-sizing: border-box; border: 1px solid #ccc; line-height: 1.4;
    }
    .gen-audio-note { font-size: 13px; color: #666; margin-top: 15px; font-style: italic; background: #fff3cd; padding: 10px; border-radius: 4px; border-left: 4px solid #ffc107; }

    /* Styles du Pop-up (Pour la prévisualisation uniquement) */
    .audio-modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); z-index: 10000; justify-content: center; align-items: center; backdrop-filter: blur(2px); }
    .audio-modal-content { background: #fff; width: 90%; max-width: 700px; display: flex; flex-direction: row; position: relative; border-radius: 8px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.3); animation: slideDown 0.3s ease-out; }
    @keyframes slideDown { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
    .audio-modal-left { flex: 1; background: #f4f4f4; min-width: 250px; display: flex; align-items: center; justify-content: center; }
    .audio-modal-left img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 300px; }
    .audio-modal-right { flex: 1.5; padding: 30px; display: flex; flex-direction: column; justify-content: center; text-align: left; }
    .audio-modal-close { position: absolute; top: 10px; right: 15px; font-size: 28px; font-weight: bold; color: #aaa; cursor: pointer; line-height: 20px; z-index: 10; transition: color 0.2s; }
    .audio-modal-close:hover { color: #333; }
    .audio-modal-title { margin-top: 0; margin-bottom: 15px; font-size: 24px; color: #333; font-weight: 700; line-height: 1.2; }
    .audio-modal-text { font-size: 16px; color: #555; margin-bottom: 25px; line-height: 1.6; }
    .audio-modal-btn { background: #1E73BE; color: white; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; font-size: 16px; display: inline-block; text-align: center; transition: background 0.2s, transform 0.2s; align-self: flex-start; border: none; cursor: pointer; }
    .audio-modal-btn:hover { background: #155a96; transform: translateY(-2px); color: white; }
    .audio-trigger-btn { background: #1E73BE; color: white; padding: 10px 20px; border-radius: 4px; text-decoration: none; font-weight: bold; display: inline-block; cursor: pointer; border: none; font-family: sans-serif; transition: background 0.2s; }
    .audio-trigger-btn:hover { background: #155a96; }
    @media (max-width: 768px) { .audio-modal-content { flex-direction: column; max-height: 90vh; overflow-y: auto; } .audio-modal-left { min-width: 100%; min-height: 200px; flex: none; } .audio-modal-right { padding: 20px; } .audio-modal-btn { width: 100%; box-sizing: border-box; } }
</style>

<div class="gen-audio-wrapper">
    <h2 class="gen-audio-title">🏭 Usine à Pop-up Teaser Audio</h2>
    <p>Configurez votre pop-up ci-dessous. Le code généré ne contiendra QUE le bouton et le pop-up (sans ce panneau).</p>

    <div class="gen-audio-grid">
        <div class="gen-audio-field">
            <label>1. Titre du pop-up :</label>
            <input type="text" id="gen-audio-title" value="Nos Ebooks s'écoutent aussi !">
        </div>
        <div class="gen-audio-field">
            <label>2. Texte du bouton déclencheur (sur l'article) :</label>
            <input type="text" id="gen-audio-btn-text" value="🎧 Découvrir l'audio">
        </div>
    </div>

    <div class="gen-audio-field">
        <label>3. Texte explicatif :</label>
        <textarea id="gen-audio-text" rows="3">Faites plus facilement votre choix dans nos ebooks en écoutant l'extrait dans le lecteur en description</textarea>
    </div>

    <div class="gen-audio-grid">
        <div class="gen-audio-field">
            <label>4. Texte du bouton d'action (dans le pop-up) :</label>
            <input type="text" id="gen-audio-action-text" value="Essayer avec Cyrano">
        </div>
        <div class="gen-audio-field">
            <label>5. URL de destination (cible) :</label>
            <input type="text" id="gen-audio-url" value="https://shop.st9ph.fr/presta/fr/accueil/46-cyrano-de-bergerac.html">
        </div>
    </div>

    <div class="gen-audio-field">
        <label>6. URL de l'image :</label>
        <input type="text" id="gen-audio-img" value="https://st9ph.fr/wp-content/uploads/2026/03/image-42.png">
    </div>

    <div class="gen-audio-btn-group">
        <button class="gen-audio-btn btn-preview" onclick="previewGenAudio()">👁️ Prévisualiser</button>
        <button class="gen-audio-btn btn-generate" onclick="generateAudioCode()">🛠️ Générer le code à copier</button>
        <button class="gen-audio-btn btn-copy" id="btn-copy-audio" onclick="copyAudioCode()">📋 Copier le code</button>
    </div>

    <div class="gen-audio-output-area" id="output-area-audio">
        <h4>✅ Code prêt à l'emploi (Copiez tout ceci) :</h4>
        <textarea id="final-code-audio" class="gen-audio-code-box" readonly></textarea>
        <p class="gen-audio-note">
            <strong>Instruction :</strong> Copiez tout le code ci-dessus. Collez-le dans un bloc <strong>HTML personnalisé</strong> sur votre article de cours.<br>
            L'étudiant verra uniquement le bouton que vous avez défini et le pop-up au clic.
        </p>
    </div>
</div>

<!-- Structure de prévisualisation (cachée) -->
<div id="preview-audio-overlay" class="audio-modal-overlay">
    <div class="audio-modal-content">
        <span class="audio-modal-close" onclick="document.getElementById('preview-audio-overlay').style.display='none'">&times;</span>
        <div class="audio-modal-left">
            <img decoding="async" id="prev-audio-img" src="" alt="">
        </div>
        <div class="audio-modal-right">
            <h2 id="prev-audio-title" class="audio-modal-title"></h2>
            <p id="prev-audio-text" class="audio-modal-text"></p>
            <a id="prev-audio-link" href="#" target="_blank" class="audio-modal-btn"></a>
        </div>
    </div>
</div>

<script>
    // Prévisualisation
    function previewGenAudio() {
        var title = document.getElementById('gen-audio-title').value;
        var text = document.getElementById('gen-audio-text').value;
        var actionText = document.getElementById('gen-audio-action-text').value;
        var url = document.getElementById('gen-audio-url').value;
        var img = document.getElementById('gen-audio-img').value;

        document.getElementById('prev-audio-title').innerText = title;
        document.getElementById('prev-audio-text').innerText = text;
        document.getElementById('prev-audio-link').innerText = actionText;
        document.getElementById('prev-audio-link').href = url;
        document.getElementById('prev-audio-img').src = img;

        document.getElementById('preview-audio-overlay').style.display = 'flex';
    }

    // GÉNÉRATION DU CODE
    function generateAudioCode() {
        var title = document.getElementById('gen-audio-title').value;
        var text = document.getElementById('gen-audio-text').value;
        var actionText = document.getElementById('gen-audio-action-text').value;
        var url = document.getElementById('gen-audio-url').value;
        var img = document.getElementById('gen-audio-img').value;
        var btnText = document.getElementById('gen-audio-btn-text').value;

        var uniqueId = 'audio-' + Math.random().toString(36).substr(2, 6);

        var css = `
<style>
.${uniqueId}-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); z-index: 9999; justify-content: center; align-items: center; backdrop-filter: blur(2px); }
.${uniqueId}-content { background: #fff; width: 90%; max-width: 700px; display: flex; flex-direction: row; position: relative; border-radius: 8px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.3); animation: slideDown${uniqueId} 0.3s ease-out; }
@keyframes slideDown${uniqueId} { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.${uniqueId}-left { flex: 1; background: #f4f4f4; min-width: 250px; display: flex; align-items: center; justify-content: center; }
.${uniqueId}-left img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 300px; }
.${uniqueId}-right { flex: 1.5; padding: 30px; display: flex; flex-direction: column; justify-content: center; text-align: left; }
.${uniqueId}-close { position: absolute; top: 10px; right: 15px; font-size: 28px; font-weight: bold; color: #aaa; cursor: pointer; line-height: 20px; z-index: 10; transition: color 0.2s; }
.${uniqueId}-close:hover { color: #333; }
.${uniqueId}-title { margin-top: 0; margin-bottom: 15px; font-size: 24px; color: #333; font-weight: 700; line-height: 1.2; }
.${uniqueId}-text { font-size: 16px; color: #555; margin-bottom: 25px; line-height: 1.6; }
.${uniqueId}-btn { background: #1E73BE; color: white; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; font-size: 16px; display: inline-block; text-align: center; transition: background 0.2s, transform 0.2s; align-self: flex-start; border: none; cursor: pointer; }
.${uniqueId}-btn:hover { background: #155a96; transform: translateY(-2px); color: white; }
.${uniqueId}-trigger { background: #1E73BE; color: white; padding: 10px 20px; border-radius: 4px; text-decoration: none; font-weight: bold; display: inline-block; cursor: pointer; border: none; font-family: sans-serif; transition: background 0.2s; }
.${uniqueId}-trigger:hover { background: #155a96; }
@media (max-width: 768px) { .${uniqueId}-content { flex-direction: column; max-height: 90vh; overflow-y: auto; } .${uniqueId}-left { min-width: 100%; min-height: 200px; flex: none; } .${uniqueId}-right { padding: 20px; } .${uniqueId}-btn { width: 100%; box-sizing: border-box; } }
</style>`;

        var html = `
<!-- DÉBUT POP-UP TEASER AUDIO -->
<div id="${uniqueId}-modal" class="${uniqueId}-overlay">
    <div class="${uniqueId}-content">
        <span class="${uniqueId}-close" onclick="document.getElementById('${uniqueId}-modal').style.display='none'">&times;</span>
        <div class="${uniqueId}-left"><img decoding="async" src="${img}" alt="Extrait Audio"></div>
        <div class="${uniqueId}-right">
            <h2 class="${uniqueId}-title">${title}</h2>
            <p class="${uniqueId}-text">${text}</p>
            <a href="${url}" target="_blank" class="${uniqueId}-btn">${actionText}</a>
        </div>
    </div>
</div>
<div style="text-align:center; margin: 20px 0;">
    <button onclick="document.getElementById('${uniqueId}-modal').style.display='flex'" class="${uniqueId}-trigger">${btnText}</button>
</div>
<script>
window.onclick = function(event) {
    var modal = document.getElementById('${uniqueId}-modal');
    if (event.target == modal) { modal.style.display = "none"; }
}
<\/script>
<!-- FIN POP-UP TEASER AUDIO -->`;

        document.getElementById('final-code-audio').value = css + html;
        document.getElementById('output-area-audio').style.display = 'block';
        document.getElementById('btn-copy-audio').style.display = 'inline-flex';
        document.getElementById('output-area-audio').scrollIntoView({behavior: "smooth"});
    }

    // Copie
    function copyAudioCode() {
        var copyText = document.getElementById("final-code-audio");
        copyText.select();
        copyText.setSelectionRange(0, 99999); 
        navigator.clipboard.writeText(copyText.value).then(function() {
            var btn = document.getElementById('btn-copy-audio');
            var originalText = btn.innerHTML;
            btn.innerHTML = "✅ Copié !";
            btn.classList.add('copied');
            setTimeout(function() {
                btn.innerHTML = originalText;
                btn.classList.remove('copied');
            }, 3000);
        }, function(err) {
            alert("Erreur lors de la copie. Sélectionnez le texte et faites Ctrl+C.");
        });
    }
</script>
<!-- FIN DU GÉNÉRATEUR -->



<!-- DÉBUT USINE QCM V8.1 (Avec Score Local Détaillé) -->
<style>
    .qcm-factory-v8 { background: #f8f9fa; border: 1px solid #ddd; border-radius: 8px; padding: 20px; max-width: 900px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; }
    .qcm-factory-v8 h2 { margin-top: 0; color: #2c3e50; text-align: center; }
    .qcm-row-v8 { margin-bottom: 15px; }
    .qcm-row-v8 label { display: block; font-weight: bold; margin-bottom: 5px; color: #555; }
    .qcm-row-v8 input[type="text"], .qcm-row-v8 textarea { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-family: inherit; }
    .qcm-row-v8 textarea { min-height: 80px; resize: vertical; }
    
    .option-block-v8 { background: #fff; border: 1px solid #e0e0e0; padding: 15px; margin-bottom: 10px; border-radius: 6px; }
    .option-header-v8 { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
    .option-header-v8 strong { color: #1e73be; }
    
    .btn-group-v8 { display: flex; gap: 10px; margin-top: 20px; }
    .btn-factory-v8 { flex: 1; padding: 12px; border: none; border-radius: 6px; font-weight: bold; cursor: pointer; color: #fff; transition: opacity 0.2s; }
    .btn-gen-v8 { background: #25B9D7; }
    .btn-copy-v8 { background: #27ae60; }
    .btn-factory-v8:hover { opacity: 0.9; }
    
    #qcm-result-v8 { width: 100%; height: 400px; margin-top: 20px; font-family: monospace; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 13px; }
</style>

<div class="qcm-factory-v8">
    <h2>🏭 Usine QCM V8.1 (Score Local Détaillé)</h2>
<p> ajouter compo QCM-JS2 en toute fin d'article </p>
    <div class="qcm-row-v8"><label>Question :</label><input type="text" id="q-question" placeholder="Ta question..."></div>
    
    <!-- Option A -->
    <div class="option-block-v8">
        <div class="option-header-v8"><strong>Réponse A</strong></div>
        <div style="margin-bottom:8px;">
            <label><input type="radio" name="correctA" value="true"> Bonne réponse</label>
            <label><input type="radio" name="correctA" value="false" checked> Mauvaise réponse</label>
        </div>
        <label style="font-size:12px; font-weight:normal;">Texte de la réponse :</label>
        <textarea id="q-repA" placeholder="Ex: Le langage HTML..."></textarea>
        <label style="font-size:12px; font-weight:normal; margin-top:5px; display:block;">Feedback (explication) :</label>
        <textarea id="q-feedA" placeholder="Ex: C'est exact, HTML structure la page..."></textarea>
    </div>

    <!-- Option B -->
    <div class="option-block-v8">
        <div class="option-header-v8"><strong>Réponse B</strong></div>
        <div style="margin-bottom:8px;">
            <label><input type="radio" name="correctB" value="true"> Bonne réponse</label>
            <label><input type="radio" name="correctB" value="false" checked> Mauvaise réponse</label>
        </div>
        <textarea id="q-repB" placeholder="Texte de la réponse"></textarea>
        <textarea id="q-feedB" placeholder="Feedback" style="margin-top:5px;"></textarea>
    </div>

    <!-- Option C -->
    <div class="option-block-v8">
        <div class="option-header-v8"><strong>Réponse C</strong></div>
        <div style="margin-bottom:8px;">
            <label><input type="radio" name="correctC" value="true"> Bonne réponse</label>
            <label><input type="radio" name="correctC" value="false" checked> Mauvaise réponse</label>
        </div>
        <textarea id="q-repC" placeholder="Texte de la réponse"></textarea>
        <textarea id="q-feedC" placeholder="Feedback" style="margin-top:5px;"></textarea>
    </div>

    <!-- Option D (Cachée) -->
    <div class="option-block-v8" id="optD" style="display:none;">
        <div class="option-header-v8"><strong>Réponse D</strong></div>
        <div style="margin-bottom:8px;">
            <label><input type="radio" name="correctD" value="true"> Bonne réponse</label>
            <label><input type="radio" name="correctD" value="false" checked> Mauvaise réponse</label>
        </div>
        <textarea id="q-repD" placeholder="Texte de la réponse"></textarea>
        <textarea id="q-feedD" placeholder="Feedback" style="margin-top:5px;"></textarea>
    </div>
    
    <div style="text-align:center; margin-bottom:15px;">
        <button type="button" onclick="toggleOptionD()" style="background:#6c757d; color:#fff; border:none; padding:5px 10px; border-radius:4px; cursor:pointer;">+/- Option D</button>
    </div>

    <div class="btn-group-v8">
        <button class="btn-factory-v8 btn-gen-v8" onclick="generateQCMV8()">⚙️ Générer le bloc complet</button>
        <button class="btn-factory-v8 btn-copy-v8" onclick="copyQCMV8()">📋 Copier le code</button>
    </div>
    <textarea id="qcm-result-v8" placeholder="Le code complet apparaîtra ici..."></textarea>
</div>

<script>
    function toggleOptionD() {
        const d = document.getElementById('optD');
        d.style.display = d.style.display === 'none' ? 'block' : 'none';
    }
    function getVal(id) { return document.getElementById(id).value; }
    function getRadio(name) { return document.querySelector(`input[name="${name}"]:checked`).value; }
    function escapeHtml(text) { if(!text) return ""; return text.replace(/'/g, "&apos;").replace(/"/g, "&quot;"); }

    function generateQCMV8() {
        const question = getVal('q-question');
        const hasD = document.getElementById('optD').style.display !== 'none';
        
        const reps = [
            { text: getVal('q-repA'), feed: getVal('q-feedA'), correct: getRadio('correctA') },
            { text: getVal('q-repB'), feed: getVal('q-feedB'), correct: getRadio('correctB') },
            { text: getVal('q-repC'), feed: getVal('q-feedC'), correct: getRadio('correctC') }
        ];
        if(hasD) reps.push({ text: getVal('q-repD'), feed: getVal('q-feedD'), correct: getRadio('correctD') });

        const validReps = reps.filter(r => r.text.trim() !== "");
        if(validReps.length < 2) { alert("Il faut au moins 2 réponses !"); return; }

        const uniqueName = 'qcm-' + Math.random().toString(36).substr(2, 9);
        const containerId = 'qcm-box-' + Math.random().toString(36).substr(2, 9);

        let htmlOptions = "";
        validReps.forEach((r, index) => {
            const letter = String.fromCharCode(65 + index);
            const safeText = escapeHtml(r.text);
            const safeFeed = escapeHtml(r.feed);
            const safeCorrect = r.correct;
            
            const action = `checkAnswerV8('${containerId}', this, '${safeCorrect}', '${safeFeed}')`;
            
            htmlOptions += `
    <li id="${containerId}-li-${index}" style="background:#fff; border:1px solid #ddd; padding:12px; margin-bottom:10px; border-radius:4px; transition:0.2s; cursor:pointer;">
        <label style="display:flex; align-items:flex-start; cursor:pointer;">
            <input type="radio" name="${uniqueName}" value="${index}" onchange="${action}" style="margin-top:4px; margin-right:10px; cursor:pointer;">
            <span style="line-height:1.4;"><strong>${letter}.</strong> ${safeText}</span>
        </label>
    </li>`;
        });

        // Note l'ajout du span .qcm-local-score-text vide pour le score dynamique
        const finalCode = `<!-- DÉBUT QCM V8.1 -->
<div id="${containerId}" style="border-left:4px solid #1e73be; background:#f5f9ff; padding:16px; margin:24px 0; border-radius:4px; font-family:sans-serif;">
  <p style="font-weight:bold; font-size:1.1em; margin-bottom:15px;">🤔 ${escapeHtml(question)}</p>
  <ul style="list-style:none; padding:0; margin:0;">
    ${htmlOptions}
  </ul>
  <p id="${containerId}-feedback" style="margin-top:12px; font-weight:bold;"></p>
  <p id="${containerId}-score" style="margin-top:6px; font-weight:bold; color:#555; font-style:italic;">
      <span class="qcm-local-score-text"></span>
  </p>
</div>
<style>
    .qcm-correct-v8 { background:#e6f4ea !important; border-color:#188038 !important; }
    .qcm-wrong-v8 { background:#fdecec !important; border-color:#dc2626 !important; }
</style>
<script>
function checkAnswerV8(containerId, input, isCorrect, feedback) {
    const container = document.getElementById(containerId);
    if(container.classList.contains('answered')) return;
    container.classList.add('answered');
    
    const inputs = container.querySelectorAll('input[type="radio"]');
    inputs.forEach(i => { 
        i.disabled = true; 
        i.closest('li').style.pointerEvents = 'none'; 
        i.closest('li').style.cursor = 'default';
    });
    
    const li = input.closest('li');
    const feedbackEl = document.getElementById(containerId + '-feedback');
    const scoreEl = document.getElementById(containerId + '-score');
    const localTextEl = scoreEl.querySelector('.qcm-local-score-text');
    
    let points = 0;
    
    if(isCorrect === "true") {
        li.classList.add('qcm-correct-v8');
        feedbackEl.textContent = "✅ " + feedback;
        feedbackEl.style.color = "#188038";
        points = 1;
        // Le texte de base sera complété par la fonction globale
        localTextEl.textContent = "Tu marques 1 point"; 
    } else {
        li.classList.add('qcm-wrong-v8');
        feedbackEl.textContent = "❌ " + feedback;
        feedbackEl.style.color = "#dc2626";
        points = 0;
        localTextEl.textContent = "Tu marques 0 point";
    }
    
    // Appel à la fonction globale qui mettra à jour le texte complet (ex: "... | Ton score est de 2/3")
    if(typeof updateGlobalScore === 'function') {
        updateGlobalScore(points, containerId);
    }
}
<\/script>
<!-- FIN QCM V8.1 -->`;

        document.getElementById('qcm-result-v8').value = finalCode;
    }

    function copyQCMV8() {
        const t = document.getElementById('qcm-result-v8');
        if(!t.value) return alert("Génère d'abord !");
        t.select(); t.setSelectionRange(0, 99999);
        try {
            document.execCommand('copy');
            const btn = document.querySelector('.btn-copy-v8');
            const old = btn.textContent;
            btn.textContent = "✅ Copié !"; btn.style.background = "#219150";
            setTimeout(() => { btn.textContent = old; btn.style.background = "#27ae60"; }, 2000);
        } catch(e) { alert("Erreur copie"); }
    }
</script>
<!-- FIN USINE QCM V8.1 -->



<!-- DÉBUT DU GÉNÉRATEUR DE VIGNETTE PRODUIT -->
<style>
    /* Styles de l'interface du Générateur (Admin) */
    .gen-product-wrapper {
        border: 2px solid #25B9D7; /* Bleu PrestaShop clair */
        background: #f0fbff;
        padding: 25px;
        border-radius: 8px;
        font-family: 'Segoe UI', sans-serif;
        max-width: 900px;
        margin: 20px auto;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    }
    .gen-product-title { color: #004499; margin-top: 0; border-bottom: 2px solid #cce0ff; padding-bottom: 15px; font-size: 24px; }
    .gen-product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 15px; }
    .gen-product-field { margin-bottom: 15px; }
    .gen-product-field label { display: block; font-weight: 600; margin-bottom: 6px; color: #333; font-size: 13px; }
    .gen-product-field input {
        width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 14px; transition: border 0.2s;
    }
    .gen-product-field input:focus { border-color: #25B9D7; outline: none; background: #fff; }
    
    .gen-product-btn-group { margin-top: 25px; display: flex; gap: 15px; flex-wrap: wrap; align-items: center; }
    .gen-product-btn {
        padding: 14px 24px; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; font-size: 15px; transition: all 0.2s; display: inline-flex; align-items: center; gap: 8px;
    }
    .btn-preview { background: #25B9D7; color: white; }
    .btn-preview:hover { background: #1fa3c0; transform: translateY(-1px); }
    .btn-generate { background: #28a745; color: white; }
    .btn-generate:hover { background: #218838; transform: translateY(-1px); }
    .btn-copy { background: #ffc107; color: #333; display: none; }
    .btn-copy:hover { background: #e0a800; transform: translateY(-1px); }
    .btn-copy.copied { background: #28a745; color: white; }

    .gen-product-output-area {
        margin-top: 25px;
        display: none;
        background: #fff;
        border: 1px solid #ddd;
        padding: 20px;
        border-radius: 6px;
        box-shadow: inset 0 0 10px rgba(0,0,0,0.05);
    }
    .gen-product-output-area h4 { margin-top: 0; color: #28a745; display: flex; align-items: center; gap: 10px; }
    .gen-product-code-box {
        width: 100%; height: 350px; background: #2d2d2d; color: #f8f8f2;
        padding: 15px; border-radius: 4px; font-family: 'Consolas', 'Monaco', monospace; font-size: 12px;
        resize: vertical; box-sizing: border-box; border: 1px solid #ccc; line-height: 1.4;
    }
    .gen-product-note { font-size: 13px; color: #666; margin-top: 15px; font-style: italic; background: #fff3cd; padding: 10px; border-radius: 4px; border-left: 4px solid #ffc107; }

    /* Styles de la Vignette (Pour prévisualisation et code généré) */
    .ps-product-card {
        background: #fff;
        border: 1px solid #e7e7e7;
        border-radius: 4px;
        width: 100%;
        max-width: 300px; /* Largeur typique d'une vignette */
        margin: 20px auto;
        font-family: 'Segoe UI', sans-serif;
        transition: box-shadow 0.3s ease;
        position: relative;
        overflow: hidden;
        text-decoration: none;
        color: inherit;
        display: block;
    }
    .ps-product-card:hover {
        box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    }
    
    /* Zone Image */
    .ps-product-image-wrapper {
        position: relative;
        width: 100%;
        padding-top: 100%; /* Ratio 1:1 Carré */
        overflow: hidden;
        background: #f5f5f5;
    }
    .ps-product-image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.3s ease;
    }
    .ps-product-card:hover .ps-product-image {
        transform: scale(1.05);
    }
    
    /* Coeur (Wishlist) */
    .ps-wishlist-icon {
        position: absolute;
        top: 10px;
        right: 10px;
        background: rgba(255, 255, 255, 0.8);
        width: 35px;
        height: 35px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        transition: all 0.2s;
        z-index: 2;
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    }
    .ps-wishlist-icon svg {
        width: 20px;
        height: 20px;
        fill: #7a7a7a;
        transition: fill 0.2s;
    }
    .ps-wishlist-icon:hover {
        background: #fff;
        transform: scale(1.1);
    }
    .ps-wishlist-icon:hover svg {
        fill: #ff4848; /* Rouge au survol */
    }
    
    /* Étoiles */
    .ps-product-rating {
        position: absolute;
        bottom: 10px;
        left: 0;
        width: 100%;
        display: flex;
        justify-content: center;
        gap: 2px;
        z-index: 2;
        background: rgba(0,0,0,0.4); /* Fond sombre pour lisibilité */
        padding: 4px 0;
        border-radius: 20px;
        width: auto;
        left: 50%;
        transform: translateX(-50%);
    }
    .ps-star {
        color: #ffd700; /* Or */
        font-size: 14px;
        text-shadow: 0 1px 2px rgba(0,0,0,0.5);
    }
    
    /* Contenu Bas (Nom, Prix, Bouton) */
    .ps-product-content {
        padding: 15px;
        text-align: center;
        background: #fff;
    }
    .ps-product-name {
        font-size: 15px;
        color: #333;
        margin: 0 0 10px 0;
        font-weight: 500;
        line-height: 1.4;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        height: 42px; /* Hauteur fixe pour alignement */
    }
    .ps-product-price {
        font-size: 18px;
        font-weight: 700;
        color: #25B9D7; /* Bleu PrestaShop */
        margin: 0 0 15px 0;
    }
    
    /* Bouton */
    .ps-product-btn {
        background-color: #25B9D7; /* Bleu clair PrestaShop */
        color: #fff;
        border: none;
        padding: 10px 15px;
        border-radius: 4px;
        font-size: 13px;
        font-weight: 600;
        text-transform: uppercase;
        cursor: pointer;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        transition: background 0.2s;
        text-decoration: none;
        box-sizing: border-box;
    }
    .ps-product-btn:hover {
        background-color: #1fa3c0;
        color: #fff;
    }
    .ps-product-btn svg {
        width: 16px;
        height: 16px;
        fill: currentColor;
    }
</style>

<div class="gen-product-wrapper">
    <h2 class="gen-product-title">🏭 Usine à Vignette Produit (Style PrestaShop)</h2>
    <p>Créez une fiche produit élégante. Le code généré sera autonome et responsive.</p>

    <div class="gen-product-grid">
        <div class="gen-product-field">
            <label>1. URL de l'image (Carrée de préférence) :</label>
            <input type="text" id="gen-prod-img" placeholder="https://..." value="https://st9ph.fr/wp-content/uploads/2026/03/image-42.png">
        </div>
        <div class="gen-product-field">
            <label>2. Nom du produit :</label>
            <input type="text" id="gen-prod-name" value="Cyrano de Bergerac - Edition Audio">
        </div>
    </div>
    
    <div class="gen-product-grid">
        <div class="gen-product-field">
            <label>3. Prix (ex: 19,99 €) :</label>
            <input type="text" id="gen-prod-price" value="24,90 €">
        </div>
        <div class="gen-product-field">
            <label>4. URL de la boutique (Cible) :</label>
            <input type="text" id="gen-prod-url" value="https://shop.st9ph.fr/presta/fr/accueil/46-cyrano-de-bergerac.html">
        </div>
    </div>

    <div class="gen-product-btn-group">
        <button class="gen-product-btn btn-preview" onclick="previewGenProduct()">👁️ Prévisualiser</button>
        <button class="gen-product-btn btn-generate" onclick="generateProductCode()">🛠️ Générer le code</button>
        <button class="gen-product-btn btn-copy" id="btn-copy-prod" onclick="copyProductCode()">📋 Copier le code</button>
    </div>

    <div class="gen-product-output-area" id="output-area-prod">
        <h4>✅ Code prêt à l'emploi (Copiez tout ceci) :</h4>
        <textarea id="final-code-prod" class="gen-product-code-box" readonly></textarea>
        <p class="gen-product-note">
            <strong>Instruction :</strong> Copiez le code et collez-le dans un bloc <strong>HTML personnalisé</strong>.<br>
            La vignette est responsive et s'adapte à la largeur de la colonne.
        </p>
    </div>
</div>

<!-- Zone de prévisualisation (Admin) -->
<div style="text-align:center; margin-top:20px; padding:20px; background:#eee; border-radius:8px;">
    <p style="margin-bottom:10px; font-weight:bold; color:#555;">Aperçu de la vignette :</p>
    <div id="preview-product-container"></div>
</div>

<script>
    // Prévisualisation
    function previewGenProduct() {
        var img = document.getElementById('gen-prod-img').value;
        var name = document.getElementById('gen-prod-name').value;
        var price = document.getElementById('gen-prod-price').value;
        var url = document.getElementById('gen-prod-url').value;
        
        var html = `
        <a href="${url}" target="_blank" class="ps-product-card">
            <div class="ps-product-image-wrapper">
                <img decoding="async" src="${img}" alt="${name}" class="ps-product-image">
                <div class="ps-wishlist-icon" title="Ajouter aux favoris" onclick="event.preventDefault(); event.stopPropagation(); alert('Ajouté à la liste d\\'envie !');">
                    <svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
                </div>
                <div class="ps-product-rating">
                    <span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span>
                </div>
            </div>
            <div class="ps-product-content">
                <h3 class="ps-product-name">${name}</h3>
                <div class="ps-product-price">${price}</div>
                <div class="ps-product-btn">
                    Voir dans la boutique
                    <svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
                </div>
            </div>
        </a>`;
        
        document.getElementById('preview-product-container').innerHTML = html;
        // Scroll vers l'aperçu
        document.getElementById('preview-product-container').scrollIntoView({behavior: "smooth", block: "center"});
    }

    // GÉNÉRATION DU CODE
    function generateProductCode() {
        var img = document.getElementById('gen-prod-img').value;
        var name = document.getElementById('gen-prod-name').value;
        var price = document.getElementById('gen-prod-price').value;
        var url = document.getElementById('gen-prod-url').value;
        
        // On inclut le CSS dans le code généré pour qu'il soit autonome
        var css = `
<style>
.ps-product-card { background: #fff; border: 1px solid #e7e7e7; border-radius: 4px; width: 100%; max-width: 300px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; transition: box-shadow 0.3s ease; position: relative; overflow: hidden; text-decoration: none; color: inherit; display: block; }
.ps-product-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.ps-product-image-wrapper { position: relative; width: 100%; padding-top: 100%; overflow: hidden; background: #f5f5f5; }
.ps-product-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.ps-product-card:hover .ps-product-image { transform: scale(1.05); }
.ps-wishlist-icon { position: absolute; top: 10px; right: 10px; background: rgba(255, 255, 255, 0.8); width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; z-index: 2; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.ps-wishlist-icon svg { width: 20px; height: 20px; fill: #7a7a7a; transition: fill 0.2s; }
.ps-wishlist-icon:hover { background: #fff; transform: scale(1.1); }
.ps-wishlist-icon:hover svg { fill: #ff4848; }
.ps-product-rating { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; z-index: 2; background: rgba(0,0,0,0.4); padding: 4px 8px; border-radius: 20px; }
.ps-star { color: #ffd700; font-size: 14px; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }
.ps-product-content { padding: 15px; text-align: center; background: #fff; }
.ps-product-name { font-size: 15px; color: #333; margin: 0 0 10px 0; font-weight: 500; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: 42px; }
.ps-product-price { font-size: 18px; font-weight: 700; color: #25B9D7; margin: 0 0 15px 0; }
.ps-product-btn { background-color: #25B9D7; color: #fff; border: none; padding: 10px 15px; border-radius: 4px; font-size: 13px; font-weight: 600; text-transform: uppercase; cursor: pointer; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background 0.2s; text-decoration: none; box-sizing: border-box; }
.ps-product-btn:hover { background-color: #1fa3c0; color: #fff; }
.ps-product-btn svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 768px) { .ps-product-card { max-width: 100%; } }
</style>`;

        var html = `
<!-- DÉBUT VIGNETTE PRODUIT -->
<a href="${url}" target="_blank" class="ps-product-card">
    <div class="ps-product-image-wrapper">
        <img decoding="async" src="${img}" alt="${name}" class="ps-product-image">
        <div class="ps-wishlist-icon" title="Ajouter aux favoris" onclick="event.preventDefault(); event.stopPropagation(); alert('Fonctionnalité liste d\\'envie à connecter.');">
            <svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
        </div>
        <div class="ps-product-rating">
            <span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span><span class="ps-star">★</span>
        </div>
    </div>
    <div class="ps-product-content">
        <h3 class="ps-product-name">${name}</h3>
        <div class="ps-product-price">${price}</div>
        <div class="ps-product-btn">
            Voir dans la boutique
            <svg viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
        </div>
    </div>
</a>
<!-- FIN VIGNETTE PRODUIT -->`;

        document.getElementById('final-code-prod').value = css + html;
        document.getElementById('output-area-prod').style.display = 'block';
        document.getElementById('btn-copy-prod').style.display = 'inline-flex';
        document.getElementById('output-area-prod').scrollIntoView({behavior: "smooth"});
    }

    // Copie
    function copyProductCode() {
        var copyText = document.getElementById("final-code-prod");
        copyText.select();
        copyText.setSelectionRange(0, 99999); 
        navigator.clipboard.writeText(copyText.value).then(function() {
            var btn = document.getElementById('btn-copy-prod');
            var originalText = btn.innerHTML;
            btn.innerHTML = "✅ Copié !";
            btn.classList.add('copied');
            setTimeout(function() {
                btn.innerHTML = originalText;
                btn.classList.remove('copied');
            }, 3000);
        }, function(err) {
            alert("Erreur lors de la copie.");
        });
    }
</script>
<!-- FIN DU GÉNÉRATEUR -->



<p class="wp-block-paragraph">logo steph : https://st9ph.fr/wp-content/uploads/2026/03/logo-st9ph.jpg</p>



<!-- DÉBUT MODULE COPIE RAPIDE (V1 - CORRIGÉ) -->
<style>
    .quick-copy-bar {
        display: flex;
        gap: 10px;
        justify-content: center;
        align-items: center;
        padding: 10px;
        background: #eef2f5;
        border-bottom: 1px solid #ddd;
        border-radius: 8px 8px 0 0;
        flex-wrap: wrap;
        font-family: 'Segoe UI', sans-serif;
    }
    .qc-btn {
        background: #fff;
        border: 1px solid #ccc;
        color: #555;
        padding: 6px 12px;
        font-size: 12px;
        border-radius: 4px;
        cursor: pointer;
        transition: all 0.2s;
        font-weight: 600;
        white-space: nowrap;
        box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    }
    .qc-btn:hover {
        background: #f0f0f0;
        border-color: #bbb;
        transform: translateY(-1px);
    }
    .qc-btn.copied {
        background: #27ae60 !important;
        color: #fff !important;
        border-color: #219150 !important;
    }
</style>

<div class="quick-copy-bar">
    <button class="qc-btn" onclick="copyToClipboard('https://st9ph.fr/wp-content/uploads/2026/03/logo-st9ph.jpg', this)">📋 Logo st9ph</button>
    <button class="qc-btn" onclick="copyToClipboard('https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg', this)">📋 Logo eshop</button>
    
    <!-- Correction : Remplacement des " par des ' dans le texte -->
    <button class="qc-btn" onclick="copyToClipboard('Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit : rubrique &quot;mon compte&quot; (accès &#038; modification) ou contactez-nous &gt; sujet &quot;mon compte&quot; pour supprimer votre compte', this)">📋 RGPD eShop</button>
    
    <!-- Correction : Échappement de l'apostrophe dans l'email -->
    <button class="qc-btn" onclick="copyToClipboard('Conformément à la loi informatique et libertés du 6 janvier 1978 complété par le règlement européen dit RGPD en vigueur depuis le 25 mai 2018, vous disposez d’un droit d’accès et de rectification sur les données vous concernant. Pour exercer ce droit, contactez notre DPO à l&#39;adresse dpo@st9ph.fr', this)">📋 RGPD autre</button>
</div>

<script>
    function copyToClipboard(text, btnElement) {
        // On décode les entités HTML pour avoir le texte propre dans le presse-papier
        const txtArea = document.createElement('textarea');
        txtArea.innerHTML = text;
        const cleanText = txtArea.value;
        
        navigator.clipboard.writeText(cleanText).then(() => {
            btnElement.classList.add('copied');
            setTimeout(() => {
                btnElement.classList.remove('copied');
            }, 2000);
        }).catch(err => {
            console.error('Erreur copie:', err);
        });
    }
</script>
<!-- FIN MODULE COPIE RAPIDE -->



<!-- DÉBUT DE L'USINE À EMAILS (V3.3 - DESIGN ÉPURÉ) -->
<style>
    /* --- STYLE DE L'USINE (INTERFACE) --- */
    .email-factory-container {
        font-family: 'Segoe UI', sans-serif;
        background: #f0f2f5;
        padding: 25px;
        border-radius: 8px;
        border: 1px solid #ccc;
        max-width: 1000px;
        margin: 20px auto;
    }
    .factory-header { text-align: center; margin-bottom: 25px; color: #333; }
    .factory-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
    .factory-section { background: #fff; padding: 15px; border-radius: 6px; border: 1px solid #ddd; margin-bottom: 15px; }
    .factory-section h3 { margin-top: 0; font-size: 16px; color: #2c3e50; border-bottom: 2px solid #eee; padding-bottom: 8px; margin-bottom: 12px; }
    .factory-section.full-width { grid-column: 1 / -1; }
    
    .form-group { margin-bottom: 12px; }
    .form-group label { display: block; font-size: 12px; font-weight: 700; color: #555; margin-bottom: 4px; text-transform: uppercase; }
    .form-group input[type="text"], .form-group input[type="url"], .form-group textarea {
        width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; font-size: 13px; box-sizing: border-box; font-family: inherit;
    }
    .form-group textarea { resize: vertical; min-height: 60px; line-height: 1.4; }
    .form-group small { display: block; font-size: 11px; color: #888; margin-top: 4px; font-style: italic; }

    .checkbox-group { display: flex; flex-direction: column; gap: 8px; margin-top: 5px; }
    .checkbox-row { display: flex; align-items: center; gap: 10px; background: #f9f9f9; padding: 5px 10px; border-radius: 4px; }
    .checkbox-row label { font-weight: normal; text-transform: none; margin: 0; cursor: pointer; flex: 0 0 100px; }
    .checkbox-row input[type="url"] { flex: 1; }

    .btn-group { display: flex; gap: 10px; margin-top: 20px; }
    .btn-generate, .btn-copy {
        flex: 1; padding: 15px; border: none; border-radius: 6px; font-size: 16px; font-weight: bold; cursor: pointer; text-transform: uppercase; box-shadow: 0 4px 6px rgba(0,0,0,0.1); transition: all 0.2s;
    }
    .btn-generate { background: #25B9D7; color: white; }
    .btn-generate:hover { background: #1fa3c0; }
    .btn-copy { background: #27ae60; color: white; display: none; }
    .btn-copy:hover { background: #219150; }

    /* --- STYLE DE LA PRÉVISUALISATION --- */
    .email-preview-container {
        margin-top: 40px;
        background: #fff;
        border: 1px solid #ddd;
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    }
    .preview-header-bar {
        background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px;
    }
    .preview-header-bar strong { color: #333; }
    
    /* Nouveau style pour le corps du mail (Layout 80/20) */
    .email-body-wrapper {
        max-width: 600px;
        margin: 0 auto;
        background: #ffffff;
        padding: 30px;
        font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
        color: #333333;
        line-height: 1.6;
    }

    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px; height: auto; display: inline-block; }

    /* Layout Phase : Flexbox pour marge à gauche et texte à droite */
    .phase-row {
        display: flex;
        align-items: flex-start;
        margin-bottom: 25px;
        padding-bottom: 25px;
        border-bottom: 1px solid #eeeeee;
    }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    
    .phase-label {
        width: 18%; /* Environ 1/5ème */
        font-size: 11px;
        font-weight: 700;
        color: #555555;
        text-transform: uppercase;
        line-height: 1.3;
        padding-top: 2px;
        flex-shrink: 0;
    }
    
    .phase-content {
        width: 82%;
        font-size: 14px;
        color: #333;
        padding-left: 20px; /* Espace entre le label et le texte */
        border-left: 2px solid #f0f0f0; /* Petite ligne verticale subtile */
    }

    .phase-cta .phase-content {
        border-left: none;
        text-align: center;
        padding-left: 0;
    }
    .cta-button {
        display: inline-block;
        background: #25B9D7;
        color: #ffffff !important;
        text-decoration: none;
        padding: 12px 25px;
        border-radius: 5px;
        font-weight: bold;
        font-size: 15px;
        transition: background 0.2s;
    }
    .cta-button:hover { background: #1fa3c0; }

    .phase-signature .phase-content {
        font-weight: bold;
        border-left: none;
        padding-left: 0;
        white-space: pre-line; /* Respecte les sauts de ligne du textarea */
    }

    .email-footer {
        background: #f4f4f4;
        padding: 25px 20px;
        font-size: 11px;
        color: #777;
        text-align: center;
        border-top: 1px solid #e0e0e0;
        margin-top: 20px;
    }
    .footer-section { margin-bottom: 10px; }
    .footer-links a { color: #555; text-decoration: underline; margin: 0 5px; }
    
    .social-icons { margin-top: 15px; display: flex; justify-content: center; gap: 15px; }
    .social-icons img { width: 24px; height: 24px; vertical-align: middle; transition: transform 0.2s; }
    .social-icons img:hover { transform: scale(1.1); }

    @media (max-width: 768px) {
        .factory-grid { grid-template-columns: 1fr; }
        .preview-header-bar { flex-direction: column; align-items: flex-start; }
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="email-factory-container">
    <h2 class="factory-header">🏭 Usine à Emails (V3.3)</h2>

    <!-- HEADER INPUTS -->
    <div class="factory-section full-width">
        <h3>📬 En-tête</h3>
        <div class="factory-grid">
            <div class="form-group"><label>De :</label><input type="text" id="mail-from" value="Stéphane Rolland - TP Com"></div>
            <div class="form-group"><label>À :</label><input type="text" id="mail-to" value="Étudiants Promo 2026"></div>
        </div>
        <div class="form-group"><label>Objet :</label><input type="text" id="mail-subject" value="Votre feedback sur le projet Pack &#038; Simulateur"></div>
    </div>

    <!-- CORPS INPUTS -->
    <div class="factory-section full-width">
        <h3>📝 Corps du Message</h3>
        <div class="form-group">
            <label>URL du Logo</label>
            <input type="url" id="mail-logo" placeholder="https://st9ph.fr/wp-content/uploads/...">
        </div>

        <div class="form-group"><label>Salutations</label><textarea id="zone-salutations" rows="2">Chers étudiants,</textarea></div>
        
        <div class="form-group">
            <label>Intro ou reformulation</label>
            <textarea id="zone-intro" rows="3">Suite à notre dernier TP, voici un récapitulatif.</textarea>
        </div>
        
        <div class="form-group"><label>Proposition / Contenu</label><textarea id="zone-proposition" rows="4">Nous avons vu comment structurer un formulaire.</textarea></div>
        
        <div class="factory-grid">
            <div class="form-group"><label>Texte du Bouton (CTA)</label><input type="text" id="zone-cta-text" value="Accéder au cours"></div>
            <div class="form-group"><label>URL du Bouton</label><input type="url" id="zone-cta-url" value="https://st9ph.fr"></div>
        </div>

        <div class="form-group"><label>Next Step</label><textarea id="zone-next" rows="2">Merci de tester sur mobile.</textarea></div>
        <div class="form-group"><label>Congés</label><textarea id="zone-conges" rows="2">Je reste dispo par mail.</textarea></div>
        
        <div class="form-group">
            <label>Signature (Nom + Fonction sur 2 lignes)</label>
            <textarea id="zone-signature" rows="2">Stéphane Rolland&#10;Formateur & Consultant Web</textarea>
            <small>Utilisez "Entrée" pour passer à la ligne (Nom puis Fonction).</small>
        </div>
    </div>

    <!-- FOOTER INPUTS -->
    <div class="factory-section full-width">
        <h3>🔽 Footer & Réseaux</h3>
        <div class="form-group"><label>Opt-in</label><input type="text" id="footer-optin" value="Inscrit au TP de Stéphane."></div>
        <div class="form-group"><label>Lien Désinscription</label><input type="url" id="footer-optout" value="#"></div>
        <div class="form-group"><label>Mentions Légales</label><input type="text" id="footer-legal" value="Conformément au RGPD."></div>
        <div class="form-group"><label>Contact</label><input type="text" id="footer-contact" value="123 Rue du Code, Paris"></div>
        <div class="form-group"><label>Datage</label><input type="text" id="footer-date" value="2026 - Suisse"></div>
        
        <div class="form-group">
            <label>Réseaux Sociaux (Cochez et collez l'URL de l'icône)</label>
            <div class="checkbox-group">
                <div class="checkbox-row"><label><input type="checkbox" class="social-check" value="linkedin"> LinkedIn</label><input type="url" class="social-url" data-target="linkedin" placeholder="URL icône"></div>
                <div class="checkbox-row"><label><input type="checkbox" class="social-check" value="facebook"> Facebook</label><input type="url" class="social-url" data-target="facebook" placeholder="URL icône"></div>
                <div class="checkbox-row"><label><input type="checkbox" class="social-check" value="instagram"> Instagram</label><input type="url" class="social-url" data-target="instagram" placeholder="URL icône"></div>
                <div class="checkbox-row"><label><input type="checkbox" class="social-check" value="tiktok"> TikTok</label><input type="url" class="social-url" data-target="tiktok" placeholder="URL icône"></div>
                <div class="checkbox-row"><label><input type="checkbox" class="social-check" value="pinterest"> Pinterest</label><input type="url" class="social-url" data-target="pinterest" placeholder="URL icône"></div>
            </div>
        </div>
    </div>

    <div class="btn-group">
        <button class="btn-generate" onclick="generateEmail()">🚀 Générer la Prévisualisation</button>
        <button class="btn-copy" id="btn-copy-code" onclick="copyEmailCode()">📋 Copier le code HTML du mail</button>
    </div>

    <!-- ZONE DE SORTIE (VISUELLE) -->
    <div class="email-preview-container" id="preview-area" style="display:none; margin-top:30px;">
        <div class="preview-header-bar">
            <span><strong>De :</strong> <span id="out-from"></span></span>
            <span><strong>À :</strong> <span id="out-to"></span></span>
            <span><strong>Objet :</strong> <span id="out-subject"></span></span>
        </div>
        
        <div class="email-body-wrapper">
            <div id="out-logo-container" class="email-logo"></div>
            
            <!-- Structure Phase par Phase -->
            <div class="phase-row">
                <div class="phase-label">Salutations</div>
                <div class="phase-content" id="out-salutations"></div>
            </div>
            
            <div class="phase-row">
                <div class="phase-label">Intro ou reformulation</div>
                <div class="phase-content" id="out-intro"></div>
            </div>
            
            <div class="phase-row">
                <div class="phase-label">Proposition</div>
                <div class="phase-content" id="out-proposition"></div>
            </div>
            
            <div class="phase-row phase-cta">
                <div class="phase-label">Action</div>
                <div class="phase-content">
                    <a href="#" id="out-cta-btn" class="cta-button" target="_blank">Voir l'offre</a>
                </div>
            </div>
            
            <div class="phase-row">
                <div class="phase-label">Next Step</div>
                <div class="phase-content" id="out-next"></div>
            </div>
            
            <div class="phase-row">
                <div class="phase-label">Congés</div>
                <div class="phase-content" id="out-conges"></div>
            </div>
            
            <div class="phase-row phase-signature">
                <div class="phase-label">Signature</div>
                <div class="phase-content" id="out-signature"></div>
            </div>
            
            <div class="email-footer">
                <div class="footer-section" id="out-footer-optin"></div>
                <div class="footer-section footer-links"><a href="#" id="out-footer-optout">Se désinscrire</a></div>
                <div class="footer-section" id="out-footer-legal"></div>
                <div class="footer-section" id="out-footer-contact"></div>
                <div class="footer-section" id="out-footer-date"></div>
                <div class="social-icons" id="out-socials"></div>
            </div>
        </div>
    </div>
</div>

<script>
    const getVal = (id) => document.getElementById(id).value;
    const getText = (id) => document.getElementById(id).value.replace(/\n/g, '<br>');

    function generateEmail() {
        document.getElementById('out-from').textContent = getVal('mail-from');
        document.getElementById('out-to').textContent = getVal('mail-to');
        document.getElementById('out-subject').textContent = getVal('mail-subject');
        
        const logoUrl = getVal('mail-logo');
        document.getElementById('out-logo-container').innerHTML = logoUrl ? `<img decoding="async" src="${logoUrl}" alt="Logo">` : "";
        
        document.getElementById('out-salutations').innerHTML = getText('zone-salutations');
        document.getElementById('out-intro').innerHTML = getText('zone-intro');
        document.getElementById('out-proposition').innerHTML = getText('zone-proposition');
        
        const ctaBtn = document.getElementById('out-cta-btn');
        ctaBtn.textContent = getVal('zone-cta-text') || "Cliquer ici";
        ctaBtn.href = getVal('zone-cta-url') || "#";
        
        document.getElementById('out-next').innerHTML = getText('zone-next');
        document.getElementById('out-conges').innerHTML = getText('zone-conges');
        // Pour la signature, on garde les sauts de ligne réels pour le rendu CSS white-space: pre-line
        document.getElementById('out-signature').textContent = getVal('zone-signature'); 
        
        document.getElementById('out-footer-optin').textContent = getVal('footer-optin');
        const optOutLink = document.getElementById('out-footer-optout');
        optOutLink.href = getVal('footer-optout') || "#";
        optOutLink.textContent = "Se désinscrire";
        document.getElementById('out-footer-legal').textContent = getVal('footer-legal');
        document.getElementById('out-footer-contact').textContent = getVal('footer-contact');
        document.getElementById('out-footer-date').textContent = getVal('footer-date');

        const socialsContainer = document.getElementById('out-socials');
        socialsContainer.innerHTML = "";
        const checks = document.querySelectorAll('.social-check:checked');
        checks.forEach(check => {
            const platform = check.value;
            const urlInput = document.querySelector(`.social-url[data-target="${platform}"]`);
            const imgUrl = urlInput ? urlInput.value : '';
            if(imgUrl) {
                const link = document.createElement('a');
                link.href = "#";
                link.innerHTML = `<img decoding="async" src="${imgUrl}" alt="${platform}" title="${platform}">`;
                socialsContainer.appendChild(link);
            }
        });

        document.getElementById('preview-area').style.display = "block";
        document.getElementById('btn-copy-code').style.display = "block";
        document.getElementById('preview-area').scrollIntoView({ behavior: 'smooth' });
    }

    function copyEmailCode() {
        const from = getVal('mail-from');
        const to = getVal('mail-to');
        const subject = getVal('mail-subject');
        const logoUrl = getVal('mail-logo');
        const salutations = getText('zone-salutations');
        const intro = getText('zone-intro');
        const proposition = getText('zone-proposition');
        const ctaText = getVal('zone-cta-text') || "Cliquer ici";
        const ctaUrl = getVal('zone-cta-url') || "#";
        const next = getText('zone-next');
        const conges = getText('zone-conges');
        const signature = getVal('zone-signature').replace(/\n/g, '<br>'); // Conversion manuelle pour le code copié
        const optin = getVal('footer-optin');
        const optoutUrl = getVal('footer-optout') || "#";
        const legal = getVal('footer-legal');
        const contact = getVal('footer-contact');
        const dateInfo = getVal('footer-date');

        let socialsHTML = "";
        const checks = document.querySelectorAll('.social-check:checked');
        checks.forEach(check => {
            const platform = check.value;
            const urlInput = document.querySelector(`.social-url[data-target="${platform}"]`);
            const imgUrl = urlInput ? urlInput.value : '';
            if(imgUrl) {
                socialsHTML += `<a href="#"><img decoding="async" src="${imgUrl}" alt="${platform}" title="${platform}" style="width:24px;height:24px;margin:0 5px;vertical-align:middle;display:inline-block!important;"></a>`;
            }
        });

        const cleanHTML = `
<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> ${from}</span>
    <span><strong>À :</strong> ${to}</span>
    <span><strong>Objet :</strong> ${subject}</span>
</div>

<div class="email-body-wrapper">
    ${logoUrl ? `<div class="email-logo"><img decoding="async" src="${logoUrl}" alt="Logo"></div>` : ''}
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">${salutations}</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">${intro}</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">${proposition}</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="${ctaUrl}" class="cta-button" target="_blank">${ctaText}</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">${next}</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">${conges}</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">${signature}</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">${optin}</div>
        <div class="footer-section footer-links"><a href="${optoutUrl}">Se désinscrire</a></div>
        <div class="footer-section">${legal}</div>
        <div class="footer-section">${contact}</div>
        <div class="footer-section">${dateInfo}</div>
        <div class="social-icons">${socialsHTML}</div>
    </div>
</div>
<!-- FIN MAIL HTML -->
`;

        navigator.clipboard.writeText(cleanHTML).then(() => {
            const btn = document.getElementById('btn-copy-code');
            const originalText = btn.textContent;
            btn.textContent = "✅ Code V3.3 copié !";
            btn.style.background = "#219150";
            setTimeout(() => {
                btn.textContent = originalText;
                btn.style.background = "#27ae60";
            }, 3000);
        }).catch(err => {
            alert("Erreur copie.");
        });
    }
</script>
<!-- FIN DE L'USINE À EMAILS (V3.3) -->



<!-- DÉBUT MAIL HTML (V3.3) -->
<style>
    .preview-header-bar { background: #f8f9fa; border-bottom: 1px solid #ddd; padding: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #555; flex-wrap: wrap; gap: 10px; font-family: sans-serif; }
    .preview-header-bar strong { color: #333; }
    .email-body-wrapper { max-width: 600px; margin: 0 auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background: #fff; }
    .email-logo { text-align: center; margin-bottom: 25px; }
    .email-logo img { max-width: 180px !important; height: auto !important; display: inline-block !important; margin: 0 auto !important; }
    
    .phase-row { display: flex; align-items: flex-start; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #eeeeee; }
    .phase-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
    .phase-label { width: 18%; font-size: 11px; font-weight: 700; color: #555555; text-transform: uppercase; line-height: 1.3; padding-top: 2px; flex-shrink: 0; }
    .phase-content { width: 82%; font-size: 14px; color: #333; padding-left: 20px; border-left: 2px solid #f0f0f0; }
    
    .phase-cta .phase-content { border-left: none; text-align: center; padding-left: 0; }
    .cta-button { display: inline-block; background: #25B9D7; color: #fff !important; text-decoration: none; padding: 12px 25px; border-radius: 5px; font-weight: bold; }
    
    .phase-signature .phase-content { font-weight: bold; border-left: none; padding-left: 0; white-space: normal; }
    
    .email-footer { background: #f4f4f4; padding: 20px; font-size: 11px; color: #777; text-align: center; margin-top: 20px; border-top: 1px solid #e0e0e0; }
    .footer-section { margin-bottom: 8px; }
    .footer-links a { color: #555; text-decoration: underline; }
    .social-icons { margin-top: 15px; }
    .social-icons img { width: 24px !important; height: 24px !important; margin: 0 5px !important; vertical-align: middle !important; display: inline-block !important; border: none !important; box-shadow: none !important; }
    
    @media (max-width: 768px) {
        .phase-row { flex-direction: column; }
        .phase-label { width: 100%; margin-bottom: 5px; color: #888; }
        .phase-content { width: 100%; padding-left: 0; border-left: none; }
    }
</style>

<div class="preview-header-bar">
    <span><strong>De :</strong> boutique st9ph</span>
    <span><strong>À :</strong> lucie.yol@bytel.fr</span>
    <span><strong>Objet :</strong> votre code promo exclusif</span>
</div>

<div class="email-body-wrapper">
    <div class="email-logo"><img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/02/shop-st9ph-paysage.jpg" alt="Logo"></div>
    
    <div class="phase-row">
        <div class="phase-label">Salutations</div>
        <div class="phase-content">Bonjour Lucie YOL,</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Intro ou reformulation</div>
        <div class="phase-content">Nous avons échangé au téléphone ce jour et je vous ai promis un code promotion exclusif sur le pack "humour et dérision" visible sur le lien de ce mail.</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Proposition</div>
        <div class="phase-content">Le voici comme promis : "SPECIAL-LUCIE" et il est valable 24 heures.</div>
    </div>
    
    <div class="phase-row phase-cta">
        <div class="phase-label">Action</div>
        <div class="phase-content">
            <a href="https://shop.st9ph.fr/presta/fr/recherche?controller=search&#038;s=pack+lucie" class="cta-button" target="_blank">Voir le pack dans la boutique</a>
        </div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Next Step</div>
        <div class="phase-content">Ajoutez les deux produits à votre panier puis saisissez ce code dans la dernière étape de la commande, juste au dessus du bouton commander, dans la zone "j'ai un code promotion". Il faut bien saisir en majuscules, sans accent et sans les guillemets avec un tiret (du 6) entre SPECIAL et LUCIE</div>
    </div>
    
    <div class="phase-row">
        <div class="phase-label">Congés</div>
        <div class="phase-content">N'hésitez pas à nous contacter par le canal habituel au besoin. Je suis ravie que nous ayons pu faire connaissance et toute l'équipe st9ph se joint à moi pour vous souhaitez une agréable journée</div>
    </div>
    
    <div class="phase-row phase-signature">
        <div class="phase-label">Signature</div>
        <div class="phase-content">Helena VRANT<br>Votre conseillère commerciale.</div>
    </div>
    
    <div class="email-footer">
        <div class="footer-section">Inscrit au TP de Stéphane.</div>
        <div class="footer-section footer-links"><a href="#">Se désinscrire</a></div>
        <div class="footer-section">Conformément au RGPD.</div>
        <div class="footer-section">123 Rue du Code, Paris</div>
        <div class="footer-section">2026 - Suisse</div>
        <div class="social-icons"></div>
    </div>
</div>
<!-- FIN MAIL HTML -->



<!-- DÉBUT QCM V6 -->
<div id="qcm-jlql6meju" class="bloc-qcm-v6 " style="border-left:4px solid #1e73be; background:#f5f9ff; padding:16px; margin:24px 0; border-radius:4px; font-family:sans-serif;">
  <p style="font-weight:bold; font-size:1.1em; margin-bottom:15px;">🤔 ghfgkjfdhgkujehgpirez</p>
  <ul style="list-style:none; padding:0; margin:0;">
    
    <li style="background:#fff; border:1px solid #ddd; padding:10px; margin-bottom:10px; border-radius:4px;">
        <label style="display:flex; align-items:flex-start; cursor:pointer;">
            <input type="radio" name="qcm-pgqrbl9f7" value="0" 
                class="qcm-radio-input"
                data-correct="false" data-feedback="gkjhgfjkgjskdflj" 
                style="margin-top:4px; margin-right:10px; cursor:pointer;">
            <span><strong>A.</strong> hrggerhg</span>
        </label>
    </li>
    <li style="background:#fff; border:1px solid #ddd; padding:10px; margin-bottom:10px; border-radius:4px;">
        <label style="display:flex; align-items:flex-start; cursor:pointer;">
            <input type="radio" name="qcm-rzitvp5wu" value="1" 
                class="qcm-radio-input"
                data-correct="false" data-feedback="ggfhhskdflgsdjkl" 
                style="margin-top:4px; margin-right:10px; cursor:pointer;">
            <span><strong>B.</strong> gffgkjfsdhgklhkfd</span>
        </label>
    </li>
    <li style="background:#fff; border:1px solid #ddd; padding:10px; margin-bottom:10px; border-radius:4px;">
        <label style="display:flex; align-items:flex-start; cursor:pointer;">
            <input type="radio" name="qcm-io9rzzkpz" value="2" 
                class="qcm-radio-input"
                data-correct="true" data-feedback="rutiyrtui" 
                style="margin-top:4px; margin-right:10px; cursor:pointer;">
            <span><strong>C.</strong> zroezuytreutyipzer</span>
        </label>
    </li>
    <li style="background:#fff; border:1px solid #ddd; padding:10px; margin-bottom:10px; border-radius:4px;">
        <label style="display:flex; align-items:flex-start; cursor:pointer;">
            <input type="radio" name="qcm-5ybo0muvn" value="3" 
                class="qcm-radio-input"
                data-correct="false" data-feedback="eiutyreityieizur" 
                style="margin-top:4px; margin-right:10px; cursor:pointer;">
            <span><strong>D.</strong> iurtyeriutyze</span>
        </label>
    </li>
  </ul>
  
  <p class="qcm-feedback" style="margin-top:12px; font-weight:bold;"></p>
  <p class="qcm-score" style="margin-top:6px; font-weight:bold; color:#555; font-style:italic;"></p>
</div>
<!-- FIN QCM V6 -->



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (VERSION URL UNIQUE) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    .zoom-modal-content { max-width: 90%; max-height: 90%; border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: zoomIn 0.3s; }
    .zoom-close { position: absolute; top: 20px; right: 35px; color: #f1f1f1; font-size: 40px; font-weight: bold; cursor: pointer; transition: 0.3s; line-height: 1; }
    .zoom-close:hover { color: #bbb; }
    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2025/12/image-170.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
</div>

<!-- LE POPUP -->
<div id="myZoomModal" class="zoom-modal" onclick="closeZoomModal()">
    <span class="zoom-close">&times;</span>
    <img class="zoom-modal-content" id="img01">
</div>

<script>
    function openZoomModal(element) {
        // L'astuce : On récupère l'URL directement depuis l'image cliquée !
        const clickedImg = element.querySelector('img');
        const fullSizeUrl = clickedImg.src;
        
        const modal = document.getElementById("myZoomModal");
        const modalImg = document.getElementById("img01");
        
        modalImg.src = fullSizeUrl;
        modal.classList.add("show");
    }

    function closeZoomModal() {
        const modal = document.getElementById("myZoomModal");
        modal.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            closeZoomModal();
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->



<p class="wp-block-paragraph">usage unique 👆🏻 multiple 👉🏻</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<!-- DÉBUT BLOC IMAGE ZOOMABLE (V3 - CROIX & PROPORTIONS) -->
<style>
    .zoom-img-container { position: relative; display: inline-block; width: 100%; cursor: pointer; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s; }
    .zoom-img-container:hover { box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    .zoom-img-container img { width: 100%; height: auto; display: block; transition: transform 0.3s; }
    .zoom-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; color: white; font-family: sans-serif; font-weight: bold; text-shadow: 0 1px 3px rgba(0,0,0,0.8); pointer-events: none; /* La souris traverse l'overlay pour cliquer sur l'image */ }
    .zoom-overlay svg { width: 40px; height: 40px; fill: white; margin-bottom: 5px; }
    .zoom-img-container:hover .zoom-overlay { opacity: 1; }
    .zoom-img-container:hover img { transform: scale(1.05); }
    
    .zoom-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
    .zoom-modal.show { display: flex; opacity: 1; }
    
    /* CORRECTION PROPORTIONS : */
    .zoom-modal-content { 
        max-width: 90%; 
        max-height: 90%; 
        width: auto;       /* Force la largeur auto (pas d'étirement) */
        height: auto;      /* Force la hauteur auto */
        object-fit: contain; /* Assure que l'image tient dans le cadre sans déformer */
        border-radius: 4px; 
        box-shadow: 0 0 20px rgba(0,0,0,0.5); 
        animation: zoomIn 0.3s; 
    }
    
    .zoom-close { 
        position: absolute; 
        top: 20px; 
        right: 35px; 
        color: #f1f1f1; 
        font-size: 40px; 
        font-weight: bold; 
        cursor: pointer; 
        transition: 0.3s; 
        line-height: 1; 
        z-index: 10000; /* S'assure que la croix est au-dessus de tout */
        user-select: none;
    }
    .zoom-close:hover { color: #bbb; }

    @keyframes zoomIn { from {transform:scale(0.8); opacity:0} to {transform:scale(1); opacity:1} }
</style>

<!-- CONTENEUR DE L'IMAGE -->
<!-- 👇🏻 UNIQUE ENDROIT À MODIFIER : Change juste le src ci-dessous 👇🏻 -->
<div class="zoom-img-container" onclick="openZoomModal(this)">
    <img decoding="async" src="https://st9ph.fr/wp-content/uploads/2026/01/image-328.png" alt="Agrandir l'image">
    
    <div class="zoom-overlay">
        <svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
        <span>Agrandir</span>
    </div>
    
    <!-- LE POPUP (À l'intérieur du bloc) -->
    <div class="zoom-modal" onclick="closeZoomModal(event, this)">
        <span class="zoom-close" onclick="closeZoomModal(event, this.parentElement)">&times;</span>
        <img class="zoom-modal-content">
    </div>
</div>

<script>
    function openZoomModal(containerElement) {
        const modal = containerElement.querySelector('.zoom-modal');
        const modalImg = modal.querySelector('.zoom-modal-content');
        const clickedImg = containerElement.querySelector('img');
        
        modalImg.src = clickedImg.src;
        modal.classList.add("show");
    }

    // Correction Croix : On passe l'événement 'e' pour stopper la propagation
    function closeZoomModal(e, modalElement) {
        // Empêche le clic de se propager au fond noir (qui fermerait aussi le modal)
        if(e) e.stopPropagation();
        modalElement.classList.remove("show");
    }
    
    document.addEventListener('keydown', function(event) {
        if (event.key === "Escape") {
            const openModal = document.querySelector('.zoom-modal.show');
            if(openModal) openModal.classList.remove("show");
        }
    });
</script>
<!-- FIN BLOC IMAGE ZOOMABLE -->
</div>
</div>



<!-- DÉBUT USINE QCM MATRICIEL V3 (RADIO & LIGNE) -->
<style>
    .matrix-factory { background: #f8f9fa; border: 1px solid #ddd; border-radius: 8px; padding: 20px; max-width: 1100px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; }
    .matrix-factory h2 { margin-top: 0; color: #2c3e50; text-align: center; }
    
    .factory-row-input { background: #fff; border: 1px solid #e0e0e0; padding: 15px; margin-bottom: 15px; border-radius: 6px; display: flex; gap: 15px; align-items: flex-start; flex-wrap: wrap; position: relative; }
    .factory-row-input h4 { position: absolute; top: -10px; left: 10px; background: #fff; padding: 0 5px; font-size: 12px; color: #1e73be; font-weight: bold; margin: 0; }
    
    .inp-group { flex: 1; min-width: 200px; }
    .inp-group label { display: block; font-size: 11px; font-weight: bold; color: #555; margin-bottom: 4px; text-transform: uppercase; }
    .inp-group input, .inp-group select, .inp-group textarea { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-family: inherit; }
    .inp-group textarea { resize: vertical; min-height: 50px; }
    
    .btn-add { background: #6c757d; color: #fff; border: none; padding: 10px 15px; border-radius: 4px; cursor: pointer; font-weight: bold; margin: 15px 0; display: block; width: 100%; text-align: center; }
    .btn-add:hover { background: #5a6268; }
    
    .btn-group { display: flex; gap: 10px; margin-top: 20px; }
    .btn-factory { flex: 1; padding: 12px; border: none; border-radius: 6px; font-weight: bold; cursor: pointer; color: #fff; }
    .btn-gen { background: #25B9D7; }
    .btn-copy { background: #27ae60; }
    
    #matrix-result { width: 100%; height: 400px; margin-top: 20px; font-family: monospace; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 13px; }
    .preview-area { margin-top: 30px; border-top: 2px dashed #ccc; padding-top: 20px; }
    
    .remove-btn { position: absolute; top: 5px; right: 5px; background: #dc3545; color: white; border: none; width: 24px; height: 24px; border-radius: 50%; cursor: pointer; font-size: 14px; line-height: 1; }
</style>

<div class="matrix-factory">
    <h2>🏭 Usine QCM "Lignes & Radio" (V3)</h2>
    <p style="text-align:center; color:#666; font-size:0.9em;">Ajoutez des lignes. Cochez la bonne réponse dans la liste.</p>
    
    <div id="factory-rows-container"></div>

    <button class="btn-add" onclick="addMatrixRow()">➕ Ajouter une ligne</button>

    <div class="btn-group">
        <button class="btn-factory btn-gen" onclick="generateMatrixCode()">⚙️ Générer le code</button>
        <button class="btn-factory btn-copy" onclick="copyMatrixCode()">📋 Copier le code</button>
    </div>
    <textarea id="matrix-result" placeholder="Le code apparaîtra ici..."></textarea>
    
    <div class="preview-area">
        <h3>Aperçu :</h3>
        <div id="matrix-preview"></div>
    </div>
</div>

<script>
    let rowCount = 0;
    const optionsList = [
        { value: 'opt-in', label: 'Opt-in' },
        { value: 'droit-acces', label: 'Droit d\'accès' },
        { value: 'opt-out', label: 'Opt-out' }
    ];

    function addMatrixRow() {
        if (rowCount >= 6) { alert("Maximum 6 lignes !"); return; }
        rowCount++;
        const container = document.getElementById('factory-rows-container');
        
        let optionsHtml = '<option value="">-- Choisir --</option>';
        optionsList.forEach(opt => { optionsHtml += `<option value="${opt.value}">${opt.label}</option>`; });

        const rowHtml = `
        <div class="factory-row-input" id="row-${rowCount}">
            <button type="button" class="remove-btn" onclick="removeRow(${rowCount})">×</button>
            <h4>Ligne ${rowCount}</h4>
            <div class="inp-group" style="flex: 2; min-width: 300px;">
                <label>Proposition</label>
                <input type="text" class="inp-prop" placeholder="Ex: Cocher pour recevoir...">
            </div>
            <div class="inp-group">
                <label>Bonne Réponse</label>
                <select class="inp-correct">${optionsHtml}</select>
            </div>
            <div class="inp-group" style="flex: 2;">
                <label>Feedback</label>
                <textarea class="inp-feedback" placeholder="Explication..."></textarea>
            </div>
        </div>`;
        container.insertAdjacentHTML('beforeend', rowHtml);
    }

    function removeRow(id) {
        const row = document.getElementById(`row-${id}`);
        if (row) { row.remove(); rowCount--; }
    }

    function generateMatrixCode() {
        const rows = [];
        document.querySelectorAll('.factory-row-input').forEach((rowEl, index) => {
            const prop = rowEl.querySelector('.inp-prop').value.trim();
            const correct = rowEl.querySelector('.inp-correct').value;
            const feedback = rowEl.querySelector('.inp-feedback').value.trim();
            if (prop && correct) {
                rows.push({ id: index, prop, correct, feedback });
            }
        });

        if (rows.length === 0) { alert("Remplissez au moins une ligne !"); return; }

        const uniqueId = 'mqcm-' + Math.random().toString(36).substr(2, 9);
        
        let rowsHtml = '';
        rows.forEach((row, idx) => {
            const groupName = `q_${uniqueId}_${idx}`; // Nom unique par ligne
            rowsHtml += `
            <div class="mqcm-row" data-correct="${row.correct}" data-feedback="${row.feedback.replace(/"/g, '&quot;')}">
                <div class="mqcm-prop">${row.prop}</div>
                <div class="mqcm-options">
                    <label class="mqcm-radio-label">
                        <input type="radio" name="${groupName}" value="opt-in"> Opt-in
                    </label>
                    <label class="mqcm-radio-label">
                        <input type="radio" name="${groupName}" value="droit-acces"> Droit d'accès
                    </label>
                    <label class="mqcm-radio-label">
                        <input type="radio" name="${groupName}" value="opt-out"> Opt-out
                    </label>
                </div>
                <div class="mqcm-feedback"></div>
            </div>`;
        });

        const finalCode = `<!-- DÉBUT QCM MATRICIEL V3 -->
<div id="${uniqueId}" class="mqcm-container">
    <style>
        .mqcm-container { font-family: sans-serif; max-width: 900px; margin: 20px auto; }
        .mqcm-row { background: #fff; border: 1px solid #ddd; border-radius: 6px; padding: 15px; margin-bottom: 15px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 15px; }
        .mqcm-prop { flex: 2; min-width: 250px; font-weight: 600; color: #2c3e50; padding-top: 10px; line-height: 1.4; }
        .mqcm-options { flex: 3; min-width: 300px; display: flex; gap: 15px; justify-content: space-around; background: #f9f9f9; padding: 10px; border-radius: 6px; border: 1px solid #eee; }
        .mqcm-radio-label { cursor: pointer; font-size: 0.95em; display: flex; align-items: center; gap: 5px; user-select: none; }
        .mqcm-radio-label input { cursor: pointer; }
        .mqcm-feedback { width: 100%; margin-top: 10px; padding: 10px; background: #fff3cd; border-left: 4px solid #ffc107; color: #856404; border-radius: 4px; display: none; font-size: 0.9em; }
        .mqcm-validate-btn { display: block; width: 100%; padding: 15px; background: #1e73be; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: 1.1em; font-weight: bold; margin-top: 20px; }
        .mqcm-validate-btn:disabled { background: #ccc; cursor: not-allowed; }
        .mqcm-score { text-align: center; margin-top: 15px; font-weight: bold; font-size: 1.2em; }
        
        /* Styles de validation */
        .mqcm-row.correct-answer { border-color: #4caf50; background: #e8f5e9; }
        .mqcm-row.wrong-answer { border-color: #f44336; background: #ffebee; }
        .mqcm-radio-label.correct { color: #2e7d32; font-weight: bold; }
        .mqcm-radio-label.wrong { color: #c62828; text-decoration: line-through; }
        
        @media (max-width: 768px) {
            .mqcm-row { flex-direction: column; }
            .mqcm-options { width: 100%; flex-direction: column; gap: 8px; }
        }
    </style>

    ${rowsHtml}
    
    <button class="mqcm-validate-btn" onclick="validateMatrixQCM('${uniqueId}')">✅ Valider mes réponses</button>
    <div id="${uniqueId}-score" class="mqcm-score"></div>
</div>

<script>
function validateMatrixQCM(uid) {
    const container = document.getElementById(uid);
    const rows = container.querySelectorAll('.mqcm-row');
    let score = 0;
    let total = rows.length;
    let allAnswered = true;

    rows.forEach(row => {
        const correctVal = row.getAttribute('data-correct');
        const feedbackText = row.getAttribute('data-feedback');
        const feedbackDiv = row.querySelector('.mqcm-feedback');
        const inputs = row.querySelectorAll('input[type="radio"]');
        const labels = row.querySelectorAll('.mqcm-radio-label');
        
        // Reset
        row.classList.remove('correct-answer', 'wrong-answer');
        labels.forEach(l => l.classList.remove('correct', 'wrong'));
        feedbackDiv.style.display = 'none';
        
        let selectedVal = null;
        let selectedLabel = null;
        
        inputs.forEach((inp, idx) => {
            if (inp.checked) {
                selectedVal = inp.value;
                selectedLabel = labels[idx];
            }
            inp.disabled = true; // Bloquer tout
        });

        if (!selectedVal) {
            allAnswered = false;
            return;
        }

        feedbackDiv.style.display = 'block';
        feedbackDiv.textContent = feedbackText;

        if (selectedVal === correctVal) {
            score++;
            row.classList.add('correct-answer');
            if(selectedLabel) selectedLabel.classList.add('correct');
        } else {
            row.classList.add('wrong-answer');
            if(selectedLabel) selectedLabel.classList.add('wrong');
            // Montrer la bonne
            inputs.forEach((inp, idx) => {
                if(inp.value === correctVal) labels[idx].classList.add('correct');
            });
        }
    });

    const scoreDiv = document.getElementById(uid + '-score');
    if (!allAnswered) {
        scoreDiv.textContent = "⚠️ Veuillez répondre à toutes les lignes.";
        scoreDiv.style.color = "#e67e22";
    } else {
        scoreDiv.textContent = "Score : " + score + " / " + total;
        scoreDiv.style.color = score === total ? "#27ae60" : "#c0392b";
        const btn = container.querySelector('.mqcm-validate-btn');
        btn.disabled = true;
        btn.textContent = "Réponses validées";
    }
}
<\/script>
<!-- FIN QCM MATRICIEL V3 -->`;

        document.getElementById('matrix-result').value = finalCode;
        document.getElementById('matrix-preview').innerHTML = finalCode.replace(/<!--.*?-->/g, '');
    }

    function copyMatrixCode() {
        const t = document.getElementById('matrix-result');
        if(!t.value) return alert("Générez d'abord !");
        t.select(); t.setSelectionRange(0, 99999);
        try {
            document.execCommand('copy');
            const btn = document.querySelector('.btn-copy');
            const old = btn.textContent;
            btn.textContent = "✅ Copié !"; btn.style.background = "#219150";
            setTimeout(() => { btn.textContent = old; btn.style.background = "#27ae60"; }, 2000);
        } catch(e) { alert("Erreur copie"); }
    }
</script>
<!-- FIN USINE QCM MATRICIEL V3 -->



<!-- DÉBUT QCM MATRICIEL V3 -->
<div id="mqcm-gt21h5x3y" class="mqcm-container">
    <style>
        .mqcm-container { font-family: sans-serif; max-width: 900px; margin: 20px auto; }
        .mqcm-row { background: #fff; border: 1px solid #ddd; border-radius: 6px; padding: 15px; margin-bottom: 15px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 15px; }
        .mqcm-prop { flex: 2; min-width: 250px; font-weight: 600; color: #2c3e50; padding-top: 10px; line-height: 1.4; }
        .mqcm-options { flex: 3; min-width: 300px; display: flex; gap: 15px; justify-content: space-around; background: #f9f9f9; padding: 10px; border-radius: 6px; border: 1px solid #eee; }
        .mqcm-radio-label { cursor: pointer; font-size: 0.95em; display: flex; align-items: center; gap: 5px; user-select: none; }
        .mqcm-radio-label input { cursor: pointer; }
        .mqcm-feedback { width: 100%; margin-top: 10px; padding: 10px; background: #fff3cd; border-left: 4px solid #ffc107; color: #856404; border-radius: 4px; display: none; font-size: 0.9em; }
        .mqcm-validate-btn { display: block; width: 100%; padding: 15px; background: #1e73be; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: 1.1em; font-weight: bold; margin-top: 20px; }
        .mqcm-validate-btn:disabled { background: #ccc; cursor: not-allowed; }
        .mqcm-score { text-align: center; margin-top: 15px; font-weight: bold; font-size: 1.2em; }
        
        /* Styles de validation */
        .mqcm-row.correct-answer { border-color: #4caf50; background: #e8f5e9; }
        .mqcm-row.wrong-answer { border-color: #f44336; background: #ffebee; }
        .mqcm-radio-label.correct { color: #2e7d32; font-weight: bold; }
        .mqcm-radio-label.wrong { color: #c62828; text-decoration: line-through; }
        
        @media (max-width: 768px) {
            .mqcm-row { flex-direction: column; }
            .mqcm-options { width: 100%; flex-direction: column; gap: 8px; }
        }
    </style>

    
            <div class="mqcm-row" data-correct="droit-acces" data-feedback="c'est vrai">
                <div class="mqcm-prop">toto is the best</div>
                <div class="mqcm-options">
                    <label class="mqcm-radio-label">
                        <input type="radio" name="q_mqcm-gt21h5x3y_0" value="opt-in"> Opt-in
                    </label>
                    <label class="mqcm-radio-label">
                        <input type="radio" name="q_mqcm-gt21h5x3y_0" value="droit-acces"> Droit d'accès
                    </label>
                    <label class="mqcm-radio-label">
                        <input type="radio" name="q_mqcm-gt21h5x3y_0" value="opt-out"> Opt-out
                    </label>
                </div>
                <div class="mqcm-feedback"></div>
            </div>
            <div class="mqcm-row" data-correct="opt-in" data-feedback="prafois">
                <div class="mqcm-prop">toto is good</div>
                <div class="mqcm-options">
                    <label class="mqcm-radio-label">
                        <input type="radio" name="q_mqcm-gt21h5x3y_1" value="opt-in"> Opt-in
                    </label>
                    <label class="mqcm-radio-label">
                        <input type="radio" name="q_mqcm-gt21h5x3y_1" value="droit-acces"> Droit d'accès
                    </label>
                    <label class="mqcm-radio-label">
                        <input type="radio" name="q_mqcm-gt21h5x3y_1" value="opt-out"> Opt-out
                    </label>
                </div>
                <div class="mqcm-feedback"></div>
            </div>
    
    <button class="mqcm-validate-btn" onclick="validateMatrixQCM('mqcm-gt21h5x3y')">✅ Valider mes réponses</button>
    <div id="mqcm-gt21h5x3y-score" class="mqcm-score"></div>
</div>

<script>
function validateMatrixQCM(uid) {
    const container = document.getElementById(uid);
    const rows = container.querySelectorAll('.mqcm-row');
    let score = 0;
    let total = rows.length;
    let allAnswered = true;

    rows.forEach(row => {
        const correctVal = row.getAttribute('data-correct');
        const feedbackText = row.getAttribute('data-feedback');
        const feedbackDiv = row.querySelector('.mqcm-feedback');
        const inputs = row.querySelectorAll('input[type="radio"]');
        const labels = row.querySelectorAll('.mqcm-radio-label');
        
        // Reset
        row.classList.remove('correct-answer', 'wrong-answer');
        labels.forEach(l => l.classList.remove('correct', 'wrong'));
        feedbackDiv.style.display = 'none';
        
        let selectedVal = null;
        let selectedLabel = null;
        
        inputs.forEach((inp, idx) => {
            if (inp.checked) {
                selectedVal = inp.value;
                selectedLabel = labels[idx];
            }
            inp.disabled = true; // Bloquer tout
        });

        if (!selectedVal) {
            allAnswered = false;
            return;
        }

        feedbackDiv.style.display = 'block';
        feedbackDiv.textContent = feedbackText;

        if (selectedVal === correctVal) {
            score++;
            row.classList.add('correct-answer');
            if(selectedLabel) selectedLabel.classList.add('correct');
        } else {
            row.classList.add('wrong-answer');
            if(selectedLabel) selectedLabel.classList.add('wrong');
            // Montrer la bonne
            inputs.forEach((inp, idx) => {
                if(inp.value === correctVal) labels[idx].classList.add('correct');
            });
        }
    });

    const scoreDiv = document.getElementById(uid + '-score');
    if (!allAnswered) {
        scoreDiv.textContent = "⚠️ Veuillez répondre à toutes les lignes.";
        scoreDiv.style.color = "#e67e22";
    } else {
        scoreDiv.textContent = "Score : " + score + " / " + total;
        scoreDiv.style.color = score === total ? "#27ae60" : "#c0392b";
        const btn = container.querySelector('.mqcm-validate-btn');
        btn.disabled = true;
        btn.textContent = "Réponses validées";
    }
}
</script>
<!-- FIN QCM MATRICIEL V3 -->



<!-- DÉBUT USINE POP-UP COOKIES V2 (BOX LATERALE) -->
<style>
    .cookie-factory { background: #f8f9fa; border: 1px solid #ddd; border-radius: 8px; padding: 20px; max-width: 900px; margin: 20px auto; font-family: 'Segoe UI', sans-serif; }
    .cookie-factory h2 { color: #2c3e50; margin-top: 0; text-align: center; }
    .factory-controls { background: #fff; padding: 15px; border-radius: 6px; margin-bottom: 20px; border: 1px solid #eee; }
    .control-row { display: flex; gap: 15px; margin-bottom: 12px; flex-wrap: wrap; align-items: center; }
    .control-row label { font-weight: bold; font-size: 0.9em; min-width: 100px; color: #555; }
    .control-row input[type="text"] { flex: 1; padding: 8px; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9em; }
    .cookie-toggles { display: flex; gap: 15px; flex-wrap: wrap; margin-top: 5px; }
    .cookie-toggle { display: flex; align-items: center; gap: 6px; background: #f0f2f5; padding: 6px 12px; border-radius: 20px; border: 1px solid #ddd; font-size: 0.85em; }
    .btn-action { background: #25B9D7; color: #fff; border: none; padding: 12px 20px; border-radius: 6px; cursor: pointer; font-weight: bold; font-size: 1em; width: 100%; margin-top: 15px; transition: background 0.2s; }
    .btn-action:hover { background: #1ea4c2; }
    .btn-code { background: #27ae60; }
    .btn-code:hover { background: #219150; }
    
    /* Zone de simulation */
    .sim-zone { margin-top: 30px; border-top: 2px dashed #ccc; padding-top: 20px; position: relative; }
    .sim-canvas { height: 300px; background: linear-gradient(135deg, #eef2f3 0%, #e0eafc 100%); border-radius: 8px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; color: #889; font-style: italic; }
    
    /* --- STYLES DU POP-UP (CE QUI SERA COPIÉ) --- */
    /* Conteneur principal positionné en bas à droite */
    #cp-wrapper { position: fixed; bottom: 20px; right: 20px; z-index: 9999; font-family: 'Segoe UI', sans-serif; }
    
    /* Bouton pour rouvrir si fermé (optionnel, pour le test) */
    .cp-reopen-btn { background: #333; color: #fff; border: none; padding: 10px 18px; border-radius: 30px; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,0.15); font-size: 0.9em; display: flex; align-items: center; gap: 8px; transition: all 0.2s; }
    .cp-reopen-btn:hover { transform: translateY(-2px); background: #555; }
    
    /* La Boîte Pop-up */
    .cp-box { width: 380px; background: #fff; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.2); overflow: hidden; display: none; flex-direction: column; border: 1px solid #eee; animation: cpSlideIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
    @keyframes cpSlideIn { from { opacity: 0; transform: translateY(20px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }
    
    /* Header avec icône et croix */
    .cp-header { background: #f8f9fa; padding: 15px 20px; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; }
    .cp-title { font-size: 1.1em; font-weight: bold; color: #2c3e50; display: flex; align-items: center; gap: 10px; margin: 0; }
    .cp-title span { font-size: 1.4em; }
    .cp-close { background: none; border: none; font-size: 1.5em; color: #aaa; cursor: pointer; line-height: 1; padding: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: all 0.2s; }
    .cp-close:hover { background: #eee; color: #dc3545; }
    
    /* Corps du message */
    .cp-body { padding: 20px; }
    .cp-text { font-size: 0.9em; color: #666; line-height: 1.6; margin-bottom: 20px; }
    .cp-text a { color: #25B9D7; text-decoration: none; font-weight: 600; }
    .cp-text a:hover { text-decoration: underline; }
    
    /* Boutons d'action */
    .cp-actions { display: flex; flex-direction: column; gap: 8px; }
    .cp-btn { padding: 12px; border: none; border-radius: 6px; font-weight: bold; cursor: pointer; font-size: 0.9em; transition: all 0.2s; text-align: center; }
    .cp-btn-accept { background: #27ae60; color: #fff; }
    .cp-btn-accept:hover { background: #219150; box-shadow: 0 4px 10px rgba(39, 174, 96, 0.3); }
    .cp-btn-refuse { background: #fff; border: 2px solid #dc3545; color: #dc3545; }
    .cp-btn-refuse:hover { background: #dc3545; color: #fff; }
    .cp-btn-custom { background: #f8f9fa; border: 1px solid #ddd; color: #6c757d; }
    .cp-btn-custom:hover { background: #e9ecef; border-color: #ccc; }
    
    /* Panneau d'options (caché par défaut) */
    .cp-panel { background: #f8f9fa; border-top: 1px solid #eee; padding: 0 20px; max-height: 0; overflow: hidden; transition: all 0.3s ease; }
    .cp-panel.open { padding: 20px; max-height: 400px; overflow-y: auto; }
    
    .cp-option { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid #e0e0e0; }
    .cp-option:last-child { border-bottom: none; }
    .cp-opt-info h4 { margin: 0 0 4px 0; font-size: 0.9em; color: #333; font-weight: 600; }
    .cp-opt-info p { margin: 0; font-size: 0.75em; color: #888; line-height: 1.4; }
    .cp-opt-toggle { display: flex; align-items: center; gap: 8px; }
    .cp-opt-toggle input { transform: scale(1.1); cursor: pointer; }
    .cp-opt-toggle input:disabled { cursor: not-allowed; opacity: 0.5; }
    .cp-opt-toggle label { cursor: pointer; font-size: 0.85em; font-weight: 600; color: #555; user-select: none; }
    
    /* Résumé des choix */
    .cp-result { position: fixed; top: 20px; right: 20px; background: #2c3e50; color: #fff; padding: 20px; border-radius: 8px; z-index: 10000; display: none; max-width: 320px; box-shadow: 0 10px 30px rgba(0,0,0,0.3); border-left: 5px solid #25B9D7; }
    .cp-result h4 { margin: 0 0 12px 0; color: #25B9D7; font-size: 1.1em; display: flex; align-items: center; gap: 8px; }
    .cp-result ul { margin: 0; padding-left: 20px; font-size: 0.9em; line-height: 1.6; }
    .cp-result li { margin-bottom: 4px; }
    .cp-close-result { position: absolute; top: 8px; right: 12px; cursor: pointer; font-size: 1.4em; color: #aaa; line-height: 1; }
    .cp-close-result:hover { color: #fff; }

    @media (max-width: 480px) {
        .cp-box { width: 90%; right: 5%; bottom: 10px; }
        #cp-wrapper { right: 0; bottom: 0; }
    }
</style>

<div class="cookie-factory">
    <h2>🍪 Usine Pop-up Cookies (Box Latérale V2)</h2>
    <p style="text-align:center; color:#666;">Configurez le pop-up. Le rendu sera une boîte élégante en bas à droite avec une croix pour fermer.</p>
    
    <div class="factory-controls">
        <div class="control-row">
            <label>Nom du site :</label>
            <input type="text" id="cpSiteName" value="MonSuperSite.fr">
        </div>
        <div class="control-row">
            <label>Message :</label>
            <input type="text" id="cpMsg" value="Nous utilisons des cookies pour améliorer votre expérience et analyser notre audience.">
        </div>
        <div class="control-row" style="flex-direction: column; align-items: flex-start;">
            <label style="margin-bottom:8px;">Catégories par défaut (dans "Personnaliser") :</label>
            <div class="cookie-toggles">
                <div class="cookie-toggle"><input type="checkbox" id="cpCheckStats" checked> <span>📊 Stats</span></div>
                <div class="cookie-toggle"><input type="checkbox" id="cpCheckMark"> <span>🎯 Marketing</span></div>
                <div class="cookie-toggle"><input type="checkbox" id="cpCheckSocial"> <span>📱 Réseaux</span></div>
            </div>
        </div>
    </div>

    <button class="btn-action" onclick="renderSimulator()">🔄 Mettre à jour l'aperçu</button>
    
    <div class="sim-zone">
        <h3>Aperçu en situation :</h3>
        <p style="font-size:0.9em; color:#666;">Le pop-up est caché au départ. Cliquez sur le bouton noir pour le faire apparaître.</p>
        <div id="simCanvas" class="sim-canvas">
            <!-- Le simulateur sera injecté ici -->
        </div>
    </div>
    
    <div style="margin-top: 20px;">
        <button class="btn-action btn-code" onclick="generateCode()">📋 Générer le code final</button>
        <textarea id="cpResultCode" style="width:100%; height:150px; margin-top:10px; font-family:monospace; padding:10px; border:1px solid #ccc; border-radius:4px;" readonly placeholder="Le code apparaîtra ici..."></textarea>
    </div>
</div>

<script>
    function renderSimulator() {
        const siteName = document.getElementById('cpSiteName').value;
        const msg = document.getElementById('cpMsg').value;
        const defStats = document.getElementById('cpCheckStats').checked ? 'checked' : '';
        const defMark = document.getElementById('cpCheckMark').checked ? 'checked' : '';
        const defSocial = document.getElementById('cpCheckSocial').checked ? 'checked' : '';
        
        const html = `
        <!-- DÉBUT POP-UP COOKIES -->
        <div id="cp-wrapper">
            <!-- Bouton pour simuler l'arrivée (ou rouvrir) -->
            <button class="cp-reopen-btn" onclick="openCpBox()">
                <span>🍪</span> Voir le pop-up des cookies
            </button>

            <!-- La Boîte Pop-up -->
            <div id="cp-box" class="cp-box">
                <div class="cp-header">
                    <div class="cp-title"><span>🍪</span> Cookies & ${siteName}</div>
                    <button class="cp-close" onclick="closeCpBox()" title="Fermer">&times;</button>
                </div>
                
                <div class="cp-body">
                    <div class="cp-text">${msg} <a href="#">Politique complète</a>.</div>
                    
                    <div class="cp-actions">
                        <button class="cp-btn cp-btn-accept" onclick="validateCp('accept')">✅ Tout accepter</button>
                        <button class="cp-btn cp-btn-refuse" onclick="validateCp('refuse')">❌ Tout refuser</button>
                        <button class="cp-btn cp-btn-custom" onclick="toggleCpPanel()">⚙️ Personnaliser</button>
                    </div>
                </div>

                <!-- Panneau d'options -->
                <div id="cp-panel" class="cp-panel">
                    <div class="cp-option">
                        <div class="cp-opt-info">
                            <h4>🔒 Nécessaires</h4>
                            <p>Indispensables au site. Ne peuvent être désactivés.</p>
                        </div>
                        <div class="cp-opt-toggle">
                            <input type="checkbox" id="cpOptNec" checked disabled>
                            <label for="cpOptNec">Actif</label>
                        </div>
                    </div>
                    <div class="cp-option">
                        <div class="cp-opt-info">
                            <h4>📊 Statistiques</h4>
                            <p>Analyse d'audience anonymisée.</p>
                        </div>
                        <div class="cp-opt-toggle">
                            <input type="checkbox" id="cpOptStats" ${defStats}>
                            <label for="cpOptStats">Actif</label>
                        </div>
                    </div>
                    <div class="cp-option">
                        <div class="cp-opt-info">
                            <h4>🎯 Marketing</h4>
                            <p>Publicités ciblées et suivi.</p>
                        </div>
                        <div class="cp-opt-toggle">
                            <input type="checkbox" id="cpOptMark" ${defMark}>
                            <label for="cpOptMark">Actif</label>
                        </div>
                    </div>
                    <div class="cp-option">
                        <div class="cp-opt-info">
                            <h4>📱 Réseaux Sociaux</h4>
                            <p>Boutons de partage et contenus tiers.</p>
                        </div>
                        <div class="cp-opt-toggle">
                            <input type="checkbox" id="cpOptSocial" ${defSocial}>
                            <label for="cpOptSocial">Actif</label>
                        </div>
                    </div>
                    <div style="text-align:right; margin-top:15px;">
                        <button class="cp-btn cp-btn-accept" style="padding:8px 16px; font-size:0.85em;" onclick="validateCp('custom')">Valider mes choix</button>
                    </div>
                </div>
            </div>
        </div>

        <!-- Résumé des choix -->
        <div id="cp-result" class="cp-result">
            <span class="cp-close-result" onclick="this.parentElement.style.display='none'">&times;</span>
            <h4>✅ Choix enregistrés</h4>
            <ul id="cp-result-list"></ul>
        </div>

        <script>
        function openCpBox() {
            document.getElementById('cp-box').style.display = 'flex';
            document.querySelector('.cp-reopen-btn').style.display = 'none';
        }
        
        function closeCpBox() {
            document.getElementById('cp-box').style.display = 'none';
            document.querySelector('.cp-reopen-btn').style.display = 'flex';
            // Fermer le panel si ouvert
            document.getElementById('cp-panel').classList.remove('open');
        }

        function toggleCpPanel() {
            const panel = document.getElementById('cp-panel');
            panel.classList.toggle('open');
        }

        function validateCp(action) {
            closeCpBox();
            const resDiv = document.getElementById('cp-result');
            const list = document.getElementById('cp-result-list');
            let choices = [];

            if (action === 'accept') {
                choices = ['Nécessaires', 'Statistiques', 'Marketing', 'Réseaux Sociaux'];
            } else if (action === 'refuse') {
                choices = ['Nécessaires (uniquement)'];
            } else {
                if(document.getElementById('cpOptNec').checked) choices.push('Nécessaires');
                if(document.getElementById('cpOptStats').checked) choices.push('Statistiques');
                if(document.getElementById('cpOptMark').checked) choices.push('Marketing');
                if(document.getElementById('cpOptSocial').checked) choices.push('Réseaux Sociaux');
            }

            list.innerHTML = choices.map(c => '<li>' + c + '</li>').join('');
            resDiv.style.display = 'block';
            
            // Reset panel
            setTimeout(() => { document.getElementById('cp-panel').classList.remove('open'); }, 300);
        }
        <\/script>
        <!-- FIN POP-UP COOKIES -->
        `;
        
        document.getElementById('simCanvas').innerHTML = html;
    }

    function generateCode() {
        const simContent = document.getElementById('simCanvas').innerHTML;
        if(!simContent) { alert("Cliquez d'abord sur 'Mettre à jour l'aperçu'"); return; }
        
        const finalCode = `<!-- CODE POP-UP COOKIES À COLLER DANS VOTRE SITE (Footer recommandé) -->
${simContent}
`;
        document.getElementById('cpResultCode').value = finalCode;
        alert("Code généré ! Copiez le contenu de la zone de texte ci-dessous.");
    }

    // Init au chargement
    renderSimulator();
</script>
<!-- FIN USINE POP-UP COOKIES V2 -->
<p>L’article <a href="https://st9ph.fr/code/">code</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">35396</post-id>	</item>
		<item>
		<title>Bienvenue sur la plateforme st9ph</title>
		<link>https://st9ph.fr/</link>
		
		<dc:creator><![CDATA[St9ph]]></dc:creator>
		<pubDate>Sat, 25 Jan 2020 07:50:10 +0000</pubDate>
				<guid isPermaLink="false">https://st9phfr.wordpress.com/?page_id=6</guid>

					<description><![CDATA[<p>un ensemble de supports et de liens pédagogiques pour progresser en digitalisation, manipuler WordPress , Prestashop et bien d'autres outils.</p>
<p>L’article <a href="https://st9ph.fr/">Bienvenue sur la plateforme st9ph</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-jetpack-repeat-visitor"><div class="wp-block-jetpack-repeat-visitor__inner-container">
<p class="has-base-2-background-color has-background wp-block-paragraph">🖖<strong>Bienvenue</strong> sur le blog st9ph que je destine en particulier à mes étudiants🧑🏻‍🎓mais ouvert à tout le monde ! Des <strong>tutos</strong> 👀, des <strong>supports</strong> 📚, des <strong>liens pédagogiques</strong> 🪢pour progresser en <strong>marketing digital,</strong> maitriser <strong>WordPress </strong>, <strong>Prestashop </strong>et bien d&#8217;autres outils (tableur, CRM &#8230;) .<em>#ndrc #digit</em></p>
</div></div>



<p class="has-text-color has-link-color uag-hide-desktop uag-hide-tab wp-elements-0b8678d1052b37a7dc84e99a2d7e3b5d wp-block-paragraph" style="color:#dd3f3f">⚠️ Vous aurez plus de confort sur st9ph.fr <strong>sur Desktop </strong>🖥️ (ordinateur ou tablette avec <strong>un écran d&#8217;au moins 12 pouces</strong>.) Même si la visite reste possible sur mobile, le site est o<strong>ptimisé pour des écrans larges</strong>.</p>


<div class="bdpp-wrap bdpp-lite bdpp-slider-wrap-main">
	<div id="bdpp-post-slider-wrap-1" class="bdpp-post-slider-wrap owl-carousel bdpp-design-1 bdpp-layout-36672 bdpp-clearfix" data-conf="{&quot;loop&quot;:true,&quot;arrows&quot;:true,&quot;dots&quot;:false,&quot;autoplay&quot;:true,&quot;autoplay_interval&quot;:7000,&quot;speed&quot;:1000}"><div class="bdpp-post-slide bdpp-post-36808 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-donner-des-sens-au-digital/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/04/iimgEA-shops.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-148 bdpp-post-cat-omnicanal" href="https://st9ph.fr/category/concepts/omnicanal/">⏺️ Omnicanal</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-donner-des-sens-au-digital/">⏺️Omnicanal | Donner des sens au digital</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>4 mai 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">🎧 Ecouter l&#39;introduction audio Ce n&#39;est pas pour rien que même les pure players finissent par ouvrir des Surfaces de Ventes Physiques (SVP), tellement l&#39;expérience sensorielle qu&#39;elle permet est difficilement transposable à la boutique en...</div>
										<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-donner-des-sens-au-digital/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-34861 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/prestashop-op-com-dans-la-eshop/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/02/enavant-opcom-eshop.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-19 bdpp-post-cat-prestashop" href="https://st9ph.fr/category/creation-de-sites/prestashop/">PrestaShop</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/prestashop-op-com-dans-la-eshop/">Prestashop | OP Com dans la Eshop</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>17 février 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">PrestaShop | 💥OP Com dans la Eshop ➡️ Que ce soit pour ... vider les stocks 📦, mettre en avant certains produits 🎈, attirer de nouveaux prospects🪝 ou ramener vos clients dormants 😴, ... il...</div>
										<a href="https://st9ph.fr/prestashop-op-com-dans-la-eshop/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-34446 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/wordpress-depoussierons-la-methode-dabonnement/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/02/EnAVANT-UM.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-21 bdpp-post-cat-wordpress" href="https://st9ph.fr/category/creation-de-sites/wordpress/">WordPress</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/wordpress-depoussierons-la-methode-dabonnement/">WordPress | Dépoussiérons la méthode d&#8217;abonnement</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>12 février 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">🚣🏻 C&#39;est une telle galère de s&#39;abonner simplement sur un site Wordpress par défaut que la plupart de vos visiteurs qui aimeraient sauter le pas vont se décourager en constatant que c&#39;est trop d&#39;effort !...</div>
										<a href="https://st9ph.fr/wordpress-depoussierons-la-methode-dabonnement/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-34280 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/com-en-service-client-et-son-management/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/02/celi-avant.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-149 bdpp-post-cat-animation-rc" href="https://st9ph.fr/category/concepts/animation-rc/">🏷️ Animation RC</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/com-en-service-client-et-son-management/">🏷️Animation RC | La communication en service client &amp; son management</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>9 février 2026</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-comments"><i class="fa fa-comments"></i>1 Réponse </span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">L&#39;importance de communiquer A toutes les étapes de son parcours client, votre interlocuteur recevra des communications de votre enseigne. Qu&#39;il s&#39;agisse de discours oraux (face à face, phoning) ou de com écrite (vos publications, vos...</div>
										<a href="https://st9ph.fr/com-en-service-client-et-son-management/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-33685 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-ux-mobile/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/Gemini_Generated_Image_zd5sdwzd5sdwzd5s.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-148 bdpp-post-cat-omnicanal" href="https://st9ph.fr/category/concepts/omnicanal/">⏺️ Omnicanal</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-ux-mobile/">⏺️Omnicanal | UX Mobile</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>30 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi &quot;l&#39;UX Mobile&quot; ? UX pour User eXperience. L’expérience utilisateur en mobilité, c’est la prise en compte des usages spécifiques de vos canaux afin de proposer des interfaces adaptées aux mobinautes. On ne parle...</div>
										<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-ux-mobile/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-33379 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/prestashop-le-service-apres-vente/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/img-enAvant-tech.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-19 bdpp-post-cat-prestashop" href="https://st9ph.fr/category/creation-de-sites/prestashop/">PrestaShop</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/prestashop-le-service-apres-vente/">Prestashop | Le Service Après Vente</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>24 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">SAV prestashop,, commande prestashop en backoffice, messages prédéfinis prestashop</div>
										<a href="https://st9ph.fr/prestashop-le-service-apres-vente/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-33149 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/prestashop-manipuler-la-boutique/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/Capture-decran-2026-01-22-143958.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-19 bdpp-post-cat-prestashop" href="https://st9ph.fr/category/creation-de-sites/prestashop/">PrestaShop</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/prestashop-manipuler-la-boutique/">Prestashop | Manipuler la boutique</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>22 janvier 2026</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-comments"><i class="fa fa-comments"></i>2 Réponse </span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">PrestaShop | Manipuler la boutique 🏪 👉🏻 2nd bloc d&#39;évaluation de l&#39;épreuve technique, les manipulations à l&#39;intérieur de la boutique qu&#39;on peut vous demander durant l&#39;examen E5B du BTS NDRC sont nombreuses et variées. 📖...</div>
										<a href="https://st9ph.fr/prestashop-manipuler-la-boutique/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-32746 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/prestashop-la-fiche-produit/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/Capture-decran-2026-01-22-144419.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-19 bdpp-post-cat-prestashop" href="https://st9ph.fr/category/creation-de-sites/prestashop/">PrestaShop</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/prestashop-la-fiche-produit/">Prestashop | La Fiche Produit par l&#8217;exemple</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>16 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">PrestaShop | La Fiche Produit 🎧 Ecouter l&#39;introduction audio 👉🏻 1er bloc d&#39;évaluation de l&#39;épreuve technique, la création ou modification d&#39;une fiche produit est un incontournable de l&#39;examen E5B du BTS NDRC. Les deux autres...</div>
										<a href="https://st9ph.fr/prestashop-la-fiche-produit/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-32594 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%98%9d%ef%b8%8flepreuve-e5-a-ecrit-du-bts-ndrc/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/e5a-img.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%98%9d%ef%b8%8flepreuve-e5-a-ecrit-du-bts-ndrc/">☝️L&#8217;épreuve E5 A (écrit) du BTS NDRC</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>11 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">⏱️ 3 heures | ✅coef2 /40 pts 👍 A ce jour, tous mes étudiants ont survécu à l&#39;épreuve ! 👉🏻 On parlera parfois de RCDD au lieu de E5 pour Relation Client à Distance et...</div>
										<a href="https://st9ph.fr/%e2%98%9d%ef%b8%8flepreuve-e5-a-ecrit-du-bts-ndrc/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-32500 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-la-satisfaction-client/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/satcli-bande.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-149 bdpp-post-cat-animation-rc" href="https://st9ph.fr/category/concepts/animation-rc/">🏷️ Animation RC</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-la-satisfaction-client/">🏷️Animation RC | la Satisfaction Client</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>10 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi la satisfaction client ? On parle aussi de &quot;Customer Care&quot;. C&#39;est le fait de se conformer à leurs attentes pour les fidéliser. Ca passe par des mesures de sondage (de leurs sentiments autant...</div>
										<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-la-satisfaction-client/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-32397 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-search-engine-marketing/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/Capture-decran-2026-01-08-220116.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-148 bdpp-post-cat-omnicanal" href="https://st9ph.fr/category/concepts/omnicanal/">⏺️ Omnicanal</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-search-engine-marketing/">⏺️Omnicanal | Search Engine Marketing</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>8 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi le &quot;Search Engine Marketing&quot; ? Le Search Engine Marketing (SEM) est l&#39;addition de la Search Engine Optimization (SEO), le référencement naturel (ou organique) et du Search Engine Advertising (SEA), le référencement sponsorisé. Bref,...</div>
										<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-search-engine-marketing/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-32190 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-social-selling-reverse-marketing/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/Capture-decran-2026-01-05-151311.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-149 bdpp-post-cat-animation-rc" href="https://st9ph.fr/category/concepts/animation-rc/">🏷️ Animation RC</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-social-selling-reverse-marketing/">🏷️Animation RC | Social Selling &amp; Reverse Marketing</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>5 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi tout ça ? Le Social Selling est l&#39;art de vendre depuis les réseaux sociaux et le Reverse Marketing, celui de faire valoriser nos offres par le consommateur lui-même. Ces deux stratégies transfèrent donc...</div>
										<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-social-selling-reverse-marketing/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-32105 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%f0%9f%9b%92e-commerce-operations-commerciales-en-digital/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/image-23.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-150 bdpp-post-cat-ecommerce" href="https://st9ph.fr/category/concepts/ecommerce/">🛒 E-Commerce</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%f0%9f%9b%92e-commerce-operations-commerciales-en-digital/">🛒E-Commerce | Opérations commerciales en digital</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>4 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi une opération commerciale ? Aussi appelée &quot;campagne&quot;, une O-P-COM, c&#39;est une opération spécifique de mise en avant d&#39;un service, d&#39;un produit, d&#39;une gamme, d&#39;une marque, d&#39;un savoir faire ... afin, selon l&#39;objectif, de...</div>
										<a href="https://st9ph.fr/%f0%9f%9b%92e-commerce-operations-commerciales-en-digital/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31977 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8f-animation-rc-le-selfcare/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2026/01/image-9.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-149 bdpp-post-cat-animation-rc" href="https://st9ph.fr/category/concepts/animation-rc/">🏷️ Animation RC</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8f-animation-rc-le-selfcare/">🏷️ Animation RC | le Selfcare</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>3 janvier 2026</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi le &quot;Selfcare&quot; ? Littéralement &quot;prendre soin de soi soi-même&quot;(on parle aussi parfois &quot;d&#39;auto support&quot;), le Selfcare est l&#39;ensemble des outils automatisés qui prennent le relai des agents commerciaux en prospection et dans la...</div>
										<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8f-animation-rc-le-selfcare/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31898 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-sur-vos-reseaux-et-en-vitrine/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/RS-imgAvant.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-148 bdpp-post-cat-omnicanal" href="https://st9ph.fr/category/concepts/omnicanal/">⏺️ Omnicanal</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-sur-vos-reseaux-et-en-vitrine/">⏺️Omnicanal | Mesure KPI sur vos réseaux et en Vitrine</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>30 décembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi les &quot;KPI&quot; ? Les KPI, parfois nommés «&nbsp;métriques&nbsp;» sont des indicateurs clés de la performance de vos réalisations digitales. Ils ne faut pas les observer comme des données de bilan mais, tout au...</div>
										<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-sur-vos-reseaux-et-en-vitrine/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31837 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-en-crc/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/call-bande-scaled.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-148 bdpp-post-cat-omnicanal" href="https://st9ph.fr/category/concepts/omnicanal/">⏺️ Omnicanal</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-en-crc/">⏺️Omnicanal | Mesure KPI en CRC</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>29 décembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi les &quot;KPI&quot; ? Les KPI, parfois nommés «&nbsp;métriques&nbsp;» sont des indicateurs clés de la performance de vos réalisations digitales. Ils ne faut pas les observer comme des données de bilan mais, tout au...</div>
										<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-en-crc/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31774 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-en-svp-eshop/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/image-103.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-148 bdpp-post-cat-omnicanal" href="https://st9ph.fr/category/concepts/omnicanal/">⏺️ Omnicanal</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-en-svp-eshop/">⏺️Omnicanal | Mesure KPI en SVP &amp; Eshop</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>28 décembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi les &quot;KPI&quot; ? Les KPI, parfois nommés «&nbsp;métriques&nbsp;» sont des indicateurs clés de la performance de vos réalisations digitales. Ils ne faut pas les observer comme des données de bilan mais, tout au...</div>
										<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mesure-kpi-en-svp-eshop/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31659 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-le-buyer-persona-et-approches-en-prospection/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/ByPers1.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-149 bdpp-post-cat-animation-rc" href="https://st9ph.fr/category/concepts/animation-rc/">🏷️ Animation RC</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-le-buyer-persona-et-approches-en-prospection/">🏷️Animation RC | le Buyer Persona (et approches en prospection)</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>26 décembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi un &quot;Buyer Persona&quot; ? C&#39;est un personnage imaginaire (parfois appelé aussi Avatar) qui porte toutes les caractéristiques de notre lead type. On lui fait une fiche d&#39;identité et on pense à lui en...</div>
										<a href="https://st9ph.fr/%f0%9f%8f%b7%ef%b8%8fanimation-rc-le-buyer-persona-et-approches-en-prospection/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31560 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-data-mining-et-rgpd/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/Capture-decran-2025-12-21-134136.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-148 bdpp-post-cat-omnicanal" href="https://st9ph.fr/category/concepts/omnicanal/">⏺️ Omnicanal</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-data-mining-et-rgpd/">⏺️Omnicanal | Data Mining et RGPD</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>23 décembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi le &quot;Data Mining&quot; ? Le data Mining ou forage de données, c&#39;est la démarche de collecte, de qualification et d&#39;exploitation des données. Tout cela, bien sur, se fera en respectant la légalité, notamment...</div>
										<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-data-mining-et-rgpd/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31441 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mapping-des-hot-points/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/cible.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-147 bdpp-post-cat-concepts" href="https://st9ph.fr/category/concepts/">☝️ Concepts</a> <a class="bdpp-post-cat-link bdpp-post-cat-148 bdpp-post-cat-omnicanal" href="https://st9ph.fr/category/concepts/omnicanal/">⏺️ Omnicanal</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mapping-des-hot-points/">⏺️Omnicanal | Mapping des Hot Points</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>20 décembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">C&#39;est quoi &quot;Mapper les Hot Points&quot; ? les hot points en marketing sont les points de rencontre &quot;chauds&quot; entre votre enseigne et vos clients ou prospects. Les outils digitaux sont capitaux pour les tracer et...</div>
										<a href="https://st9ph.fr/%e2%8f%ba%ef%b8%8fomnicanal-mapping-des-hot-points/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31333 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/prestashop-cas-de-retours-produits/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/Capture-decran-2026-01-05-225925.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-19 bdpp-post-cat-prestashop" href="https://st9ph.fr/category/creation-de-sites/prestashop/">PrestaShop</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/prestashop-cas-de-retours-produits/">Prestashop | les retours produits</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>18 décembre 2025</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-comments"><i class="fa fa-comments"></i>1 Réponse </span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">restaShop | Les retours produits 🔙 ➡️ Il faut savoir que les différents scénarios devront être définis dans vos CGV, accessibles aux clients, et respecter quelques règles : vous ne pouvez pas refuser à un...</div>
										<a href="https://st9ph.fr/prestashop-cas-de-retours-produits/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-31267 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/wordpress-trucs-et-astuces-pour-embellir-vos-articles/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/embelBlog.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-21 bdpp-post-cat-wordpress" href="https://st9ph.fr/category/creation-de-sites/wordpress/">WordPress</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/wordpress-trucs-et-astuces-pour-embellir-vos-articles/">WordPress | trucs et astuces pour embellir vos articles</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>15 décembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">Wordpress | trucs et astuces pour embellir vos articles ✨ Un petit tour d&#39;horizon 🌤️ de petits tips, méthodes et outils que, je l&#39;espère, vous trouverez utiles pour rendre vos articles plus esthétiques que le...</div>
										<a href="https://st9ph.fr/wordpress-trucs-et-astuces-pour-embellir-vos-articles/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-30926 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/wordpress-un-article-en-partant-de-zero/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/12/zero.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-21 bdpp-post-cat-wordpress" href="https://st9ph.fr/category/creation-de-sites/wordpress/">WordPress</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/wordpress-un-article-en-partant-de-zero/">WordPress | un article en partant de zéro ?</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>4 décembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">Wordpress | un article en partant de 0️⃣? 👉🏻 C&#39;est le pire scénario qui puisse se présenter sur votre sujet NDRC E5B de l&#39;épreuve technique mais cela arrive. A partir d&#39;annexes incomplètes ou, même, en...</div>
										<a href="https://st9ph.fr/wordpress-un-article-en-partant-de-zero/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-30896 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/wordpress-methode-habi-et-yoast-seo-synchronises/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/11/habi-yoast-EA.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-21 bdpp-post-cat-wordpress" href="https://st9ph.fr/category/creation-de-sites/wordpress/">WordPress</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/wordpress-methode-habi-et-yoast-seo-synchronises/">WordPress | Méthode HABI et Yoast SEO synchronisés</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>20 novembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">Wordpress | Méthode HABI &amp; Yoast Durant l&#39;épreuve E5B, vous serez amenez à concevoir ou mettre en forme un article ou une page puis à le référencer en utilisant Yoast SEO. Ces deux parties représentent...</div>
										<a href="https://st9ph.fr/wordpress-methode-habi-et-yoast-seo-synchronises/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-30877 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/prestashop-nouveautes-de-la-version-9/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/11/PRESTA9.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-19 bdpp-post-cat-prestashop" href="https://st9ph.fr/category/creation-de-sites/prestashop/">PrestaShop</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/prestashop-nouveautes-de-la-version-9/">Prestashop | Nouveautés de la version 9</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>19 novembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">Une nouvelle version du CMS pose quelques améliorations au Backoffice et un nouveau thème en option. Il s&#39;agit surtout de simplifications et de récapitulatifs plus marqués. Cette version sera celle installée dans les centres d&#39;examen...</div>
										<a href="https://st9ph.fr/prestashop-nouveautes-de-la-version-9/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-30837 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/prestashop-referencement-seo-de-vos-produits/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/11/refeProduit.png);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-19 bdpp-post-cat-prestashop" href="https://st9ph.fr/category/creation-de-sites/prestashop/">PrestaShop</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/prestashop-referencement-seo-de-vos-produits/">Prestashop | référencement SEO de vos produits</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>14 novembre 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">PrestaShop | le SEO de vos produits 👉🏻 Essentiel pour assurer votre visibilité sur les SERP Google, le référencement SEO de vos produits, un par un, permet de vous positionner auprès des consommateurs qui recherchent...</div>
										<a href="https://st9ph.fr/prestashop-referencement-seo-de-vos-produits/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-30777 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/prestashop-cest-parti-pour-les-soldes/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2025/01/panneau-soldes.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-19 bdpp-post-cat-prestashop" href="https://st9ph.fr/category/creation-de-sites/prestashop/">PrestaShop</a> <a class="bdpp-post-cat-link bdpp-post-cat-1 bdpp-post-cat-uncategorized" href="https://st9ph.fr/category/uncategorized/">Uncategorized</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/prestashop-cest-parti-pour-les-soldes/">Prestashop | C&#8217;est parti pour les soldes !</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>4 janvier 2025</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">🤨 Difficile de mettre en place des soldes dans votre boutique sans passer &quot;à la caisse&quot; pour acheter un module payant hors de prix. Mais avec un peu d&#39;astuce, on peut s&#39;en sortir sans débourser...</div>
										<a href="https://st9ph.fr/prestashop-cest-parti-pour-les-soldes/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div><div class="bdpp-post-slide bdpp-post-30700 bdpp-post-standard bdpp-has-thumb">
	<div class="bdpp-post-slider-content">
		<a class="bdpp-post-linkoverlay" href="https://st9ph.fr/wordpress-blocs-spectra-remarquables/"></a>
		<div class="bdpp-post-img-bg" style="background-image:url(https://st9ph.fr/wp-content/uploads/2024/12/Capture-decran-2026-01-19-220034.jpg);">
			<div class="bdpp-featured-meta">
							<div class="bdpp-post-cats"><a class="bdpp-post-cat-link bdpp-post-cat-21 bdpp-post-cat-wordpress" href="https://st9ph.fr/category/creation-de-sites/wordpress/">WordPress</a> <a class="bdpp-post-cat-link bdpp-post-cat-13 bdpp-post-cat-creation-de-sites" href="https://st9ph.fr/category/creation-de-sites/">🛠️ création de sites</a> <a class="bdpp-post-cat-link bdpp-post-cat-388 bdpp-post-cat-%f0%9f%8c%90-public" href="https://st9ph.fr/category/%f0%9f%8c%90-public/">🌐 public</a></div>
				
				<h2 class="bdpp-post-title">
					<a href="https://st9ph.fr/wordpress-blocs-spectra-remarquables/">WordPress | Blocs Spectra remarquables</a>
				</h2>

								<div class="bdpp-post-meta bdpp-post-meta-up">
					<span class="bdpp-post-meta-data bdpp-post-author"><i class="fa fa-user"></i>St9ph</span><span class="bdpp-post-meta-sep"> &ndash; </span><span class="bdpp-post-meta-data bdpp-post-date"><i class="fa fa-clock-o"></i>30 décembre 2024</span>				</div>
								<div class="bdpp-post-content">
					<div class="bdpp-post-desc">Spectra est un plug-in (extension) de type Builder (elle permet de concevoir globalement votre blog). Cet article fait un petit tour d&#39;horizon des blocs les plus intéressants 👍 à insérer dans vos articles, vos pages,...</div>
										<a href="https://st9ph.fr/wordpress-blocs-spectra-remarquables/" class="bdpp-rdmr-btn">Lire la suite</a>
									</div>
							</div>
		</div>
	</div>
</div>
	</div>
</div>



<!-- TICKER CONTINU (remplacement du marquee) -->
<div class="ticker">
  <div class="ticker-track">

    <!-- CONTENU 1 -->
    <div class="ticker-content">
     💫 Bonne lecture ! ♻️ <span style="color:green;">Imprimez avec modération !</span>
    </div>

    <!-- CONTENU 2 (duplication obligatoire pour éviter le blanc) -->
    <div class="ticker-content">
      🔍 <b>moteur de recherche dynamique </b> pour vos mots-clés</span>
    </div>

<!-- CONTENU 3 (duplication obligatoire pour éviter le blanc) -->
    <div class="ticker-content">
      💫 Bonne lecture ! ♻️ <span style="color:green;">Imprimez avec modération !</span>
    </div>
<!-- CONTENU 4 (duplication obligatoire pour éviter le blanc) -->
    <div class="ticker-content">
       🔍 <b>moteur de recherche dynamique </b> pour vos mots-clés</span>
    </div>


  </div>
</div>

<style>
/* CONTENEUR */
.ticker {
  overflow: hidden;
  width: 100%;
  background: #f6f6f6;
  border-radius: 6px;
  padding: 10px 0;
}

/* RUBAN ANIMÉ */
.ticker-track {
  display: flex;
  width: max-content;
  animation: ticker-scroll linear infinite;
  animation-duration: 40s; /* ⬅️ vitesse réelle (augmente pour ralentir) */
}

/* TEXTE */
.ticker-content {
  white-space: nowrap;
  padding-right: 60px;
  font-size: 15px;
}

/* LIENS */
.ticker a {
  color: #0a58ca;
  text-decoration: underline;
}

/* PAUSE AU SURVOL (liens cliquables) */
.ticker:hover .ticker-track {
  animation-play-state: paused;
}

/* ANIMATION */
@keyframes ticker-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* MOBILE : plus lent (optionnel mais recommandé) */
@media (max-width: 768px) {
  .ticker-track {
    animation-duration: 40s;
  }
}
</style>





<!-- =====================================================
 POP-UP UX AUTO – TEMPLATE WORDPRESS
 Ouverture auto + sessionStorage + "ne plus afficher"
====================================================== -->

<!-- OVERLAY -->
<div id="uxOverlay" style="
  display:none;
  position:fixed;
  top:0; left:0;
  width:100vw; height:100vh;
  background:rgba(0,0,0,0.55);
  z-index:9998;
"></div>

<!-- POP-UP -->
<div id="uxPopup" style="
  display:none;
  position:fixed;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:90%;
  max-width:560px;
  max-height:80vh;
  background:#fff;
  padding:24px;
  border-radius:12px;
  box-shadow:0 15px 40px rgba(0,0,0,0.3);
  z-index:9999;
  overflow-y:auto;
  font-family:Arial, sans-serif;
">

  <!-- ✅ TITRE -->
  <h2 style="margin-top:0;">
    🤔 Besoin d&#8217;aide ?
  </h2>

  <!-- ✅ IMAGE -->
  <img decoding="async" 
    src="https://st9ph.fr/aide/image-777/#main"
    alt="logo-blog-st9ph-small"
    style="
      width:100%;
      border-radius:8px;
      margin:12px 0 16px;
    "
  >

  <!-- ✅ TEXTE -->
 <ul> 
<li> <strong>Un peu perdu(e) ? </strong>  <a href="https://st9ph.fr/aide/">cliquez ici</a>, je vous explique tout ! </li>
<li> Cliquez sur le bouton <strong>&#8220;Ne plus afficher&#8221;</strong> pour ne plus revoir ce pop-up </li>
</ul>

  <!-- ACTIONS -->
  <div style="margin-top:24px; text-align:right;">
    <button id="uxClose" style="
      padding:8px 14px;
      border:none;
      background:#e0e0e0;
      border-radius:6px;
      cursor:pointer;
      margin-right:8px;
    ">
      Fermer
    </button>

    <button id="uxNever" style="
      padding:8px 14px;
      border:none;
      background:#111;
      color:#fff;
      border-radius:6px;
      cursor:pointer;
    ">
      Ne plus afficher
    </button>
  </div>
</div>

<!-- SCRIPT -->
<script>
document.addEventListener("DOMContentLoaded", function () {

  const popup   = document.getElementById("uxPopup");
  const overlay = document.getElementById("uxOverlay");
  const close   = document.getElementById("uxClose");
  const never   = document.getElementById("uxNever");

  function openPopup() {
    popup.style.display = "block";
    overlay.style.display = "block";
    document.body.style.overflow = "hidden";
  }

  function closePopup() {
    popup.style.display = "none";
    overlay.style.display = "none";
    document.body.style.overflow = "";
  }

  // ❌ Déjà vu → on ne montre pas
  if (localStorage.getItem("uxPopupSeen")) {
    return;
  }

  // ⏱️ Ouverture différée (1,2 s)
  setTimeout(openPopup, 30000);

  // Boutons
  close.onclick = closePopup;

  never.onclick = function () {
    localStorage.setItem("uxPopupSeen", "true");
    closePopup();
  };

  overlay.onclick = closePopup;
});
</script>



<!-- =========================
     LECTEUR AUDIO FLOTTANT
     ========================= -->

<!-- 👉🏻 AUDIO -->
<audio id="floatingAudio" preload="none">
  <source src="https://st9ph.fr/wp-content/uploads/2026/02/voicertool_audio_Eloise_19-02-2026_at_13_18_57_on_February_19th_2026.mp3" type="audio/mpeg">
</audio>

<!-- 👉🏻 BOUTON FLOTTANT -->
<button id="audioToggle" aria-label="Aide audio">
  aide audio ▶️
</button>

<style>
/* ===== BOUTON AUDIO ===== */
#audioToggle {
  position: fixed;
  left: 16px;
  bottom: 80%;
  width: 160px;
  height: 28px;
  border-radius: 15%;
  border: none;
  background: #1e73be;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  z-index: 9999;
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
  transition: transform 0.2s ease, background 0.2s ease;
}

#audioToggle:hover {
  transform: scale(1.05);
  background: #155a96;
}
</style>

<script>
const audio = document.getElementById("floatingAudio");
const btn = document.getElementById("audioToggle");

btn.addEventListener("click", () => {
  if (audio.paused) {
    audio.play();
    btn.textContent = "aide en lecture ⏸️"; // pause
  } else {
    audio.pause();
    btn.textContent = "aide en pause ▶️"; // play
  }
});

/* 👉🏻 Sécurité : si l’audio se termine */
audio.addEventListener("ended", () => {
  btn.textContent = "relancer aide ▶️";
});
</script>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:27%"><div class="wp-block-image">
<figure class="alignright size-full"><img loading="lazy" decoding="async" width="180" height="108" src="https://st9ph.fr/wp-content/uploads/2026/04/image.png" alt="" class="wp-image-36682"/></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:73%">
<ul class="wp-block-list callout bleu">
<li>🔒 un <strong>nouveau 🎓TP</strong> sur les opérations commerciales (🔍OpCom)</li>



<li>🆙 MAJ des articles (en cours) avec <strong>zoom sur les images</strong></li>



<li>🆕 Nouvel article sur la digitalisation des sens en eshop et SVP</li>



<li>➰ <strong>Changement du carrousel </strong>de la page d&#8217;accueil</li>
</ul>
</div>
</div>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://st9ph.fr/">Bienvenue sur la plateforme st9ph</a> est apparu en premier sur <a href="https://st9ph.fr">st9ph.fr</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6</post-id>	</item>
	</channel>
</rss>
