[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"$f_not1q_2OX5VRJYh4eIv2-QvA58j59htOO7PC8Yzttc":22,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":59,"megamenu":140,"header-db":196,"footer-db":209,"$frmXlbXHN1DZdbuPN2rSH7WfHCYvHJLeOQtYM7DYVUZc":225},{"theme":4},{"colors":5,"typography":13,"ui":17,"defaultColorMode":21},{"primary":6,"secondary":7,"background":8,"foreground":9,"muted":10,"headerBg":11,"footerBg":12,"topBarBg":9,"topBarText":11},"#4F46E5","#0D9488","#F9FAFB","#111827","#6B7280","#ffffff","#020617",{"fontFamily":14,"fontUrl":15,"baseFontSize":16},"Inter, system-ui, sans-serif","https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400;1,700&display=swap","16px",{"borderRadius":18,"contentWidth":19,"shadow":20},"lg","7xl",true,"light",{"title":23,"slug":24,"metaDescription":25,"category":26,"tags":27,"difficulty":32,"psVersions":33,"content":37,"faq":38,"tldr":54,"readingTime":55,"generatedAt":56,"publishDate":56,"relatedArticles":57,"sourceCategory":58},"Désactiver l'email de confirmation de commande depuis le back-office PrestaShop","desactiver-email-confirmation-commande-back-office-prestashop","Comment empêcher l'envoi automatique d'emails de confirmation lors de la création ou modification de commandes dans le back-office PrestaShop 1.7 et 8.x.","email",[26,28,29,30,31],"commandes","back-office","statuts","configuration","debutant",[34,35,36],"1.6","1.7","8.x","\u003Ch2>Problématique : des emails envoyés sans contrôle depuis le back-office\u003C\u002Fh2>\n\u003Cp>Lorsqu'un marchand crée ou modifie une commande manuellement depuis le back-office PrestaShop, un email de confirmation est automatiquement envoyé au client. Dans certains contextes — commandes tests, commandes internes, ajustements manuels — cet envoi est indésirable et peut générer de la confusion côté client.\u003C\u002Fp>\n\u003Cp>PrestaShop déclenche l'envoi d'emails à deux moments distincts lors de la gestion des commandes en back-office. Comprendre cette mécanique permet de désactiver précisément les notifications souhaitées.\u003C\u002Fp>\n\u003Ch2>Les deux sources d'emails lors de la création de commande en BO\u003C\u002Fh2>\n\u003Ch3>1. L'email de récupération de panier (ajaxProcessSendMailValidateOrder)\u003C\u002Fh3>\n\u003Cp>Lorsqu'un administrateur crée une commande depuis le back-office, PrestaShop peut envoyer un email de type \"backoffice_order\" via la méthode \u003Ccode>ajaxProcessSendMailValidateOrder()\u003C\u002Fcode> du contrôleur \u003Ccode>AdminOrdersController\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Cet email contient un lien de récupération de panier et est déclenché \u003Cstrong>avant même la validation du paiement\u003C\u002Fstrong>. En PrestaShop 1.6 et 1.7, le code responsable se trouve dans :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n\u002F\u002F controllers\u002Fadmin\u002FAdminOrdersController.php\npublic function ajaxProcessSendMailValidateOrder()\n{\n    if ($this-&gt;tabAccess['edit'] === '1') {\n        $cart = new Cart((int) Tools::getValue('id_cart'));\n        if (Validate::isLoadedObject($cart)) {\n            $customer = new Customer((int) $cart-&gt;id_customer);\n            if (Validate::isLoadedObject($customer)) {\n                $mailVars = array(\n                    '{order_link}' =&gt; Context::getContext()-&gt;link-&gt;getPageLink(\n                        'order', false, (int) $cart-&gt;id_lang,\n                        'step=3&recover_cart=' . (int) $cart-&gt;id . '&token_cart=' . md5(_COOKIE_KEY_ . 'recover_cart_' . (int) $cart-&gt;id)\n                    ),\n                    '{firstname}' =&gt; $customer-&gt;firstname,\n                    '{lastname}'  =&gt; $customer-&gt;lastname,\n                );\n                Mail::Send(\n                    (int) $cart-&gt;id_lang,\n                    'backoffice_order',\n                    Mail::l('Process the payment of your order'),\n                    $mailVars,\n                    $customer-&gt;email,\n                    $customer-&gt;firstname . ' ' . $customer-&gt;lastname\n                );\n            }\n        }\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Pour désactiver cet envoi spécifique, vous pouvez créer un override de ce contrôleur :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n\u002F\u002F override\u002Fcontrollers\u002Fadmin\u002FAdminOrdersController.php\nclass AdminOrdersController extends AdminOrdersControllerCore\n{\n    public function ajaxProcessSendMailValidateOrder()\n    {\n        \u002F\u002F Email de récupération de panier désactivé\n        \u002F\u002F pour les commandes créées depuis le back-office\n        return;\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\u003Cp>\u003Cstrong>PrestaShop 8.x\u003C\u002Fstrong> : Ce contrôleur a été migré vers Symfony. L'équivalent se gère désormais via les services du namespace \u003Ccode>PrestaShopBundle\\Controller\\Admin\\Sell\\Order\u003C\u002Fcode>. L'approche par override reste fonctionnelle sur les versions 1.6 et 1.7.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch3>2. L'email de changement de statut (la solution recommandée)\u003C\u002Fh3>\n\u003Cp>Le second — et principal — déclencheur d'emails est le \u003Cstrong>changement de statut de commande\u003C\u002Fstrong>. C'est la source la plus fréquente d'emails indésirables et aussi la plus simple à maîtriser.\u003C\u002Fp>\n\u003Cp>Chaque statut de commande dans PrestaShop dispose d'une option dédiée qui contrôle l'envoi d'email au client lors du passage à ce statut.\u003C\u002Fp>\n\u003Ch2>Solution recommandée : créer un statut silencieux\u003C\u002Fh2>\n\u003Cp>La méthode la plus propre et la plus maintenable consiste à créer un statut de commande personnalisé qui n'envoie aucun email.\u003C\u002Fp>\n\u003Ch3>Étape 1 : Accéder à la gestion des statuts\u003C\u002Fh3>\n\u003Cp>Rendez-vous dans \u003Cstrong>Commandes > Statuts\u003C\u002Fstrong> depuis le menu du back-office.\u003C\u002Fp>\n\u003Ch3>Étape 2 : Créer un nouveau statut\u003C\u002Fh3>\n\u003Cp>Cliquez sur \u003Cstrong>Ajouter un statut de commande\u003C\u002Fstrong> et configurez-le ainsi :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Nom du statut** : « En attente de traitement interne » (ou tout libellé adapté à votre workflow)\u003C\u002Fli>\n\u003Cli>**Couleur** : choisissez une couleur distincte pour le repérer facilement\u003C\u002Fli>\n\u003Cli>**Envoyer un email au client** : **Décoché** — c'est le réglage clé\u003C\u002Fli>\n\u003Cli>**Template d'email** : laissez vide\u003C\u002Fli>\n\u003Cli>**Marquer la commande comme validée** : selon votre besoin\u003C\u002Fli>\n\u003Cli>**Marquer la commande comme payée** : selon votre besoin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Étape 3 : Utiliser ce statut lors de la création manuelle\u003C\u002Fh3>\n\u003Cp>Lorsque vous créez une commande depuis le back-office, sélectionnez ce nouveau statut dans le champ \u003Cstrong>« Statut de la commande »\u003C\u002Fstrong> au lieu de « Paiement accepté » ou tout autre statut standard.\u003C\u002Fp>\n\u003Cp>Le client ne recevra aucune notification. Vous pourrez basculer vers un statut avec notification ultérieurement, quand la commande sera prête à être communiquée.\u003C\u002Fp>\n\u003Ch3>Étape 4 : Modifier un statut existant (alternative)\u003C\u002Fh3>\n\u003Cp>Si vous souhaitez désactiver l'email sur un statut déjà existant plutôt que d'en créer un nouveau :\u003C\u002Fp>\n\u003Col>\n\u003Cli>Allez dans **Commandes > Statuts**\u003C\u002Fli>\n\u003Cli>Cliquez sur **Modifier** à côté du statut concerné\u003C\u002Fli>\n\u003Cli>Décochez **« Envoyer un email au client lorsque le statut de sa commande change »**\u003C\u002Fli>\n\u003Cli>Sauvegardez\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\u003Cp>\u003Cstrong>Attention\u003C\u002Fstrong> : modifier un statut standard comme « Paiement accepté » affectera \u003Cstrong>toutes\u003C\u002Fstrong> les commandes, y compris celles passées par les clients en front-office. Privilégiez la création d'un statut dédié.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch2>Approche avancée : désactiver les emails par module\u003C\u002Fh2>\n\u003Cp>Pour un contrôle encore plus fin, vous pouvez développer un module qui intercepte l'envoi d'emails via le hook \u003Ccode>actionEmailSendBefore\u003C\u002Fcode> (disponible depuis PrestaShop 1.7.6) :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\npublic function hookActionEmailSendBefore($params)\n{\n    \u002F\u002F Bloquer les emails de type 'order_conf' si la commande\n    \u002F\u002F provient du back-office\n    if ($params['template'] === 'order_conf') {\n        if ($this-&gt;isBackOfficeContext()) {\n            return false; \u002F\u002F Bloque l'envoi\n        }\n    }\n    return true;\n}\n\nprivate function isBackOfficeContext()\n{\n    return defined('_PS_ADMIN_DIR_')\n        || (isset($_SERVER['SCRIPT_NAME'])\n            && strpos($_SERVER['SCRIPT_NAME'], 'admin') !== false);\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Cette approche est idéale si vous souhaitez bloquer l'email uniquement pour les commandes créées en back-office tout en conservant l'envoi pour les commandes front-office.\u003C\u002Fp>\n\u003Ch2>Récapitulatif des templates d'emails concernés\u003C\u002Fh2>\n\u003Ctr>\u003Cth>Template\u003C\u002Fth>\u003Cth>Déclencheur\u003C\u002Fth>\u003Cth>Fichier\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>`order_conf`\u003C\u002Fth>\u003Cth>Validation de commande\u003C\u002Fth>\u003Cth>`mails\u002F{lang}\u002Forder_conf.html`\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>`backoffice_order`\u003C\u002Fth>\u003Cth>Création BO (récupération panier)\u003C\u002Fth>\u003Cth>`mails\u002F{lang}\u002Fbackoffice_order.html`\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>`order_changed`\u003C\u002Fth>\u003Cth>Changement de statut\u003C\u002Fth>\u003Cth>`mails\u002F{lang}\u002Forder_changed.html`\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ch2>Bonnes pratiques\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>**Ne supprimez jamais les templates d'emails** : désactivez l'envoi via les statuts ou les hooks\u003C\u002Fli>\n\u003Cli>**Documentez vos statuts personnalisés** : votre équipe doit savoir quel statut envoie quoi\u003C\u002Fli>\n\u003Cli>**Testez en preprod** : vérifiez toujours le comportement des emails sur un environnement de test avant d'appliquer en production\u003C\u002Fli>\n\u003Cli>**Pensez au multilingue** : si vous avez plusieurs langues, vérifiez que la désactivation fonctionne pour toutes les langues configurées\u003C\u002Fli>\n\u003C\u002Ful>",[39,42,45,48,51],{"q":40,"a":41},"Comment empêcher PrestaShop d'envoyer un email quand je crée une commande depuis le back-office ?","La solution la plus simple est de créer un statut de commande personnalisé avec l'option « Envoyer un email au client » décochée, puis de sélectionner ce statut lors de la création manuelle de la commande. Rendez-vous dans Commandes > Statuts > Ajouter un statut pour le configurer.",{"q":43,"a":44},"Peut-on désactiver l'email de confirmation uniquement pour les commandes back-office sans impacter le front-office ?","Oui, en développant un module qui utilise le hook actionEmailSendBefore (disponible depuis PrestaShop 1.7.6). Ce hook permet d'intercepter l'envoi d'email et de le bloquer conditionnellement selon le contexte (back-office ou front-office), offrant un contrôle granulaire sans affecter l'expérience client.",{"q":46,"a":47},"Quelle est la différence entre l'email backoffice_order et order_conf dans PrestaShop ?","L'email backoffice_order est envoyé lors de la création d'une commande depuis le back-office via la méthode ajaxProcessSendMailValidateOrder. Il contient un lien de récupération de panier. L'email order_conf est l'email de confirmation standard déclenché par le changement de statut de commande. Les deux peuvent être désactivés indépendamment.",{"q":49,"a":50},"La désactivation de l'email sur un statut affecte-t-elle les commandes déjà existantes ?","Non, la modification d'un statut n'a aucun effet rétroactif. Seuls les futurs passages vers ce statut seront concernés. Les emails déjà envoyés ne peuvent pas être annulés. En revanche, si vous modifiez un statut standard comme « Paiement accepté », toutes les nouvelles commandes utilisant ce statut — front-office inclus — seront impactées.",{"q":52,"a":53},"Comment vérifier quels statuts de commande envoient des emails dans PrestaShop 8 ?","Dans PrestaShop 8.x, rendez-vous dans Commandes > Statuts. Chaque statut affiche une colonne indiquant si l'envoi d'email est activé. Vous pouvez également vérifier en base de données avec la requête : SELECT id_order_state, name, send_email, module_name FROM ps_order_state_lang JOIN ps_order_state USING(id_order_state) WHERE id_lang = 1.","Pour empêcher l'envoi d'emails de confirmation depuis le back-office PrestaShop, créez un statut de commande personnalisé avec l'option d'envoi d'email désactivée, ou utilisez le hook actionEmailSendBefore pour un contrôle conditionnel selon le contexte (BO vs front-office).",5,"2026-03-21T15:38:04.000Z",[],"Utilisation de PrestaShop : configuration et difficultés",{"columns":60},[61,77,107,128],{"title":62,"links":63},"Plateforme",[64,68,71,74],{"label":65,"href":66,"external":67},"Offre Starter (2 500 €)","\u002Foffre-starter",false,{"label":69,"href":70,"external":67},"Devenir Ambassadeur","\u002Fambassadeur",{"label":72,"href":73,"external":67},"Modules PrestaShop","\u002Fmodules",{"label":75,"href":76,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":78,"links":79},"Le Synedre",[80,83,86,89,92,95,98,101,104],{"label":81,"href":82,"external":67},"L'histoire","\u002Fsynedre",{"label":84,"href":85,"external":67},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":87,"href":88,"external":67},"L'équipe","\u002Fequipe",{"label":90,"href":91,"external":67},"Le réacteur en direct","\u002Freacteur",{"label":93,"href":94,"external":67},"Le Drill (entraînement)","\u002Fdrill",{"label":96,"href":97,"external":67},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":99,"href":100,"external":67},"Les agents IA","\u002Fagents-ia",{"label":102,"href":103,"external":67},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":105,"href":106,"external":67},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":108,"links":109},"Ressources",[110,113,116,119,122,125],{"label":111,"href":112,"external":67},"Blog","\u002Fblog",{"label":114,"href":115,"external":67},"Academy","\u002Facademy",{"label":117,"href":118,"external":67},"Dictionnaire","\u002Fdictionnaire",{"label":120,"href":121,"external":67},"Expertise PrestaShop","\u002Fexpertise",{"label":123,"href":124,"external":67},"Flywheel","\u002Fflywheel",{"label":126,"href":127,"external":67},"Manifeste","\u002Fmanifeste",{"title":129,"links":130},"À propos",[131,134,137],{"label":132,"href":133,"external":67},"Alexandre Carette","\u002Fa-propos",{"label":135,"href":136,"external":67},"Dossier de presse","\u002Fpresse",{"label":138,"href":139,"external":67},"Contact","\u002Fcontact",{"items":141},[142,151,157,163,171,179,184,190],{"id":143,"type":144,"label":145,"href":121,"icon":147,"description":147,"badge":147,"groupTitle":147,"style":147,"gridColumns":147,"cssClass":147,"psCategoryId":147,"showPsChildren":67,"position":148,"children":149,"psChildren":150},41,"link",{"fr":146},"Expertise",null,0,[],[],{"id":152,"type":144,"label":153,"href":112,"icon":147,"description":147,"badge":147,"groupTitle":147,"style":147,"gridColumns":147,"cssClass":147,"psCategoryId":147,"showPsChildren":67,"position":154,"children":155,"psChildren":156},42,{"fr":111},1,[],[],{"id":158,"type":144,"label":159,"href":73,"icon":147,"description":147,"badge":147,"groupTitle":147,"style":147,"gridColumns":147,"cssClass":147,"psCategoryId":147,"showPsChildren":67,"position":160,"children":161,"psChildren":162},43,{"fr":72},2,[],[],{"id":164,"type":144,"label":165,"href":167,"icon":147,"description":147,"badge":147,"groupTitle":147,"style":147,"gridColumns":147,"cssClass":147,"psCategoryId":147,"showPsChildren":67,"position":168,"children":169,"psChildren":170},44,{"fr":166},"Outils IA","\u002Foutils-ia",3,[],[],{"id":172,"type":144,"label":173,"href":66,"icon":147,"description":147,"badge":147,"groupTitle":147,"style":175,"gridColumns":147,"cssClass":147,"psCategoryId":147,"showPsChildren":67,"position":176,"children":177,"psChildren":178},45,{"fr":174},"Offre Starter ✨",{"highlight":20},4,[],[],{"id":180,"type":144,"label":181,"href":115,"icon":147,"description":147,"badge":147,"groupTitle":147,"style":147,"gridColumns":147,"cssClass":147,"psCategoryId":147,"showPsChildren":67,"position":55,"children":182,"psChildren":183},46,{"fr":114},[],[],{"id":185,"type":144,"label":186,"href":133,"icon":147,"description":147,"badge":147,"groupTitle":147,"style":147,"gridColumns":147,"cssClass":147,"psCategoryId":147,"showPsChildren":67,"position":187,"children":188,"psChildren":189},47,{"fr":129},6,[],[],{"id":191,"type":144,"label":192,"href":139,"icon":147,"description":147,"badge":147,"groupTitle":147,"style":147,"gridColumns":147,"cssClass":147,"psCategoryId":147,"showPsChildren":67,"position":193,"children":194,"psChildren":195},48,{"fr":138},7,[],[],{"header":197},{"logo":198,"topBar":203,"contactEmail":206,"features":207,"navBar":147},{"src":199,"alt":200,"text":132,"href":201,"class":202},"\u002Flogo-ac.svg","Alexandre Carette — Architecte E-commerce Souverain","\u002F","h-10 w-10",{"message":147,"showLanguages":67,"align":204,"languages":205},"left",[],"contact@alexandrecarette.fr",{"showSearch":67,"showWishlist":67,"showLogin":20,"showContact":67,"showCart":67,"stickyHeader":20,"headerLayout":208},"inline",{"footer":210},{"theme":211,"description":147,"hours":147,"logo":212,"contact":213,"social":214,"bottomBar":224},"dark",{"src":199,"href":201,"alt":132},{"email":147,"phone":147,"address":147,"cta":147},[215,218,221],{"platform":216,"href":217,"label":216},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":219,"href":220,"label":219},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":222,"href":223,"label":222},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":147},{"academy":226,"blog":227,"expertise":238},[],[228,232,235],{"title":229,"url":230,"score":160,"type":231},"PrestaShop headless avec Nuxt 3 : pourquoi séparer back et front","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-separation-front-back","blog",{"title":233,"url":234,"score":154,"type":231},"PrestaShop headless : Nuxt 3, pas Next.js — le choix souverain","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-nextjs-souverainete",{"title":236,"url":237,"score":154,"type":231},"Sylius rachète PrestaShop : ce que ça change pour vous","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fsylius-rachat-prestashop-headless-souverainete",[]]