Jump to content
LCAS

Ne pas afficher les frais de livraison dans le panier

Recommended Posts

Bonjour,

  • Configuration : Prestashop 1.7.6.1
  • Thème : Classic

J'aimerais savoir comment ne pas afficher les frais de livraison dans le panier de Prestashop. C'est à dire rendre uniquement les frais de livraison visible lors du processus de commande à l'étape livraison. je n'ai pas trouvé de tuto concernant la version 1.7 de prestashop.

Merci de votre aide.

Share this post


Link to post
Share on other sites
Posted (edited)

Après avoir cherché et manipulé le code je suis parvenu à un résultat. 

Tout d'abord pour ne pas afficher les montants de livraison à vos visiteurs non connectés (associez vos transporteurs au groupe "clients"). Cependant suite à cette logique, par défaut Prestashop affiche la livraison gratuite ce qui n'est pas forcément le cas puisque cela dépendra de la commande de votre client une fois qu'il sera connecté.

Il faut donc modifier 5  fichiers pour pouvoir cacher la rubrique livraison aux personnes non connectées, et afficher la rubrique livraison uniquement sur la page commande lorsque vos clients sont connectés. De plus impossible de trouver la traduction de gratuit concernant la livraison, j'ai donc ajouté une traduction de gratuit en gratuite.

Ces modifications ont fonctionné avec le thème classic et Prestashop 1.7.6.1 : Faites une sauvegarde avant de commencer. Ne pas oublier de vider le cache. 

/www/themes/votre-theme/modules/ps_shoppingcart/modal.tpl

              {* Empêche les visiteurs d'avoir accès à la rubrique livraison *}
              {if $customer.is_logged}
                {if $urls.current_url eq 'votre url page commande'}{* Ajoute le montant de la livraison au total de la commande sur la page commande uniquement *}
                  <p><span>{l s='Shipping:' d='Shop.Theme.Checkout'}</span> 
                  {* Traduction introuvable de gratuit, Manipulation ci dessous pour ajouter la traduction dans le back office *}
                  {if $cart.subtotals.shipping.value != "gratuit"}
                  <span class="value">{$cart.subtotals.shipping.value} {hook h='displayCheckoutSubtotalDetails' subtotal=$cart.subtotals.shipping}</span></p>
                  {else}
                  <span class="value">{l s='free delivery' d='Shop.Theme.checkout'}</span>
                  {/if}
                {/if}
              {/if}                   

/www/themes/votre-theme/templates/checkout/_partials/cart-summary-subtotals.tpl

  {foreach from=$cart.subtotals item="subtotal"}
    {if $subtotal.value && $subtotal.type !== 'tax'}
      <div class="cart-summary-line cart-summary-subtotals" id="cart-subtotal-{$subtotal.type}">
        {* Empêche les visiteurs d'avoir accès à la rubrique livraison *}
        {if $customer.is_logged}
          {if $urls.current_url eq 'votre url page commande'}
            <span class="label">{$subtotal.label}</span>
            {* Traduction introuvable de gratuit, Manipulation ci dessous pour ajouter la traduction dans le back office *}
            {if $subtotal.value !== "gratuit"}
              <span class="value">{$subtotal.value}</span>
            {else}
            <span class="value">{l s='free delivery' d='Shop.Theme.checkout'}</span>
            {/if}
          {/if}
        {/if}
      </div>
    {/if}
  {/foreach}        

/www/themes/votre-theme/templates/checkout/_partials/cart-summary-product-line.tpl

    {foreach from=$product.attributes key="attribute" item="value"}
        <div class="product-line-info product-line-info-secondary text-muted">
          {* Empêche les visiteurs d'avoir accès à la rubrique livraison *}
          {if $customer.is_logged}
            {if $urls.current_url eq 'votre url page commande'}
              <span class="label">{$attribute}:</span>
              {* Traduction introuvable de gratuit, Manipulation ci dessous pour ajouter la traduction dans le back office *}
              {if $value !== "gratuit"}
                <span class="value">{$value}</span>
              {else}
                <span class="value">{l s='free delivery' d='Shop.Theme.checkout'}</span>
              {/if}
            {/if}
          {/if}

        </div>
    {/foreach} 

/www/themes/votre-theme/templates/checkout/_partials/cart-detailed-totals.tpl

    {foreach from=$cart.subtotals item="subtotal"}
      {if $subtotal.value && $subtotal.type !== 'tax'}
        <div class="cart-summary-line" id="cart-subtotal-{$subtotal.type}">
          <span class="label{if 'products' === $subtotal.type} js-subtotal{/if}">
            {if 'products' == $subtotal.type}
              {$cart.summary_string}
            {else}
              {* Empêche les visiteurs d'avoir accès à la rubrique livraison *}
              {if $customer.is_logged}
                {if $urls.current_url eq 'votre url page commande'}
                  {$subtotal.label}
                {/if}
              {/if}
            {/if}
          </span>

          <span class="value">
            {* Empêche les visiteurs d'avoir accès à la rubrique livraison *}
            {if $customer.is_logged}
              {if $urls.current_url eq 'votre url page commande'}
                {if 'discount' == $subtotal.type}- {/if}
                {* Traduction introuvable de gratuit, Manipulation ci dessous pour ajouter la traduction dans le back office *}
                  {if $subtotal.value !== "gratuit"}
                    {$subtotal.value}
                  {else}
                    {l s='free delivery' d='Shop.Theme.checkout'}
                  {/if}
              {/if}
            {/if}
          </span>

          {if $subtotal.type === 'shipping'}
              <div><small class="value">{hook h='displayCheckoutSubtotalDetails' subtotal=$subtotal}</small></div>
          {/if}
        </div>
      {/if}
    {/foreach}              
        

/www/themes/votre-theme/templates/checkout/_partials/cart-summary-totals.tpl

  {block name='cart_summary_total'}
    {if !$configuration.display_prices_tax_incl && $configuration.taxes_enabled}
      <div class="cart-summary-line">
        <span class="label">{$cart.totals.total.label}&nbsp;{$cart.labels.tax_short}</span>
        <span class="value">{$cart.totals.total.value}</span>
      </div>
      <div class="cart-summary-line cart-total">
        <span class="label">{$cart.totals.total_including_tax.label}</span>
        <span class="value">{$cart.totals.total_including_tax.value}</span>
      </div>
    {else}

      {if $urls.current_url neq 'votre url page commande'}{* Ne pas ajouter le montant de la livraison au total du pannier *}
        <div class="cart-summary-line cart-total">
          <span class="label">{$cart.totals.total.label}&nbsp;{if $configuration.taxes_enabled}{$cart.labels.tax_short}{/if}</span>
          <span class="value">{$cart.subtotals.products.value}</span>
        </div>
      {else} {* Ajoute le montant de la livraison au total de la commande sur la page commande uniquement *}
        <div class="cart-summary-line cart-total">
          <span class="label">{$cart.totals.total.label}&nbsp;{if $configuration.taxes_enabled}{$cart.labels.tax_short}{/if}</span>
          <span class="value">{$cart.totals.total.value}</span>
        </div>
      {/if}

    {/if}
  {/block}

 

Edited by LCAS (see edit history)

Share this post


Link to post
Share on other sites

Salut,

Pour information, le E-commerçant qui me cache les frais de port jusqu'à la page de livraison, je ne commande pas chez lui.
Et je ne suis pas le seul dans le cas.

A l'époque où nous sommes, le gars qui cache d'entrée les frais de livraison, pour moi c'est pas net, je passe mon chemin.
A voir ce que la loi aussi impose en tant qu'affichage des frais supplémentaires (livraison, dossier, etc...)
Ce n'est pas un hasard d'ailleurs si il n'y a pas de tuto la dessus et si tous les sites les annoncent par défaut.

Christophe

Share this post


Link to post
Share on other sites
Posted (edited)

Salut Christophe,

Merci pour votre réponse. Cet article est à aborder d'un point de vue technique. Selon la boutique différentes politiques de livraison peuvent s'appliquer. 

Personnellement je penses que les frais de livraison sont à "cacher" tant que le client n'a pas créé de compte car selon sa position géographique les frais de livraison peuvent être différents. 

De plus il est important de présenter dans les CGV du site "la politique de livraison" avec les différents transporteurs et tarifs. Il est également conseillé d'afficher un montant de commande à partir duquel la livraison est offerte. Le client comprend que la livraison sera à payer si sa commande n'est pas égale ou supérieure à ce montant. 

Avec ces différents réglages, l'ajout des frais de transport pendant le processus de commande (choix du mode de livraison) ne me semble pas malhonnête. 

Edited by LCAS (see edit history)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More