Coeur_De_Lion Posted October 12, 2023 Share Posted October 12, 2023 Problème à résoudre : Page Client du backoffice beaucoup trop lente ou inaccessible ou en erreur 500. Bonjour, j'ai discuté de ce problème avec une personne travaillant pour Prestashop, le problème est connu, il finissait même mes questions, comme quoi ... il savait très bien de quoi je parlais et la question qu'il m'a été posé est la suivante : " Pourquoi vos clients commandent autant ?? " Non, cette question n'a pas été donnée avec humour. Et revoila quoi. ^^ J'ai maintenant des clients qui ont plus de 500 commandes sur leur compte et lorsque je sélectionne un de ces clients dans le menu Clients -> Clients du BO, il faut au minimum 45 secondes pour ouvrir la page des clients qui ont 250 commandes et une belle page d'erreur 500 pour ceux qui ont 500 commandes. Je n'ai pas testé à quelle quantité de commandes les erreurs commences mais je pense que c'est lié au temps passé pour la requête. Si seulement la page client comportait seulement les infos de base du clients et un simple menu pour avoir accès à sa page Commandes, Paniers, Messages, Derniers Mails, Bons de réduction, Adresses... Une bonne partie du problème serait résolut. Mais non cette page client fait appelle à la totalité des commandes du client, à la totalité des paniers clients utilisés ou pas, à la totalité des .... Enfin bon vous avez compris. J'ai fait appel à un modeur il y a quelques temps qui m'a dit "pas de soucis, je peux faire le nécessaires". Il m'a fait un module qui fait le menu en question mais... qu'en apparence seulement... la page charge quand même toutes les informations et donc ... inutile. Il se reconnaitra, après plusieurs demandent il devait faire le nécessaire mais toujours occupé par d'autres clients et au final il ne m'a jamais recontacté. J'ai donc payé un module pour rien mais j'ai espoir qu'un jour il me recontactera afin d'éviter une mauvaise pub (?) Oui je sais, petit message personnel. Enfin bon, si quelqu'un à une solution, je suis preneur. Merci d'avance. Link to comment Share on other sites More sharing options...
Coeur_De_Lion Posted October 12, 2023 Author Share Posted October 12, 2023 J'ai oublié Testé sur un Presta 1.7.6.2 et un 1.7.8.10 avec transfert de BDD des clients, paniers, commandes, etc... PHP 7.2 et PHP 7.4 Link to comment Share on other sites More sharing options...
Eolia Posted October 12, 2023 Share Posted October 12, 2023 Ca fait partie des choses corrigées dans la version PhenixSuite mettez des LIMIT dans les fonctions d'appel des commandes, paniers et produits vus Link to comment Share on other sites More sharing options...
Coeur_De_Lion Posted October 13, 2023 Author Share Posted October 13, 2023 ^^ j'ai essayé la version PhenixSuite mais malheureusement certains module, que j'utilise pour ce site, ne sont pas compatibles. Si vous savez dans quel fichier se trouve le SELECT par défaut pour le visuel des commandes de l'onglet Commandes, je suis preneur. Le tout est de pouvoir LIMIT une 100ene de commandes ce qui devrait, je pense, donner plus de rapidité et en même temps suffisamment de commandes pour gérer le jour même les préparations et faire les recherches de commandes. Link to comment Share on other sites More sharing options...
Mediacom87 Posted October 13, 2023 Share Posted October 13, 2023 il y a 1 minute, Coeur_De_Lion a dit : ^^ j'ai essayé la version PhenixSuite mais malheureusement certains module, que j'utilise pour ce site, ne sont pas compatibles. Si vous savez dans quel fichier se trouve le SELECT par défaut pour le visuel des commandes de l'onglet Commandes, je suis preneur. Le tout est de pouvoir LIMIT une 100ene de commandes ce qui devrait, je pense, donner plus de rapidité et en même temps suffisamment de commandes pour gérer le jour même les préparations et faire les recherches de commandes. Vos plus anciennes commandes datent de longtemps ? Link to comment Share on other sites More sharing options...
Coeur_De_Lion Posted October 13, 2023 Author Share Posted October 13, 2023 2 il y a 2 minutes, Mediacom87 a dit : Vos plus anciennes commandes datent de longtemps ? De 2020 mais la plupart sont des pro et ils demandent à toujours avoir leurs factures de dispo. Link to comment Share on other sites More sharing options...
Mediacom87 Posted October 13, 2023 Share Posted October 13, 2023 il y a 19 minutes, Coeur_De_Lion a dit : 2 De 2020 mais la plupart sont des pro et ils demandent à toujours avoir leurs factures de dispo. Je comprends, 3 ans de toute manière cela fait court pour faire un ménage fort. Sinon, il existe ce module qui peut répondre à votre besoin, https://prestashop.pxf.io/5bRGQb Link to comment Share on other sites More sharing options...
Eolia Posted October 13, 2023 Share Posted October 13, 2023 il y a 27 minutes, Coeur_De_Lion a dit : ^^ j'ai essayé la version PhenixSuite mais malheureusement certains module, que j'utilise pour ce site, ne sont pas compatibles. Si vous savez dans quel fichier se trouve le SELECT par défaut pour le visuel des commandes de l'onglet Commandes, je suis preneur. Le tout est de pouvoir LIMIT une 100ene de commandes ce qui devrait, je pense, donner plus de rapidité et en même temps suffisamment de commandes pour gérer le jour même les préparations et faire les recherches de commandes. Juste pour info, vous avez la liste des modules non-compatibles ? Pour les fonctions, c'est dans l'AdminCustomerController: $customer->getBoughtProducts(); Cart::getCustomerCarts($customer->id); $customer->getLastConnections(); Referrer::getReferrers($customer->id); et ce truc qui ne sert vraiment à rien: $sql = 'SELECT DISTINCT cp.id_product, c.id_cart, c.id_shop, cp.id_shop AS cp_id_shop FROM '._DB_PREFIX_.'cart_product cp JOIN '._DB_PREFIX_.'cart c ON (c.id_cart = cp.id_cart) JOIN '._DB_PREFIX_.'product p ON (cp.id_product = p.id_product) WHERE c.id_customer = '.(int)$customer->id.' AND NOT EXISTS ( SELECT 1 FROM '._DB_PREFIX_.'orders o JOIN '._DB_PREFIX_.'order_detail od ON (o.id_order = od.id_order) WHERE product_id = cp.id_product AND o.valid = 1 AND o.id_customer = '.(int)$customer->id.' )'; $interested = Db::getInstance()->executeS($sql); $interested = array_slice($interested,0,50); $total_interested = count($interested); for ($i = 0; $i < $total_interested; $i++) { $product = new Product($interested[$i]['id_product'], false, $this->default_form_language, $interested[$i]['id_shop']); if (!Validate::isLoadedObject($product)) { continue; } $interested[$i]['url'] = $this->context->link->getProductLink( $product->id, $product->link_rewrite, Category::getLinkRewrite($product->id_category_default, $this->default_form_language), null, null, $interested[$i]['cp_id_shop'] ); $interested[$i]['id'] = (int)$product->id; $interested[$i]['name'] = Tools::htmlentitiesUTF8($product->name); } 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