{"id":3837,"date":"2026-08-23T09:42:59","date_gmt":"2026-08-23T09:42:59","guid":{"rendered":"https:\/\/maroczain.com\/?page_id=3837"},"modified":"2026-08-23T12:23:53","modified_gmt":"2026-08-23T12:23:53","slug":"pole-fret-programmation-des-vols","status":"publish","type":"page","link":"https:\/\/maroczain.com\/en\/pole-fret-programmation-des-vols\/","title":{"rendered":"P\u00f4le Fret &#038; Programmation des vols"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Maroc Zain Sales Academy<\/title>\n<style>\n:root{\n  --navy:#062947;--blue:#0d6fb8;--gold:#d8b34f;--green:#16845c;--red:#c23b36;\n  --light:#f4f7fb;--white:#fff;--text:#172033;--shadow:0 12px 35px rgba(0,0,0,.08)\n}\n*{box-sizing:border-box}\nbody{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--light);color:var(--text)}\n.mzsa{max-width:1280px;margin:auto;padding:20px}\n.hero{background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;padding:55px 30px;border-radius:24px;margin:25px 0}\n.badge{display:inline-block;background:var(--gold);color:#172033;padding:8px 16px;border-radius:30px;font-weight:700}\n.hero h1{font-size:48px;line-height:1.05;margin:16px 0}\n.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}\n.card,.panel,.scenario{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:22px}\n.card strong{display:block;font-size:32px;color:var(--blue)}\n.toolbar{display:flex;gap:10px;flex-wrap:wrap;background:#fff;padding:16px;border-radius:14px;box-shadow:var(--shadow);margin:22px 0}\n.toolbar select{padding:11px;border:1px solid #cfd8e3;border-radius:8px;min-width:170px;flex:1}\n.btn{border:0;border-radius:8px;padding:11px 16px;cursor:pointer;font-weight:700}\n.blue{background:var(--blue);color:#fff}.gold{background:var(--gold);color:#172033}.red{background:var(--red);color:#fff}\n.scenario{margin:18px 0;border-left:6px solid var(--blue)}\n.tag{display:inline-block;padding:5px 10px;border-radius:20px;background:#eaf3fc;color:var(--blue);font-size:12px;font-weight:700;margin:2px}\n.option{display:block;width:100%;text-align:left;padding:13px;border:1px solid #d7dfe8;background:#fff;border-radius:9px;margin:8px 0;cursor:pointer}\n.option:hover{background:#eef6fd}.option.good{background:#e7f7ef;border-color:var(--green)}.option.bad{background:#fff0ef;border-color:var(--red)}\n.feedback{margin-top:14px;padding:14px;background:#fff8e5;border-left:5px solid var(--gold);border-radius:10px}\n.progress{height:16px;background:#e2e8ef;border-radius:20px;overflow:hidden;margin:12px 0}\n.progress>div{height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--gold));transition:.3s}\n.skill{margin:10px 0}.skill small{display:flex;justify-content:space-between}\n.hidden{display:none}\nfooter{background:#02182c;color:white;text-align:center;padding:35px 20px;margin-top:40px}\n@media(max-width:700px){.hero h1{font-size:34px}}\n<\/style>\n<\/head>\n<body>\n\n<div class=\"mzsa\" id=\"salesAcademy\">\n\n  <div class=\"hero\">\n    <span class=\"badge\">MAROC ZAIN ACADEMY \u2022 SALES ACADEMY<\/span>\n    <h1>Simulateur de Vente<\/h1>\n    <p>Sc\u00e9narios commerciaux \u2022 objections \u2022 n\u00e9gociation \u2022 closing \u2022 fid\u00e9lisation \u2022 scoring<\/p>\n    <div class=\"progress\"><div class=\"globalProgress\"><\/div><\/div>\n    <p>Progression : <strong class=\"percent\">0%<\/strong><\/p>\n  <\/div>\n\n  <div class=\"grid\">\n    <div class=\"card\"><strong class=\"score\">0<\/strong>Points<\/div>\n    <div class=\"card\"><strong class=\"done\">0<\/strong>Sc\u00e9narios trait\u00e9s<\/div>\n    <div class=\"card\"><strong class=\"good\">0<\/strong>Bonnes d\u00e9cisions<\/div>\n    <div class=\"card\"><strong class=\"accuracy\">0%<\/strong>R\u00e9ussite<\/div>\n    <div class=\"card\"><strong class=\"level\">D\u00e9butant<\/strong>Niveau<\/div>\n  <\/div>\n\n  <div class=\"toolbar\">\n    <select class=\"family\">\n      <option value=\"all\">Toutes familles<\/option>\n      <option>Billetterie a\u00e9rienne<\/option>\n      <option>Vente agence<\/option>\n      <option>Vente additionnelle<\/option>\n      <option>B2B<\/option>\n      <option>R\u00e9clamation<\/option>\n      <option>Closing<\/option>\n      <option>Vente digitale<\/option>\n      <option>Cargo<\/option>\n      <option>H\u00f4tellerie<\/option>\n      <option>Management commercial<\/option>\n    <\/select>\n\n    <select class=\"filterLevel\">\n      <option value=\"all\">Tous niveaux<\/option>\n      <option>D\u00e9butant<\/option>\n      <option>Op\u00e9rationnel<\/option>\n      <option>Confirm\u00e9<\/option>\n      <option>Expert<\/option>\n    <\/select>\n\n    <button class=\"btn gold randomBtn\">Sc\u00e9nario al\u00e9atoire<\/button>\n    <button class=\"btn red resetBtn\">R\u00e9initialiser<\/button>\n  <\/div>\n\n  <div class=\"scenario\"><\/div>\n\n  <div class=\"panel\">\n    <h2>Comp\u00e9tences commerciales<\/h2>\n\n    <div class=\"skill\">\n      <small><span>D\u00e9couverte<\/span><strong class=\"skill-decouverte\">0%<\/strong><\/small>\n      <div class=\"progress\"><div class=\"bar-decouverte\"><\/div><\/div>\n    <\/div>\n\n    <div class=\"skill\">\n      <small><span>Argumentation<\/span><strong class=\"skill-argumentation\">0%<\/strong><\/small>\n      <div class=\"progress\"><div class=\"bar-argumentation\"><\/div><\/div>\n    <\/div>\n\n    <div class=\"skill\">\n      <small><span>N\u00e9gociation<\/span><strong class=\"skill-negociation\">0%<\/strong><\/small>\n      <div class=\"progress\"><div class=\"bar-negociation\"><\/div><\/div>\n    <\/div>\n\n    <div class=\"skill\">\n      <small><span>Closing<\/span><strong class=\"skill-closing\">0%<\/strong><\/small>\n      <div class=\"progress\"><div class=\"bar-closing\"><\/div><\/div>\n    <\/div>\n\n    <div class=\"skill\">\n      <small><span>Fid\u00e9lisation<\/span><strong class=\"skill-fidelisation\">0%<\/strong><\/small>\n      <div class=\"progress\"><div class=\"bar-fidelisation\"><\/div><\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<footer>\n  <h2>MAROC ZAIN ACADEMY<\/h2>\n  <p>Sales Academy \u2022 Vente \u2022 N\u00e9gociation \u2022 Fid\u00e9lisation \u2022 Performance commerciale<\/p>\n<\/footer>\n\n<script>\n(function(){\n  const root = document.getElementById('salesAcademy');\n\n  const scenarios = [\n    {\n      id:1,family:'Billetterie a\u00e9rienne',level:'D\u00e9butant',\n      title:'Le client dit : \u201cC\u2019est trop cher\u201d',\n      context:'Un client compare votre billet \u00e0 une offre trouv\u00e9e sur Internet, annonc\u00e9e 700 MAD moins ch\u00e8re.',\n      question:'Quelle est votre meilleure premi\u00e8re r\u00e9ponse ?',\n      answers:[\n        'C\u2019est notre prix, je ne peux rien faire.',\n        'Je vous fais tout de suite une remise.',\n        'Regardons ensemble ce que comprennent exactement les deux offres : conditions, bagages, modification et remboursement.',\n        'Les tarifs Internet ne sont pas fiables.'\n      ],\n      correct:2,skill:'argumentation',\n      lesson:'Ne partez pas imm\u00e9diatement sur une remise. V\u00e9rifiez d\u2019abord si les offres sont r\u00e9ellement comparables et d\u00e9fendez la valeur.'\n    },\n    {\n      id:2,family:'Vente agence',level:'D\u00e9butant',\n      title:'Le client veut seulement le prix',\n      context:'Un prospect entre dans l\u2019agence et demande imm\u00e9diatement : \u201cCombien co\u00fbte Marrakech ?\u201d',\n      question:'Quel r\u00e9flexe commercial adopter ?',\n      answers:[\n        'Donner le prix le plus bas sans poser de question.',\n        'D\u00e9couvrir les dates, le budget, le nombre de voyageurs et les priorit\u00e9s du client.',\n        'Pr\u00e9senter toutes les brochures disponibles.',\n        'Demander au client de revenir plus tard.'\n      ],\n      correct:1,skill:'decouverte',\n      lesson:'Une bonne vente commence par la d\u00e9couverte. Le prix seul ne permet pas de construire une proposition adapt\u00e9e.'\n    },\n    {\n      id:3,family:'Vente additionnelle',level:'Op\u00e9rationnel',\n      title:'Bagage suppl\u00e9mentaire',\n      context:'Le client r\u00e9serve un voyage familial et semble voyager avec beaucoup d\u2019effets personnels.',\n      question:'Comment proposer une vente additionnelle sans \u00eatre insistant ?',\n      answers:[\n        'Ajouter automatiquement un bagage payant.',\n        'Demander au client s\u2019il souhaite v\u00e9rifier ses besoins en bagages avant l\u2019\u00e9mission.',\n        'Ne rien proposer.',\n        'Dire que tous les clients prennent un bagage suppl\u00e9mentaire.'\n      ],\n      correct:1,skill:'argumentation',\n      lesson:'La vente additionnelle efficace part du besoin client, pas d\u2019une pression commerciale.'\n    },\n    {\n      id:4,family:'B2B',level:'Confirm\u00e9',\n      title:'Entreprise de 80 voyageurs fr\u00e9quents',\n      context:'Une entreprise souhaite n\u00e9gocier un contrat voyages et demande imm\u00e9diatement une remise importante.',\n      question:'Quelle approche est la plus solide ?',\n      answers:[\n        'Accepter la remise pour signer vite.',\n        'Refuser toute n\u00e9gociation.',\n        'Qualifier volumes, destinations, flexibilit\u00e9, reporting, assistance et attentes avant de construire l\u2019offre.',\n        'Envoyer uniquement une grille tarifaire.'\n      ],\n      correct:2,skill:'negociation',\n      lesson:'En B2B, la n\u00e9gociation doit partir du volume, de la valeur globale et des services attendus.'\n    },\n    {\n      id:5,family:'R\u00e9clamation',level:'Confirm\u00e9',\n      title:'Client m\u00e9content apr\u00e8s annulation',\n      context:'Un client vous reproche une annulation et menace de ne plus jamais acheter chez vous.',\n      question:'Quelle r\u00e9ponse commerciale est la plus appropri\u00e9e ?',\n      answers:[\n        'Lui dire que ce n\u2019est pas votre faute.',\n        '\u00c9couter, reconna\u00eetre l\u2019impact, v\u00e9rifier les solutions possibles et proposer une issue r\u00e9aliste.',\n        'Offrir imm\u00e9diatement une remise importante.',\n        'Mettre fin \u00e0 l\u2019\u00e9change.'\n      ],\n      correct:1,skill:'fidelisation',\n      lesson:'Une r\u00e9clamation bien g\u00e9r\u00e9e peut devenir un levier de fid\u00e9lisation.'\n    },\n    {\n      id:6,family:'Closing',level:'Confirm\u00e9',\n      title:'\u201cJe vais r\u00e9fl\u00e9chir\u201d',\n      context:'Le client appr\u00e9cie la proposition mais conclut : \u201cJe vais r\u00e9fl\u00e9chir.\u201d',\n      question:'Quelle r\u00e9ponse aide le plus \u00e0 conclure sans pression ?',\n      answers:[\n        'Tr\u00e8s bien, au revoir.',\n        'Qu\u2019est-ce qui vous manque encore pour \u00eatre \u00e0 l\u2019aise avec la d\u00e9cision ?',\n        'L\u2019offre expire dans cinq minutes.',\n        'Je peux baisser le prix si vous payez maintenant.'\n      ],\n      correct:1,skill:'closing',\n      lesson:'Le closing doit identifier le frein r\u00e9el avant de pousser \u00e0 la d\u00e9cision.'\n    },\n    {\n      id:7,family:'Vente digitale',level:'Op\u00e9rationnel',\n      title:'Prospect WhatsApp',\n      context:'Un prospect vous \u00e9crit : \u201cPrix Omra svp\u201d puis ne r\u00e9pond plus.',\n      question:'Quelle relance est la plus professionnelle ?',\n      answers:[\n        'Vous \u00eates toujours int\u00e9ress\u00e9 ?',\n        'Bonjour, je peux vous envoyer une proposition adapt\u00e9e selon vos dates, budget et pr\u00e9f\u00e9rence de vol. Souhaitez-vous 2 options ?',\n        'Pourquoi vous ne r\u00e9pondez pas ?',\n        'Derni\u00e8re chance aujourd\u2019hui.'\n      ],\n      correct:1,skill:'closing',\n      lesson:'Une bonne relance apporte de la valeur et facilite une prochaine action simple.'\n    },\n    {\n      id:8,family:'Cargo',level:'Expert',\n      title:'Client fret \u00e0 forte exigence',\n      context:'Un client cargo veut garantir un embarquement prioritaire sur un envoi urgent.',\n      question:'Quelle posture commerciale adopter ?',\n      answers:[\n        'Garantir imm\u00e9diatement l\u2019embarquement.',\n        'V\u00e9rifier capacit\u00e9, contraintes, cut-off et faisabilit\u00e9 avant tout engagement.',\n        'Dire oui puis voir avec l\u2019exploitation.',\n        'Refuser toute demande urgente.'\n      ],\n      correct:1,skill:'negociation',\n      lesson:'En vente cargo, l\u2019engagement commercial doit rester compatible avec la faisabilit\u00e9 op\u00e9rationnelle.'\n    },\n    {\n      id:9,family:'H\u00f4tellerie',level:'Op\u00e9rationnel',\n      title:'Client h\u00e9site entre deux h\u00f4tels',\n      context:'Le client h\u00e9site entre un h\u00f4tel moins cher et un \u00e9tablissement mieux situ\u00e9.',\n      question:'Quelle approche est la plus utile ?',\n      answers:[\n        'Toujours recommander le plus cher.',\n        'Comparer les deux offres selon les priorit\u00e9s du client : localisation, confort, services et budget.',\n        'Choisir \u00e0 la place du client.',\n        'Donner uniquement la diff\u00e9rence de prix.'\n      ],\n      correct:1,skill:'argumentation',\n      lesson:'La vente-conseil consiste \u00e0 relier les avantages de l\u2019offre aux priorit\u00e9s exprim\u00e9es par le client.'\n    },\n    {\n      id:10,family:'Management commercial',level:'Expert',\n      title:'Grand compte strat\u00e9gique',\n      context:'Un grand compte demande une baisse de prix mais souhaite aussi un reporting mensuel, une assistance 24\/7 et des conditions flexibles.',\n      question:'Que doit faire un directeur commercial ?',\n      answers:[\n        'N\u00e9gocier uniquement le prix.',\n        'Construire une proposition de valeur globale et chiffrer le co\u00fbt des services.',\n        'Accepter tous les services gratuitement.',\n        'Refuser toute personnalisation.'\n      ],\n      correct:1,skill:'negociation',\n      lesson:'La n\u00e9gociation grand compte porte sur la valeur globale, les services, le co\u00fbt de service et la rentabilit\u00e9.'\n    }\n  ];\n\n  const key = 'MZSA_HTML_PROGRESS_V1';\n  let state = JSON.parse(localStorage.getItem(key) || '{\"score\":0,\"done\":0,\"good\":0,\"history\":{},\"skills\":{}}');\n  let current = null;\n\n  function save(){\n    localStorage.setItem(key, JSON.stringify(state));\n    updateStats();\n  }\n\n  function skillPct(skill){\n    const s = state.skills[skill] || {good:0,total:0};\n    return s.total ? Math.round(s.good\/s.total*100) : 0;\n  }\n\n  function updateStats(){\n    root.querySelector('.score').textContent = state.score;\n    root.querySelector('.done').textContent = state.done;\n    root.querySelector('.good').textContent = state.good;\n    const accuracy = state.done ? Math.round(state.good\/state.done*100) : 0;\n    root.querySelector('.accuracy').textContent = accuracy + '%';\n\n    let level = 'D\u00e9butant';\n    if(state.score >= 300) level = 'Op\u00e9rationnel';\n    if(state.score >= 600) level = 'Confirm\u00e9';\n    if(state.score >= 900) level = 'Expert';\n    root.querySelector('.level').textContent = level;\n\n    const progress = Math.min(100, Math.round(Object.keys(state.history).length \/ scenarios.length * 100));\n    root.querySelector('.percent').textContent = progress + '%';\n    root.querySelector('.globalProgress').style.width = progress + '%';\n\n    const map = {\n      decouverte:['skill-decouverte','bar-decouverte'],\n      argumentation:['skill-argumentation','bar-argumentation'],\n      negociation:['skill-negociation','bar-negociation'],\n      closing:['skill-closing','bar-closing'],\n      fidelisation:['skill-fidelisation','bar-fidelisation']\n    };\n\n    Object.keys(map).forEach(skill=>{\n      const pct = skillPct(skill);\n      root.querySelector('.'+map[skill][0]).textContent = pct + '%';\n      root.querySelector('.'+map[skill][1]).style.width = pct + '%';\n    });\n  }\n\n  function pickScenario(){\n    const fam = root.querySelector('.family').value;\n    const lev = root.querySelector('.filterLevel').value;\n    let pool = scenarios.filter(s => (fam==='all'||s.family===fam) && (lev==='all'||s.level===lev));\n    if(!pool.length) pool = scenarios;\n    current = pool[Math.floor(Math.random()*pool.length)];\n    renderScenario();\n  }\n\n  function renderScenario(){\n    const box = root.querySelector('.scenario');\n    let html = `<span class=\"tag\">${current.family}<\/span><span class=\"tag\">${current.level}<\/span><h2>${current.title}<\/h2><p>${current.context}<\/p><h3>${current.question}<\/h3>`;\n    current.answers.forEach((a,i)=>{\n      html += `<button class=\"option\" data-answer=\"${i}\">${String.fromCharCode(65+i)} \u2014 ${a}<\/button>`;\n    });\n    html += '<div class=\"feedback hidden\"><\/div><button class=\"btn blue nextBtn hidden\">Sc\u00e9nario suivant<\/button>';\n    box.innerHTML = html;\n\n    box.querySelectorAll('.option').forEach(btn=>{\n      btn.addEventListener('click', ()=>answer(parseInt(btn.dataset.answer,10), btn));\n    });\n    box.querySelector('.nextBtn').addEventListener('click', pickScenario);\n  }\n\n  function answer(answer, btn){\n    const options = root.querySelectorAll('.option');\n    options.forEach(b=>b.disabled=true);\n    const first = !Object.prototype.hasOwnProperty.call(state.history, current.id);\n    const ok = answer === current.correct;\n\n    if(ok){\n      btn.classList.add('good');\n      if(first){ state.score += 100; state.good++; }\n    }else{\n      btn.classList.add('bad');\n      options[current.correct].classList.add('good');\n      if(first){ state.score += 10; }\n    }\n\n    if(first){\n      state.done++;\n      state.history[current.id] = ok;\n      if(!state.skills[current.skill]) state.skills[current.skill] = {good:0,total:0};\n      state.skills[current.skill].total++;\n      if(ok) state.skills[current.skill].good++;\n    }\n\n    const feedback = root.querySelector('.feedback');\n    feedback.classList.remove('hidden');\n    feedback.innerHTML = '<strong>D\u00e9briefing :<\/strong><br>' + current.lesson;\n    root.querySelector('.nextBtn').classList.remove('hidden');\n    save();\n  }\n\n  root.querySelector('.randomBtn').addEventListener('click', pickScenario);\n  root.querySelector('.family').addEventListener('change', pickScenario);\n  root.querySelector('.filterLevel').addEventListener('change', pickScenario);\n  root.querySelector('.resetBtn').addEventListener('click', ()=>{\n    if(confirm('R\u00e9initialiser toute la progression ?')){\n      state = {score:0,done:0,good:0,history:{},skills:{}};\n      localStorage.removeItem(key);\n      updateStats();\n      pickScenario();\n    }\n  });\n\n  updateStats();\n  pickScenario();\n})();\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Maroc Zain Sales Academy MAROC ZAIN ACADEMY \u2022 SALES ACADEMY Simulateur de Vente Sc\u00e9narios commerciaux \u2022 objections \u2022 n\u00e9gociation \u2022 closing \u2022 fid\u00e9lisation \u2022 scoring Progression : 0% 0Points 0Sc\u00e9narios trait\u00e9s 0Bonnes d\u00e9cisions 0%R\u00e9ussite D\u00e9butantNiveau Toutes famillesBilletterie a\u00e9rienneVente agenceVente additionnelleB2BR\u00e9clamationClosingVente digitaleCargoH\u00f4tellerieManagement commercial Tous niveauxD\u00e9butantOp\u00e9rationnelConfirm\u00e9Expert Sc\u00e9nario al\u00e9atoire R\u00e9initialiser Comp\u00e9tences commerciales D\u00e9couverte0% Argumentation0% N\u00e9gociation0% Closing0% Fid\u00e9lisation0% MAROC [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3837","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/pages\/3837","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/comments?post=3837"}],"version-history":[{"count":2,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/pages\/3837\/revisions"}],"predecessor-version":[{"id":3917,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/pages\/3837\/revisions\/3917"}],"wp:attachment":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/media?parent=3837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}