Jump to content

modification automatique du statut des commandes


Recommended Posts

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

pb validation auto.png

Link to comment
Share on other sites

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

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

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

  • 6 months later...

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

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 by doekia (see edit history)
Link to comment
Share on other sites

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

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

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

> 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

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