CPO – Cost Per Order : Comment Calculer le Coût par Commande ?

Le moins qu’on puisse dire, c’est que les indicateurs ne manquent pas pour surveiller la bonne santé d’un business en ligne. Surtout en e-commerce ! S’il y a une métrique à garder sous le coude en permanence, c’est bien le Cost Per Order (CPO). Cet indicateur est vital si vous voulez connaître les coûts engagés pour chacune des commandes effectuées sur votre site. Je vous propose ici un résumé de ce qu’il vous faut savoir sur le Cost Per Order (ou Coût Par Commande en VF). Vous allez voir que ce serait dommage de l’utiliser uniquement dans un cadre marketing.

Cost Per Order - Tout savoir sur le Coût Par Commande

Découvrez ce qui se cache derrière l’acronyme Cost Per Order

Que signifie l’acronyme CPO ?

CPO est l’acronyme de Cost Per Order. On l’appelle aussi Cost Per Purchase Order ou encore Cost of Purchasing Order. Il s’agit d’un indicateur qui mesure le coût total des actions marketing (publicité, communication) ayant généré un achat unique. Autrement dit, le suivi de cet indicateur sert à mesurer la rentabilité de vos efforts marketing par rapport au revenu moyen généré par commande.

Le Cost Per Order permet ainsi d’évaluer l’efficacité d’un business en e-commerce, et plus globalement de toute opération de marketing direct. Il est également possible d’utiliser le calcul du CPO pour déterminer le coût total d’une commande, en prenant alors en compte l’ensemble des coûts pour cette même commande (coûts d’emballage et d’expédition notamment). 

Comment dit-on Cost Per Order en français ?

Le terme Cost Per Order se traduit littéralement en français par Coût Par Commande (ou coût de revient par commande). On utilise l’acronyme anglophone CPO, plutôt que sa version française CPC. Car CPC renvoie à l’acronyme Cost Per Click (Coût par Clic), qui est très différent. Il ne faut pas non plus confondre Cost Per Order et Cost Per Lead, car le CPO a une dimension plus globale que le CPL.

Plusieurs formules pour calculer le Cost Per Order (CPO)

Alors, comment calculer le coût d’une commande grâce au CPO ?

Le CPO marketing

Il est possible de vous limiter au calcul du Cost Per Order marketing en prenant en compte uniquement les coûts des actions marketing (coûts des plateformes publicitaires telles que Google ou Facebook par exemple). Cela donne :

Cost Per Order marketing = Coûts des actions marketing / Total des commandes réalisées

Simple et efficace, cette formule de calcul du CPO est utilisée pour mesurer l’efficacité d’une opération de marketing direct. Vous savez ainsi combien vous a coûté chaque client en moyenne durant la période où vous avez effectué des actions marketing pour les acquérir.

Le CPO total

Mais si vous voulez calculer un Coût Par Commande au plus juste, il ne faut pas vous limiter à la prise en compte des actions marketing. En effet, le calcul du coût d’une commande doit comprendre la totalité de vos coûts, des coûts d’acquisition de clients aux coûts d’exécution et d’expédition.

Pour cela, vous devez additionner l’ensemble de vos dépenses de commande (c’est-à-dire tous vos frais pour acquérir, exécuter, emballer et envoyer vos commandes) sur une même période de temps. Vous divisez ensuite ces dépenses de commande par le volume total des commandes reçues sur la même période. Cela donne :

Cost Per Order total = (Coûts d’acquisition client + Coûts des marchandises vendues + Coûts d’exécution + Coûts de stockage + Coûts d’emballage + Coûts d’expédition) / Total des commandes réalisées

Exemple concret de calcul du CPO total

La formule de calcul du Cost Per Order total est particulièrement indiquée pour les e-commerçants qui souhaitent avoir une idée précise du coût d’une commande dans leur business model.

Imaginons que vous souhaitiez calculer votre Coût Par Commande total pour un mois donné où vous avez reçu 500 commandes qui ont chacune rapporté 20 euros de revenus, avec les coûts suivants :

  • Coûts d’acquisition clients (actions marketing et communication) : 5 000 euros
  • Coûts d’exécution : 70 euros
  • Coûts des marchandises vendues : 800 euros
  • Coûts de stockage : 80 euros
  • Coûts d’emballage : 200 euros
  • Coûts d’expédition : 700 euros

Soit : Coûts totaux = 6 780 euros

CPO total = 6 780 euros de coûts totaux / 500 commandes au total = 13,56 euros

Votre Coût Par Commande total s’élève donc à 13,56 euros

 

Allons plus loin en calculant maintenant votre bénéfice total par commande :

20 euros de revenus par commande – 13,56 euros de Cost Per Order = 6,44 euros

Votre bénéfice total pour chacune de vos commandes sur ce mois s’élève donc à 6,44 euros  par commande.

Utilité du calcul du Coût Par Commande

À condition d’être exhaustif, le Cost Per Order peut à lui seul vous donner une idée claire et précise de la rentabilité de votre business model. Si vous l’utilisez uniquement avec des données marketing, c’est déjà pas mal. Mais vous passez à côté d’une opportunité d’avoir une vision globale du coût de chacune de vos commandes. Vous vous exposez alors aux mêmes limites que les indicateurs du type ROI (Return On Investment) ou ROAS (Return on Ad Spent).

Autre intérêt du Coût Par Commande total : vous aider à identifier clairement les postes de coûts particulièrement élevés. Vous pouvez ainsi remettre en question les endroits (actions marketing, stockage, emballage, etc.) où il vous faut réduire les coûts afin d’atteindre le montant de profit par commande que vous visez. Plutôt utile, non ?

Partager :
Créateur de l’agence CustUp, Antoine Coubray utilise quotidiennement les acronymes et indicateurs propres au digital marketing. Cette série d’articles est

Créateur de l’agence CustUp, Antoine Coubray utilise quotidiennement les acronymes et indicateurs propres au digital marketing. Cette série d’articles est là pour vous aider à les comprendre et à vous en servir dans votre business.

[custup_nom_silo]
[custup_form_optinmonster]
[custup_form_optinmonster]
[custup_form_blog_inline_optinmonster]
<script type="text/javascript"> jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#dj_envoyer_inscription-Bmz4i', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var email = jQuery('#dj_form_optinmonster-Bmz4i input[name="email"]').val(); var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-Bmz4i .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-Bmz4i .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-Bmz4i .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-Bmz4i .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-Bmz4i .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-Bmz4i .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-Bmz4i .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-Bmz4i .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-Bmz4i .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Blog-Inline", "eventAction": "clic", "eventLabel": "https://www.custup.com/cpo-cost-per-order-cout-par-commande-calcul/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-Bmz4i" class="form_inline"> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-7 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control form-inline" type="text" id="dj_email" name="email" placeholder="E-mail" /> </div> <div class="col-md-5 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-Bmz4i" class="dj_envoyer_inscription" type="submit">Je m'abonne !</button> </div> </div>
[le Nom du Silo]
[le Nom du Silo]
[custup_icon]
<img src="https://www.custup.com/wp-content/themes/custup/public/img/icon.png" alt="Merci pour votre visite" class="skip-lazy" width="28" height="27"/>
[custup_form_exit]
<script type="text/javascript"> jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; var email = ""; jQuery(document).delegate( '#emailPcLgP', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-exit-PcLgP', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); data.append( "exit", 1 ); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-exit-PcLgP .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-PcLgP .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-exit-PcLgP .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-exit-PcLgP .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-PcLgP .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-exit-PcLgP .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-exit-PcLgP .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-PcLgP .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-exit-PcLgP .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Exit", "eventAction": "clic", "eventLabel": "https://www.custup.com/cpo-cost-per-order-cout-par-commande-calcul/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-exit-PcLgP" class="form_inline popin-exit"> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control" type="text" id="emailPcLgP" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-exit-PcLgP" class="dj_envoyer_inscription" type="submit">S'inscrire !</button> </div> </div>
[custup_scroll_nom_silo]
[custup_form_silo_scroll_optinmonster]
<script type="text/javascript"> var email = ""; jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#emailEiDfU', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-EiDfU', 'click', function(e){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); data.append( "id_article", 22802); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-EiDfU .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-EiDfU .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-EiDfU .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-EiDfU .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-EiDfU .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-EiDfU .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-EiDfU .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-EiDfU .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-EiDfU .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Silo-XXX-Scroll", "eventAction": "clic", "eventLabel": "https://www.custup.com/cpo-cost-per-order-cout-par-commande-calcul/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-EiDfU"> <form> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control" type="text" id="emailEiDfU" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-EiDfU" class="dj_envoyer_inscription" value="xx" type="submit">S'inscrire</button> </div> </form> </div>
[custup_count_abonnes_liste_mailchimp]
4135
[custup_form_horizontal_optinmonster]
<script type="text/javascript"> var email = ""; jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#emailZEEVB', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-ZEEVB', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel-primary").css('display', 'block'); jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel-danger span").html(result.alerte); jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel-success span").html(result.message); jQuery("#dj_form_horizontal_optinmonster-ZEEVB .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Blog-Floating-Bar", "eventAction": "clic", "eventLabel": "https://www.custup.com/cpo-cost-per-order-cout-par-commande-calcul/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_horizontal_optinmonster-ZEEVB" class="dj_form_horizontal_optinmonster"> <input type="hidden" name="recaptcha_response" value=""> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group dj_email_content"> <input class="form-control" type="text" id="emailZEEVB" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group text-center dj_email_envoyer"> <button id="dj_envoyer_inscription-ZEEVB" class="dj_envoyer_inscription" type="submit">Valider</button> </div> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> </div>