AnasShop Posted April 11, 2013 Share Posted April 11, 2013 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 More sharing options...
Greeny Posted May 27, 2013 Share Posted May 27, 2013 (edited) 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 May 27, 2013 by Greeny (see edit history) Link to comment Share on other sites More sharing options...
Greeny Posted May 27, 2013 Share Posted May 27, 2013 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 More sharing options...
Greeny Posted May 29, 2013 Share Posted May 29, 2013 (edited) 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 May 29, 2013 by Greeny (see edit history) 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