Marquer maintenant la réponse @SiarheyUchukhlebau comme correcte ....
P0lT10n
Réponses:
22
Vous devez utiliser Magento\Catalog\Model\ProductRepositoryou Magento\Catalog\Model\ResourceModel\Product\Collectionselon vos besoins. Vous pouvez utiliser les deux méthodes pour obtenir des instances de produit avec toutes les données.
salut @siarhey, je reçois un résultat vide avec votre code. Avez-vous des conseils à ce sujet? Serait-ce parce que j'essaie de récupérer la liste d'une tâche cron?
Lorenzo S
@ LorenzoS Salut, quel exemple vous utilisez 1 ou 2? Existe-t-il un produit lorsque vous supprimez tous les filtres / conditions?
Siarhey Uchukhlebau
Comment obtenir cet onglet "Variables" avec l'arborescence des objets dans votre capture d'écran?
excellente réponse, @SiarheyUchukhlebau mais qu'entendez-vous par Si vous avez besoin de données sur les produits, utilisez la première classe. Si vous avez besoin d'obtenir les instances de produit, utilisez la deuxième classe.
Yehia A.Salam
2
À l'aide d'un appel d'API REST:
https://{host}/rest/V1/products/?searchCriteria=
Récupère tous les produits. "searchCriteria" est un paramètre obligatoire, mais peut être laissé vide, comme ci-dessus.
La réponse la plus votée fonctionne, mais je voudrais mentionner qu'injecter directement une implémentation du référentiel de produits entraînera la violation du principe du contrat de service et c'est quelque chose que Magento veut que les développeurs corrigent. Vous devriez injecter \Magento\Catalog\Api\ProductRepositoryInterface $productRepositoryau lieu de sa mise en œuvre qui l'est \Magento\Catalog\Model\ProductRepository $productRepository. De cette façon, vous aurez un espace pour de futures capacités de mise à niveau. L'essentiel est d'utiliser les contrats de service autant que possible.
Réponses:
Vous devez utiliser
Magento\Catalog\Model\ProductRepository
ouMagento\Catalog\Model\ResourceModel\Product\Collection
selon vos besoins. Vous pouvez utiliser les deux méthodes pour obtenir des instances de produit avec toutes les données.Exemple 1 (référentiel):
Résultat:
Exemple 2 (collection):
Résultat:
la source
À l'aide d'un appel d'API REST:
Récupère tous les produits. "searchCriteria" est un paramètre obligatoire, mais peut être laissé vide, comme ci-dessus.
la source
La réponse la plus votée fonctionne, mais je voudrais mentionner qu'injecter directement une implémentation du référentiel de produits entraînera la violation du principe du contrat de service et c'est quelque chose que Magento veut que les développeurs corrigent. Vous devriez injecter
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository
au lieu de sa mise en œuvre qui l'est\Magento\Catalog\Model\ProductRepository $productRepository
. De cette façon, vous aurez un espace pour de futures capacités de mise à niveau. L'essentiel est d'utiliser les contrats de service autant que possible.la source
Vous pouvez le faire via une demande API. Jetez un œil à l' API M2 par défaut
pensez que votre meilleure prise de vue est catalogProductRepositoryV1
la source