fly_in_the_sky Posted November 9, 2010 Share Posted November 9, 2010 Bonjour,j'ai un soucis, lorsque je fais une commande, et que je choisis un point relais france express. au moment ou je confirme le payement par virement, il me donne cette erreur : Warning: Invalid argument supplied for foreach() in /home/casse-noisettes.be/htdocs/shop/modules/mailalerts/mailalerts.php on line 274 Fatal error (TopRelaisBean -> point_relais_id is empty) ce qui correspond à ces lignes là : public function sendCustomerAlert($id_product, $id_product_attribute) { global $cookie, $link; $customers = Db::getInstance()->ExecuteS(' SELECT id_customer, customer_email FROM `'._DB_PREFIX_.'mailalert_customer_oos` WHERE `id_product` = '.intval($id_product).' AND `id_product_attribute` = '.intval($id_product_attribute)); $product = new Product(intval($id_product), false, intval($cookie->id_lang)); $templateVars = array( '{product}' => (is_array($product->name) ? $product->name[intval(Configuration::get('PS_LANG_DEFAULT'))] : $product->name), '{product_link}' => $link->getProductLink($product) ); foreach ($customers as $cust) { if ($cust['id_customer']) { $customer = new Customer(intval($cust['id_customer'])); $customer_email = $customer->email; $customer_id = $customer->id; } else { $customer_email = $cust['customer_email']; $customer_id = 0; } $iso = Language::getIsoById(intval($cookie->id_lang)); if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/customer_qty.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/customer_qty.html')) Mail::Send(intval(Configuration::get('PS_LANG_DEFAULT')), 'customer_qty', $this->l('Product available'), $templateVars, strval($customer_email), NULL, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/'); if ($customer_id) $customer_email = 0; self::deleteAlert(intval($customer_id), strval($customer_email), intval($id_product), intval($id_product_attribute)); } } Alors, là ... je sais franchement pas trop quoi faire.Est ce que vous pensez que c'est parceque j'utilise la version 1.3.2 ? Nicolas Deru Link to comment Share on other sites More sharing options...
fly_in_the_sky Posted November 10, 2010 Author Share Posted November 10, 2010 Après avoir un désinstallé , et réinstallé le module alert mail. l'erreur à évoluée ; Fatal error (TopRelaisBean -> point_relais_id is empty) Link to comment Share on other sites More sharing options...
rebolon Posted November 22, 2010 Share Posted November 22, 2010 Après divers échange je vais proposer une solution rapide au problème en attendant de publier une nouvelle version sur prestastore.Description du problème :Lors d'une commande, une fois que l'on sélectionne le point relais et que l'on clique sur suivant, prestashop ne passe pas dans le hookBackBeforePayment. La conséquence est que rien n'est inscrit en base et lors de la validation de la commande, le module ne peux retrouver ses petits.Ce problème n'apparait pas sur tous les environnements, il ne faut faire les modifications que si cela est nécessaire.Proposition de solution :Dans le fichier module.tpl du module :1) supprimer la ligne suivante (ligne 37-38) :// Positionner le champ back à extraCarrier si possible$("input:radio#back").value = 'extraCarrier' ;2) écrire la ligne suivante dans la fonction initDisplayCarrier :function initDisplayCarrier(){[...] // Positionner le champ back a extraCarrier si possible $("input:hidden[@name=back]").val('extraCarrier') ;}De fait, prestashop va passer dans le hookBackBeforePayment une fois que vous validerez la sélection. 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