Jump to content

Prix d'achat des déclinaisons (le casse tête !)


Recommended Posts

Bonjour,
J'ouvre un nouveau sujet car il pourra sûrement servir à d'autres personnes dans mon cas.. ça fait 2 semaines que je cherche une solution en vain... Lorsque je rentre le prix d'achat d'une déclinaison et que je reviens sur la fiche, ce même prix se retrouve automatiquement arrondi. Exemple : Prix d'achat HT 1.28 se transforme en 1.00 autant vous dire que la marge n'est du coup absolument pas fiable. Si encore il me suffisait de retaper chaque prix d'achat mais j'ai tenté en remplaçant la virgule par un point et cela n'a rien changé.. Quelqu'un aurait-il eu le même problème ?

Version : 1.7.6.1
Thème : Classic
Navigateurs : Mozilla et Google chrome
Hébergeur : EX2

Merci et bonne journée

Link to comment
Share on other sites

  • 5 months later...

Up 

J'ai enfin trouvé des personnes avec ce problème. Du coup je souhaiterai savoir si certains avaient trouvé une solution. Car ça devient pénible de re faire tout les prix à chaque fois. 

Merci mille fois pour votre aide. 

Link to comment
Share on other sites

  • 2 weeks later...

Cela fonctionne lorsqu'on le fait le jour même mais le lendemain tout est arrondi de nouveau . As-tu remarqué ça de ton coté coeos.pro ? 

J'ai une version 1.7.6.5 de prestashop. 

Toujours personne pour une solution ? 

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

Je vais essayer contribuer à éclairer le problème.

Lorsque l'on modifie le prix d'achat d'un attribut qui contient une virgule le prix est renommé avec un point lorsque l'on sort le focus du champ.

En revanche, lorsque l'on ouvre la fiche produit pour toucher uniquement à la description et que l'on enregistre le prix affiché dans la div en hidden est avec la virgule et se fait tronquer par le process de mise à jour du produit.

Link to comment
Share on other sites

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

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...