Jump to content

Recherche De Produits Par Tags


Recommended Posts

Bonsoir à tous,

 

Je développe actuellement une solution sur Prestashop, mais je coince sur le l'objet DbQuery.

 

Je cherche à effectuer une recherche de produits en les cherchant dans les tags, j'ai donc écris :

 

 




$sql = new DbQuery();
$sql->select('*');
$sql->from('products', 'c');
$sql->innerJoin('product_tag', 'l', 'c.id_product = l.id_product');
$sql->innerJoin('tag', 'm', 'l.id_tag = m.id_tag');
$sql->where('m.name = apple');
$sql->orderBy('product_tag');
$res = Db::getInstance()->executeS($sql);
print_r($res);


 

Il en ressort une erreur 500, je ne comprends pas où se situe l'erreur, même si je dois avouer que je n'ai jamais été un grand fan des ORM. Quelqu'un peut il m'éclairer svp ?

 

Merci d'avance,

M.

Link to comment
Share on other sites

Salut, salut.

 

Je suis exactement dans le même cas que toi.

Je debut sur prestashop et du coup je te pose plusieurs question :

 

ou est appellé ton code ? dans un module, un controller ?

 

Et pour étendre la question ce que je me demande c'est comment filtrer les produits en dehors du hook actionSearch ?

Link to comment
Share on other sites

J'ai exactement la même problématique.

Je suis curieux qu'on obtienne une réponse ! Si tu as quelque chose dis moi, je ferai la même chose de mon coté.

 

Ce qui me parait idéal c'est de récupérer les tags des produits dans la base, et ensuite d'envoyer sous forme d'un recherche et faire que ton module soit déclenché par le hook actionSearch, ensuite tu fais une recherche custom.

 

Après l'erreur 500 ça me semble bien étrange si tu fait juste un print dans ton controlleur tout ce passe bien ?

Link to comment
Share on other sites

J'ai réussi à résoudre en partie le problème, l'affichage sera "facile", je pense avec Smarty derrière, voici la solution :

$sql = new DbQuery();
 $sql->select('*');
 $sql->from('product', 'p');
 $sql->innerJoin('product_tag', 'l', 'p.id_product = l.id_product');
 $sql->innerJoin('tag', 't', 'l.id_tag = t.id_tag');
 $sql->where('t.name = "apple"');
 $sql->orderBy('t.name');
 $res = Db::getInstance()->executeS($sql);

 

Pour faire du débug de DQL vers du SQL, n'hésitez pas à utiliser : print_r((string)$sql);

Cela permet d'avoir une sortie SQL, plus simple à débugger que le DQL.

Link to comment
Share on other sites

L'idée directrice c'est de collecter des infos (tailles surtout, mais aussi des styles) pour proposer un ensemble à un utilisateur.

Pour cela je pensais tagger chaque produits, puis me référer à cela pour sortir une liste de produit conseillée.

 

La je n'arrive pas à injecter cela dans smarty, alors que la requête marche et retourne les objets "produits".

Link to comment
Share on other sites

  • 3 weeks later...

Salut MootMoot. J'aimerai bien savoir ou tu en est. Moi je suis coincé, j'aimerai afficher les produits de la même façon que dans le thème, mais je le fait depuis un module... donc pas bien pratique comme tu peux l'imaginer !

 

Impossible de faire apparaitre la moindre image, etc... des idées ?

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