Jump to content

Recherche De Référence sur les déclinaisons dans le BO


Recommended Posts

Bonsoir a tous,

Depuis le BO, je désire rechercher des articles à l'aide de leur référence... Sauf qu'il s'agit de déclinaisons, et donc que la référence de l'article "parent" est vide: ce sont les références des articles déclinés que je renseigne.

Ma question est donc : comment faire pour effectuer une recherche depuis le champ de recherche du BO sur les références des déclinaisons d'un produit ?

Merci d'avance pour vos réponses...

Link to comment
Share on other sites

  • 2 months later...

J'ai exactement la même question.(comme beaucoups à mon avis).

Le problème est que lorsqu'on utilise une déclinaison d'un produit (couleur, taille ...), cette déclinaison de produit devient unique et doit pouvoir être recherchée via le champs référence ou EAN13 (code barre).
C'est d'autant plus étrange que l'on peut mettre une référence propre à chaque déclinaison.

J'aimerais donc savoir comme ajouter ces champs de déclinaison dans la recherche générale du Prestashop.

Link to comment
Share on other sites

  • 4 months later...

Bonjour, personnellement j'ai modifié la classe Search (@version 1.3) pour que dans le front office l'on puisse rechercher un produit à partir de la référence donnée à l'une de ses déclinaisons.

Pour cela j'ai ajouté "reference_declinaison" dans le tableau des champs à indexer (ligne 304)

$weightArray = array(
           'pname' => Configuration::get('PS_SEARCH_WEIGHT_PNAME'),
           'reference' => Configuration::get('PS_SEARCH_WEIGHT_REF'),
           'ean13' => Configuration::get('PS_SEARCH_WEIGHT_REF'),
           'description_short' => Configuration::get('PS_SEARCH_WEIGHT_SHORTDESC'),
           'description' => Configuration::get('PS_SEARCH_WEIGHT_DESC'),
           'cname' => Configuration::get('PS_SEARCH_WEIGHT_CNAME'),
           'mname' => Configuration::get('PS_SEARCH_WEIGHT_MNAME'),
           'tags' => Configuration::get('PS_SEARCH_WEIGHT_TAG'),
           'attributes' => Configuration::get('PS_SEARCH_WEIGHT_ATTRIBUTE'),
           'features' => Configuration::get('PS_SEARCH_WEIGHT_FEATURE'),
           'reference_declinaison' => Configuration::get('PS_SEARCH_WEIGHT_REF')            
       );



et j'ai modifié la requête de sélection (ligne 317) :

$products = $db->ExecuteS('
       SELECT p.id_product, pl.id_lang, pl.name as pname, p.reference, p.ean13, pl.description_short, pl.description, cl.name as cname, m.name as mname 
       FROM '._DB_PREFIX_.'product p
       LEFT JOIN '._DB_PREFIX_.'product_lang pl ON p.id_product = pl.id_product 
       LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = p.id_category_default AND pl.id_lang = cl.id_lang)
       LEFT JOIN '._DB_PREFIX_.'manufacturer m ON m.id_manufacturer = p.id_manufacturer         
       WHERE p.indexed = 0', false);


par

$products = $db->ExecuteS('
       SELECT p.id_product, pl.id_lang, pl.name as pname, p.reference, p.ean13, pl.description_short, pl.description, cl.name as cname, m.name as mname, pa.reference as reference_declinaison 
       FROM '._DB_PREFIX_.'product p
       LEFT JOIN '._DB_PREFIX_.'product_lang pl ON p.id_product = pl.id_product 
       LEFT JOIN '._DB_PREFIX_.'product_attribute pa ON p.id_product = pa.id_product         
       LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = p.id_category_default AND pl.id_lang = cl.id_lang)
       LEFT JOIN '._DB_PREFIX_.'manufacturer m ON m.id_manufacturer = p.id_manufacturer         
       WHERE p.indexed = 0', false);



Je viens de tester et cela n'est pas pris en compte dans la recherche du back-office.

Par contre pour que vos anciens produits soient maintenant indexés avec la référence des déclinaisons il faut aller dans Préférences -> Recherche puis Reconstruire l'index.

Voilà j'espère que cela aura aidé quelques personnes.

Link to comment
Share on other sites

  • 4 months later...
  • 1 year later...

Bonjour,

 

J'ai eu le même problème sous PS 1.4.9.0 (recherche de déclinaison via la recherche dans le front-office) .pour palier ce problème, j'ai crée une surcharge de Search dans le dossier "/override/classes/" que voici :

 

http://pastebin.com/cNWpu7G3

 

Ensuite aller dans le back-office : Options > rechercher, cliquer sur :

Et admirer le résultat :)

Edited by neodominique (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

 

J'ai eu le même problème sous PS 1.4.9.0 (recherche de déclinaison via la recherche dans le front-office) .pour palier ce problème, j'ai crée une surcharge de Search dans le dossier "/override/classes/" que voici :

 

http://pastebin.com/cNWpu7G3

 

Ensuite aller dans le back-office : Options > rechercher, cliquer sur :

Et admirer le résultat :)

 

 

Bonjour, j'ai téléchargé le fichier override_search.php, reconstruis l'index mais ça ne fonctionne toujours pas.

Je suis sous Prestashop Version 1.4.8.2, ce n'est pas compatible ?

Merci pour votre aide

Link to comment
Share on other sites

  • 5 months later...

Bonjour,

 

J'ai eu le même problème sous PS 1.4.9.0 (recherche de déclinaison via la recherche dans le front-office) .pour palier ce problème, j'ai crée une surcharge de Search dans le dossier "/override/classes/" que voici :

 

http://pastebin.com/cNWpu7G3

 

Ensuite aller dans le back-office : Options > rechercher, cliquer sur :

Et admirer le résultat :)

 

 

Bonjour, j'ai appliquer votre méthode, du coup cela marche bien pour le FrontOffice mais pas pour le BackOffice. Est ce normal ?

 

Merci

Link to comment
Share on other sites

Je deviens chèvre, je n'arrive pas à savoir où se trouve la requete SQL qui permet de rechercher par référence dans le BO !!

 

Le champ text est "productFilter_reference" mais il est inexistant dans les fichiers PHP (recherche faite avec Super finder XT)

 

Ce n'est pas dans le fichier de classe search.php (ce fichier est utile pour la recherche dans le FO mais pas dans le BO).

 

C'est peut être dans la classe Product.php, mais où donc ?

 

Help !!

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

J'ai eu le même problème sous PS 1.4.9.0 (recherche de déclinaison via la recherche dans le front-office) .pour palier ce problème, j'ai crée une surcharge de Search dans le dossier "/override/classes/" que voici :

 

http://pastebin.com/cNWpu7G3

 

Ensuite aller dans le back-office : Options > rechercher, cliquer sur :

Et admirer le résultat :)

 

Bonjour,

 

je ne parviens pas à mettre en oeuvre la solution sur une version 1.4.9.0

 

j'ai placé le fichier ici : /override/classes/override_search.php

reconstruit l'index et quand je recherche la référence d'une déclinaison, il ne la trouve toujours pas.

 

j'ai oublié quelque chose ?

Link to comment
Share on other sites

je me répond tout seul car je viens de trouver l'erreur.

 

j'ai simplement renommé ovveride_search.php en Search.php

ce qui donne : /override/classes/Search.php

 

et il manquait <?php au début de mon code :wub:

 

merci, maintenant je peux rechercher les références des déclinaisons

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...