Jump to content

[Résolu]Création d'objet pour product.tpl


Recommended Posts

Bonjour à tous, et une très bonne année !!

Je suis entrain de créer mon propre module et je vais devoir afficher des produits sélectionnés via ID.

J'ai beau chercher un peu partout, je n'arrive pas à trouver la méthode qui me permettrais de récupérer les informations des produits que demande product.tpl à partir de l'ID.

Avez-vous des pistes à me suggérer ?

 

Merci d'avance :)

 

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

Salut okom3pom,

Merci pour ta réponse, c'était bien ça que je recherchais !

Je vais essayer d'être plus clair :

  • J'ai un module qui possède une requete SQL dans laquelle je récupère les id de certains produits.
  • Dans ce module je fais quelques filtres en plus sur ces id
  • Ensuite dans mon tpl, j'"includecatalog/_partials/miniatures/product.tpl afin d'y afficher mes produits.

new Product me permet bien d'avoir certaines informations du produits, mais visiblement il en manque.

J'ai des 'Undefined index' pour plusieurs attributs :
id_product_attribute, url, cover, has_discount, regular_price, discount_type, flags.

Je suppose donc que je dois utiliser une autre fonction ou une fonction supplémentaire pour récupérer ces attributs ?!

Link to comment
Share on other sites

  • 1 year later...

Bonjour,

Je souhaite afficher des produits dans un hook et donc utiliser le même principe que pour ps_featuredproducts mais je sais pas trop comment m'y prendre.

J'ai donc utilisé la fonction getProducts mais je suis un peu dans le flou. Je l'utilise comment ?

Merci pour votre aide.

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

C'est bon j'ai réussi à m'en servir de cette fonction avec un peu de concentration...

En revanche l'affichage fait que les produits s'affichent les uns en dessous des autres et ne respectent pas tout à fait ce qui est prévu pour les autres cas... Donc je vais voir pour faire un peu d'intégration, sinon ça fonctionne bien.

Pour donner plus de détails, je donne les IDs des fiches produit à afficher en paramètre de cette fonction et pour l'affichage j'assigne à smarty le contenu de la variable résultant de la fonction dans le hook que je veux.

ça donne un truc du genre :

$products = $this->getProducts($listeidproduct);
$this->context->smarty->assign("products",$products);

Dans le tpl du coup :

{foreach from=$products item="product"}
      {include file="catalog/_partials/miniatures/product.tpl" product=$product}
{/foreach}



Et bien sûr dès le début de votre code bien rajouter :

use PrestaShop\PrestaShop\Core\Product\ProductListingPresenter;
use PrestaShop\PrestaShop\Adapter\Image\ImageRetriever;
use PrestaShop\PrestaShop\Adapter\Product\PriceFormatter;
use PrestaShop\PrestaShop\Adapter\Product\ProductColorsRetriever;

 

Link to comment
Share on other sites

  • 2 years later...
On 5/10/2019 at 12:05 PM, regatonseb said:

C'est bon j'ai réussi à m'en servir de cette fonction avec un peu de concentration...

En revanche l'affichage fait que les produits s'affichent les uns en dessous des autres et ne respectent pas tout à fait ce qui est prévu pour les autres cas... Donc je vais voir pour faire un peu d'intégration, sinon ça fonctionne bien.

Pour donner plus de détails, je donne les IDs des fiches produit à afficher en paramètre de cette fonction et pour l'affichage j'assigne à smarty le contenu de la variable résultant de la fonction dans le hook que je veux.

ça donne un truc du genre :

$products = $this->getProducts($listeidproduct);
$this->context->smarty->assign("products",$products);

Dans le tpl du coup :

{foreach from=$products item="product"}
      {include file="catalog/_partials/miniatures/product.tpl" product=$product}
{/foreach}



Et bien sûr dès le début de votre code bien rajouter :

use PrestaShop\PrestaShop\Core\Product\ProductListingPresenter;
use PrestaShop\PrestaShop\Adapter\Image\ImageRetriever;
use PrestaShop\PrestaShop\Adapter\Product\PriceFormatter;
use PrestaShop\PrestaShop\Adapter\Product\ProductColorsRetriever;

 

Salut , vous pouver indique ou est la fonction qui va prendre les IDs ( $this-getProducts(ids)) ?

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