Come ottenere l'ID prodotto principale in Magento 2?


11

Come ottenere l'ID prodotto principale di un bambino in Magento 2 per i prodotti configurabili?

Voglio ottenere l'ID prodotto principale del prodotto secondario in Magento in base all'ID prodotto secondario.

Risposte:


26

Per ottenere l'ID prodotto principale nel tuo file phtml, puoi chiamare il codice direttamente tramite:

    $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];
    }

funziona benissimo nel file di visualizzazione.

7
Non dovresti usare la directory del gestore oggetti. Iniettare una fabbrica usando il metodo
CarComp

@Rakesh dopo aver ottenuto l'ID prodotto configurabile come posso ottenere solo tutti i dettagli su un particolare prodotto configurabile? Posso caricare il modello del prodotto tramite ID prodotto principale?
Sanjay Gohil,

12

Puoi chiamarlo nel file di blocco, in modo specifico Magento da,

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;
}

Classe padre non specificata! Penso che sia Magento\Catalog\Block\Product\AbstractProduct???
Imran Zahoor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.