Jump to content

Indexer un nouveau champ dans la recherche du BO


Recommended Posts

Bonjour,

 

 

Je suis en 1.4.8, pour les besoins de gestion j'ai rajouté 2 nouveaux champs dans la fiche produit, "Référence Fournisseur 2" et "Référence Fournisseur 3".

 

Quand je lance une recherche dans le BO je peux rechercher sur "Référence" et "Référence fournisseur" et trouve mon produit. Pour mes nouveaux champs il ne retourne aucun résultat.

 

J'ai tenté de modifier la classe Search.php ligne 378

 

// Every fields are weighted according to the configuration in the backend
 $weightArray = array(
  'pname' => Configuration::get('PS_SEARCH_WEIGHT_PNAME'),
  'reference' => Configuration::get('PS_SEARCH_WEIGHT_REF'),
  'ean13' => Configuration::get('PS_SEARCH_WEIGHT_REF'),
  'upc' => 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'),
  'supplier_ref2' => Configuration::get('PS_SEARCH_WEIGHT_REF'),
  'supplier_ref3' => Configuration::get('PS_SEARCH_WEIGHT_REF')
 );

 

Et l.335

// Adjust the limit to get only "whole" products, in every languages (and at least one)
 $limit = max(1, round($limit / $total_languages) * $total_languages);
 return Db::getInstance()->ExecuteS('
 SELECT p.id_product, pl.id_lang, pl.name pname, p.reference , p.supplier_ref2 , p.supplier_ref3 , p.ean13, p.upc, pl.description_short, pl.description, cl.name cname, m.name 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
 '.($id_product ? 'AND p.id_product = '.(int)$id_product : '').'
 LIMIT '.(int)$limit);
}

 

J'ai aussi "reconstruit l'index" et "Ajouter les produits manquants à l'index", mais rien n'y fait.

 

Je ne sais plus où chercher... Même dans Search.php je ne vois nulle part où est indexé "supplier_reference".

 

Je croise les doights pour que quelqu'un passe par là et sache comment faire B)

 

Bonne journée,

 

Madeline

Link to comment
Share on other sites

J'ai fait cela sur une boutique en 1.5.4.1 il y a pas longtemps.

J'ai modifié la classe Search également, et j'ai "dupliqué" toute les occurrence de short_description (de mémoire il y en avait plus que deux) par mon nouveau champ.

 

J'ai activé l'indexation automatique, et ça a marché.

Link to comment
Share on other sites

Merci pour votre réponse.

 

Je suis sur une 1.4.8, j'ai fait pareil dans Search j'ai copié/collé les occurrences de 'reference' et indexer les produits mais ça ne fonctionne pas. Ce qui me parait bizarre en fait c'est que dans Search.php il n'y a nulle part de 'supplier_reference' alors qu'on peut faire une recherche sur une référence fournisseur. :blink:

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...