Bagaimana cara mendapatkan id produk induk di magento 2?

11

Bagaimana cara mendapatkan id produk orang tua anak di Magento 2 untuk produk yang dapat dikonfigurasi?

Saya ingin mendapatkan id produk induk dari produk anak di Magento berdasarkan id produk anak.

Rafael Corrêa Gomes
sumber

Jawaban:

26

Untuk mendapatkan id produk induk dalam file phtml Anda, Anda dapat memanggil kode secara langsung dengan:

    $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
sumber
ini berfungsi dengan baik dalam file tampilan.
7
Anda seharusnya tidak menggunakan direktori manajer objek. Suntikkan sebuah pabrik menggunakan metode -> create
CarComp
@Rakesh setelah mendapatkan id produk yang dapat dikonfigurasi, bagaimana saya bisa mendapatkan semua detail tentang produk yang dapat dikonfigurasi tertentu? Bisakah saya memuat model produk melalui id produk induk?
Sanjay Gohil
12

Anda dapat menyebutnya dalam file blok, cara khusus Magento dengan,

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
sumber
Kelas induk tidak ditentukan! Saya pikir itu Magento\Catalog\Block\Product\AbstractProduct???
Imran Zahoor