Klemart3D Posted March 3, 2016 Share Posted March 3, 2016 (edited) Bonjour, Suite à la réception du mail d'alerte automatique de Prestashop (chez moi en v.1.6.0.13) qui me dit d'aller voir dans Outils > Log, voici le message que j'y trouve : 04:34:56 : Gravité 4 - "Cart cannot be loaded or an order has already been placed using this cart " (Si jamais un dev Presta lit ça : serait-il possible d'ajouter l'ID du panier en question dans le log afin de faciliter le débug ?) Cela fait suite à une commande client passée quelques minutes auparavant, validée par virement bancaire (module bankwire). Et effectivement, dans mes logs PHP, voici les 2 erreurs liées remontées : [04:34:56] [error] PHP Notice: Undefined variable: shop in /var/www/prestashop/classes/Mail.php on line 244, referer: http://www.monsite.fr/module/bankwire/payment [04:34:56] [error] PHP Notice: Trying to get property of non-object in /var/www/prestashop/classes/Mail.php on line 244, referer: http://www.monsite.fr/module/bankwire/payment La ligne incriminée fait partie de la méthode Send de Mail.php : // get templatePath if (preg_match('#'.$shop->physical_uri.'modules/#', str_replace(DIRECTORY_SEPARATOR, '/', $template_path)) && preg_match('#modules/([a-z0-9_-]+)/#ui', str_replace(DIRECTORY_SEPARATOR, '/',$template_path), $res)) $module_name = $res[1]; Il n'y a, à priori pas de raison que $shop ne soit pas défini, car même si $id_shop ne figure pas parmi les paramètres de la méthode, il est tout de même redéfini : if (!$id_shop) $id_shop = Context::getContext()->shop->id; [...] // Get the path of theme by id_shop if exist if (is_numeric($id_shop) && $id_shop) { $shop = new Shop((int)$id_shop); $theme_name = $shop->getTheme(); if (_THEME_NAME_ != $theme_name) $theme_path = _PS_ROOT_DIR_.'/themes/'.$theme_name.'/'; } Peut-être est-ce un problème de compatibilité avec mon thème ? D'après la seule info que j'ai pu dénicher sur ce topic en néerlandais, cela pourrait être dû à un double clic client au moment de la validation de la commande… mais allez interroger un client pour savoir s'il a cliqué 1 ou 2 fois lors de sa commande ! Avez-vous déjà rencontré ce bug ? À qui la faute : Prestashop et sa méthode Mail->Send ? Le module Bankwire ? Au thème ? Une bribe d'idée pour le corriger ? Merci à toute tentative d'aide Edited March 3, 2016 by Klemart3D (see edit history) Link to comment Share on other sites More sharing options...
Bfn Posted August 23, 2022 Share Posted August 23, 2022 Six ans plus tard j’ai le même problème : le code de Mail.php considère que `$shop` est forcément définit alors que ce n’est pas le cas. D’ailleurs, IntelliJ souligne la variable comme « probablement indéfinie ». Il faudrait au moins qu’il lève une exception plus tôt dans le code. Dans mon cas j’ai eu le problème lors d’un re-submit du form de validation d’order alors que le premier avait planté avec une erreur (corrigée entre temps). 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