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.