Jump to content

[Informations] Variable regroupant l'ensemble des produits


Recommended Posts

Bonjour,

 

Je cherche s'il existe sous prestashop une variable stockant l'ensemble des produits sous forme d'objet c'est à  dire par exemple une arrayList $product qui regroupe l'ensemble des produits du magasins.

 

J'en aurais besoin pour comparer des champs par rapport a une liste déroulante.

 

Si quelqu'un a une idée, je suis preneur où alors une autre méthode de récuperer l'ensemble des objects prestashop dans une variable php ou variable globale smarty

 

Merci,

 

Link to comment
Share on other sites

... qui regroupe l'ensemble des produits du magasins.

Faut être plus précis, tu cherches à avoir les id_product ? les descriptions, prix, catégories... il y a beaucoup d'infos, regarde les différentes fonctions dans la classe product et ProductController

Link to comment
Share on other sites

Bonjour,

Il suffit de regarder dans la classe Product :

getProducts($id_lang, $start, $limit, $order_by, $order_way, $id_category = false,
        $only_active = false, Context $context = null)

 

donc

$products = Product::getProducts($id_lang,0,null,'id_product','ASC')

récupère tous les produits avec la langue $id_lang, classés par 'id_product' dans l'ordre ascendant.

Link to comment
Share on other sites

Merci beaucoup,

 

J'ai réussi à faire ce que je voulais avec la méthode de Vinum.

 

Voici mon code :

$products =Product::getProducts('2', 0, 10, 'id_product','DESC');
$smarty->assign('products',$products);
$smarty->display(_PS_THEME_DIR_.'/product-list.tpl');

En gros là ca m'affiche sur ma page les 10 premiers produit, rien de bien compliqué.

 

Par contre j'ai un petit problème, les liens des produits affiché pointe sur ma page ou il y a le code. Je voudrais qu'il pointe vers la page de la fiche produit.

 

Avez vous une idée de comment résoudre ce problème ?

 

Merci

Link to comment
Share on other sites

Bonjour,

Regardes dans la classe Link, tu y trouveras la fonction getProductLink($product, $alias = null, $category = null, $ean13 = null, $id_lang = null, $id_shop = null, $ipa = 0, $force_routes = false) :

Donc

$link=new Link();

$urlproduit=$link->getProductLink($Product['id_product'], $Product['link_rewrite']);

 

ou encore dans la classe Product, il existe la fonction getLink(Context $context = null).

Link to comment
Share on other sites

Bonjour,

Regardes dans la classe Link, tu y trouveras la fonction getProductLink($product, $alias = null, $category = null, $ean13 = null, $id_lang = null, $id_shop = null, $ipa = 0, $force_routes = false) :

Donc

$link=new Link();

$urlproduit=$link->getProductLink($Product['id_product'], $Product['link_rewrite']);

 

ou encore dans la classe Product, il existe la fonction getLink(Context $context = null).

 

 

Merci pour ta réponse,

 

En faite je t'explique ce que je suis en train de faire :

 

Je réalise en ce moment un formulaire qui permet de choisir la marque de l'imprimante, puis le modèle afin d'avoir les cartouche correspondant a l'imprimante. J'ai réussi à faire ca avec du Javascript ect..

 

Je récupere le produit de cette façon :

$products =Product::getProducts('2', 0,$nbproduct, 'id_product','DESC',94);

Ensuite je fais les tri des produit afin de ne garder que ceux qui m'interesse (94 étant la catégorie regroupant mes cartouches).

 

Je stock tout dans un tableau de produit et j'affiche les produit grâce a product-list.tpl

$smarty->assign('products',$arrayProd);
$smarty->display(_PS_THEME_DIR_.'/product-list.tpl');

Jusqu'à la pas de problème mes produits sont affiché, seul probleme les liensdes produits pointe vers prestashop/mapage.php et non vers la page produit comme l'on peut le voir avec la page produit

 

1399317124-upload.png

 

 

Donc ton code permet de récuperer les liens des produit, mais comment puis-je les affecté au lien que le product-list.tpl créer ?

 

cordialement

 

Bach Florent

Link to comment
Share on other sites

Logiquement dans ton product-list.tpl les urls produits sont déja récupérés et devraient rediriger vers la page produit.

Donc il faudrait voir ce que retourne ta variable $products car il y'a un problème.

IL faudrait également voir quel est le lien qui est actuellement retourné et qui est apparemment faux.

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