Jump to content
morrissfr

Montant total minimum requis pour valider une commande

Recommended Posts

Bonjour,

je me suis rendu compte que le montant qu'on inscrivait dans cette case (BO) incluait au final les frais de port. Or, vendant à l’international, ils vont du simple au double et faussent, suivant le pays, l'utilité de ce paramètre. D'où ma question, peut-on désactiver l'addition "somme minimum" et "frais de port" afin que la commande ne soit refusée que sur son montant sans les frais de port (un peu comme on fait dans le panier en modifiant le blockcart.tpl et ajax-cart.js

Si quelqu'un peut m'expliquer ce sera un grand merci.

Laurent.

Share this post


Link to post
Share on other sites

Bon, je m'explique un peu plus. Je veux que les clients achètent pour au moins 5€ (soit 2 produits car ils ont tous le même prix sinon la vente rapporte presque rien).

Je mets donc minimum à 5€ . Si la personne n'achète qu'un produit (2.5€) elle passe quand même avec les frais de port

Si je monte le minimum à 2 produits + Frais de port soit 10€ sa commande est refusée mais on lui dit que "la commande minimum est de 10€", ce qui n'est pas le cas puisque je veux la fixer à 5€. Bref il s'en va!

Telle qu'elle est conçue non seulement cette fonction ne peut me servir mais elle est dangereuse. Est-ce qu'un "programmeur" de Prestashop peut se pencher sur ce problème? Je peux pas mettre mon site en ligne si ce n'est résolu

Merci

Share this post


Link to post
Share on other sites

Salut,

 

On l'a assez dit et répété : sans connaître ta version de prestashop dur dur de t'aider.

Je vais faire comme si tu parlais d'une 1.4.x ....

 

Techniquement , la ligne qui t'intéresse se trouve dans OrderController.php

Autour de la ligne 61 :

 

		if (self::$cart->getOrderTotal(false) < $minimalPurchase && $this->step != -1)

 

l'équivalent existe sur OrderOpcController, selon que tu utilises ou non le mode OPC .

 

Bref cette ligne pour obtenir le résultat souhaité devrait être :

 

		if (self::$cart->getOrderTotal(false,Cart::ONLY_PRODUCTS) < $minimalPurchase && $this->step != -1)

 

Il reste à mettre ceci en place , soit par la méthode élégante (override) , soit en modifiant bêtement le controller en dur et en disant adieu à toute mise à jour propre....

Share this post


Link to post
Share on other sites

Je n'ai pas testé sur PS1.4 mais sur PS1.3.7 le minimum de commande n'inclut pas les frais de port. Je l'utilise sans problemes sur ma boutique.

 

Bug? probleme lié a une configuration particuliere?

 

Il faudrait plus de details: version, taxes activees, theme de base...

Share this post


Link to post
Share on other sites

Bonsoir,

Normalement j'ai la 1.4.4 puisque la mise à jour a été validée (bien que le BO me marque toujours 1.4.3) et que j'ai l'option "mise à jour" de rajoutée. J'utilise le thème de base où je n'ai modifié que la présentation. Je n'applique aucune taxe (auto entrepreneur).

 

Je pense un peu comme Jolvil que ça a la forme d'une erreur de programmation ....surtout si on peut faire ça tranquille sur la 1.3.7.

 

N'étant pas programmeur si je corrige ce sera en dur car l'override c'est un peu du russe pour moi. Je garderai en mémoire cette modif et je re-corrigerai avant une mise à jour.

Enfin merci pour vos réponses (Broceliande et Jolvil) je désespérais d'en avoir une!

Laurent

Il me semble qu'un réalisateur de la 1.4.x devrait se pencher sur ce problème.

Share this post


Link to post
Share on other sites

Bonjour,

 

J''ai un soucis similaire... Je mentionne commande minimum 15€ mais la taxe est exclu, comme je suis auto entrepreneur, je n'ai pas de TVA, je désirais pourvoir modifier ce petit truc qui est assez chiant quand il mentionne toujours 15€ alors que le panier fait 17,70€ (17,90€ pour que le message disparaisse)

 

PS: La Taxe 19,6% est malgré tous activé sur ma boutique, car sinon ceci ne me permet pas d'apercevoir le bénéfice avec mes fournisseur qui eux sont en HT.

 

Help! :( Merci d'avance.

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

j'ai le même soucis sur 1.4.6 le minimum commande est en hors taxe donc le client aperçoit lorsqu' il visionne son panier un minimum de commande en hors taxe.

comment peut on avoir ce minimum de commande en TTC

 

Merci :)

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

j'ai le même soucis sur 1.4.6 le minimum commande est en hors taxe donc le client aperçoit lorsqu' il visionne son panier un minimum de commande en hors taxe.

comment peut on avoir ce minimum de commande en TTC

 

Merci :)

Bonjour,

 

J''ai un soucis similaire... Je mentionne commande minimum 15€ mais la taxe est exclu, comme je suis auto entrepreneur, je n'ai pas de TVA, je désirais pourvoir modifier ce petit truc qui est assez chiant quand il mentionne toujours 15€ alors que le panier fait 17,70€ (17,90€ pour que le message disparaisse)

 

PS: La Taxe 19,6% est malgré tous activé sur ma boutique, car sinon ceci ne me permet pas d'apercevoir le bénéfice avec mes fournisseur qui eux sont en HT.

 

Help! :( Merci d'avance.

 

Salut ,

Ce qui est problématique est que la plupart du temps , ce message est affiché avant l'authentification du client.

Or à ce stade , on ne connait pas encore la taxe afférente a son pays d'origine.

Une solution(mais pas idéale à mon goût) est d'utiliser la taxe liée au pays de la boutique.

 

L'un comme l'autre ne parlez pas d'opc , je pars donc du principe que vous utilisez le processus de commande en 5 étapes, sinon ben tant pis pour vous il fallait être plus précis :P

 

Ca peut se faire comme suit , il faut créer un dossier OrderController.php dans le dossier /override/controllers

 

Dans ce fichier , vous collez ça et rien d'autre :

 

<?php
class OrderController extends OrderControllerCore
{
public function preProcess()
{
 global $isVirtualCart, $orderTotal;
 ParentOrderController::preProcess(); // OrderControllerCore extends ParentOrderController
 /* If some products have disappear */
 if (!self::$cart->checkQuantities())
 {
  $this->step = 0;
  $this->errors[] = Tools::displayError('An item in your cart is no longer available for this quantity, you cannot proceed with your order.');
 }
 /* Check minimal amount */
 $currency = Currency::getCurrency((int)self::$cart->id_currency);
 $orderTotal = self::$cart->getOrderTotal();
 $minimalPurchase = Tools::convertPrice((float)Configuration::get('PS_PURCHASE_MINIMUM'), $currency);
 if (self::$cart->getOrderTotal(false, Cart::ONLY_PRODUCTS) < $minimalPurchase && $this->step != -1)
 {
  $this->step = 0;
  /* tax mod */
  $products = self::$cart->getProducts(); // we need at list a product id , better take it in cart
  $id_product=$products[0]['id_product'];
  // user is not necessary logged yet, use shop defaults instead   
  $id_country = (int)Configuration::get('PS_SHOP_COUNTRY_ID');
  $id_state = (int)Configuration::get('PS_SHOP_STATE_ID');
  $id_county = 0;
  $rate = Tax::getProductTaxRateViaRules((int)$id_product, (int)$id_country, (int)$id_state, (int)$id_county);
  $minimalPurchase = $minimalPurchase*(1+$rate/100);
  /* tax mod end*/
  $this->errors[] = Tools::displayError('A minimum purchase total of').' '.Tools::displayPrice($minimalPurchase, $currency).
  ' '.Tools::displayError('is required in order to validate your order.');
 }
 if (Tools::getValue('ajax') && Tools::isSubmit('checkMinQuantity'))
  if (count($this->errors))
  {
   self::$smarty->assign('errors', $this->errors);
   $errors = self::$smarty->fetch(_PS_THEME_DIR_.'errors.tpl');
   die('{"hasError" : false, "errors" : [""], "data" : '.Tools::jsonEncode($errors).'}');
  }
  else
   die('{"hasError" : false, "errors" : [""]}');
 if (!self::$cookie->isLogged(true) AND in_array($this->step, array(1, 2, 3)))
  Tools::redirect('authentication.php?back='.urlencode('order.php?step='.$this->step));
 if ($this->nbProducts)
  self::$smarty->assign('virtual_cart', $isVirtualCart);
 // Update carrier selected on preProccess in order to fix a bug of
 // block cart when it's hooked on leftcolumn
 if ($this->step == 3 && Tools::isSubmit('processCarrier'))
  $this->processCarrier();
}
}
?>

 

Pensez bien sûr à renseigner l'adresse de la boutique dans le back office , sinon bien sûr ça marchera pas vu que je me base dessus pour récup un taux de tva "par défaut..."...

Share this post


Link to post
Share on other sites

Une remarque à part ,

Il est bien sûr possible d'enrichir ce code, par ex. de tester si le client est loggué et alors se baser sur son adresse , et ne switcher sur la méthode "adresse boutique" que si on ne l'a pas.

Mais bon je trouve que j'en ai assez fait comme ça , sans même savoir si vous utilisez OPC ou non ...

  • Like 1

Share this post


Link to post
Share on other sites

résolu

 

Merci Brocéliande pour ta réponse et ta réactivité

 

Parteno

Share this post


Link to post
Share on other sites

Bonjour,

 

C'est quoi "OPC" ??

 

OPC = One Page checkout = Processus de commande sur une seule page .

Toutes les étapes sont alors regroupées

Share this post


Link to post
Share on other sites

Ah! D'accord! merci!

 

Effectivement c'est en 5 étape la commande et non en une seule fois. :)

 

Mais j'ai toruvé autrement, j'ai selection la TVA et mentionné "Aucune Taxe" dedans, ceci du coup m'affiche un prix de vente TTC et un minimum d'achat Exact. :)

 

Comme je n'ai pas toruvé de Module spécial Non-TVA auto-entrepreneur, on fait avec. ^^ (car dans l'ajout d'un produit le prix TTC est mentionné en HT... c'est pas tiptop... )

 

Merci bien de ces explications. :)

Share this post


Link to post
Share on other sites

Ah! D'accord! merci!

 

Effectivement c'est en 5 étape la commande et non en une seule fois. :)

 

Mais j'ai toruvé autrement, j'ai selection la TVA et mentionné "Aucune Taxe" dedans, ceci du coup m'affiche un prix de vente TTC et un minimum d'achat Exact. :)

 

Comme je n'ai pas toruvé de Module spécial Non-TVA auto-entrepreneur, on fait avec. ^^ (car dans l'ajout d'un produit le prix TTC est mentionné en HT... c'est pas tiptop... )

 

Merci bien de ces explications. :)

 

Tout à fait le problème ne se pose pas pour les auto entrepreneurs . Il ne faut pas en effet oublier que nous ne vendons pas HT mais TTC , même si nous n'avons pas de TVA .

Share this post


Link to post
Share on other sites

Hi,

 

What if you are using OnePageCheckout and want to have tax included in the minimal order amount? Could above solution be changed so that it works for OPC?

 

Please note that Prestashop has to use the amount incl tax from the cart as my store sells prodcuts with 2 different tax rates.

 

I am using Prestashop 1.4.8.2

 

Thanks for your help!

Share this post


Link to post
Share on other sites

bonjour

 

je sais que la discussion date un peu mais quelqu'un a t-il un retour sur la méthode employée par brocéliande ?

 

moi je n'ai aucun changement sur presta. 1.5.3.1

 

merci

Share this post


Link to post
Share on other sites

Bonjour,

Je relance le sujet, quelqu'un a t il une solution pour cela ?

Merci

Share this post


Link to post
Share on other sites

Bonjour

Je voudrais juste rajouter HTVA à

"Un montant total minimum de ...  € est nécessaire pour valider votre commande."

Rien vu dans les traductions ...

Comment puis-je faire ?

Version 1.5.4.1

Merci !

Share this post


Link to post
Share on other sites

Pour afficher le prix en ttc

aller dans localisation puis onglet Taxes et choisir "activer les taxes" non

 

Puis aller dans localisation puis onglet Traduction >> choisir traduction messages d'erreur, faire une recherche sur montant minimum et changer le texte comme il convient

 

Attention il faudra rentrer tous vos prix en ttc ensuite

Edited by Aurore (see edit history)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More