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).
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
N’hésitez pas à poster si vous avez un autre exemple du type, ah et tiens d’autres conditions smarty pour PrestaShop !
LES COMMENTAIRES (1)
posté le 12 mai à 13:51
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