AntonyM Posted April 14, 2017 Share Posted April 14, 2017 Bonjour à tous, Je m'appelle Antony, je suis développeur Web dans une agence de Communication et de création de site Web. Je rencontre en ce moment pour un client avec une boutique Prestashop 1.7.0.6 un soucis sur les enregistrements des prix de déclinaisons. Je m'explique, lorsque mon client ajoute ses impacts sur le tarif sur ces x déclinaisons par exemple ( 32,33€ , 111,64€, 171,96€) à la première création pas de soucis les valeurs sont bien enregistrées en base de donnée je suis aller vérifier, cependant si il revient plus tard effectuer une modif sur un seul impact prenons comme exemple la valeur 32,33€ remplacé par 35,90€. A ce moment la lors de l'enregistrement la valeur 35,90€ est bien ajouté mais les autres valeurs passe a 111 et 171 coté Front et Back Office on obtient une perte des décimale à l'actualisation des pages en question. Ayant eu des soucis avec le thème choisis j'ai tester auparavant mon problème sur un prestashop vierge avec le thème classic et j'obtiens le même résultat. J'aurais souhaiter savoir si des personnes on constaté le même soucis sur leur boutique ? Je suis actuellement entrain de regarder coté envoie de données coté BO, la seul idée d'orientation trouvé à ce jour et celle-ci: A l'enregistrement du produit avec l'inspecteur des échange réseau dans la requete POST on peux voir : Impact de prix modifier avant enregistrement : combination_50[attribute_price] 33.64 Alors que sans modification : combination_50[attribute_price] 33,640000 je pense qu'il doit y avoir un soucis avec le séparateur des décimales mais je n'arrive pas encore a tracer a quel endroit ce passe cette envois de donnée afin de pouvoir tester ma theorie. Je vous souhaite à tous une bonne journée. Link to comment Share on other sites More sharing options...
HeineFR Posted July 9, 2020 Share Posted July 9, 2020 Bonjour, Avez vous trouvé une solution à ce problème? Je viens de constater la même chose sur la 1.7.5.1 je perds toutes mes décimales des prix d'achat des attributs lorsque je modifie mes fiches produit.... Merci d'avance pour votre réponse. Link to comment Share on other sites More sharing options...
HeineFR Posted July 9, 2020 Share Posted July 9, 2020 Je m'auto répond sur les différents sujets ou j'ai demandé des explications après de plus amples recherches et différentes pistes trouvées voici ce qu'il faut savoir : A la sortie de la V1.7 ils ont introduit les décimales avec des virgules pour le BO en français qui posaient de gros problèmes aux attributs produit pour : le prix d'achat, l'impact sur le prix, l'impact sur le poids, l'impact sur le prix unitaire Ce problème se présente lorsque l'on modifie la fiche produit sans toucher aux prix existants qui sont pré-remplis dans le champ avec une virgule, si on ne les modifie pas le formulaire va être envoyé avec la virgule et va être tronqué à l'entier. Ce problème a été partiellement solutionné dans les versions ultérieures avec l'ajout d'une fonction "floatParser". En revanche, dans la version 1.7.5.1 que j'utilise le problème existe toujours pour le prix d'achat des produits ! J'ai donc modifié ce fichier : /src/PrestaShopBundle/Model/Product/AdminModelAdapter.php et on aperçois ligne 326 les lignes suivantes : $form_data['combinations'][$k]['attribute_price'] = abs( $floatParser->fromString($combination['attribute_price']) ); $form_data['combinations'][$k]['attribute_weight'] = abs( $floatParser->fromString($combination['attribute_weight']) ); $form_data['combinations'][$k]['attribute_unity'] = abs( $floatParser->fromString($combination['attribute_unity']) ); J'ai donc rajouté juste au dessus les lignes suivantes pour effectuer la même opération sur le prix d'achat des attributs : $form_data['combinations'][$k]['attribute_wholesale_price'] = abs( $floatParser->fromString($combination['attribute_wholesale_price']) ); Pour les version antérieures qui n'ont pas la fonction de floatParser c'est cette modification qui m'a mis la puce à l'oreille : Quote Pour corriger cela, j'ai remplacé la ligne 265 du fichier : /src/PrestaShopBundle/Model/Product/AdminModelAdapter.php $form_data['combinations'][$k]['attribute_price'] = abs($combination['attribute_price']); par : $form_data['combinations'][$k]['attribute_price'] = abs(str_replace(',', '.', $combination['attribute_price'])); Notez que la modification citée concerne uniquement l'impact sur le prix de l'attribut, il faut donc effectuer le correctif aux autres variables comme le prix d'achat. Link to comment Share on other sites More sharing options...
croqueurdos Posted May 17, 2021 Share Posted May 17, 2021 Bonjour, Merci pour ce dernier message, j'avais ce problème sur un PS 1.7.6.8, qui est désormais réglé. F Link to comment Share on other sites More sharing options...
DavidCKW Posted October 21, 2022 Share Posted October 21, 2022 Mille merci à HeineFr, J'avais ce bug qui m'a pris la tête un moment, car le client disait que ça effacait des données, mais on n'avait pas bien identifié dans quel contexte ça se produisait. Je précise que le code à légèrement changer sur la version 1.7.8.7, et qu'à présent la ligne à ajouter est : $form_data['combinations'][$k]['attribute_wholesale_price'] = abs( $this->floatParser->fromString($combination['attribute_wholesale_price']) ); et après, fini ce fichu problème Link to comment Share on other sites More sharing options...
HeineFR Posted October 21, 2022 Share Posted October 21, 2022 Super, ravi que cela ait pu servir 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