Calcul Des Arrondis Prix Au Kilo

7 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

 

Comment est géré le calcul du prix au kilo sur les produits ?

J'ai un décalage de quelques centimes entre mon prix réel au kilo et celui calculé par peel en affichage.

 

Exemple

Le prix réel au kilo de ma bavette est 25,95€

Quand j'indique dans la fiche produit le prix d'une pièce de 180 gr à 3,95€ peel m'indique comme prix au kilo 25,94€ : il y a 1 centime d'écart.

 

Pour certains produits, j'ai plusieurs centimes d'écarts.

 

Merci pour vos retours

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

* Pour votre information, le calcul fait est le suivant :

$product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode) * 1000 / intval($product_object->poids)

avec un poids en grammes dans $product_object->poids

et la fonction fprix pour l'affichage fait un number_format en PHP à 2 décimales, sachant que number_format fait l'arrondi en plus du formattage.

Donc :

- vous prenez le prix affiché (avec ou sans TVA, suivant votre boutique

- vous divisiez par le poids en kilo (= grammes divisé par mille)

- vous arrondissez à 2 chiffres après la virgule

Ce fonctionnement est inchangé depuis plusieurs années. Si vous avez une plus vieille version, je ne sais pas comment est fait le calcul dans votre version, en tous cas si ça ne fonctionne pas ainsi vous pouvez chercher "poids" dans le code pour trouver la formule utilisée.

* Avec votre exemple chiffré, si je corrige en prenant un prix au kilo de 21,95 et non pas 24,95 puisque j'imagine que vous vous êtes trompé dessus, les chiffres sont les suivants :

3.95/180*1000=21.9444444 => arrondi, ça donne 21.94 et non pas 21.95 contrairement à ce que vous indiquez.

Gilles

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

Merci pour l'info. Dans mon exemple j'avais en effet fais une erreur de frappe.

 

Mon soucis, c'est que je pars du prix au kilo de 21,95€ fixé par le commerçant et je le décline en 180 grammes. 

Avec le calcul : si j'indique le prix 3.95 pour 180 grammes, j'obtiens en effet le prix de 21.94€ le kilo, qui n'est pas le prix fixé par le commerçant.

 

Je suis dans l'impasse !

 

Autre réflexion : dans Peel 7,2, y a t'il une fonctionnalité qui permet à un client dans la fiche détail d'un produit de saisir le poids de produits qu'il souhaite acheter ?

Exemple pour un rôti de bœuf, un client pourrait demander un rôti de 1,2 kilo. En saisissant cette valeur le prix du produit serait actualisé et il pourrait de mettre dans son panier.

 

 

Merci pour votre aide

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

* C'est la raison pour laquelle les prix sont stockés à 5 chiffres après la virgule si vous tenez à ajuster très précisément un prix pour éviter ce genre de problème.

Donc pour faire ce que vous souhaitez, ne mettez pas 3,95 EUR, mais 3,951 EUR.

* Pour d'acheter 1,2 fois un produit de 1 kilo, il est possible d'autoriser des quantités variables. Il faut pour cela définir une variable de configuration dans l'administration qui s'appelle "allow_float_quantity" de type "boolean" et de valeur "true".

Sinon par défaut la quantité est un entier.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

C'est ce que j'avais indiqué comme prix dans ma fiche produit : 3.951 pour 180 grammes et j'ai 21.94€ le kilo au lieu de 21.95€.

 

La deuxième solution avec la variable  "allow_float_quantity"  me plait bien. Ça me permettrait de créer uniquement des produits au kilo et chaque client pourra choisir la quantité voulue.

 

Je teste et je reviens vers vous au cas où.

 

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonsoir,

J'ai étudié le fonctionnement du prix au kilo dans le détail en faisant des tests, et effectivement il y a un arrondi fait lors de l'appel du prix original, pour respecter le paramétrage de facturation en HT ou TTC.

Pour permettre la prise en compte de N décimales dans ce calcul, il faut appeler le calcul de l'objet produit en passant la quantité à l'intérieur du calcul et non pas après.

Pour faire cela, deux changements simples à faire :

* La ligne dans la fonction affiche_prix dans lib/fonctions/display_product.php :

'prix' => fprix($product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode) * 1000 / intval($product_object->poids), true)

(vers la ligne 550 dans ma version), doit être remplacée par

'prix' => fprix($product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode, false, false, 1000 / floatval($product_object->poids)), true)

* et dans l'objet produit, dans la méthode get_final_price de lib/class/Product.php :

$price_ht = $this->get_original_price(false, false, false, false, false, false, 1, false);

(vers la ligne 820 dans ma version), doit être remplacée par

$price_ht = $this->get_original_price(false, false, false, false, false, false, $quantity, false) / $quantity;

Ce changement sera présent dans la prochaine version du logiciel.

En vous souhaitant un bon weekend,

Gilles

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Gilles,

J'ai réalisé les changements et ça fonctionne. J'ai retrouvé mes centimes égarés.

 

Merci de vous être penché sur mon problème.

 

Bonne journée

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping