THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Je souhaite ajouter la règle de gestion suivante :
passage de l'étape "1 - Votre panier"(/cart) à l'étape "2 - Facturation et livraison" (/order/delivery) seulement si le nombre de produits est un multiple de 4

J'ai modifié la page cart.html pour ajouter un message spécifiant cette contrainte de composition du colis, et j'ai recherché dans la documentation et le forum si l'on pouvait paramétrer cette contrainte au niveau du panier, mais sans succès pour l'instant...

Pouvez vous m'aider pour trouver une solution ? via un composant Thelia ? via du javascript sur le bouton "Continuer la commande" ?

Merci de votre d'aide smile

Last edited by naonedit (12-01-2018 23:01:50)

Offline

Offline


C'est assez simple d'implementer cette règle dans le template cart.html. Il suffit de ne pas faire apparaitre le bouton de validation du panier si la contrainte n'est pas satisfaite :

{if {cart attr='item_count'} % 4 == 0}
    <a href="{url path="/order/delivery"}" class="btn btn-primary pull-right"><i class="fa fa-chevron-right"></i> {intl l="Proceed checkout"}</a>
{else}
   <p class="pull-right">Panier invalide (ou le message d'erreur que tu veux, oui pas de message d'erreur...)</p>
{/if}

a % b renvoie le reste de la division euclidienne de a par b.

Plus d'infos sur les substitutions panier : http://doc.thelia.net/en/documentation/ … /cart.html
Plus d'infos sur {if},{elseif},{else} dans Smarty : https://www.smarty.net/docs/en/language.function.if.tpl

Pour plus de sécurité, tu peux avec l'aide du module SmartyRedirection ( https://github.com/thelia-modules/SmartyRedirection ) implementer ce test au début des pages order-delivery.html et order-invoice.html pour rediriger vers la page panier si la condition de multiple de 4 dans le panier n'est pas satisfaite :

{if {cart attr='item_count'} % 4 != 0}
    {redirect path="/cart"}
{/if}

OpenStudio Toulouse

Offline


Merci beaucoup ROADSTER31 pour l'explication et le détail de la solution (avec focus sécurité) !!
Cela fonctionne parfaitement et m'a permis de continuer ma montée en compétence sur Thelia cool

Offline


C'est light question sécurité: quelqu'un de décidé et techniquement compétent pourra sans doute commander un panier ou on n'a pas de multipes de 4. Pour blinder ça, il aurait fallu faire une vérification côté serveur avec un petit module...

Mais bon, le jeu en vaut-il la chandelle ?


OpenStudio Toulouse

Offline


Non le jeu n'en vaut pas la chandelle smile