Jump to content

L E O

Members
  • Posts

    156
  • Joined

  • Last visited

  • Days Won

    1

L E O last won the day on December 11 2015

L E O had the most liked content!

Profile Information

  • Activity
    Web development agency

Recent Profile Visitors

8,384,700 profile views

L E O's Achievements

Newbie

Newbie (1/14)

13

Reputation

16

Community Answers

  1. Je suis entièrement d'accord avec toi ! Prestashop est une mine de BUGS très handicapante pour qui veut travailler sérieusement au développement de e-business. Je me bats tous les jours avec ce monstre chronophage pour essayer de colmater les brèches de ses lacunes : multiboutiques, commandes erronées, arrondis, etc... Et je pense migrer vers une solution payante mais vraiment faite pour les pros et pas pour jouer à la dînette. Encore merci Eolia pour tes infos.
  2. Merci Eolia pour ta réponse. Ce n'est pas le log qui me pose problème mais son origine que je cherche à corriger. Tu n'as pas répondu à ma question concernant la méthode init() : de quel fichier s'agit il ? Si c'est OrderConfirmationController.php alors la modification ne corrige rien apparemment (le log est toujours là donc le problème persiste). Je vais tester la suppression du die() effectivement débile, surtout en version de production. Si quelqu'un d'autre à des infos sur le sujet, nous sommes évidemment preneurs. Merci à vous.
  3. Malgré l'ajout de ces quelques lignes dans le script OrderConfirmationController.php, le problème persiste. Lors de la dernière commande enregistrée, j'ai encore le log : Frontcontroller::init - Cart cannot be loaded or an order has already been placed using this cart Que faire ? Est-ce qu'il faut vider un cache pour que les modifs soient effectives ou autres ?
  4. Bonjour, En cherchant, j'ai trouvé une portion de code similaire dans le fichier controllers/front/OrderConfirmationController.php La différence se situe à la ligne 58 ou les lignes suivantes sont manquantes : if ($this->context->cookie->id_cart) { $this->context->cookie->__unset('id_cart'); } Est-ce qu'il s'agit du bon fichier ? Dois-je seulement ajouter ces lignes pour corriger le pb ? Voici le fichier OrderConfirmationController.php que j'obtiendrai après correction. Je rappelle que je suis sur PS 1.6.1.1. <?php /* * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 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/osl-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/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class OrderConfirmationControllerCore extends FrontController { public $ssl = true; public $php_self = 'order-confirmation'; public $id_cart; public $id_module; public $id_order; public $reference; public $secure_key; /** * Initialize order confirmation controller * @see FrontController::init() */ public function init() { parent::init(); $this->id_cart = (int)(Tools::getValue('id_cart', 0)); $is_guest = false; /* check if the cart has been made by a Guest customer, for redirect link */ if (Cart::isGuestCartByCartId($this->id_cart)) { $is_guest = true; $redirectLink = 'index.php?controller=guest-tracking'; } else { $redirectLink = 'index.php?controller=history'; } $this->id_module = (int)(Tools::getValue('id_module', 0)); $this->id_order = Order::getOrderByCartId((int)($this->id_cart)); if ($this->context->cookie->id_cart) { $this->context->cookie->__unset('id_cart'); } $this->secure_key = Tools::getValue('key', false); $order = new Order((int)($this->id_order)); if ($is_guest) { $customer = new Customer((int)$order->id_customer); $redirectLink .= '&id_order='.$order->reference.'&email='.urlencode($customer->email); } if (!$this->id_order || !$this->id_module || !$this->secure_key || empty($this->secure_key)) { Tools::redirect($redirectLink.(Tools::isSubmit('slowvalidation') ? '&slowvalidation' : '')); } $this->reference = $order->reference; if (!Validate::isLoadedObject($order) || $order->id_customer != $this->context->customer->id || $this->secure_key != $order->secure_key) { Tools::redirect($redirectLink); } $module = Module::getInstanceById((int)($this->id_module)); if ($order->module != $module->name) { Tools::redirect($redirectLink); } } /** * Assign template vars related to page content * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $this->context->smarty->assign(array( 'is_guest' => $this->context->customer->is_guest, 'HOOK_ORDER_CONFIRMATION' => $this->displayOrderConfirmation(), 'HOOK_PAYMENT_RETURN' => $this->displayPaymentReturn() )); if ($this->context->customer->is_guest) { $this->context->smarty->assign(array( 'id_order' => $this->id_order, 'reference_order' => $this->reference, 'id_order_formatted' => sprintf('#%06d', $this->id_order), 'email' => $this->context->customer->email )); /* If guest we clear the cookie for security reason */ $this->context->customer->mylogout(); } $this->setTemplate(_PS_THEME_DIR_.'order-confirmation.tpl'); } /** * Execute the hook displayPaymentReturn */ public function displayPaymentReturn() { if (Validate::isUnsignedId($this->id_order) && Validate::isUnsignedId($this->id_module)) { $params = array(); $order = new Order($this->id_order); $currency = new Currency($order->id_currency); if (Validate::isLoadedObject($order)) { $params['total_to_pay'] = $order->getOrdersTotalPaid(); $params['currency'] = $currency->sign; $params['objOrder'] = $order; $params['currencyObj'] = $currency; return Hook::exec('displayPaymentReturn', $params, $this->id_module); } } return false; } /** * Execute the hook displayOrderConfirmation */ public function displayOrderConfirmation() { if (Validate::isUnsignedId($this->id_order)) { $params = array(); $order = new Order($this->id_order); $currency = new Currency($order->id_currency); if (Validate::isLoadedObject($order)) { $params['total_to_pay'] = $order->getOrdersTotalPaid(); $params['currency'] = $currency->sign; $params['objOrder'] = $order; $params['currencyObj'] = $currency; return Hook::exec('displayOrderConfirmation', $params); } } return false; } } Merci
  5. Merci Eolia pour cette réponse SUPER rapide ! Questions subsidiaires : Je mets ça où, à la place de quoi ? Qu'est-ce que cela corrige ? Est-ce que je dois quand même appliquer le correctif proposé par kalle@makewebo ? Merci ;-)
  6. Bonjour, Le message "Frontcontroller::init - Cart cannot be loaded or an order has already been placed using this cart" apparait dans les logs pour toutes les commandes quelques soit leur moyen de paiement. Je suis en PS 1.6.1.1 depuis plus d'1 an en multiboutiques et cet incident persiste depuis la mise à jour vers cette version. J'ai trouvé un sujet traitant de ce problème sur le forum PS : https://www.prestashop.com/forums/topic/466782-cart-cannot-be-loaded-or-an-order-has-already-been-placed-using-this-cart/page-3 Est-ce que l'équipe Prestashop peut : Confirmer l'existence d'un bug qui se produit à l'issue de le confirmation de commande tel que décrit dans le post de kalle@makewebo : So the problem we found is that at the order-confirmation page the id_cart cookie was still set. So in FrontController init() it then checks if that cookie is set and then checks if the cart already been used for an order, which it then has. Then it will write out the error in the log. Valider le bon fonctionnement du correctif apporter pas kalle@makewebo et bellini13 dans le même Post : Just add the PaymentModule.php in /override/classes/ folder Votre réponse (Prestashop) est attendue par un très grand nombre d'utilisateurs et de développeurs. Si par hasard d'autres utilisateurs de PS ont rencontré ce problème et l'ont résolus , merci de nous faire par de la solution appliquée. Merci pour votre compréhension.
  7. Merci Broceliande pour ta réponse précise. Pour l'instant j'en suis seulement au stade de la réflexion et la piste que tu m'indiques est intéressante. Si je pars dans cette direction, je développerai moi-même la solution et te solliciterai peut-être pour du conseil. Est-ce que l'idée d'une base tierce contenant les tables de stocks uniquement et commune aux différentes boutiques te semble envisageable ? Merci pour ton aide. Léo
  8. Hello, I am in charge of a Prestashop 1.6 multistore platform since 2014 with 7 shops on the same Prestashop. I would like to know if future 1.7 version of Prestashop will manage multistore too and if the core will be developped to works better in multistore mode. If no, which solutions did you suggest to conserve this feature ? Thanks for your answers. Léo
  9. Bonjour à tous, je suis à la recherche d'une solution permettant à plusieurs boutiques Prestashop (de la même version) d'exploiter un stock unique. Ce stock serait celui d'une boutique PS référente. Je ne souhaite pas utiliser la solution multi-boutiques de Prestashop qui génère trop de complications et d'incompatibilités entre les modules. Il pourrait s'agir d'un module à installer sur chaque boutique satellite ou bien de scripts PHP+MySQL. Est-ce que quelqu'un a déjà été confronté à ce besoin et quelle solution a été choisie ? Merci pour vos pistes d'investigation. Léo
  10. On peut le faire avec StoreManager : prestashopmanager.com Mais toujours pas avec Prestashop !
  11. Ce n'est pas à Prestashop de corriger ça ? Il me semble que c'est leur code à la base !
  12. Bonjour, j'ai découvert une nouvelle erreur dans Prestashop 1.6.1.1. Lorsque je passe une commande du statut : En attente du paiement par chèque vers le statut Paiement accepté, j'obtiens ce joli message : [PrestaShopException]. cf fichier joint. Malgré cela, le nouveau statut est bien enregistré. Cela se produit de la même manière pour le paiement par virement bancaire ! Merci pour votre aide.
  13. On est d'accord sur tout ... mais concrètement, je fais quoi maintenant. Mon client me tanne avec ça et je ne sais plus quoi lui répondre. Il faut absolument que je trouve une solution technique pour corriger (contourner) ce bug ! Je peux donner toutes les infos nécessaires pour faire avancer le sujet. Merci.
  14. Merci DOEKIA pour cette réponse peu rassurante. Le site tourne depuis plus d'un an en multiboutique et nous avons corrigé la plupart des gros problèmes avec des rustines et des modules complémentaires. Cependant, ce problème d'affectation de commande persiste et je ne sais pas comment le corriger. Dans notre cas, le client ne change pas de boutique en cours de route, comme tu le décris dans ton post. Il reste toujours sur la même boutique pour passer sa commande. Ce qui est vrai, c'est que les clients sont partagés entre les différentes boutiques. Ce choix a été fait initialement lors du passage en multiboutique. Le catalogue est également partagé entre les boutiques. J'ai l'impression que cette erreur d’aiguillage se produit uniquement pour les clients qui ont déjà commandé dans 2 boutiques différentes. Est-ce que PRESTASHOP aurait un patch pour corriger ce bug ? Merci.
×
×
  • Create New...