Jump to content

[Resolu]Les points de fidélité dans la facture


Recommended Posts

Bonjour,

Alors, mes clientes veulent absolument voir le nombre de points de fidélité sur la facture PDF de la commande.
J'ai commencé à regarder dans la classe PDF.php (je sais ce n'est pas bien de modifier le cœur de prestashop...)

Afficher une nouvelle ligne : pas de soucis

if($point>0){
               $pdf->Ln(4);
               $pdf->Ln(4);
               $pdf->Cell($width, 0, self::l('Votre commande vous a rapporté '), 0, 0, 'R');
               $pdf->Cell(0, 0, $point.self::l(' décopoints'), 0, 0, 'R');
               $pdf->Ln(4);
           }



Le problème récupérer les points cumuler, en principe avec cette fonction de la classe modules > loyalty > LoyaltyModule.php :

$point = LoyaltyModule::getOrderNbPoints(self::$order->id);



Le problème viens là, j'ai beau inclure la classe en au début de PDF.php

include_once(_MODULE_DIR_.'loyalty/LoyaltyModule.php');


ou même

include_once(_MODULE_DIR_.'loyalty/LoyaltyModule.php');
include_once(_MODULE_DIR_.'loyalty/LoyaltyStateModule.php');




J'ai une internal error 500 au niveau de l'exécution de la fonction getOrderNbPoints.

En mettant des require à la place des include, internal error 500 dès le début, donc je suppose que c'est l'appel des fichiers qui ne marche pas.

Vraiment une erreur bête et une solution tout aussi bête je pense, mais en ce jeudi, avec ce beau soleil et le week end qui approche, je n'arrive plus à réfléchir correctement, donc je vous demande voter aide.

Merci à tous d'avance ;)

Link to comment
Share on other sites

Bonjour,

Avant tout il vaut mieux afficher les erreurs, provisoirement du moins :

config.ini.php

@ini_set(‘display_errors’, ‘on’); 




Ensuite ,

$point = LoyaltyModule::getOrderNbPoints(self::$order->id);



la methode statique attend un objet et non un id :

$point = LoyaltyModule::getOrderNbPoints(self::$order);

Link to comment
Share on other sites

Merci de t'interessé à mon cas :)


Pour afficher les erreurs j'avais utilisé

ini_set ("error_reporting", E_ALL);

et rien ne resotait, avec ta fonction non plus
En effet la fonction attend un objet, je suis passée trop vite dessus.

mais je suis toujours bloquée a l'appel de getOrderNbPoints() (echo avant qui s'affiche bien et l'echo d'aprés qui ne s'affiche pas)
En tout cas merci ;)

Link to comment
Share on other sites

Bon en voulant réparer un autre bug j'ai réussi à voir les erreurs php, donc c'était bien les includes qui ne marchaient pas, ils sont maintenant devenu

include_once('../modules/loyalty/LoyaltyModule.php');
include_once('../modules/loyalty/LoyaltyStateModule.php');



C'est pas propre mais ca marche presque, j'ai encore un petit soucis, ca marche bien depuis le BO, mais pas le FO, je regarderais ca demain à tête reposée
Merci encore :)

Link to comment
Share on other sites

Finalement j'ai fait

include_once($_SERVER['DOCUMENT_ROOT'].'/modules/loyalty/LoyaltyModule.php');
include_once($_SERVER['DOCUMENT_ROOT'].'/modules/loyalty/LoyaltyStateModule.php');


Car bizzarement "/modules" ne repartait pas de la racine du site, ni même aucunes variable prestashop "_MODULE_DIR_" ou autre.

En tout cas merci d'avoir pris le temps de me répondre Broceliande

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