-
Posts
64 -
Joined
-
Last visited
neoweiter's Achievements
-
neoweiter started following Override product list query , [resolved] Back office translation error , Ajout d'un champ custom dans le webservice SpecificPrice and 4 others
-
[resolved] Back office translation error
neoweiter replied to Anas fandc's topic in Taxes, Translations & Laws
I had the same problem but the htaccess did not changed anything for me. The solution for me was to set display_error to 'off' in config/defines.inc.php -
Bonjour, Je mets à jour les données de la table ps_specific_price via le webservice, ce qui fonctionne très bien, sauf que j'ai ajouté un champ custom dans cette table : "id_promo" (INT) Lorsque je fais un update des données, tout passe bien, sauf le champ "id_promo", alors qu'il est bien présent dans mon XML : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <specific_price> <id_promo><![CDATA[2]]></id_promo> <id>3362240</id> <id_customer>0</id_customer> <id_product>5658</id_product> <id_group>0</id_group> <from_quantity>1</from_quantity> <price>-1</price> <id_shop>1</id_shop> <id_cart>0</id_cart> <id_currency>0</id_currency> <id_country>0</id_country> <reduction>713</reduction> <reduction_tax>0</reduction_tax> <reduction_type>amount</reduction_type> <from>2022-06-23 00:00:00</from> <to>0</to> </specific_price> </prestashop> J'ai surclassé la class SpecificPrice.php, en ajoutant mon champ id_promo dans les définitions : class SpecificPrice extends SpecificPriceCore { public $id_promo; /** * @see ObjectModel::$definition */ public static $definition = [ 'table' => 'specific_price', 'primary' => 'id_specific_price', 'fields' => [ 'id_shop_group' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId'], 'id_shop' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_promo' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_cart' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_product' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_product_attribute' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId'], 'id_currency' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_specific_price_rule' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId'], 'id_country' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_group' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'id_customer' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'price' => ['type' => self::TYPE_FLOAT, 'validate' => 'isNegativePrice', 'required' => true], 'from_quantity' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true], 'reduction' => ['type' => self::TYPE_FLOAT, 'validate' => 'isPrice', 'required' => true], 'reduction_tax' => ['type' => self::TYPE_INT, 'validate' => 'isBool', 'required' => true], 'reduction_type' => ['type' => self::TYPE_STRING, 'validate' => 'isReductionType', 'required' => true], 'from' => ['type' => self::TYPE_DATE, 'validate' => 'isDateFormat', 'required' => true], 'to' => ['type' => self::TYPE_DATE, 'validate' => 'isDateFormat', 'required' => true], ], ]; Mais il semble toujours ignorer ce champ. Pouvez-vous m'aider ? merci
-
Bonjour à tous, J'ai un soucis avec la liste admin de mon module : les filtres, le tris, et le bouton statut ne marchent pas. La page se recharge mais rien ne change. Voici le code qui crée mon tableau : require_once _PS_MODULE_DIR_ . '/filesmanager/classes/FilesManager.php'; class FilesManagerController extends ModuleAdminController { public function __construct() { $this->bootstrap = true; $this->table = FilesManager::$definition['table']; $this->identifier = FilesManager::$definition['primary']; $this->className = FilesManager::class; $this->lang = false; parent::__construct(); $this->fields_list = [ 'id' => [ //nom du champ sql 'title' => $this->module->l('ID'), 'align' => 'center', 'class' => 'fixed-width-xs' ], 'filename' => [ 'title' => $this->module->l('Fichier'), 'align' => 'left', ], 'date_add' => [ 'title' => $this->l('Date'), 'width' => 100, 'type' => 'date', 'orderby' => true, 'filter' => true, 'search' => true, ], 'active' => [ 'title' => $this->l('Statut'), 'width' => '70', 'align' => 'center', 'active' => 'status', ], ]; $this->addRowAction('edit'); $this->addRowAction('delete'); } } J'ai vérifier les liens, sur les différents éléments, et ils ont pourtant l'air de contenir les bons paramètres : par exemple pour le statut Actif / Inactif : .../index.php?controller=FilesManager&id=1&statusfilesmanager&token=1f2b... Lorsque je clique dessus, la page se recharge, mais l'élément reste actif. Pareil pour les filtres, rien ne change C'est d'autant plus étrange que j'ai un autre module, fait de la même manière, et là tout fonctionne normalement. Mon debug est actif, mais je ne vois aucune erreur Une idée les pros ? 😊 Merci
-
Wow that was exactly it ! Indeed it first calls the function for the listing query, and a second time for the count query. Thanks a lot
-
Hello everytone, After noticing some slowness in the price drop page, I noticed that the getPricesDrop() function fires twice ! I added a echo 'test', that is beeing printed twice on my page. I tried this on multiple functions from classes/Product.php, and It always seems to fire twice. Is this normal ? Is this a bug in Prestashop's core ? Thanks
-
Bonjour, En faisant des rechercher sur des lenteurs, notamment sur la page des promotions, je me rends compte que classes/Product.php est exécutée deux fois ?? Est-ce normal ? Est-ce un bug dans le core de presta ? Avez-vous une idée de comment empêcher cela ? Voir le echo 'test' qui s'imprime deux fois sur ma page! J'ai essayé cela dans plusieurs autres fonctions de cette Class Product.php, et le résultat est le même
-
Bonjour, J'ai créé une STORED PROCEDURE dans mon PhpMyAdmin, qui fonctionne lorsque je l'exécute, mais je n'arrive pas à récupérer les données depuis ma fonction PHP : function GetPromotionProducts(){ $custid = Context::getContext()->customer->id; $id_promo = ($_GET['id_promo']) ? $_GET['id_promo'] : 1; $db = Db::getInstance(_PS_USE_SQL_SLAVE_); $sql = 'CALL `Select_Promos`('.$custid.', '.$id_promo.')'; $results = $db->executeS($sql); var_dump($results); return $results; } Le dump me retourne bool(true) 🤔 au lieu d'un array avec toutes mes données. Si je fais volontairement une faute de frappe dans le nom de la PROC, il me retourne false. Donc j'ai vraiment l'impression qu'il appelle convenablement la procédure, mais sans me retourner les données. Quelqu'un peut m'aider ?
-
Bonjour, Je cherche à modifier la query sql qui affiche la liste des produits dans les catégories, afin de limiter les produits retournés, mais je n'arrive pas à identifier la fonction où je peux modifier cela. Pour le moment je met une condition IF dans la loop productlist.tpl, mais le résultat n'est évidement pas bon du tout, car d'une page à l'autre, le nombre de produits affichés n'est pas le même, et le pager ne tient pas compte des produits masqués. Il faut donc que j'arriver à attaquer la query de base qui retourne directement les bons produits. J'ai vu que la fonction getProductSearchQuery() dans le fichier /controllers/front/listing/CategoryController.php est responsable d'afficher les produits, mais il me semble qu'il n'est pas possible d'y ajouter une condition WHERE. protected function getProductSearchQuery() { $query = new ProductSearchQuery(); $query ->setIdCategory($this->category->id) ->setSortOrder(new SortOrder('product', Tools::getProductsOrder('by'), Tools::getProductsOrder('way'))); return $query; } Où puis-je modifier le requète SQL qui affiche les produits dans les pages catégories ? Merci d'avance pour votre aide
-
Does anywone knows how to add a custom WHERE clause to getProductSearchQuery();