Jump to content

Paramétrer nouvel état de suivi des commandes


Recommended Posts

Bonjour,

 

Je souhaiterai ajouté un nouveau module de paiement pour payer les commandes par téléphone.

Le principe est identique au paiement par virement bancaire.

 

Alors, j'ai pris le module "bankwire" que j'ai adapté pour créer le nouveau module en changeant les noms du dossier racine, du fichier php et tous le reste.

 

Tous fonctionne correctement sauf pour valider la commande. Au fait, quand je clique sur le bouton "Je confirme ma commande" j'ai l'erreur "Erreur HTTP 500 (Internal Server Error)" sur le fichier validation.php qui se trouve sur la racine do dossier du module.

 

Au fait, il faut configurer un nouveau statut pour l'état de la commande au niveau du fichier validation.php

 

Le problème c'est que je ne sais pas comment faire pour paramétrer ce nouveau état de commande. Je peux créer un nouveau statut mais je ne sais pas comment pour le paramétrer au niveau du module et au niveau des fichiers de configuration de prestashop. Je n'arrive pas à faire le lien entre le nom du statut et le code du statut à paramétrer.

 

Merci de votre aide

Link to comment
Share on other sites

  • 1 month later...

Bonjour AnasShop,

 

Je relance le topic car je rencontre a peu près le même problème que toi, en fait j'ai créé de nouveaux statuts de commande et j'aimerai les utiliser dans le code de certains modules. J'ai trouvé dans le fichier validation.php du module bankwire cette ligne (l. 64) qui configure le statut de commande à retourner suite à la validation :

 

$this->module->validateOrder($cart->id, Configuration::get('PS_OS_BANKWIRE'), $total, $this->module->displayName, NULL, $mailVars, (int)$currency->id, false, $customer->secure_key);

 

Je pense que ce qu'il faut modifier c'est : 'PS_OS_BANKWIRE'. Il s'agit du nom du statut qui est stocké dans la table ps_configuration. Pour pouvoir le remplacer par le nom de notre statut, je pense qu'il faut réussir à rentrer notre nouveau statut dans cette table ps_configuration. Et ça... je n'ai pas encore trouvé comment le faire !

 

Si quelqu'un à une idée... Merci beaucoup !

Edited by Greeny (see edit history)
Link to comment
Share on other sites

Il y a une bonne piste de réponse dans ce topic on dirait : http://www.prestashop.com/forums/topic/181513-resolu-changer-le-statut-automatique-apres-validation/page__hl__statut+commande__fromsearch__1

 

Par contre si j'ai bien compris ça veut dire que l'on doit créer la ligne qui concerne ' PS_OS_MON_MODULE' directement dans la table 'ps_configuration' ??!

Ayant créé un nouveau module de paiement, ça m'étonne que l'on ne puisse pas mettre un bout de code dans la fonction d'install du module pour que ça se fasse automatiquement... mais je n'ai encore rien vu qui y ressemble !

Si quelqu'un sait ...

Link to comment
Share on other sites

Je vous partage une réponse de Ehinarr :

 

 

Voici un exemple de la fonction qui crée un statut: Vous pouvez appeler cette fonction directement à partir de la fonction Install();

 

 private function createOS()
   {
       $orderState = new OrderState();
       $orderState->name = array();
       $orderState->template = array();

       foreach (Language::getLanguages() AS $language)
       {
           $orderState->name[$language['id_lang']] = 'Mon Statut';
           $orderState->template[$language['id_lang']] = 'monstatut'; //Si le statut envoyer un email au client
       }

       $orderState->send_email = true; //Si le statut envoyer un email au client, sinon il est false
       $orderState->color      = '#F0FFF0';
       $orderState->unremovable = false;
       $orderState->hidden     = false;
       $orderState->delivery   = false;
       $orderState->logable    = false;
       $orderState->invoice    = false;

       if ($orderState->add())
       copy(dirname(__FILE__).'/logo.gif', _PS_IMG_DIR_.'os/'.$orderState->id.'.gif');

       Configuration::updateValue('_PS_OS_MONSTATUT_', (int)$orderState->id);
   }

 

La création de notre donnée 'PS_OS_MON_MODULE' dans la table 'ps_configuration' se fait donc dans la fonction précédente avec la dernière ligne :

Configuration::updateValue('_PS_OS_MONSTATUT_', (int)$orderState->id);

Edited by Greeny (see edit history)
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...