Phenix suite + magnalister : commandes dupliquées
-
Hello à tous,
J'ai migré depuis quelques semaines sous Phenix Suite 1.6.2.42Néophyte techniquement je fais face à un souci bien embêtant.
J'utlise les services d'un aggrégateur de flux pour exporter mes produits et offres vers diverses places de marché.Depuis quelques jours lorsque je reçois une commande celle-ci est dupliquée "à chaque appel" du module dans mon BO.
Exemple actuellement pour une commande du 06/02 j'ai 140 lignes de commandes identiques dans mon BO.J'ai contacté le prestataire (Magnalister) pour exposer la situation.
A leur demande je leur ai transmis mes accès FTP et après investigation voici leur réponse, autant dire que je suis un peu largué...Auriez-vous svp un avis, une idée, idéalement un début de solution à mon problème ? merci beaucoup pour votre aide...
Réponse de Magnalister :
Bonjour,
Notre service technique a examiné le problème.
La raison pour laquelle l'importation de la commande ne peut pas être terminée et redémarre sans cesse est que le processus est interrompu par le message d'erreur « Object of class Order could not be converted to string ».
Ce problème n'est toutefois pas dû à magnalister, mais au logiciel PhenixSuite.
Dans le fichier « classes/order/OrderHistory.php », ce logiciel a intégré ses propres appels « error_log() », par exemple :
error_log("OrderHistory::changeIdOrderState(new_order_state=$new_order_state,id_order=$id_order)");
La variable $id_order est alors insérée dans une chaîne de caractères. Or, selon la norme PrestaShop, cette variable peut être soit un identifiant numérique, soit un objet de commande. Or, un objet ne peut pas être converti en chaîne de caractères, ce qui provoque une erreur.
Dans la version originale de PrestaShop (testée avec les versions 1.6 et 9.0.3), ces lignes n'existent pas, c'est pourquoi le problème ne se pose pas.
Il faut donc contacter le développeur de PhenixSuite pour qu'il corrige les lignes error_log() concernées dans le fichier OrderHistory.php, par exemple en remplaçant $id_order par (is_object($id_order) ? $id_order->id : $id_order) dans les sorties du journal.