Alzerha Posted June 28, 2015 Share Posted June 28, 2015 (edited) Bonjour à tous, Suite à la remarque d'un client, (problème que je n'avais pas auparavant), qui semblerait être apparu par magie, il semblerait que je rencontre un problème de page blanche avec marqué "État de commande invalide" après la validation de commande. Ce problème semble arriver après la validation d'une commande : - Par virement bancaire ; - Par chèque. Une validation "au comptant à la livraison" ne semble pas être touché par ce problème. Pour résumer : - Ajouter panier - Ok ; - Sélection moyen de paiement "Virement bancaire" - Ok ; - Récapitulatif de commande - Ok ; - Clic "Je confirme ma commande" - PB - Génération d'une page blanche en FO avec "État de commande invalide" Pour information : - Dans le BO - La commande semble bien présente avec les détails - Le client reçois bien l'email de type "bankwire" - Le client n'a pas de confirmation de commande ? Je reste disponible pour vous communiquer les informations de mon site par MP. Merci par avance pour votre aide. Alzerha Edited July 16, 2015 by Alzerha (see edit history) Link to comment Share on other sites More sharing options...
Alzerha Posted June 28, 2015 Author Share Posted June 28, 2015 Bonjour, Il faudrait activer l'affichage des erreurs pour savoir : http://doc.prestashop.com/pages/viewpage.action?pageId=15925413 3pom J'ai réaliser la manipulation, j'ai les codes qui s'affichent sur la page d'accueil : Notice: Undefined offset: 13 in /homepages/28/d556324270/htdocs/classes/Manufacturer.php on line 213 Notice: Undefined offset: 16 in /homepages/28/d556324270/htdocs/classes/Manufacturer.php on line 213 Notice: Undefined offset: 5 in /homepages/28/d556324270/htdocs/classes/Manufacturer.php on line 213 Notice: Undefined offset: 6 in /homepages/28/d556324270/htdocs/classes/Manufacturer.php on line 213 Notice: Undefined offset: 11 in /homepages/28/d556324270/htdocs/classes/Manufacturer.php on line 213 Notice: Undefined offset: 14 in /homepages/28/d556324270/htdocs/classes/Manufacturer.php on line 213 Notice: Undefined index: yoffset in /homepages/28/d556324270/htdocs/modules/trustedshops/classes/TSCommon.php on line 1378 Notice: Undefined index: jscode in /homepages/28/d556324270/htdocs/modules/trustedshops/classes/TSCommon.php on line 1379 Cependant sur la page validation de commande. Aucun code, simplement banche blanche avec "Etat de commande invalide" de marqué. Link to comment Share on other sites More sharing options...
Alzerha Posted June 28, 2015 Author Share Posted June 28, 2015 (edited) Ok, vous devez avoir un override de PayementModule vous avez un fichier dans /override/classes/ qui s'appelle PaymentModule.php ? Si oui vous pouvez coller son contenu. Dans le dossier /override/classes/ je n'ai qu'un fichier "index.php" Le reste sont des dossiers : cache / controller / db / exception / helper / log / module / order / pdf / range / shop / stock / tax / tree / webservice Ces dossiers contiennent tous un fichier "index.php" à l’intérieur. Dois-je coller le continue d'un fichier ou dossier ? Edited June 28, 2015 by Alzerha (see edit history) Link to comment Share on other sites More sharing options...
Alzerha Posted June 28, 2015 Author Share Posted June 28, 2015 (edited) Non si il devait être à un endroit c'est dans /override/classes/ Avez-vous supprimé des Etats de commandes ? Vous pouvez coller votre fichier /modules/bankwire/bankwire.php Merci De souvenir je n'ai rien supprimé dans les Etats de commandes. J'ai édité certains paramètre uniquement via le BO. Un screen des "états" à été édité dans mon premier message de post. Voici ci-dessous le code du fichier "bankwire.php" <?php /* * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_PS_VERSION_')) exit; class BankWire extends PaymentModule { private $_html = ''; private $_postErrors = array(); public $details; public $owner; public $address; public $extra_mail_vars; public function __construct() { $this->name = 'bankwire'; $this->tab = 'payments_gateways'; $this->version = '1.0.7'; $this->author = 'PrestaShop'; $this->controllers = array('payment', 'validation'); $this->is_eu_compatible = 1; $this->currencies = true; $this->currencies_mode = 'checkbox'; $config = Configuration::getMultiple(array('BANK_WIRE_DETAILS', 'BANK_WIRE_OWNER', 'BANK_WIRE_ADDRESS')); if (!empty($config['BANK_WIRE_OWNER'])) $this->owner = $config['BANK_WIRE_OWNER']; if (!empty($config['BANK_WIRE_DETAILS'])) $this->details = $config['BANK_WIRE_DETAILS']; if (!empty($config['BANK_WIRE_ADDRESS'])) $this->address = $config['BANK_WIRE_ADDRESS']; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Bank wire'); $this->description = $this->l('Accept payments for your products via bank wire transfer.'); $this->confirmUninstall = $this->l('Are you sure about removing these details?'); if (!isset($this->owner) || !isset($this->details) || !isset($this->address)) $this->warning = $this->l('Account owner and account details must be configured before using this module.'); if (!count(Currency::checkPaymentCurrencies($this->id))) $this->warning = $this->l('No currency has been set for this module.'); $this->extra_mail_vars = array( '{bankwire_owner}' => Configuration::get('BANK_WIRE_OWNER'), '{bankwire_details}' => nl2br(Configuration::get('BANK_WIRE_DETAILS')), '{bankwire_address}' => nl2br(Configuration::get('BANK_WIRE_ADDRESS')) ); } public function install() { if (!parent::install() || !$this->registerHook('payment') || ! $this->registerHook('displayPaymentEU') || !$this->registerHook('paymentReturn') || !$this->registerHook('advancedPaymentApi')) return false; return true; } public function uninstall() { if (!Configuration::deleteByName('BANK_WIRE_DETAILS') || !Configuration::deleteByName('BANK_WIRE_OWNER') || !Configuration::deleteByName('BANK_WIRE_ADDRESS') || !parent::uninstall()) return false; return true; } private function _postValidation() { if (Tools::isSubmit('btnSubmit')) { if (!Tools::getValue('BANK_WIRE_DETAILS')) $this->_postErrors[] = $this->l('Account details are required.'); elseif (!Tools::getValue('BANK_WIRE_OWNER')) $this->_postErrors[] = $this->l('Account owner is required.'); } } private function _postProcess() { if (Tools::isSubmit('btnSubmit')) { Configuration::updateValue('BANK_WIRE_DETAILS', Tools::getValue('BANK_WIRE_DETAILS')); Configuration::updateValue('BANK_WIRE_OWNER', Tools::getValue('BANK_WIRE_OWNER')); Configuration::updateValue('BANK_WIRE_ADDRESS', Tools::getValue('BANK_WIRE_ADDRESS')); } $this->_html .= $this->displayConfirmation($this->l('Settings updated')); } private function _displayBankWire() { return $this->display(__FILE__, 'infos.tpl'); } public function getContent() { if (Tools::isSubmit('btnSubmit')) { $this->_postValidation(); if (!count($this->_postErrors)) $this->_postProcess(); else foreach ($this->_postErrors as $err) $this->_html .= $this->displayError($err); } else $this->_html .= '<br />'; $this->_html .= $this->_displayBankWire(); $this->_html .= $this->renderForm(); return $this->_html; } public function hookPayment($params) { if (!$this->active) return; if (!$this->checkCurrency($params['cart'])) return; $this->smarty->assign(array( 'this_path' => $this->_path, 'this_path_bw' => $this->_path, 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/' )); return $this->display(__FILE__, 'payment.tpl'); } public function hookDisplayPaymentEU($params) { if (!$this->active) return; if (!$this->checkCurrency($params['cart'])) return; if (isset($params['adv_pay_api']) && $params['adv_pay_api'] === true) { $payment_options = new PaymentOption(); $payment_options->cta_text = $this->l('Pay by Bank Wire'); $payment_options->logo = Media::getMediaPath(dirname(__FILE__).'/bankwire.jpg'); $payment_options->action = $this->context->link->getModuleLink($this->name, 'validation', array(), true); } else $payment_options = array( 'cta_text' => $this->l('Pay by Bank Wire'), 'logo' => Media::getMediaPath(dirname(__FILE__).'/bankwire.jpg'), 'action' => $this->context->link->getModuleLink($this->name, 'validation', array(), true) ); return $payment_options; } public function hookAdvancedPaymentApi($params) { $params['adv_pay_api'] = true; return $this->hookDisplayPaymentEU($params); } public function hookPaymentReturn($params) { if (!$this->active) return; $state = $params['objOrder']->getCurrentState(); if (in_array($state, array(Configuration::get('PS_OS_BANKWIRE'), Configuration::get('PS_OS_OUTOFSTOCK'), Configuration::get('PS_OS_OUTOFSTOCK_UNPAID')))) { $this->smarty->assign(array( 'total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false), 'bankwireDetails' => Tools::nl2br($this->details), 'bankwireAddress' => Tools::nl2br($this->address), 'bankwireOwner' => $this->owner, 'status' => 'ok', 'id_order' => $params['objOrder']->id )); if (isset($params['objOrder']->reference) && !empty($params['objOrder']->reference)) $this->smarty->assign('reference', $params['objOrder']->reference); } else $this->smarty->assign('status', 'failed'); return $this->display(__FILE__, 'payment_return.tpl'); } public function checkCurrency($cart) { $currency_order = new Currency($cart->id_currency); $currencies_module = $this->getCurrency($cart->id_currency); if (is_array($currencies_module)) foreach ($currencies_module as $currency_module) if ($currency_order->id == $currency_module['id_currency']) return true; return false; } public function renderForm() { $fields_form = array( 'form' => array( 'legend' => array( 'title' => $this->l('Contact details'), 'icon' => 'icon-envelope' ), 'input' => array( array( 'type' => 'text', 'label' => $this->l('Account owner'), 'name' => 'BANK_WIRE_OWNER', 'required' => true ), array( 'type' => 'textarea', 'label' => $this->l('Details'), 'name' => 'BANK_WIRE_DETAILS', 'desc' => $this->l('Such as bank branch, IBAN number, BIC, etc.'), 'required' => true ), array( 'type' => 'textarea', 'label' => $this->l('Bank address'), 'name' => 'BANK_WIRE_ADDRESS', 'required' => true ), ), 'submit' => array( 'title' => $this->l('Save'), ) ), ); $helper = new HelperForm(); $helper->show_toolbar = false; $helper->table = $this->table; $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT')); $helper->default_form_language = $lang->id; $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; $this->fields_form = array(); $helper->id = (int)Tools::getValue('id_carrier'); $helper->identifier = $this->identifier; $helper->submit_action = 'btnSubmit'; $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->tpl_vars = array( 'fields_value' => $this->getConfigFieldsValues(), 'languages' => $this->context->controller->getLanguages(), 'id_language' => $this->context->language->id ); return $helper->generateForm(array($fields_form)); } public function getConfigFieldsValues() { return array( 'BANK_WIRE_DETAILS' => Tools::getValue('BANK_WIRE_DETAILS', Configuration::get('BANK_WIRE_DETAILS')), 'BANK_WIRE_OWNER' => Tools::getValue('BANK_WIRE_OWNER', Configuration::get('BANK_WIRE_OWNER')), 'BANK_WIRE_ADDRESS' => Tools::getValue('BANK_WIRE_ADDRESS', Configuration::get('BANK_WIRE_ADDRESS')), ); } } Edited June 28, 2015 by Alzerha (see edit history) Link to comment Share on other sites More sharing options...
Alzerha Posted June 28, 2015 Author Share Posted June 28, 2015 (edited) Le fichier semble bon, vous pouvez faire une recherche dans ta table configuration de la base de donnée et cherchez : PS_OS_BANKWIRE PS_OS_OUTOFSTOCK PS_OS_OUTOFSTOCK_UNPAID Voir si vous avez bien les valeurs. Elles arrivent avec quel status final les commandes quand vous avez une page blanche. Etant un peu perdu, avez vous la démarche pour réaliser la recherche dans la table de configuration de la BDD ? Faut-il aller sur phpMyAdmin et rechercher la table "ps_configuration" ou est-ce autre chose ? Edit via phpMyAdmin : PS_OS_BANKWIRE - Value 10 PS_OS_OUTOFSTOCK - Value 9 PS_OS_OUTOFSTOCK_UNPAID - Value 16 Pour l'état, les commandes arrivent bien avec l'état "En attente de virement bancaire" par défaut dans le BO de commande. Mon problème est surtout le message sur le FO qui apparaît je ne sais pas pourquoi... Edited June 28, 2015 by Alzerha (see edit history) Link to comment Share on other sites More sharing options...
Alzerha Posted June 28, 2015 Author Share Posted June 28, 2015 La je sèche un peu ... Donc on va éliminer les causes : Vous allez dans le BO commande état En attente de virement et vous me dites ce qu'il y a de coché ? Merci tout de même du temps consacré au problème ! Je ne pense pas que cela vienne des états, car il semblerait que j'ai le même problème avec le module "Paiement par Chèque". Pour les cases cochées de l'état : Envoyer un e-mail au client lorsque la commande change d'état. - Coché Envoi d'email type - Bankwire Link to comment Share on other sites More sharing options...
Alzerha Posted June 28, 2015 Author Share Posted June 28, 2015 (edited) Le problème vient bien des cases cochés selon les Etats : Si vous allez dans langue -> traduction -> traduire les messages d'erreurs vous recherchez État de commande invalide Vous aurez un seul nom : Invalid new order status Ce nom apparait seulement dans le fichier /classes/order/OrderHistory.php Donc c'est bien au changement de status que le bug apparait Vous êtes sur quel version de PS ? Est ce que l'article que vous achetez est en stock ? Qu'avez vous de coché pour le status En attente de réapprovisionnement En effet. Je suis sur la dernière version de PS : 1.6.0.14 Non, tous mes articles ne sont pas en stock, fonctionnant uniquement en "pré-commande". Dans l'état "En attente de réapprovisionnement" j'ai juste la case : Marquer la commande associée comme payée. Edited June 28, 2015 by Alzerha (see edit history) Link to comment Share on other sites More sharing options...
Alzerha Posted June 28, 2015 Author Share Posted June 28, 2015 Ok, et quelle est la version du module banwire ? Virement bancaire v1.0.7 - par PrestaShop J'ai le souvenir d'avoir mis à jour ce module il y a pas si longtemps je crois bien.. Pour information, j'ai changé la quantité des produits, pour les passer "en stock" ! Le problème semble réglé via ma commande fictive. Il y a donc un problème uniquement lorsque de produit est de quantité 0 ou inférieur. On s'approche ! Link to comment Share on other sites More sharing options...
Alzerha Posted June 28, 2015 Author Share Posted June 28, 2015 (edited) Vous avez de quoi de cocher pour En attente de réapprovisionnement (non payé) J'ai de coché : Envoyer un e-mail au client lorsque la commande change d'état. Avez l'email "outofstock" Edited June 28, 2015 by Alzerha (see edit history) Link to comment Share on other sites More sharing options...
Zebx Posted June 29, 2015 Share Posted June 29, 2015 Bonjour, J'ai un peu survolé votre discussion et je ne maîtrise pas bien les versions 1.6 mais y a un truc qui me semble bizarre dans les infos données : PS_OS_OUTOFSTOCK_UNPAID - Value 16 Ce statut renverrait donc à l'id numéro 16, or dans le screen il n'y a que 13 statuts définis... j'imagine donc que c'est pas normal... Ceci étant dit, perso je me souviens avoir supprimé ce changement de statut automatique pour l'attente de réappro. C'était source de comportements parfois inattendus, donc par ma part je préférais attendre d'avoir reçu le paiement pour ensuite passer manuellement au statut "attente de réappro" (et puis ça permet aussi de pas oublier de passer ses commandes chez les fournisseurs ) Le code à supprimer/commenter pour pouvoir passer en manuel est détaillé ici : https://www.prestashop.com/forums/topic/237308-probleme-statue-de-commande/?do=findComment&comment=1777839 NB: Appliquer cette modif peut peut-être résoudre le problème dans le cas présent mais je vérifierais quand-même cette histoire de statuts qui semblent incomplets (je ne connais pas la liste des statuts par défaut d'une version 1.6.0.14) A+ Zebx Link to comment Share on other sites More sharing options...
Alzerha Posted June 29, 2015 Author Share Posted June 29, 2015 Bien vu ! Quand j'ai posé la question pour moi il était crée Alzerha il y a deux status en 1.6.0.14 En attente de réapprovisionnement (non payé) && En attente de réapprovisionnement Donc il faut que tu crée le status En attente de réapprovisionnement (non payé), et ensuite dans ta base de donnée tu passes l'id à 14 de PS_OS_OUTOFSTOCK_UNPAID En effet, j'ai du mal comprendre. Cela m'avait un peu surpris quand j'ai marqué l'ID mais ne connaissant pas les états par défaut également il serait bizarre de pouvoir supprimer un état essentiel au bon fonctionnement de PS... :x Ai-je une possibilité via le remplacement d'un fichier, de remettre les états par défaut ? Car il semblerait qu'il y en ai au minimum 16 ! Donc autant tout rajouter et être tranquille... En espérant que cela règle le problème... Link to comment Share on other sites More sharing options...
Alzerha Posted June 29, 2015 Author Share Posted June 29, 2015 (edited) Voici les états sur une installation clean 1.6.0.14 Capture d'écran de 2015-06-29 10:00:30.png Normalement vous ne pouvez pas les supprimer, il est possible que l'installation de la boutique a rencontré un problème, ou sinon un bug avec le module payplug C'est une installation direct en 0.14 ou une mise à jours d'une autre version ? 3pom Oui, je ne disais bien que je n'avais pas touché grand chose officiellement.. Je ne pense pas qu'il y ai un problème d'installation, car je n'avais pas ce problème il y a quelques mois. Il s'agit d'une mise à jour, j'ai commencé en version 1.6, mais je ne sais plus laquelle (Shop commencé en janvier 2015 - de souvenir 1.6.0.9) Je vais installer une installation à blanc en 1.6.0.9 voir ce que j'ai dans les états à l'origine.. Je joints dans ce message un screen des états d'origine qui semblent correspondre à mon installation. Je pense qu'il s'agit d'un problème du module Payplug qui a remplacé l'état par défaut. Je l'ai désinstallé/supprimé, mais cela ne corrige rien. Edited June 29, 2015 by Alzerha (see edit history) Link to comment Share on other sites More sharing options...
Alzerha Posted June 29, 2015 Author Share Posted June 29, 2015 (edited) Problème résolu semble t-il ! Il s'agissait bien d'un problème j'imagine de la mise à jour en 1.6.0.14 et des nouveaux états de commande en conflits je suppose avec le module Payplug qui avait crée un état n°13. N'utilisant plus Payplug, j'ai donc remis les 13 états comme par défaut sur version 1.6.0.14 (Cf screen). J'ai du également changé dans la base de données la valeur, initialement 16 de PS_OS_OUTOFSTOCK_UNPAID à la valeur 13 afin de faire correspondre l'ID à l'état. Merci à okom3pom pour ses explications et à Zebx pour son coup d’œil remarquable ! Edited June 29, 2015 by Alzerha (see edit history) 1 Link to comment Share on other sites More sharing options...
leste Posted September 23, 2015 Share Posted September 23, 2015 Hello Petite question c'est ou dans la base de donnée ??? PS_OS_OUTOFSTOCK_UNPAID Link to comment Share on other sites More sharing options...
jp77 Posted November 25, 2015 Share Posted November 25, 2015 Bonjour à tous Un grand merci pour ce post car j'avais aussi le même problème suite à une mise à jour Link to comment Share on other sites More sharing options...
jp77 Posted November 25, 2015 Share Posted November 25, 2015 un GRAND MERCI pour ce post Okkom Link to comment Share on other sites More sharing options...
superv Posted April 6, 2019 Share Posted April 6, 2019 hello everyone I have the same error with 1.6.1.23 can someone help me? I can't solve thank you 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