Jump to content

Recommended Posts

Bonsoir,

J'ai un petit souci avec les factures sous prestashop v1.1.

Lorsque qu'une commande est passée, le client recoit un mail "Confirmation de commande" avec un pdf attaché FAXXXX.pdf
Ce N° de facture ne se retrouve pas dans le PDF, le N° de facture est toujours FA000000.
Par contre lorsque le client va dans son "Mon compte" et qu'il consulte ses factures en pdf, pas de probleme, le fichier 0000XX.pdf comporte le bon N° de facture.

En piece jointe un exemple

Merci de vos reponses.

4158_SDzMte3iCZ7L8bLHPWaN_t

Link to comment
Share on other sites

Bonjour,
Je confirme, j'ai le même problème et on ne doit pas être les seules , mais bizarrement chez Prestashop malgré que ce soit un outils très intéressant, il y a très peu d'informations pour résoudre les bugs, comme si personne ne rencontré de problème avec cette solution.
Je comprends le manque de disponibilité des administrateurs, mais serait-il possible de nous confirmer que le problème existe, même si la solution n'est pas trouvé tout de suite ?

Merci

Cordialement.

Link to comment
Share on other sites

Si vous êtes déjà trois à le rencontrer on peut commencer à considérer que le problème existe et à parler de bug...

La première chose à faire est donc de le poster (en anglais) dans le bug tracker. Ajoutez-y éventuellement un lien vers ce topic, et revenez signaler ici que vous avez posté dans le BT (avec un lien vers le post du BT) que je puisse déplacer ce topic dans la section des bugs traduits.

Link to comment
Share on other sites

En modifiant les lignes 86 et 367 de PDf.php de manière à remplacer self::$order->invoice_number par self::$order->id on retrouve l'affichage dans le PDF envoyé au client du numéro de facture.
Ce n'est peut-être pas la bonne solution, mais elle permet d'attendre une correction définitive du bug.
Reste encore à trouver pour la date qui n'est pas affichée.

Ligne 86 avant modification:
$this->Cell(80, 10, self::l('INVOICE #').Configuration::get('PS_INVOICE_PREFIX', intval($cookie->id_lang)).sprintf('d', self::$order->invoice_number), 0, 0, 'C');

Et après modif:
$this->Cell(80, 10, self::l('INVOICE #').Configuration::get('PS_INVOICE_PREFIX', intval($cookie->id_lang)).sprintf('d', self::$order->id), 0, 0, 'C');

-----------------------------------------------------------------------------------------------
Ligne 367 avant modif:
$pdf->Cell(0, 6, self::l('INVOICE #').Configuration::get('PS_INVOICE_PREFIX', intval($cookie->id_lang)).sprintf('d', self::$order->invoice_number).' '.self::l('from') . ' ' .Tools::displayDate(self::$order->invoice_date, self::$order->id_lang), 1, 2, 'L', 1);

Et après modif:
$pdf->Cell(0, 6, self::l('INVOICE #').Configuration::get('PS_INVOICE_PREFIX', intval($cookie->id_lang)).sprintf('d', self::$order->id).' '.self::l('from') . ' ' .Tools::displayDate(self::$order->invoice_date, self::$order->id_lang), 1, 2, 'L', 1);

Link to comment
Share on other sites

Pour la date, j'ai modifié cette partie de la ligne 367 .Tools::displayDate(self::$order->invoice_date, par ceci .Tools::displayDate(self::$orderReturn->date_upd,

La date apparaît bien dans le PDF reçu par le client.

Ligne 367 avec les 2 modifications pour le n° de facture et la date:
$pdf->Cell(0, 6, self::l('INVOICE #').Configuration::get('PS_INVOICE_PREFIX', intval($cookie->id_lang)).sprintf('d', self::$order->id).' '.self::l('from') . ' ' .Tools::displayDate(self::$order->date_upd, self::$order->id_lang), 1, 2, 'L', 1);

Link to comment
Share on other sites

je pense que le problème vient de la classe PaymentModule

/* Join PDF invoice */
                   if (intval(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice)
                   {
                       $fileAttachment['content'] = PDF::invoice($order, 'S');
                       $fileAttachment['name'] = sprintf('FAd.pdf', intval($order->id));
                       $fileAttachment['mime'] = 'application/pdf';
                   }



j'ai essayé de changer par le code de la 1.2 SVN mais mes numéros de facture s'incrémente de 2 en 2 dû je pense à $order->setInvoice();

// Join PDF invoice
                   if (intval(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice)
                   {
                       $order->setInvoice();
                       if ($order->invoice_number)
                       {
                           $fileAttachment['content'] = PDF::invoice($order, 'S');
                           $fileAttachment['name'] = Configuration::get('PS_INVOICE_PREFIX', intval($order->id_lang)).sprintf('d', $order->invoice_number);
                           $fileAttachment['mime'] = 'application/pdf';
                       }
                   }

Link to comment
Share on other sites

  • 1 month later...

J'ai le meme problème.

Vu que personne n'y revient, je pense que les solutions données plus haut fonctionnent mais je voudrais juste avoir confirmation.

Est-ce que les modifs proposées patrick67 fonctionnent bien chez vous ? Ont-elles provoquées d'autres bugs ?

Merci

Link to comment
Share on other sites

Bonjour à tous,

Exactement le même problème pour moi. Tout bon dans le BO aussi bien pour le vendeur que pour le client, en revanche le mail de confirmation de commande envoyé attache une facture pdf présentant des erreurs : dans le contenu du pdf, le numéro de facture est bloqué à 000000 et la date n'est pas indiquée.

Je poste en réponse à Patrick67 qui propose des modifications du fichier PDF.php du dossier /classes .
Je suis étonné de constater que nous n'avons pas exactement le même code (je suis en 1.1 également).

Il s'avère que pour toutes les portions de code

sprintf('d'

ben moi j'ai

sprintf(' % 06d'

:bug:
C'est pas génial ça j'imagine... Et cette portion de code se retrouve 27 fois dans prestashop dont 11 dans le fichier PDF.php.

Quelqu'un a déjà constaté ça ? Quelle peut-être la raison de l'apparition de cette différence de code ? Quelles peuvent être les conséquences ?

Bon, en tout cas, je vais déjà changer tous mes

sprintf(' % 06d'

en

sprintf('d'

qui ont l'air tout de même plus académiques... et je vais voir si le bug numérotation de facture demeure...

Link to comment
Share on other sites

Bon, en fin de compte, j'ai pas fait la modif' du "pourcentage 06", je pense que patrick67 avait le même code que moi simplement cela disparait en codage html.
J'ai fait sa manip' en modifiant les lignes 86 et 367... mais je ne l'ai pas testé plus avant avec une nouvelle commande et constatant le numéro de facture sur le mail, car avec la manip' d'ores et déjà ça ne fonctionne plus dans le BO... là ce sont les dates qui ne s'affichent plus.

Toujours pas de news de la Team à ce sujet ? Ca n'est pas un problème anodin pourtant... Ce qui est étonnant, c'est que cela fonctionne très bien pour certains... encore une origine serveur ?
Pour ma part OVH 90Plan...

Link to comment
Share on other sites

bonjour,

....alors la ....c'est vraiment bizarre....moi aussi je suis en v 1.1 et quand je passe une commande ....j'ai pas de fichier pdf...mais un email "Confirmation de commande" en format HTML.....ou il y'a bien le numéro de commande ......dans MON COMPTE pas de soucis non plus.


entonnant non ?...

Link to comment
Share on other sites

Ok ! Je viens comme Sylv de placer les fichiers PDF.php et PayementModule.php issus du SVN. Et là, tout comme toi, une nouvelle commande m'a généré un mail de confirmation sans pièce jointe.

A noter: la soluce de patrick67 est à mon gout à éviter, il remplace la variable numéro de facture par la variable numéro de commande ce qui n'est pas correct, ces deux valeurs n'ayant pas forcément à être identique.

Pour ce qui est du nouveau fichier PayementModule.php du SVN, il corrige un oubli, puique cette fois-ci le nom du fichier pdf envoyé prend en compte la personnalisation (éventuellement effectuée) du préfixe du nom des factures. En revanche, j'ai pas pu tester son efficacité, car là en effet, avec une nouvelle commande, le mail n'avait pas de pièce jointe...

Link to comment
Share on other sites

....c'est d'autre en plus bizzare que j'ai pas du tout la version SVN - le seul module SVN que j'ai mis c'est pour le parrainage qui est bogué...sinon je suis en Version 1.1.0.5 STOCK

....a rien comprendre....breff...je continue mes tests avant de la mettre en prod.

Link to comment
Share on other sites

Well... Bon, ben après avoir placé les deux fichiers SVN précédemment cités, les mails de confirmation ne comprennent plus de pièce jointe. Après tout, je préfère comme ça, au moins y'a pas d'infos erronées transmises au client... et un texte l'invite à télécharger sa facture (correcte) dans son compte boutique...

M'enfin, je suis les news de la team pour connaître la résolution compléte du problème... à suivre ;-)

Link to comment
Share on other sites

Apparement, rien de neuf de ce coté-ci.

Je n'ai pas voulu mettre la version SVN, car pas le temps de faire toute une batterie de tests pour savoir si tout marche comme avant et sans problème. Donc, pour ceux qui veulent garder leur version 1.1, la seule solution au problème est de ne pas envoyer la facture avec le mail de confirmation de commande.

Manip' ultra-simple dans le fichier classes/PaymentModule.php

Remplacer :

mail::Send(intval($order->id_lang), 'order_conf', 'Order confirmation', $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment);



par :

mail::Send(intval($order->id_lang), 'order_conf', 'Order confirmation', $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, NULL);



@+

Link to comment
Share on other sites

J'ai une question en parallèle de ce pb : pourquoi envoyez-vous une facture au client alors que sa commande n'est pas expédiée ? (à moins que vous parliez de produits virtuels...)

Ce que je veux dire, c'est que nous, par exemple, nous créons la facture une fois que le paiement est reçu, certes, mais aussi lorsque nous avons validé la commande et que celle-ci est sur le point d'être expédiée. Ce qui permet aussi d'avoir une date juste pour "date d'expédition" sur ladite facture :)

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

J'ai testé la dernière svn sur mon serveur et en fait le problème n'est pas réglé.

Lorsqu'une commande est passée et payée via paypal par exemple et que son statut est bien sur paiement accepté le mail de confirmation de commande ne contient plus en pièce jointe la facture.

J'ai posé la question sur le bugtracker pour savoir si la prochaine version de repstashop n'enverrait donc plus les factures avec le mail de confirmation...

@ +

Link to comment
Share on other sites

perso (ce n'est que mon avis) je préfère que les factures ne soient pas jointes.
ça "oblige" en quelque sorte le client à revenir se connecter sur son compte, et donc à re-visiter ta boutique. de plus, peu de particuliers ont réellement besoin d'une facture... et le fait de la proposer en téléchargement lui fait prendre de bonnes habitudes... mais ça n'engage que moi.

Link to comment
Share on other sites

  • 1 month later...
J'ai une question en parallèle de ce pb : pourquoi envoyez-vous une facture au client alors que sa commande n'est pas expédiée ? (à moins que vous parliez de produits virtuels...)

Ce que je veux dire, c'est que nous, par exemple, nous créons la facture une fois que le paiement est reçu, certes, mais aussi lorsque nous avons validé la commande et que celle-ci est sur le point d'être expédiée. Ce qui permet aussi d'avoir une date juste pour "date d'expédition" sur ladite facture :)


oops j'ai ouvert un post pour le même problème aujourd'hui mais je n'avais pas vu celui là :o

Pour répondre à cette question: j'ai remarqué le coup des facture à 000000 dans le PDF à l'occasion d'un test "paiement à la livraison" puisque la facture est attachée au mail dans ce cas là.
J'ai fait un test paypal avec un pote mais j'ai oublié de regarder ça :s il va me forward les mails parce que je ne sais plus si dans le cas paypal il y a aussi un pdf attaché ?

Bref, la solution de ne pas envoyer la pièce jointe me va très bien... :D

Alek.
Link to comment
Share on other sites

Bonjour,

J'ai reposté un bug report à ce sujet ( http://www.prestashop.com/bug_tracker/view/2278/ ) et j'ai mis la solution pour la version 1.1.0.5 et 1.2 en commentaire que je remets ici :

dans /classes/PaymentModule.php

chercher

// Join PDF invoice



modifier la condition juste après pour avoir :

                   /* Join PDF invoice */
                   if (intval(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice)
                   {
                       $order = new Order(intval($order->id));
                       $fileAttachment['content'] = PDF::invoice($order, 'S');
                       $fileAttachment['name'] = Configuration::get('PS_INVOICE_PREFIX', intval($order->id_lang)).sprintf('d', $order->invoice_number).'.pdf';
                       $fileAttachment['mime'] = 'application/pdf';
                   }
                   else
                       $fileAttachment = NULL;



Cela corrige aussi l'absence d'extension ".pdf" de la svn actuelle (1084).

Link to comment
Share on other sites

  • 5 weeks later...
  • 1 month later...

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