Jump to content

Récupérer les urls simplifiées des Produits dans un module


Recommended Posts

Bonjour à tous !

 

Je travaille actuellement sur le portage d'un module en version Prestashop 1.5.

Dans ce module, je récupère une liste de produits à partir de la classe Products de Prestashop (méthode getNewProducts() par exemple). A partir de là, j'ai besoin des urls "rewrités" de chaque produits de ma liste. Evidemment, l'url rewrite est activé sur ma boutique.

 

Avec les anciennes versions de Prestashop, cela fonctione bien. L'url présente dans la propriété "link" de chaque produit contient soit l'url basique si le rewrite n'est pas activé, soit l'url rewrité si le rewrite de la boutique est activé.

 

Avec la version 1.5.2, la propriété "link" ne contient que l'url basique, quel que soit le cas.

J'ai donc essayé d'utiliser la classe "link" pour pallier au problème, mais sans succès. J'ai bien peur qu'il y ai une histoire de "Contexte" là dessous... mais je ne sais pas comment régler cela.

 

Quelqu'un saurait-il comment procéder svp ?

 

Merci d'avance.

Link to comment
Share on other sites

Ce que j'appelle une "url basique" est une url non rewrité de la forme :

http://localhost/prestashop_1.5.2/index.php?id_product=1&controller=product&id_lang=5

 

Moi ce qu'il me faut c'est ceci :

http://localhost/prestashop_1.5.2/fr/1-ipod-nano.html

 

A noter que quand j'active l'url rewriting dans le BO, cela fonctionne bien sur le site. Mon problème concerne le fait de récupèrer les urls rewrités des produits dans le BO (plus précisément dans un module).

 

Merci.

Link to comment
Share on other sites

Coucou,

 

Bon ce n'est pas un module donc je ne réponds pas à 100% à la question demandée mais en revanche si comme moi vous avez besoin de ces adresse pour des usages externes voici comment les récupérer facilement et gratuitement.

 

Depuis la 1.5 (et peut-être même avant je n'en sais rien) l y a un outil très utile dans le BO.

 

BO > Paramètres Avancés > SQL Manager.

 

Vous pouvez y effectuer des requêtes personnalisées.

 

Dans votre cas voici plus ou moins la requête que vous souhaitez effectuer:

 

 

SELECT p.id_product, pl.name, pl.link_rewrite
FROM pss_product p
LEFT JOIN pss_product_lang pl ON (p.id_product = pl.id_product)
WHERE pl.id_lang = 2
AND p.id_shop_default = 1
GROUP BY p.id_product

 

 

J'ai supposé que vous vouliez le français d'où la langue 2 sélectionnée. A changer par autre chose le cas échéant.

Pareil si vous ne voulez pas ni des ID produits ni des noms produits vous enlevez p.id_product & pl.name de la première ligne.

 

TADA! ;)

 

 

Hope this helps.

 

Cheers!

Link to comment
Share on other sites

Hello,

Malheureusement ce n'est pas ce que je recherche. Ce dont j'ai besoin ce sont les urls absolues rewrités. Avec cette requête on obtient uniquement la valeur "link_rewrite" qui est déjà fournie par la méthode getProducts(), même sur la version 1.5.

Autre point, depuis la version 1.5, le français n'a plus l'id "2" mais l'id "5"...

Donc pour le moment, toujours dans l'impasse par rapport à mon problème initial...

 

Si quelqu'un a une idée... Merci d'avance.

Link to comment
Share on other sites

Autre point, depuis la version 1.5, le français n'a plus l'id "2" mais l'id "5"...

 

C'est intéressant ça.... Parce que j'ai moi qui ait fait une MAJ d'une vieille version PS... il a toujours la valeur 2.

Faut que je note quelque part de faire mes requêtes avec le code ISO plutôt lui il devrait pas changer au moins.

 

Sinon par absolute vous entendez bien quelque chose du genre:

 

http://www.monsite.com/prestashop/fr/url-de-mon-produit.html

Edited by Muad'Dib (see edit history)
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...