Jump to content

Lorem Ipsum

Members
  • Posts

    63
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Lorem Ipsum

  1. Bonjour, Presta V 1.7.6.7, ps_facetedsearch V 3.5.0 (avant de me dire qu'il faut update, j'aimerai savoir d'où ça vient) Pour le site d'un client, nous avons nos log de requêtes lente gavé de cette requête : SELECT fp.id_feature, fp.id_feature_value, COUNT(DISTINCT p.id_product) c FROM ( SELECT p.id_product, p.id_manufacturer, SUM(sa.quantity) as quantity, p.condition, p.weight, p.price, pl.name FROM ps_product p LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN ps_stock_available sa ON (p.id_product = sa.id_product AND IFNULL(pac.id_product_attribute, 0) = sa.id_product_attribute AND sa.id_shop = 1 AND sa.id_shop_group = 0 ) INNER JOIN ps_product_lang pl ON (p.id_product = pl.id_product AND pl.id_shop = 1 AND pl.id_lang = 1) INNER JOIN ps_category_product cp ON (p.id_product = cp.id_product) INNER JOIN ps_category c ON (cp.id_category = c.id_category AND c.active=1) INNER JOIN ps_product_shop ps ON (p.id_product = ps.id_product AND ps.id_shop = 1 AND ps.active = TRUE) LEFT JOIN ps_feature_product fp ON (p.id_product = fp.id_product) LEFT JOIN ps_feature_product fp_1 ON (p.id_product = fp_1.id_product) LEFT JOIN ps_feature_product fp_2 ON (p.id_product = fp_2.id_product) LEFT JOIN ps_feature_product fp_3 ON (p.id_product = fp_3.id_product) LEFT JOIN ps_feature_product fp_4 ON (p.id_product = fp_4.id_product) LEFT JOIN ps_feature_product fp_5 ON (p.id_product = fp_5.id_product) WHERE ((fp.id_feature_value=16)) AND ((fp_1.id_feature_value=62)) AND ((fp_2.id_feature_value=66)) AND ((fp_3.id_feature_value=80)) AND ((fp_4.id_feature_value=98)) AND ((fp_5.id_feature_value=99)) AND p.visibility IN ('both', 'catalog') AND c.nleft>=283 AND c.nright<=284 AND ps.id_shop='1' GROUP BY p.id_product ) p INNER JOIN ps_feature_product fp ON (p.id_product = fp.id_product) LEFT JOIN ps_feature_product fp_1 ON (p.id_product = fp_1.id_product) LEFT JOIN ps_feature_product fp_2 ON (p.id_product = fp_2.id_product) LEFT JOIN ps_feature_product fp_3 ON (p.id_product = fp_3.id_product) LEFT JOIN ps_feature_product fp_4 ON (p.id_product = fp_4.id_product) LEFT JOIN ps_feature_product fp_5 ON (p.id_product = fp_5.id_product) LEFT JOIN ps_feature_product fp_6 ON (p.id_product = fp_6.id_product) WHERE ((fp.id_feature=1)) AND ((fp_1.id_feature_value=16)) AND ((fp_2.id_feature_value=62)) AND ((fp_3.id_feature_value=66)) AND ((fp_4.id_feature_value=80)) AND ((fp_5.id_feature_value=98)) AND ((fp_6.id_feature_value=99)) GROUP BY fp.id_feature_value; Je n'arrive pas à identifier exactement d'où sort cette requête. Mon exploration du code m'a amené au fichier "modules/ps_facetedsearch/tests/php/FacetedSearch/Adapter/MySQLTest.php" par ce qu'il n'y a que là que je trouve "SUM(sa.quantity)" par exemple. Si ça vient bien de là, comment le désactiver? Je ne tiens pas à faire tourner des tests unitaire sur la base de prod et encore moins sur le serveur de prod. Ca impacte les perf de nos autres sites. Une idée?
  2. Le cache... J'ai vidé le cache via la ligne de commande et j'ai à présent accès à mon url... Je ne sais plus si j'avais purgé le cache via l'interface, je sais que j'avais supprimé le class_index dans le doute.
  3. Bonjour, Je suis en train d'expérimenter avec le nouveau système de controller utilisant symfony (doc) mais je n'arrive pas à accéder à l'url qui doit exécuter mon controller. Je ne sais pas où j'ai loupé une étape... Voici mon Arbo et mon code : composer.json { "name": "rlmtest/rlmtest", "description": "Test module", "require": { "php": ">=7.2" }, "autoload": { "psr-4": { "RlmTest\\": "src/", "RlmTest\\Controllers\\": "src/Controllers", "RlmTest\\Controllers\\Admin\\": "src/Controllers/Admin/" }, "exclude-from-classmap": [] }, "config": { "prepend-autoloader": false }, "type": "prestashop-module" } services.yml services: RlmTest\Controllers\Admin\TestController: class: RlmTest\Controllers\Admin\TestController routes.yml #test route rlmtest_test_route: path: rlmtest/test methods: [GET] defaults: _controller: 'RlmTest\Controllers\Admin\TestController::testAction' TestController.php <?php namespace RlmTest\Controllers\Admin; use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController; class TestController extends FrameworkBundleAdminController { public function testAction() { return $this->render('@Modules/rlmtest/templates/admin/test.html.twig'); } } Notez que quand je dump autoload, il me dit "Generated autoload files containing 0 classes" mais je parviens quand même a instancier mon controller manuellement dans le getContent() du module, j'imagine donc que l'autoload fonctionne. Avec ce code, à priori je devrais accéder via l'url monsite.com/admin12345/modules/rlmtest/test mais j'ai une 404. Une idée?
  4. Hi, I have a module that is hooked to "ActionObjectProductUpdateAfter" to add a feature to the product after it's updated. The hook works great, the feature is added (can see in database with die; at the end of hook method) but without the die; the feature is erased from database. It's like I hooked the updateBefore and the form is processed after the hook. Any idea?
  5. Bonjour à tous, J'essaie de faire les choses proprement mais la version 1.7 et les choix des dev n'aident VRAIMENT PAS! (oui je commence à en avoir plein le c##!). Ma situation est la suivante : Je développe un module de personnalisation de produit (et le premier qui me redirige vers le shop addons de presta s'en prend une!) sur mesure pour un client. Le champ personnalisé que j'ajoute à un produit un via le code et avec l'option is_module=1 fou la merde. Le champ est automatiquement supprimé de la base par AdminProductWrapper ligne 621, solution => Ajouter une valeur bidon dans customized_data, GG les dev! Le champs est automatiquement mis à jour is_delete=1 par AdminProductWrapper ligne 600, solution => Surcharger Product pour modifier la fonction softDeleteCustomizationFields afin de ne pas traiter les champs quand is_module=1, GG les dev! (si vous avez une solution sans surcharge je perds!) Les champs qui sont à is_module=1 ne sont pas listés par le productPresenter donc à l'affichage ils ne sont pas pris en compte, pas de souci là dessus de tte façon je devait dev un éditeur pour remplacer l'affichage. Le souci réside dans le fait que la propriété "customizable" est à 0 et impossible de changer cette valeur. Mon problème est donc le suivant : pouvoir envoyer l'info à la vue comme quoi le produit affiché est customizable pour remplacer le "ajouter au panier" par "personnaliser". J'ai essayé d'utiliser le hook FilterProductContent (que j'ai vu venir comme un messie) mais les dev ont eu la bonne idée de protéger la propriété product, impossible donc d'en modifier le contenu. Franchement les gars, si votre but est de faire chier le monde et vos collègues dev, vous vous surpassez! J'ai fait le tour des hook et je ne vois pas de solution. A priori prestashop s'oriente vers des modules pour ne pas faire de surcharge, je ne suis pas pour mais je fais avec, sauf que je n'y arrive pas... Si vous avez une solution élégante je vous paie un verre!
  6. Same problem here, did you find the solution?
  7. Same problem here. The ajax request tells me that it saved the changes but nothing is saved. I don't have iframe and even when I delete all text, still no save... Anyone have a solution?
  8. Same here, the default category was missing, but prestashop doesn't trigger any error...
  9. Hi, It's not a request for help, but a response if some have the same issue I do. I run on Prestashop 1.7.2.4 so this "bug" may have been in the newer version, don't have time to check. Here is the inital problem : A week after going LIVE with a customer website, we started to have REALLY slow admin page. I'm talking between 7 up to 20 sec to load. I spent 2 hours looking for the root of the problem and found it! The admin always test the directories (cache, img, modules, etc.). and for some directories it does that recursively. Needles to say, it's slow when you start to have some cache piling up. So here is my fix : override the ConfigurationTest class : <?php class ConfigurationTest extends ConfigurationTestCore{ //saves 0.5/1 sec public static function test_img_dir($dir) { return ConfigurationTest::test_dir($dir, false); } //save 0.3/1sec public static function test_module_dir($dir) { return ConfigurationTest::test_dir($dir, false); } //save A LOT of time! public static function test_cache_dir($dir) { return ConfigurationTest::test_dir($dir, false); } } The false parameter is useless, it's false by default, just to show you what's changed (used to be true). I hope it helps someone else and I hope there is/will be a fix for this in the future. Regards.
  10. I guess in the theory it would work without the $specific_price_rule but it may not be logical in the database side.
  11. Same here. In the chrome dev, looking at the XHR request I can see an SQL error messing up the output, triggering the error. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3 SELECT c.`id_carrier` FROM `so_carrier` c WHERE c.`id_reference` IN () But I can't locate where this request is made. Anyone?
  12. Hi, I spent a lot of time trying to implement a bundle to override the PrestashopBundle wich is in /src/PrestaShopBundle/ . I couldn't figure it out but I think it possible, and that a lot of developer would enjoy it! It's really a dumb idea for the Prestashop Team to move away from overrides! If anyone has a solution, a fix that enable to override without editing the core (or with small edit), I will be grateful! Thank you.
  13. Hi, I'm trying to use the ProductSearchQuery to display a list of products but I don't find a way to set a WHERE clause to tell the search provider to return only upcoming available products (or for an other controller ignore the product that are not available yet). Is it possible or do I have to use the good old DB executeS, making this searchProvider useless (because it can't be override). Thanks.
  14. Merci de ton retour. Problème résolu entre temps. Je n'avais pas modifié le champ "price" dans product_shop, voila tout...
  15. Bonjour, Je suis en train de m’arracher les cheveux avec cette 1.7... Après une migration j'ai modifié tous les prix produits directement en base (souci de tva) mais la modification n'est pas prise en compte sur prestashop. Ni dans le BO (fiche produit) ni en front. J'ai supprimer les dossiers dans cach/prod : rm -rf ./smarty/compile/* ; rm -rf ./twig/*; rm -rf ./annotations/*; rm -rf ./doctrine/* J'ai désactivé le cache de prestashop, j'ai cliquer sur le bouton "vider le cache", j'ai redémarré apache et mysql mais c'est toujours le même ancien pris qui apparaît sur presta! Je suis bien sur la bonne base par ce que la mise à jour via la fiche produit en BO fonctionne bien. Mais je vais pas faire ça pour 700 produits! OK je veux bien qu'on mette du cache pour optimiser les perf, mais là non, c'est trop, je pige pas! Help please!
  16. Hi, I'm trying to use the 1.7, I really am. But there is a few things that I can't work with. I understand, even if I don't approve, the "Selection" tab when we click on the "Modules" admin link. The problem is the list takes seconds to load! And when I work on my website, I often need to go and update my modules configuration. I don't want to see the "Selection" every time. It's a huge waste of time! I want to add an admin menu link to directly access my "installed modules", but no can do! The admin tab management has been removed... Anyone has the same problem? Any work around? What class name should I use in the tab table (in database) to get the link I need? I feel like this new version is a set back, even if I applause the symfony stepup! Thanks.
  17. Hi, I've put that code directly in my module controller. Basically, you just have to put it where you need it.
  18. Hi! I have a module that add a product to cart with a specific price rule so the customer only pay a specific price and not the product price. The plugin is working well, the only thing is, when I create my specific price rule, I redirect the customer to the shopping cart and it displays the product price, not the specific price, I have to refresh after a moments and then only it displays the specific price. There must be a cache somewhere for this but I can't find it... Any idea? Thanks!
  19. I found a solution using the specificPriceRule, here it is : $cart->updateQty(1, $product_id, $product->getDefaultAttribute($product->id)); $specific_price_rule = new SpecificPriceRule(); $specific_price_rule->name = 'Price rule name here'; $specific_price_rule->id_shop = (int)$context->shop->id; $specific_price_rule->id_currency = 0; $specific_price_rule->id_country = 0; $specific_price_rule->id_group = 0; $specific_price_rule->from_quantity = 1; $specific_price_rule->price = 2.5; $specific_price_rule->reduction = 0; $specific_price_rule->reduction_tax = 0; $specific_price_rule->reduction_type = 'amount'; $specific_price_rule->from = date("Y-m-d H:i:s"); $specific_price_rule->to = date("Y-m-d").' 23:59:59'; $specific_price_rule->add(); $specific_price = new SpecificPrice(); $specific_price->id_product = (int)$product_id; // choosen product id $specific_price->id_product_attribute = $product->getDefaultAttribute($product->id); $specific_price->id_cart = (int)$cart->id; $specific_price->id_shop = (int)$context->shop->id; $specific_price->id_currency = 0; $specific_price->id_country = 0; $specific_price->id_group = 0; $specific_price->id_customer = 0; $specific_price->from_quantity = 1; $specific_price->price = 2.5; $specific_price->reduction_type = 'amount'; $specific_price->reduction_tax = 1; $specific_price->reduction = 0; $specific_price->from = date("Y-m-d H:i:s"); $specific_price->to = date("Y-m-d").' 23:59:59'; // or set date x days from now $specific_price->id_specific_price_rule = $specific_price_rule->id; $specific_price->add(); It's a work in progress, this code can be optimiezd but it's working for what I have to do. Hope it helps!
  20. Malheureusement non, car ce sont des frais appliqué sur la quantité, donc 50*les frais pour ma commande de 50*A par exemple.
  21. A priori il ne peut pas s'appliquer à mon problème. J'ai par exemple les produits A, B et C. Chacun a un forfait de Xa, Xb et Xc€. Si le client commande 50*A et 25*B il devra payer 50*A + Xa + 25*B+Xb, je ne pense pas pouvoir faire ça avec les transporteurs? De plus, ergonomiquement le forfait facturé doit être visible pour le client, et non pas glissé dans les frais de port (qui risquent de faire fuir le client dans le tunnel de commande). Merci quand même de ton message, du coup j vais partir sur le développement d'un petit module. Si quelqu'un d'autre à un besoin similaire qu'il me fasse signe! Merci.
  22. Bonjour, Le sujet date un peu, mais je cherche la même chose. Si le client commande un produit (peu importe la quantité) qu'il ait un forfait de XX€ supplémentaire. Aviez-vous trouvé la solution?
  23. Hi, I have the same need, did you find the solution since? Romain.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More