Stigz Posted August 28, 2019 Share Posted August 28, 2019 (edited) Bonjour, J'ai remarqué que le stock_available est updaté à chaque appel de BO > Catalogue > stock et c'est une slow query. Le résultat c'est que çà se met à charger avec l'effet vue.js sans rien afficher (internal server error) sauf si on a un max_execution_time de 180 minimum là la première page de "stock" s'affiche mais c'est du coup ingérable. # Time: 2019-08-28T07:08:02.992778Z # User@Host: root[root] @ localhost [127.0.0.1] Id: 4082 # Query_time: 149.469123 Lock_time: 0.000153 Rows_sent: 0 Rows_examined: 1129142 SET timestamp=1566975933; UPDATE ps1_stock_available sa SET sa.reserved_quantity = ( SELECT SUM(od.product_quantity - od.product_quantity_refunded) FROM ps1_orders o INNER JOIN ps1_order_detail od ON od.id_order = o.id_order INNER JOIN ps1_order_state os ON os.id_order_state = o.current_state WHERE o.id_shop = 1 AND os.shipped != 1 AND ( o.valid = 1 OR ( os.id_order_state != 8 AND os.id_order_state != 6 ) ) AND sa.id_product = od.product_id AND sa.id_product_attribute = od.product_attribute_id GROUP BY od.product_id, od.product_attribute_id ) WHERE sa.id_shop = 1; Du coup, je ne sais pas où çà se trouve mais si quelqu'un a une piste j'y regarderais bien ou si quelqu'un a une solution... J'ai mis à jour de prestashop 1.7.6.0 vers 1.7.6.1 mais çà ne règle pas le problème Le problème vient d'une requête ajax inutile de \admin\themes\new-theme\public\stock.bundle.js ou de la requête SQL elle-même ? La ligne qui pose problème $this->updateReservedProductQuantity($shopId, $errorState, $cancellationState, $idProduct, $idOrder); Edited August 28, 2019 by Stigz (see edit history) Link to comment Share on other sites More sharing options...
Stigz Posted August 28, 2019 Author Share Posted August 28, 2019 ma configuration Informations sur votre serveur Informations sur votre serveur Windows NT build 18362 (Windows 10) i586 Version du logiciel serveur : Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.1.31 Version de PHP : 7.1.31 Limite de mémoire : 256M Temps maximal d'exécution : 600 Taille max. pour envoi de fichiers : 32M info_outline Informations sur la base de données Version de MySQL : 8.0.14 Serveur MySQL : 127.0.0.1 Nom MySQL : newvajra-shop Utilisateur MySQL : root Préfixe des tables : ps1_ Moteur MySQL : InnoDB Connecteur MySQL : DbPDO Link to comment Share on other sites More sharing options...
Adrien T. Posted December 19, 2019 Share Posted December 19, 2019 En effet le nouveau système de Prestashop met à jour les quantités réservées du stock lors de l'appel du GET à l'API. Le stock est mis à jour à chaque commande sur le shop, donc peut-être que cela n'est pas nécessaire de le faire une nouvelle fois ici. Le fichier en question ne peut pas être override car il est dans le nouveau coeur de Prestashop et aucun hook n'est disponible pour le moment. Voici ce que j'ai fait pour ce problème en attendant une mise à jour : Le fichier se trouve ici : /src/PrestaShopBundle/Entity/Repository/StockRepository.php public function getData(QueryParamsCollection $queryParams) { /* $this->stockManager->updatePhysicalProductQuantity( $this->shopId, $this->orderStates['error'], $this->orderStates['cancellation'] ); */ return parent::getData($queryParams); } Attention, à la prochaine mise à jour ce code sera supprimé. En attendant de trouver mieux, j'espère que cela vous aidera. 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