magento 2で親製品IDを取得するにはどうすればよいですか?


11

構成可能な製品のMagento 2で子の親製品IDを取得するにはどうすればよいですか?

子商品IDに基づいてMagentoで子商品の親商品IDを取得したいのですが。

回答:


26

phtmlファイルで親製品IDを取得するには、次の方法でコードを直接呼び出すことができます。

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

ビューファイルで正常に動作しています。

7
オブジェクトマネージャディレクトリは使用しないでください。-> createメソッドを使用してファクトリを注入する
CarComp 2017年

構成可能な製品IDを取得した後の@Rakesh特定の構成可能な製品に関するすべての詳細のみを取得するにはどうすればよいですか?親製品IDを介して製品モデルをロードできますか?
Sanjay Gohil

12

あなたはそれをブロックファイルで呼び出すことができ、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;
}

親クラスが指定されていません!そのMagento\Catalog\Block\Product\AbstractProduct???
Imran Zahoor 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.