En visitant ce site, vous acceptez l'utilisation de cookies afin de vous proposer les meilleurs services possibles.

Bug? Contourner le montant minimun de commande pour un chèque boutique

Plus d'informations
il y a 9 ans 11 mois - il y a 9 ans 11 mois #1 par ghost83
Bonjour,

VM3.016 + j3.51
Surprise :)
Bon c'est la saison des chèques boutique...
Un de mes clients pour une sombre raison a supprimé son CB avec minimum de commande, je lui réactive et teste...
Jusqu'à là tout va bien sauf que si je commande au delà du minimum et applique le CB, la réduction s'applique, bon ça c'est normal
Par contre ce qui l'est moins c'est que si je diminue le montant commandé jusqu'à passer sous le montant minimal (en supprimant des produits par exemple) ben... Ma réduction (%) est maintenue.
Bien sur, j'ai testé avec un template "classique".
Ce comportement est général sur d'autres clients...
Merci si éventuellement une bonne âme a déjà attaquer ce problème.

<édit> Ouf... en cas de montant fixe de réduction et en faisant la même opération, le montant à payer ne passe pas en négatif ;-) et reste fixe à... 0 </edit>

https:ghost-pc-buster.com
Dernière édition: il y a 9 ans 11 mois par ghost83.

Connexion ou Créer un compte pour participer à la conversation.

  • doc_denis
  • Portrait de doc_denis
  • Hors Ligne
  • Membre senior
  • Membre senior
  • ...oui, la photo date :)
Plus d'informations
il y a 9 ans 10 mois #2 par doc_denis
Pour faire des chèques boutique, j'utilise awocoupon pro c'est commercial (moins de 50€), et ça marche toujours très bien, pour moi c'est indispensable.

Avantages (ils sont nombreux) :
filtrage des catégories (inclure ou exclure), montant mini du panier, remise en € ou en %, filtrage des groupes de clients, date de début date de fin, exclure les produits en promotion, filtrage des pays, combien d'utilisation par client, combien d'utilisation au total (pour une remise du genre, les dix prochaines commandes), filtrage par client (pour donner un cadeau à un client), gratuité des frais de livraison sous conditions, acheter y pour obtenir X etc....
par ici :
awodev.com/products/joomla/awocoupon

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 9 ans 10 mois #3 par studio42

doc_denis écrit: Pour faire des chèques boutique, j'utilise awocoupon pro c'est commercial (moins de 50€), et ça marche toujours très bien, pour moi c'est indispensable.

+1 si vous avez des besoins complexes.

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 10 mois #4 par ghost83
Bonjour,

Oui merci, je connais awocoupon mais dans le cadre d'une utilisation "banale" c'est un peu surdimensionné....
Puis l'anomalie originelle n'est pas pour autant réglée. Bon va falloir remettre les mains dans le cambouis ;-)

https:ghost-pc-buster.com

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 10 mois #5 par alatak
Bonjour

Par contre ce qui l'est moins c'est que si je diminue le montant commandé jusqu'à passer sous le montant minimal (en supprimant des produits par exemple) ben... Ma réduction (%) est maintenue.

hum

pourtant le code est la: fichier components/com_virtuemart/helpers/coupon.php
if ($_billTotal < $couponData->coupon_value_valid) {
			if (!class_exists('CurrencyDisplay'))
			    require(VMPATH_ADMIN . DS . 'helpers' . DS . 'currencydisplay.php');
			$currency = CurrencyDisplay::getInstance();

			$coupon_value_valid = $currency->priceDisplay($couponData->coupon_value_valid);
			return vmText::_('COM_VIRTUEMART_COUPON_CODE_TOOLOW') . " ".$coupon_value_valid;
		}

et il devrait être appelé a chaque fois que le montant du panier est modifié.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 10 mois #6 par ghost83
Re,
A priori (en mode débug) il n'est pas appelé... peut être un problème de session $sessionCart->couponCode ?

https:ghost-pc-buster.com

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 10 mois #7 par alatak
Bonjour
Non
C'est a cause de cela (fichier components/com_virtuemart/controllers/cart.php)
$coupon_code = trim(vRequest::getString('coupon_code', ''));
		if(!empty($coupon_code)){
			$msg = $cart->setCouponCode($coupon_code);
			if($msg) vmInfo($msg);
			$cart->setOutOfCheckout();
		}
Une fois le CB entré, $coupon_code est vide, meme si coupon est bien dans $cart



Remplace le code ci dessus avec
$coupon_code = trim(vRequest::getString('coupon_code', ''));
		if(!empty($coupon_code)){
			$coupon_code=$cart->couponCode;
		}
		if(!empty($coupon_code)){
			$msg = $cart->setCouponCode($coupon_code);
			if($msg) vmInfo($msg);
			$cart->setOutOfCheckout();
		}

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 9 ans 10 mois - il y a 9 ans 10 mois #8 par studio42

alatak écrit: Bonjour
Non
C'est a cause de cela (fichier components/com_virtuemart/controllers/cart.php)

$coupon_code = trim(vRequest::getString('coupon_code', ''));
		if(!empty($coupon_code)){
			$msg = $cart->setCouponCode($coupon_code);
			if($msg) vmInfo($msg);
			$cart->setOutOfCheckout();
		}
Une fois le CB entré, $coupon_code est vide, meme si coupon est bien dans $cart



Remplace le code ci dessus avec
$coupon_code = trim(vRequest::getString('coupon_code', ''));
		if(!empty($coupon_code)){
			$coupon_code=$cart->couponCode;
		}
		if(!empty($coupon_code)){
			$msg = $cart->setCouponCode($coupon_code);
			if($msg) vmInfo($msg);
			$cart->setOutOfCheckout();
		}

c'est pas plutot :
$coupon_code = trim(vRequest::getString('coupon_code', ''));
		if(empty($coupon_code)){// si rien dans le post
			$coupon_code=$cart->couponCode;
		}
		if(!empty($coupon_code)){
			$msg = $cart->setCouponCode($coupon_code);
			if($msg) vmInfo($msg);
			$cart->setOutOfCheckout();
		}

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!
Dernière édition: il y a 9 ans 10 mois par studio42.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 10 mois #9 par alatak
je ne vois pas la difference entre ton code et le mien ;)

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 9 ans 10 mois - il y a 9 ans 10 mois #10 par studio42
ton code : si $coupon_code n'est pas vide
if(!empty($coupon_code)){
mon code : si $coupon_code est vide
if(empty($coupon_code)){
Sinon je pense qu'il est pas possible, qu'il soit possible de modifier le code, car au depart $cart->couponCode est vide.

Mais il faudrait faire, pour que ce soit correct.
$coupon_code = trim(vRequest::getString('coupon_code', ''));
		if(empty($coupon_code)){// coupon not in post
			$coupon_code=$cart->couponCode;
		}
		if($coupon_code!=$cart->couponCode){// coupon changed
			$msg = $cart->setCouponCode($coupon_code);
			if($msg) vmInfo($msg);
		 	$cart->setOutOfCheckout();
		}
Ou un truc similaire, je n'ai pas fait de teste.

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!
Dernière édition: il y a 9 ans 10 mois par studio42.

Connexion ou Créer un compte pour participer à la conversation.