m-Facilities.com Posted September 11, 2012 Share Posted September 11, 2012 (edited) Bonjour, Je fais appel aux connaisseurs de la structure de donnée de PrestaShop (1.4.7.3) Suite à une erreur PayPal 10415 (cf post ici si nécessaire), j'ai il me semble dans un PrestaShop une incohérence sur la base: - Le compte client est bien créé dans ("onglet Client") et affiche un avertissement "Commandes invalides : 1" dans la section commande. - La commande invalide en question n'apparait pas dans les commandes habituellement affichées dans l'onglet "Commandes" - On peut tout de même accéder à la commande à partir de la section commande de la fiche client. Celle-ci apparait alors dans un état transitoire: pas de liste d'articles associée, pas de facture éditable et gros point interrogation à la place de la liste de statuts (cf screen-shot ci-joint) En regardant dans la base, la commande a le statut invalide (ps_orders.valid = 0), ce qui parait logique et elle n'a pas de lignes dans "ps_order_detail". Comment doit-on procéder pour remettre cela dans l'ordre ? Dois-je simplement ajouter une ligne dans "ps_order_detail" ? Quelles sont les autres relations à reconstruire ? Merci par avance pour tout renseignement EDIT du 22/10/2012 Suite à 2 nouvelles "commandes invalides" mais ce coup ci lors d'un paiement par virement, je suis remonté dans les logs Apache et identifié que l'erreur 10415 rencontré ici était une conséquence de la fameuse erreur "Swift_Message_MimeException" pour laquelle Icedocemil - merci à lui - propose un fix ici Edited October 22, 2012 by m-Facilities.com (see edit history) Link to comment Share on other sites More sharing options...
m-Facilities.com Posted September 11, 2012 Author Share Posted September 11, 2012 Voici les tests menés sur une version locale de la base et qui semblent aller dans le bon sens: - ajout d'une ligne dans ps_order_detail en utilisant les champs issus de ps_products - modification du champ ps_orders.valid: ps_orders.valid = 1 - changement du statut de la commande dans le BackOffice: passage de "Annulé" à "Paiement accepté" -> la commande apparait dans la liste des commandes et je peux maintenant éditer la facture. Avis aux Cadors: voyez-vous d'autres tables qu'il faudrait mettre à jour ? Cordialement Link to comment Share on other sites More sharing options...
jeckyl Posted September 11, 2012 Share Posted September 11, 2012 Bonjour, peut être pouvez vous essayer ce module http://www.julien-breux.com/2009/11/12/cart-to-order-v1-0/ Link to comment Share on other sites More sharing options...
m-Facilities.com Posted September 11, 2012 Author Share Posted September 11, 2012 (edited) Bonjour, J'ai remis en place une copie de la base de prod pour tester ce module. Une fois le module copié dans le répertoire /modules, l'instanciation plante la page de configuration des modules. Voici ce que j'ai dans le log Apache du site: PHP Fatal error: Cannot make static method ModuleCore::getPaymentModules() non static in class jbx_cart_to_order in /home/var/www/www.je-ne-le-dirais-pas.fr/modules/jbx_cart_to_order/jbx_cart_to_order.php on line 97 PrestaShop v1.4.7.3 Edited September 11, 2012 by m-Facilities.com (see edit history) Link to comment Share on other sites More sharing options...
m-Facilities.com Posted September 18, 2012 Author Share Posted September 18, 2012 (edited) Après une semaine un peu tendue, je reprend ce problème que j'avais laissé en plan. J'ai fait la supposition que jbx_cart_to_order::getPaymentModules, plus ancien, interférait avec le noyau 1.4.7.3 de PrestaShop. J'ai donc procéder à un renommage de this->getPaymentModules. Maintenant, la page des modules s'affiche dans le BO mais il n'y a aucune référence au module jbx_* ni de nouvel onglet 'Jul*'. Je pense que le code de jbx_cart_to_order n'est plus vraiment compatible. Que faire ? Une alternative serait de simplement appeler validateOrder sur l'ID du cart en question. Mais comment simplement faire un appel à $paymentModule->validateOrder ? Parmi les paramètres, il me manque: - $this->getOrderState($name) que je suppose être "_PS_OS_PAYMENT_" - $paymentMethod qui est peut-être "paypal" Une idée ? Un tips ? Cordialement Edited September 18, 2012 by m-Facilities.com (see edit history) Link to comment Share on other sites More sharing options...
m-Facilities.com Posted September 26, 2012 Author Share Posted September 26, 2012 (edited) Bonjour à tous, Je viens de re-consacrer uen petite heure à ce problème qui n'est toujours pas résolu. J'ai modifié le code du module de Jeckyl pour l'adapter à la version 1.4.7.3 de PrestaShop que j'utilise: Renommage de this->getPaymentModules en this->_getPaymentModules, puis vers la ligne 76, changement du string 'Payment' en 'payments_gateways' if ($_module->tab == 'payments_gateways' && $_module->active) { ... Le module s'affiche bien dans le BO et me permet de saisir un N° de panier ainsi qu'un mode de paiement. Cool ! Cependant, lorsque j'appuie sur le bouton 'Abracadabra transformation !', j'ai maintenant un beau message d'erreur: Le panier ne peut être chargé ou une commande a déjà était réalisé avec ce dernier Pfff.... Je crois que je suis bon pour reconstruire les lignes de la base à la main Edited September 26, 2012 by m-Facilities.com (see edit history) Link to comment Share on other sites More sharing options...
jmaumene Posted September 26, 2012 Share Posted September 26, 2012 il y à beaucoup de commande ? SELECT * FROM `ps_orders` O LEFT JOIN `ps_order_history` OH USING(`id_order`) HAVING OH.`id_order_history` IS NULL Link to comment Share on other sites More sharing options...
jmaumene Posted September 26, 2012 Share Posted September 26, 2012 Voici une commande SQL pour rajouter un statut aux commande qui n'en ont pas : INSERT INTO `ps_order_history` (`id_employee`,`id_order`,`id_order_state`,`date_add`) SELECT "1" as id_employe, `id_order`, "13" as id_order_state, NOW() as date_add FROM `ps_orders` O WHERE O.`id_order` NOT IN ( SELECT `id_order` FROM `ps_order_history`) Vous pouvez changer le id employé par le votre ( ici 1 ) et vous DEVEZ changer le status, je vous conseil de creer un status "Erreur création commande" afin de pouvoir trier les commandes et les retrouver facilement. 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