krismb Posted February 8, 2014 Share Posted February 8, 2014 Contexte : deux boutiques Il y a des produits dans les 2 boutiques, des produits présent dans le boutique 1 uniquement mais aussi des produits présent dans la boutique 2 mais absent de la boutique 1. Le searchcron ne prend pas en compte les produits absent dans la boutique 1. conséquence j'ai une tonne de produits non trouvable et le searchcron n'index pas. Que faut il faire ? un bug de searchcron ? Faut il que je créé mes produits dans la boutique 1 lance le searchcron pour ensuite les rendre invisibles ? Les articles invisibles dans ma boutique 1 ne sont pas non plus indexés Bon c'est normal Link to comment Share on other sites More sharing options...
Gregory Roussac Posted February 12, 2014 Share Posted February 12, 2014 Bonjour, Je ne reproduis pas votre problème ou je ne le comprends pas. Vous avez un module qui affecte la recherche ou un override de la classe Search ? Cordialement Link to comment Share on other sites More sharing options...
krismb Posted February 13, 2014 Author Share Posted February 13, 2014 non je prenais le searcron.php d'origine qui se trouve dans admin J'ai ajouter deux lignes if (Tools::getValue('shop')) Shop::setContext(Shop::CONTEXT_SHOP, Tools::getValue('shop'));if (Tools::getValue('shop')) Context::getContext()->shop->id = Tools::getValue('shop'); Et je peux lancer le searcron pour un seul shop et ca marche si je laisse rien il me prend que le shop 1. Link to comment Share on other sites More sharing options...
Gregory Roussac Posted February 13, 2014 Share Posted February 13, 2014 Rebonjour, Je ne reproduis pas. Pouvez vous verifier que dans la table ps_product_shop il y a bien un id_shop pour chaque produit ? Cette fonction normalement retourne les produits avec leur id_shop https://github.com/PrestaShop/PrestaShop/blob/1.6/classes/Search.php#L440 Comment appelez vous votre tache cron ? Cordialement Link to comment Share on other sites More sharing options...
Gregory Roussac Posted February 13, 2014 Share Posted February 13, 2014 Re, Vous pouvez aussi mettre d($sql); avant cette ligne en appelant la cron avant cette ligne https://github.com/PrestaShop/PrestaShop/blob/master/classes/shop/Shop.php#L953 ce qui devrait donner INNER JOIN ps_product_shop product_shop ON (product_shop.id_product = a.id_product AND product_shop.id_shop IN (1, 2)) Cordialement Link to comment Share on other sites More sharing options...
natachaC Posted March 4, 2014 Share Posted March 4, 2014 Bonjour sans rapport mais quand même vous dites Pouvez vous verifier que dans la table ps_product_shop il y a bien un id_shop pour chaque produit ? en effet car lors de la création de la "sous boutique" tous les produits sont dupliqués un par id_shopmême ceux qui sont dans des catégories non sélectionnés lors du choix est ce normal ?? je pensais importer que les produits des catégories sélectionnés et non la totalité ce comportement m'étonne Cette fonction normalement retourne les produits avec leur id_shop du coup oui mais les produits sont dans les 2 shops et la fonction Shop::addSqlAssociation revois tous les résultats quelque soit l' id_shop merci d'avance pour votre aide Natacha Link to comment Share on other sites More sharing options...
Gregory Roussac Posted March 4, 2014 Share Posted March 4, 2014 Bonjour, Cocher les catégories, partagera les catégories, mais ne constitue pas un filtre pour leur produits. Si les produits sont partagés à mon avis ils sont tous dupliqués, par contre ceux crées après la création ,dans le shop2 ne seront associés qu'au shop 2. Cordialement Link to comment Share on other sites More sharing options...
natachaC Posted March 5, 2014 Share Posted March 5, 2014 Bonjour et merci de m'avoir répondu sur 2 versions proches mais différente 1.5.6.1 et .2 oui tous les produits sont dupliqués d’où mon problème et ma question car dans : mots clés, recherche, nouveauté et d'autres sans doute comme produits phares quelque soit la boutique on a des résultats de l'autrecar la requête cherche bien par id_shop mais comme le produit est dupliqué il y a réponse en toute logique Spockienne (la mienne) il faudrait dupliquer que les produits des rubriques sélectionnées et destinés à shop2 sinon quel intérêt d'avoir des produits inutiles car pas sensés apparaitre dans shop2 j'ai lu qu'il en a qui les ont carrement supprimé en mysql ou alors j'ai rien compris et ....qu'elle est la bonne méthode Bien cordialement Natacha Link to comment Share on other sites More sharing options...
Gregory Roussac Posted March 5, 2014 Share Posted March 5, 2014 Re, Sélectionner le shop2, aller dans les catégories et supprimer les produits qui sont en doivent pas être dans shop 2 ? Cordialement Link to comment Share on other sites More sharing options...
natachaC Posted March 5, 2014 Share Posted March 5, 2014 (edited) c'est dans product_shop -> supprimer les produits qui ne doivent pas être dans shop 2 mais vous répondez à mes questions par une autre qu'en est il ? est ce normal que tous les produits soit dupliqués dans product_shop en shop2 si oui comment faire fonctionner les modules qui trouvent une réponse dans product_shop quelque soit l'id_shop et affichent des résultats d'une autre boutique j'ai manqué quelque chose ?? Edited March 5, 2014 by natachaC (see edit history) Link to comment Share on other sites More sharing options...
Gregory Roussac Posted March 5, 2014 Share Posted March 5, 2014 Rebonjour, Oui c’est normal que les produits soient dupliqués. - Installez une boutique de test. - Supprimez tous les produits. - Créez deux produits, - Activez le multiboutique, créez le shop2 - Les produits sont dupliqués - Allez dans le catalogue, sélectionnez le shop2 dans le sélecteur de shop, supprimez le produit. - Dans la table il n'y a plus que 3 lignes, le produit 1 sur les deux shops, le produit 2 sur le shop 1. Cordialement Link to comment Share on other sites More sharing options...
natachaC Posted March 5, 2014 Share Posted March 5, 2014 re bonjour cela veux dire qu'à la création de shop2 il faut sélectionner toutes les rubriques (sinon on a plus accès au produits dans shop2),importer tous les produits pour ensuite supprimer dans shop2 tous les articles qui ne devraient pas y être pour que les modules nouveautés, recherche, mots clés puissent donner les bons résultats vous confirmez ?? car supprimer des centaines voir milliers de produits dans les différentes shop après avoir été obligée de les importer ça me parait bizarre d’où ma question pourquoi ne pas inverser le processus ? importer que les produits des rubriques que l'on sélectionne (je pense ne pas être la seule à comprendre que ça fonctionne comme ça) merci et bonne soirée Natacha Link to comment Share on other sites More sharing options...
Gregory Roussac Posted March 5, 2014 Share Posted March 5, 2014 Re, Désolé je ne comprends pas tout de votre réponse. Avez vous réussi a avoir une table correcte ou devez vous toujours passer par la table ? En sélectionnant catégories associées, vous choisissez de partager les catégories de produits entre les différentes boutiques. Pas les produits qui sont des entités différentes. Les produits sont en dessous. Si cela vous fait trop de produits a supprimer après leurs copies, ne faites pas copier les produits et dans ce cas il faudrait plutôt passer par l'import en sélectionnant le shop2. Cordialement Link to comment Share on other sites More sharing options...
Gregory Roussac Posted March 5, 2014 Share Posted March 5, 2014 re bonjour cela veux dire qu'à la création de shop2 il faut sélectionner toutes les rubriques (sinon on a plus accès au produits dans shop2), Re, Sur mon test sur une 1.6.0.3 je n'ai besoin que d'une catégorie racine pour dupliquer les produits dans shop2, décocher les catégories n'a pas d'influence sur leur copie vers le shop2. Cordialement Link to comment Share on other sites More sharing options...
natachaC Posted March 5, 2014 Share Posted March 5, 2014 re ma question est pourquoi importer tous les produits de shop1 pour ensuite supprimer dans shop2 tous les articles qui ne devraient pas y être afin que les modules nouveautés, recherche, mots clés, etc.. puissent donner les bons résultats (dans shop2 on a des liens vers des produits de shop1 puisque les produits sont tous importés) ce que je veux dire c'est que par défaut si on ne fait pas la suppression de TOUS les produits qui ne doivent pas être présent dans shop2 les modules nouveautés, recherche, mots clés affichent des liens vers des produits de shop1 et ça c'est pas normal par défaut et quand est il de home featured qui pour fonctionner optimal devrait faire référence à l'id shop si je met sur home un produit qui est dans shop1 et shop2 dans l'admin il passe sur home pour les 2 sans prendre en compte la shop -> il est en produits phares de chaque shop : il faut le mettre hors ligne sur une des 2 boutiques c'est intéressant de plonger dans le process j'adore ça je continue de penser qu'en toute logique il faudrait importer que les produits des rubriques sélectionnéeset donner la possibilité d'importer des produits manquants après coup je vais chercher une solution perso dans ce sens du coté de copyShopData bonne soirée Natacha Link to comment Share on other sites More sharing options...
natachaC Posted March 7, 2014 Share Posted March 7, 2014 Bonjour un petit up à votre avis cela pose t'il un problème pour d'autre fonctions d'importer qu'une partie des produits ? j'ai essayer de mettre au clair les problèmes que je rencontre ici http://www.prestashop.com/forums/topic/313056-multiboutique-comment-linstaller/ merci pour votre aideNatacha Link to comment Share on other sites More sharing options...
sylvainwsi Posted July 17, 2014 Share Posted July 17, 2014 Bonjour, Je rencontre le même problème. Les produits non visibles sur la boutique 1, ne sont pas indexé sur les autres boutiques. Pourriez vous m'indiquer où ajouter ces deux lignes dans le searchcron.php (faut il supprimer des lignes?)? if (Tools::getValue('shop')) Shop::setContext(Shop::CONTEXT_SHOP, Tools::getValue('shop'));if (Tools::getValue('shop')) Context::getContext()->shop->id = Tools::getValue('shop'); Ensuite, si j'ai bien compris, je lance le cron à travers chaque boutique. Je vous remercie par avance Link to comment Share on other sites More sharing options...
Gregory Roussac Posted July 17, 2014 Share Posted July 17, 2014 Bonjour, Dans le fichier searchcron.php, pouvez vous essayer de remplacer Search::indexation(Tools::getValue('full')); par $shop_ids = Shop::getCompleteListOfShopsID(); foreach($shop_ids as $shop_id) { Shop::setContext(Shop::CONTEXT_SHOP, (int)$shop_id); Search::indexation(Tools::getValue('full')); } Merci. Cordialement 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