Récemment
-
multiples déclinaisons sur produit [RÉSOLU]
Bugs & Améliorations19 -
ONePageCheckout
BUG connus4 -
Informations générales
PhenixSuite2 -
timepicker absent dans le BO
Bugs & Améliorations11 -
Installation Phenixsuite depuis 1.6.1.24
Questions relatives à l'installation/upgrade4 -
Passage au Webp qui n'a pas fonctionné
Bugs & Améliorations11 -
erreur 500 module paypal
Bugs & Améliorations8 -
probleme page de commande ONE PAGE
Bugs & Améliorations3 -
Traduction module Colissimo en admin
Bugs & Améliorations2 -
Erreur module block_cart en php8.2 mais pas en php7.4
Bugs & Améliorations14 -
Bug page de commande
Bugs & Améliorations4 -
Nouveautés possibles ?
Nouvelles fonctionnalités2 -
bug installation bdd
Questions relatives à l'installation/upgrade26 -
Configuration de wamp compatible presta.1.6.1.24 et PhenixSuite 1.6.2.25
Discussion générale61 -
Responsive sur liste des produits dans les commandes
Bugs & Améliorations2 -
affichage incorrect de produit personnalisé au panier
Bugs & Améliorations3 -
Erreur PHP à l'installation du module cedconnector
Bugs & Améliorations2 -
Problème calcul HT
Bugs & Améliorations18 -
MAJ .htaccess Apache 2.4 et 2.2
Nouvelles fonctionnalités5 -
Erreur SQL 1.6.2.23 -> 1.6.2.25
Questions relatives à l'installation/upgrade2
[1.6.1.0]+ Too many tables, MySQL can only use 61 tables in a join - Backoffice, créer/éditer un produit (SpecificPriceRule.php)
-
Lorsque vous avez plus de 59 catégories dans une condition de règle catalogue, PrestaShop crash lors de l'enregistrement produit. Le problème peut survenir avec moins de règles catégories, si vos règles utilisent d'autres conditions (features, attributes, suppliers, manufacturers,
Le code en cause réside dans classes/SpecificPriceRule.php fonction SpecificPriceRule::getAffectedProducts()
} elseif ($condition['type'] == 'category') { $query->leftJoin('category_product', 'cp'.(int)$id_condition, 'p.`id_product` = cp'.(int)$id_condition.'.`id_product`') ->where('cp'.(int)$id_condition.'.id_category = '.(int)$condition['value']); } elseif ($condition['type'] == 'supplier') {
Vous devez remplacer cette section par:
} elseif ($condition['type'] == 'category') { if ($once) { $query->innerJoin('specific_price_rule_condition_group', 'sprg', 'sprg.id_specific_price_rule='.(int)$this->id); $query->innerJoin('specific_price_rule_condition','sprc', 'sprc.type = "category" and sprc.id_specific_price_rule_condition_group = sprg.id_specific_price_rule_condition_group'); $query->innerJoin('category_product', 'cp', 'p.`id_product` = cp.`id_product` and cp.id_category = sprc.value'); $once = false; } } elseif ($condition['type'] == 'supplier') {
Ajoutez ensuite la ligne $once = true; juste avant le foreach:
// Add the conditions $once = true; foreach ($condition_group as $id_condition => $condition) {
Enfin créez un index dans votre schéma (sql):
ALTER TABLE `ps_specific_price_rule_condition` ADD INDEX `id_specific_price_rule_condition_group_type` (`id_specific_price_rule_condition_group`, `type`);
Ce bug est également lié à celui-ci: https://bb.enter-solutions.net/topic/1071/1-6-1-0-duplicate-entry-xxxxxx-for-key-id_product_2-insert-into-ps_specific_price-backoffice-créer-éditer-un-produit-specificpricerule-php