Bonjour,
Actuellement j'ai un gros soucis dans Prestashop. Aprés avoir modifier des paramètres, rajouter des champs pour calculer des poids (décimal), ce qui fonctionne trés bien, je suis me suis aperçu d'un énorme problème.
Dans le panier (quand j'affiche le récapitulatif) mes produits alimentaires sont calculés avec une taxe de 19,6% alors qu'ils sont configurés en base de données à 5,5%. Et mes frais de transport sur une taxe de 19,6%. Pour une raison que j'ignore le prix de mon produit s'affiche HT dans le panier....
Toujours pour une raison qui m'échappe (le CB et le paiement par chéque) calculs bien mes produits alimentaires en 5,5% et mes frais de transports en 19,6% ! Je vois cela dans le récapilutatif des commandes.
A cause de cette différence entre le panier et le paiement des erreurs surgissent due à la différence de montant entre celui qui est affiché et celui que l'on va payer !
Avertissement et erreur lors du paiement par chéque.
We noticed a problem with your order. If you think this is an error, you can contact our customer support.
Voici quelques élèments qui j'espère vous aideront.
- L'ancienne sauvegarde qui fonctionnait y 15 jours (aucune erreur de paiement à la fin) ne fonctionne plus aujourd'hui. Entre temps des élèments dans la base de données ont été modifiés.
- Je n'ai jamais touché à aucun moment au calcul des montants, aux taxes et autres fonction du pannier. J'ai juste changé la quantité dans la table ps_product en décimal pour qu'elle puisse accueillir des décimaux (contraintes dans le cadre de notre projet).
- Quelques soit la taxe que je mets pour mes produits alimentaires, je suis toujours sur une taxe à 19,6%
- -> Installation du module CIC (j'ai trouvé un autre post qui semble parlait de ces soucis avec ce dernier)
- http://www.prestashop.com/forums/vie...ur_la_commande
- Aprés avoir déroulé le fil, je me suis aperçu qu'il prennait la taxe associés à la zone géographique (je suis en France). Explicant sans doute le dernier point (?)
Fichier Product.php
$result = Db::getInstance()->getRow('
SELECT p.`price`, p.`reduction_percent`, p.`wholesale_price`, p.`reduction_percent`, p.`reduction_from`, p.`reduction_to`, p.`id_tax`, t.`rate`,
'.($id_product_attribute ? 'pa.`price`' : 'IFNULL((SELECT pa.price FROM `'._DB_PREFIX_.'product_attribute` pa WHERE id_product = '.intval($id_product).' AND default_on = 1), 0)').' AS attribute_price
FROM `'._DB_PREFIX_.'product` p
'.($id_product_attribute ? 'LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON pa.`id_product_attribute` = '.intval($id_product_attribute) : '').'
LEFT JOIN `'._DB_PREFIX_.'tax` AS t ON t.`id_tax` = p.`id_tax`
WHERE p.`id_product` = '.intval($id_product));
$price = $result['price'];
Aprés cette fonction mon prix HT passe en 19,6%. Le taux qui rentre est bien de 5,5%, je précise
Code : Sélectionner tout - Visualiser dans une fenêtre à part $tax = floatval(Tax::getApplicableTax(intval($result['id_tax']), floatval($result['rate'])));
Dans mon fichier de sortie (error_log) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Taux 5,5 Prix :8,10 (prix HT) Taux 5,5 Prix :9,6876 (prix TTC à 19,6%)
Pensez-vous que mon problème puisse venir de la base de données ? Du code (sachant que j'ai pas touché au calcul des taxes une seule fois) ? Pourquoi mes prix s'affiche t-il en HT dans mon panier (chose qui m'échappe également).
J'espère que vous allez pouvoir me donner des pistes, des élèments pour que je puisse orienter mes recherches ! J'avoue ne plus savoir ou chercher...
D'avance merci
Cordialement,
CVbdev
ps : Dans le backoffice, les frais de transports sont calculés sur le poids final. En le mettant sur le prix final ça ne change rien du tout !
Partager