J'essaie le code suivant pour obtenir les ID de tous les produits simples qui sont des enfants $collection
, dont je sais être une collection de produits configurables.
foreach($collection as $_product) {
$_children = $_product->getTypeInstance()->getUsedProductIds($_product);
print_r($_children);
}
Cependant, tous les tableaux que je reçois sont vides. Est-ce que je fais quelque chose de mal?
magento2
magento-2.0
simple-product
b_pcakes
la source
la source
$_children = $_product->getTypeInstance()->getUsedProducts($_product);
Voir si vous obtenez quelque chose.getUsedProductCollection
Réponses:
Vous pouvez imprimer vos identifiants de produits enfants (de produits configurables) en apportant une petite modification à votre code comme suit
Après cela, regardez vos fichiers journaux et vous aurez votre IDS enfant.
la source
Les réponses à cette question sont fausses. Bien que leurs implémentations puissent fonctionner, ce n'est pas la bonne façon de gérer cela. La bonne façon de procéder consiste à utiliser les contrats de service et les modèles de données de Magentos.
Dans ce cas, c'est le
Magento\ConfigurableProduct\Api\LinkManagementInterface
contrat de service dont vous avez besoin.Un petit exemple de code que j'utilise dans une commande de console:
Magento 2 n'est pas très cohérent avec son propre code puisque la majorité du code est porté depuis Magento 1. C'est pourquoi vous voyez toujours des restes de modèles basés sur l'héritage et leurs méthodes (comme
getTypeInstance()
). Si vous souhaitez créer un code Magento 2 évolutif, utilisez autant que possible des contrats de service et des modèles de données.la source
Vous pouvez simplement appeler la méthode ci-dessous,
Ci-dessus,
$getChildId
affichez tout ID produit simple.la source
Une autre façon d'y parvenir consiste à utiliser la méthode getChildrenIds.
$ children = $ cProductTypeInstance-> getChildrenIds ($ this-> currentProductObj-> getId ());
la source
Pour obtenir les objets produits enfants réels (pas seulement les chaînes de leurs ID), utilisez ceci:
Pour obtenir leurs identifiants ou autres propriétés, utilisez ce qui précède avec une boucle:
la source