Comment obtenir l'ID du produit parent dans Magento 2?

11

Comment obtenir l'ID de produit parent d'un enfant dans Magento 2 pour les produits configurables?

Je souhaite obtenir l'ID de produit parent du produit enfant dans Magento en fonction de l'ID de produit enfant.

Rafael Corrêa Gomes
la source

Réponses:

26

Pour obtenir l'ID du produit parent dans votre fichier phtml, vous pouvez appeler le code directement en:

    $productId = 52; //this is child product id
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $product = $objectManager->create('Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable')->getParentIdsByChild($productId);
     if(isset($product[0])){
         //this is parent product id..
         echo $product[0];
    }
Rakesh Jesadiya
la source
son bon fonctionnement dans le fichier de vue.
7
Vous ne devez pas utiliser le répertoire du gestionnaire d'objets. Injecter une usine en utilisant la méthode
CarComp
@Rakesh après avoir obtenu l'ID du produit configurable, comment puis-je obtenir uniquement tous les détails sur un produit configurable particulier? Puis-je charger le modèle de produit via l'ID de produit parent?
Sanjay Gohil
12

Vous pouvez l'appeler en fichier bloc, de manière spécifique à Magento,

protected $_catalogProductTypeConfigurable;

public function __construct(
    \Magento\Catalog\Block\Product\Context $context,
    //for getting parent id of simple
    \Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable $catalogProductTypeConfigurable,
    array $data = []
) {
    //for getting parent id of simple
    $this->_catalogProductTypeConfigurable = $catalogProductTypeConfigurable;
    parent::__construct($context, $data);
}

public function getProductData($id) {
    $parentByChild = $this->_catalogProductTypeConfigurable->getParentIdsByChild($id);
    if (isset($parentByChild[0])) {
        //set id as parent product id...
        $id = $parentByChild[0];
    }
    return $id;
}
Rakesh Jesadiya
la source
Classe parent non spécifiée! Je pense que c'est Magento\Catalog\Block\Product\AbstractProduct???
Imran Zahoor