neoweiter Posted August 29, 2014 Share Posted August 29, 2014 (edited) Bonjour, J'ai déjà trouvé plusieurs topics à ce sujet, mais toujours pour les anciennes versions de Prestashop. Je suis sur PS 1.6.08, et j'aimerai réaliser l'adaptation suivante : Comment faire pour n'autoriser que les commandes dont la quantité du panier est un multiple de 6 ? Je gère une boutique de vins, et nous voulons ne faire que des conditionnements de colis par 6 bouteilles. Par contre chaque colis peut contenir des bouteilles différentes. C-a-d que l'utilisateur peut faire une commande telle que : 3x bouteille A2x bouteille B1x bouteille C ...par exemple. Tant que le total de son panier soit un multiple de 6. Quelqu'un pourrait m'aider avec ceci ? Merci Edited August 29, 2014 by neoweiter (see edit history) Link to comment Share on other sites More sharing options...
frugalis Posted August 31, 2014 Share Posted August 31, 2014 A votre place, je créerai un produit que je placerai dans un package de 6 . Link to comment Share on other sites More sharing options...
Eolia Posted August 31, 2014 Share Posted August 31, 2014 (edited) Bonjour, J'ai déjà trouvé plusieurs topics à ce sujet, mais toujours pour les anciennes versions de Prestashop. Je suis sur PS 1.6.08, et j'aimerai réaliser l'adaptation suivante : Comment faire pour n'autoriser que les commandes dont la quantité du panier est un multiple de 6 ? Je gère une boutique de vins, et nous voulons ne faire que des conditionnements de colis par 6 bouteilles. Par contre chaque colis peut contenir des bouteilles différentes. C-a-d que l'utilisateur peut faire une commande telle que : 3x bouteille A 2x bouteille B 1x bouteille C ...par exemple. Tant que le total de son panier soit un multiple de 6. Quelqu'un pourrait m'aider avec ceci ? Merci En restant uniquement au niveau de l'affichage (fichier shopping-cart.tpl de votre thème) remplacer en fin de fichier le bloc concernant l'affichage du bouton "commander" par ceci: <div id="HOOK_SHOPPING_CART">{$HOOK_SHOPPING_CART}</div> <p class="cart_navigation clearfix"> {if !$opc} {if !is_int($productNumber / 6)} <p class="alert alert-warning">{l s='Your shopping cart must contains a multiple of 6 products'}</p> {else} <a href="{if $back}{$link->getPageLink('order', true, NULL, 'step=1&back={$back}')|escape:'html':'UTF-8'}{else}{$link->getPageLink('order', true, NULL, 'step=1')|escape:'html':'UTF-8'}{/if}" class="button btn btn-default standard-checkout button-medium" title="{l s='Proceed to checkout'}"> <span>{l s='Proceed to checkout'}<i class="icon-chevron-right right"></i></span> </a> {/if} {/if} <a href="{if (isset($smarty.server.HTTP_REFERER) && strstr($smarty.server.HTTP_REFERER, 'order.php')) || isset($smarty.server.HTTP_REFERER) && strstr($smarty.server.HTTP_REFERER, 'order-opc') || !isset($smarty.server.HTTP_REFERER)}{$link->getPageLink('index')}{else}{$smarty.server.HTTP_REFERER|escape:'html':'UTF-8'|secureReferrer}{/if}" class="button-exclusive btn btn-default" title="{l s='Continue shopping'}"> <i class="icon-chevron-left"></i>{l s='Continue shopping'} </a> </p> Tant que la quantité ne sera pas un multiple de 6 le bouton de commande n’apparaîtra pas (et donc le processus de commande sera impossible) Une vérification en php serait nécessaire ainsi qu'une modif ajax si le client se contente d'augmenter la quantité dans le panier sans rafraichir la page, mais c'est déjà fonctionnel comme cela avec une modif de code minimum et non intrusive. Si vous voulez rafraichir la page automatiquement lors du changement de quantités ouvrez le fichier cart-summary.js et remplacez les 3 if (jsonData.refresh) location.reload(); par juste: location.reload(); dans les fonctions upQuantity(), downQuantity() et deleteProductFromSummary() Edited August 31, 2014 by Eolia (see edit history) 1 Link to comment Share on other sites More sharing options...
neoweiter Posted September 1, 2014 Author Share Posted September 1, 2014 Un grand merci ! Super simple et efficace. Mon problème est résolu Link to comment Share on other sites More sharing options...
Mediacom87 Posted September 1, 2014 Share Posted September 1, 2014 (edited) ... Edited September 7, 2014 by Mediacom87 (see edit history) Link to comment Share on other sites More sharing options...
neoweiter Posted February 6, 2015 Author Share Posted February 6, 2015 Je relance un de mes ancien topic, car j'ai remarqué un petit bug dans le script proposé ci-dessus. J'aimerai que le panier n'accepte que des commandes par 6 bouteilles. Le script fonctionne bien, mais autorise également si le total de tous les produits dans le panier = 6, ce que n'est pas bon. Il faut que chaque produit soit un multiple de 6 Quelqu'un pourrait m'aider pour optimiser ce script ? {if !is_int($productNumber / 6)} <p class="alert alert-warning">{l s='Le nombre de produits commandés doit être un multiple de 6'}</p> {/if} Link to comment Share on other sites More sharing options...
Eolia Posted February 6, 2015 Share Posted February 6, 2015 Alors il faut faire différemment avec une boucle foreach sur chaque produit La modif est un peu plus complexe. Il y aurait peut être aussi moyen de forcer l'incrémentation du bouton Quantité de 6 en 6 en remplacant les valeurs de qty par 6 dans les fonctions upQuantity et downQuantity de cart-summary.js et en imposant une quantité minimum de 6 dans les pages produits Link to comment Share on other sites More sharing options...
titityler Posted February 6, 2015 Share Posted February 6, 2015 Pourquoi ne pas tout simplement bloquer la quantité à 6 sur la page du produit et enlever la possibilité de modifier la quantité depuis le panier? Ou faire en sorte que le "+" rajoute 6 et le "-" enlève 6.Pour aider, voici un tuto que j'ai réalisé il y a quelques jours : https://www.prestashop.com/forums/topic/400543-tuto-remplacer-quantit%C3%A9-par-une-dur%C3%A9e/ Link to comment Share on other sites More sharing options...
neoweiter Posted February 20, 2015 Author Share Posted February 20, 2015 C'est encore moi, pour une dernière petite question Comment faire pour n'appliquer le multiple de 6 qu'aux produits simples, sans prendre en compte les Packs ? {if !is_int($productNumber / 6)} <p class="alert alert-warning">{l s='Le nombre de produits commandés doit être un multiple de 6'}</p> {/if} Merci à tous pour votre aide précieuse Link to comment Share on other sites More sharing options...
neoweiter Posted February 25, 2015 Author Share Posted February 25, 2015 Petit up, personne n'a de solution a me proposer pour faire des condition sur le type d'article ? (produit unique / Pack) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now