Magazine Ebusiness

Mode de paiement selon transporteur dans PrestaShop

Publié le 07 janvier 2013 par Amerigeau @arnaudmerigeau
7 janvier 2013

Un billet simple et utile aujourd’hui ou comment restreindre l’affichage d’un mode de paiement selon le transporteur choisi dans PrestaShop ?

Pas simple ?! Et bien si ! Une belle condition smarty placée où il faut et le tour est joué. Cette astuce est pratique et même nécessaire si vous avez plusieurs modes de livraison et que certains ne permettent pas le paiement en ligne par exemple.

Le raisonnement est basique : dans PrestaShop, chaque transporteur dispose d’un id qu’on va reprendre à l’affichage du moyen de paiement pour le montrer ou pas.

Première étape : récupérer l’id du transporteur concerné

Rendez-vous dans le backoffice de PrestaShop puis dans l’onglet Transport > Transporteurs et notez l’identifiant du transporteur voulu (encadré en rouge dans la capture).

paiement selon transporteur prestashop Mode de paiement selon transporteur dans PrestaShop

Seconde étape : appliquer la condition dans le module de paiement

Vous avez à présent l’identifiant de chacun de vos transporteurs aussi vous pouvez donc appliqué la condition d’affichage dans votre/vos module(s) de paiement.

On va prendre l’exemple avec le module de paiement par virement bancaire qui est installé en natif dans PrestaShop. On va lui indiquer de ne s’afficher SEULEMENT SI Colissimo est sélectionné soit le transporteur id = 4.

On ouvre le fichier d’apparence du module www/modules/bankwire/payment.tpl dans la 1.4 ou www/modules/bankwire/views/templates/hook/payment.tpl dans la 1.5 et on ajoute la condition suivante :

{if $carrier->id == 4}

{l s='Pay by bank wire (order process will be longer)' mod='bankwire'}

{/if}

Il ne reste alors qu’à simplement tester la condition d’affichage en se connectant et en effectuant une commande factice.

Les variantes

On peut aussi appliquer d’autres variantes / conditions d’affichage sur le même modèle que le précédent à savoir :

  • afficher le paiement si l’id du transporteur est différent de 3 : {if $carrier->id != 3}…{/if}
  • afficher le paiement si l’id du transporteur est 3 ou 4 : {if $carrier->id == 3 || $carrier->id == 4}…{/if}

Plutôt que d’utiliser un module qui va surcharger votre boutique, un léger bout de code peut tout à fait répondre à un besoin précis comme celui-ci. Simple et efficace

icon wink Mode de paiement selon transporteur dans PrestaShop

N’hésitez pas à poster si vous avez un autre exemple du type, ah et tiens d’autres conditions smarty pour PrestaShop !


Retour à La Une de Logo Paperblog

LES COMMENTAIRES (1)

Par Kazei
posté le 12 mai à 13:51
Signaler un abus

Bonjour, Merci pour ce tuto, j'ai toutefois une question. Cette méthode peut elle être utilisé pour restreindre le nombre de proposition de transporteur, en utilisant cette méthode ? Si oui comment procéder ? Merci

A propos de l’auteur


Amerigeau 144 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte