Troll2Jeux Posted April 28, 2020 Share Posted April 28, 2020 Bonjour,1.7.5.2 Nous sommes un site marchand (troll2jeux.com) et nous venons de passer à PrestaShop 1.7.5.2. Dans le cadre de la vente en ligne, nous autorisation la paiement par Paypal et par virement bancaire. Lors d'un paiement par virement, le statut de la commande qui s'affiche dans le back office est "En attente de virement bancaire". Jusque là, tout va bien. Nous autorisons également la vente d'articles que nous n'avons pas en stock au moment de la commande en spécifiant un message particulier (délai de livraison rallongé, le temps de passer commande auprès de notre fournisseur). Après la validation de la commande, le statut de la commande qui s'affiche dans le back office est "En attente de réapprovisionnement (payé)". Jusque là, tout va toujours bien. Or, nous avons constaté un erreur étrange : lorsqu'un client nous commande un produit que nous n'avons pas en stock et décide de nous payer par virement, le statut de la commande qui s'affiche dans le back office est initialement "En attente de virement bancaire" puis, environ 2 secondes plus tard, passe toute seule en "Paiement à distance accepté" ! Et envoi la facture en PDF au client, confirmant le fait qu'il ait payé, avant même qu'il ait effectué son virement ! Et là, ça ne va plus du tout. D'où ces questions : - Quelqu'un a-t-il déjà rencontré ce problème ? - Comment gérer les règles de modifications automatiques de statuts de commandes de Prestashop ? - Comment établir des règles spécifiques ? Merci d'avance pour vos réponses et bonne journée ! PS : ci-joint, un exemple de commande problématique Link to comment Share on other sites More sharing options...
couillaler Posted April 29, 2020 Share Posted April 29, 2020 Hello, Dans le menu Paramètre de la boutique - Commande, onglet Etats de commande, vérifie les cases cochées pour l'état "En attente de Virement bancaire". Ici, on peut effectivement activer des états automatiques selon les statuts. Comme "Marquer la commande associée comme payée.", par exemple. Commençons déjà par là. Antoine Link to comment Share on other sites More sharing options...
Troll2Jeux Posted April 29, 2020 Author Share Posted April 29, 2020 Merci pour ta réponse, Antoine, J'aurais tellement aimé que ce fut aussi simple que cela... Malheureusement, les cases m'ont l'air correctes : Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 29, 2020 Share Posted April 29, 2020 Bonjour, je n'ai jamais rencontré de changement seul de status, celui ne change que parce que quelque chose lui dit de changer, donc il faut plonger dans le code et étudier tous les fichiers possibles en commençant par les overrides et tous les modules greffés sur le hook de changement de statut. Link to comment Share on other sites More sharing options...
Troll2Jeux Posted April 29, 2020 Author Share Posted April 29, 2020 Nous sommes bien d'accord, mais là est bien le problème : plonger dans le code, ce n'est clairement pas ma spécialité et je n'ai aucune idée d'où chercher... Je ne sais d'ailleurs pas ce qu'est un hook de changement de statut... ^^ Link to comment Share on other sites More sharing options...
doekia Posted November 2, 2020 Share Posted November 2, 2020 Soit vous avez renommé un statut (out_of_stock_unpaid) en paiement accepté, soit votre variable de configuration PS_OS_OUT_OF_STOCK_UNPAID pointe vers le mauvais statut. Les 2 cas étant équivalent. Link to comment Share on other sites More sharing options...
SamSonnite Posted November 9, 2020 Share Posted November 9, 2020 Bonjour, Problème identique avec PrestaShop 1.7.6.7. Pour nous, c'est quel que soit le moyen de paiement utilisé, que l'état de la commande passe à "Paiement à distance accepté", dès que le stock devient négatif. Pour un achat via virement bancaire, on passe dans la même seconde de "En attente de virement bancaire" à "Paiement à distance accepté" et pour un achat par CB (PayPlug), de "Paiement accepté" à "Paiement à distance accepté", le statut devrait rester à "Paiement accepté". Où trouve t'on PS_OS_OUT_OF_STOCK_UNPAID, je n'ai rien trouvé dans la base ? Le but est de faire fonctionner normalement le comportement si rupture de stock : "Accepter les commandes". Merci de votre aide Link to comment Share on other sites More sharing options...
doekia Posted November 9, 2020 Share Posted November 9, 2020 (edited) SELECT * FROM `ps_configuration` WHERE `name` LIKE 'PS\\_OS\\_%' Chez moi ça donne ceci id_configuration id_shop_group id_shop name value date_add date_upd 131 NULL NULL PS_OS_BANKWIRE 10 0000-00-00 00:00:00 0000-00-00 00:00:00 127 NULL NULL PS_OS_CANCELED 6 0000-00-00 00:00:00 0000-00-00 00:00:00 122 NULL NULL PS_OS_CHEQUE 1 0000-00-00 00:00:00 0000-00-00 00:00:00 136 NULL NULL PS_OS_COD_VALIDATION 14 0000-00-00 00:00:00 0000-00-00 00:00:00 126 NULL NULL PS_OS_DELIVERED 5 0000-00-00 00:00:00 0000-00-00 00:00:00 129 NULL NULL PS_OS_ERROR 8 0000-00-00 00:00:00 0000-00-00 00:00:00 130 NULL NULL PS_OS_OUTOFSTOCK 9 0000-00-00 00:00:00 0000-00-00 00:00:00 134 NULL NULL PS_OS_OUTOFSTOCK_PAID 9 0000-00-00 00:00:00 0000-00-00 00:00:00 135 NULL NULL PS_OS_OUTOFSTOCK_UNPAID 13 0000-00-00 00:00:00 0000-00-00 00:00:00 123 NULL NULL PS_OS_PAYMENT 2 0000-00-00 00:00:00 0000-00-00 00:00:00 132 NULL NULL PS_OS_PAYPAL 11 0000-00-00 00:00:00 0000-00-00 00:00:00 124 NULL NULL PS_OS_PREPARATION 3 0000-00-00 00:00:00 0000-00-00 00:00:00 128 NULL NULL PS_OS_REFUND 7 0000-00-00 00:00:00 0000-00-00 00:00:00 125 NULL NULL PS_OS_SHIPPING 4 0000-00-00 00:00:00 0000-00-00 00:00:00 133 NULL NULL PS_OS_WS_PAYMENT 12 0000-00-00 00:00:00 0000-00-00 00:00:00 Le statut 13 est donc celui consacré pour le cas des produits commandés mais hors stock Edited November 9, 2020 by doekia (see edit history) Link to comment Share on other sites More sharing options...
SamSonnite Posted November 10, 2020 Share Posted November 10, 2020 Bonjour, et chez moi, on a comme différences : PS_OS_COD_VALIDATION 13 au lieu de 14 PS_OS_OUTOFSTOCK_UNPAID 12 au lieu de 9 PS_OS_WS_PAYMENT 11 au lieu de 12 avec comme états des commandes possibles : 1 En attente du paiement par chèque 2 Paiement accepté 3 Préparation en cours 4 En cours de livraison 5 Livré 6 Annulé 7 Remboursé 8 Erreur de paiement 9 En attente de réapprovisionnement 10 En attente du paiement par virement bancaire 11 En attente du paiement par PayPal 12 Paiement à distance accepté 15 Payé avec Saferpay Donc c'est un peu le bazar et PS_OS_OUTOFSTOCK_PAID devrait bien être à 9. Pouvez-vous me dire à quel état correspond PS_OS_COD_VALIDATION ? Et que sont les états 13 et 14 chez vous ? Merci. Link to comment Share on other sites More sharing options...
SamSonnite Posted November 10, 2020 Share Posted November 10, 2020 Pourriez-vous me recopier les états des commandes de 1 à 14 ? Merci Link to comment Share on other sites More sharing options...
SamSonnite Posted November 10, 2020 Share Posted November 10, 2020 En regardant dans un 1.7.6.8 tout frais j'ai : PS_OS_COD_VALIDATION 13 - En attente de paiement à la livraison Link to comment Share on other sites More sharing options...
SamSonnite Posted November 10, 2020 Share Posted November 10, 2020 Dans les états de commande j'ai : 29 - En attente de paiement à la livraison Ce que j'ai fait pour réparer : Dans la table PS_CONFIGURATION PS_OS_COD_VALIDATION nouvelle valeur 29 PS_OS_OUTOFSTOCK_UNPAID nouvelle valeur 9 qui correspond à "En attente de réapprovisionnement" (problème du topic) PS_OS_WS_PAYMENT nouvelle valeur 12 Merci pour votre aide. Link to comment Share on other sites More sharing options...
doekia Posted November 10, 2020 Share Posted November 10, 2020 Essayez simplement de comprendre avant de vous inonder de pre-supposition sans interret. Les 2 seuls qui nous interessent sont PS_OS_OUTOFSTOCK_PAID et PS_OS_OUTOFSTOCK_UNPAID (le PS_OS_OUTOFSTOCK doit avoir la même valeur que PS_OS_OUTOFSTOCK_PAID) Vous créez un statut "En attente d'approvisionnement (non-payé)" en duplicant de qui existe sur "En attente d'approvisionnement" et en changeant le drapeau "marquer la commande comme payé" à non sur ce nouveau statut. Vous relevez son id et vous changez en bdd la valeur de PS_OS_OUTOFSTOCK_UNPAID à cette valeur Marquez le sujet en résolu ensuite Link to comment Share on other sites More sharing options...
SamSonnite Posted November 10, 2020 Share Posted November 10, 2020 > Essayez simplement de comprendre avant de vous inonder de pre-supposition sans interret. Pardon ? J'ai détaillé, puisqu'en fait nous avons mis au jour plusieurs problèmes et pas uniquement PS_OS_OUTOFSTOCK_UNPAID qui pointait vers un mauvais état. > Marquez le sujet en résolu ensuite Ce n'est pas moi qui ai ouvert ce topic, je ne me permettrais pas de le clôturer. Merci pour votre aide ! Link to comment Share on other sites More sharing options...
doekia Posted November 10, 2020 Share Posted November 10, 2020 il y a 3 minutes, SamSonnite a dit : Ce n'est pas moi qui ai ouvert ce topic, je ne me permettrais pas de le clôturer. Bien vu de bafouer les règles du forum. NE PAS SE GREFFER SUR UN TOPIC EXISTANT. OUVRIR LE SIEN Allez moi j'abandonne 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