Jump to content

Modifier statut par defaut d'une commande - module cashondelivery


Recommended Posts

Bonjour,

J'ai une boutique avec trois modes de paiement différents (cb, paypal et cash on delivery). Sauf que pour le paiement à l'enlèvement de la commande, son statut va directement être défini sur "en cours de préparation" or la commande doit être validée par les équipes avant. J'aimerais donc savoir où je peux modifier le statut par défaut après une commande avec cette option de paiement. J'ai cherché dans la bdd, mais je n’ai rien trouvé qui comporte ces informations.

Share this post


Link to post
Share on other sites

ligne 57 de validation.php

$this->module->validateOrder((int)$this->context->cart->id, Configuration::get('PS_OS_PREPARATION'), $total, $this->module->displayName, null, array(), null, false, $customer->secure_key);

remplacez 'PS_OS_PREPARATION' par le statut désiré:

PS_OS_CHEQUE (1)

PS_OS_PAYMENT (2)

PS_OS_PREPARATION (3)

PS_OS_SHIPPING (4)

PS_OS_DELIVERED (5)

PS_OS_CANCELED (6)

PS_OS_REFUND (7)

PS_OS_ERROR (8)

PS_OS_OUTOFSTOCK (9)

PS_OS_BANKWIRE (10)

PS_OS_WS_PAYMENT (11)

PS_OS_OUTOFSTOCK_PAID (9)

PS_OS_OUTOFSTOCK_UNPAID (12)

PS_OS_COD_VALIDATION (13)

Share this post


Link to post
Share on other sites

  • 7 months later...

Leur nom est dans ps_order_state_lang mais n'existe pas dans la table configuration.

Vous devez l'ajouter en lui créant une valeur spécifique qui pourra être utilisée dans le module.

Exemple:

image.png.b476351f9a380ceb5b9f40619cc8e84b.png

Vous voulez utiliser l'élément 19 ou 18, ajoutez leur valeur dans ps_configurationINSERT INTO `ps_configuration` (`id_shop_group`, `id_shop`, `name`, `value`, `date_add`, `date_upd`) VALUES (NULL, NULL, 'CUSTOM_OS_STATE_1', '18', '', '');

INSERT INTO `ps_configuration` (`id_shop_group`, `id_shop`, `name`, `value`, `date_add`, `date_upd`)
VALUES 
    (NULL, NULL, 'CUSTOM_OS_STATE_1', '18', '', ''),
    (NULL, NULL, 'CUSTOM_OS_STATE_2', '19', '', '');

Maintenant, dans le code du module

Configuration::get('CUSTOM_OS_STATE_1')

Renverra bien l'id_order_state 18

Share this post


Link to post
Share on other sites

Merci Eolia pour votre réponse.

Ce sont des choses que je n'ai jamais fait j'ai besoin d'un ptit coup de pouce supplémentaire :

Quote

Vous devez l'ajouter en lui créant une valeur spécifique qui pourra être utilisée dans le module.

Ça c'est bon je l'ai crée via le PA de mon Presta, et dans la liste c'est le dernier, il apparait sous le numéro 29 en id_order_state

 

Quote

Maintenant, dans le code du module

Configuration::get('CUSTOM_OS_STATE_1')

Ça aussi c'est bon j'ai trouvé la commande (normalement 🙃) elle est dans le fichier ps_cashondelivery\ps_cashondelivery.php

 

Quote

ajoutez leur valeur dans ps_configurationINSERT INTO

C'est ça que je n'ai pas compris, il faut rajouter cette valeur dans la table ps_configuration c'est ça ?

Quand je clique sur Insérer j'ai des champs à remplir qui s'ouvrent (voir capture jointe) c’est là ?
 

ps_config.png

Share this post


Link to post
Share on other sites

Sinon j'ai cliqué au pif sur SQL en haut dans le menu, j'ai vu qu'on pouvait entrer du code du coup j'ai copié coller votre code et j'ai une erreur qui sort.

Après je préfère attendre votre retour je veux pas trop trifouiller la BDD surtout que j'y connais absolument rien...

Merci

 

SQL.png

Share this post


Link to post
Share on other sites

34 minutes ago, Arnaud Laborde said:

Il manque un ';' pour terminer la requête.

D'accord merci, j'avais finalement enlevé la ',' après la ")" et c'était aussi passé ^^

Par contre quand je passe une commande avec le mode de livraison Cash on delivery ça se met toujours en "En cours de préparation" rien n'a changé...

J'ai bien modifié ma page .php comme indiqué.

Du coup y'a un truc qui me chiffonne.

Les commandes pour Cash On Delivery sont toujours toutes passées avec "En cours de préparation" dans le BO.

Une chose que j'ai remarqué tout à l'heure en ouvrant pour la 1ère fois mon fichier ps_cashondelivery.php : avant de modifier quoi que ce soit dedans, juste pour rechercher le "configuration::get" j'avais ça en code :

(!Configuration::get('PS_OS_PAYMENT')

En voyant la ligne du dessus où tous les statuts sont énumérés il me semble reconnaitre que le code pour en cours de préparation c'est plutôt' PS_OS_PREPARATION'.

Donc j'avais des commandes qui passaient en "En cours de prépa" avec une page .php qui indiquait "(!Configuration::get('PS_OS_PAYMENT')"

Jme demande si y'a pas qqch ailleurs?

EDIT : Je remarque que dans ma page .php, la partie du code ou j'ai modifié le ::get y'a un com juste au dessus qui dit :

Quote

        /* For 1.4.3 and less compatibility */

Moi je suis en version 1.7.6.1.

Edited by Steph13
Ajout d'infos (see edit history)

Share this post


Link to post
Share on other sites

(!Configuration::get('PS_OS_PAYMENT')

Ca, ça veut dire DIFFÉRENT de Configuration::get('PS_OS_PAYMENT')

Avez-vous bien mis votre nouvel état de commande à cet endroit ?

$this->module->validateOrder((int)$this->context->cart->id, Configuration::get('CUSTOM_OS_STATE_1'), $total, $this->module->displayName, null, array(), null, false, $customer->secure_key);

 

Share this post


Link to post
Share on other sites

Ah d'accord 🤦‍♀️

Je vous screen là ou j'ai placé le CUSTOM OS STATE

Je n'ai pas le même code que vous, ce qui précède par exemple je ne l'ai pas.

Je vous mets également le code de la page en quote.

En tout cas j'ai cherché avec plusieurs mots clefs "Configuration::get", tous les "OS" etc... il n'y en a qu'à cet endroit.

Je voulais coller le code entier le message est hidden ça ne passe pas

 

code entier.png

Edited by Steph13 (see edit history)

Share this post


Link to post
Share on other sites

Apparemment je dois attendre que des modos valident mes messages.

C'est bon j'ai trouvé le problème, je m'étais tompée de fichier .php.

Ce n'est pas dans ps_cashondelivery\ps_cashondelivery.php mais ps_cashondelivery\controllers\front\validation.php.

J'ai testé ça marche 😃 c'est donc résolu pour moi.

Merci bcp Eolia 🌺

Edited by Steph13 (see edit history)
  • Like 1

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More