Get Parent Product from Child Id.
protected $_productloader;
protected $configurable;
protected $grouped;
protected $bundleSelection;
public function __construct(
...........................................................
\Magento\Catalog\Model\ProductFactory $_productloader,
\Magento\ConfigurableProduct\Model\Product\Type\Configurable $configurable,
\Magento\GroupedProduct\Model\Product\Type\Grouped $grouped,
\Magento\Bundle\Model\Product\Type $bundleSelection,
...........................................................
) {
...........................................................
$this->_productloader = $_productloader;
$this->configurable = $configurable;
$this->grouped = $grouped;
$this->bundleSelection = $bundleSelection;
...........................................................
}
...........................................................
...........................................................
...........................................................
public function getParentProductData($productData)
{
$prdData = '';
$parentProductId = $this->getParentProductId($productData->getEntityId());
if ($parentProductId) {
$prdData = $this->_productloader->create()->load($parentProductId);
} else {
$prdData = $this->_productloader->create()->load($productData->getEntityId());
}
// parent Product Data
return $prdData;
}
public function getParentProductId($childId)
{
$parent_id = 0;
// configurable product
$product = $this->configurable->getParentIdsByChild($childId);
if (isset($product[0])) {
$parent_id = $product[0];
return $parent_id;
}
// group product
$groupIds = $this->grouped->getParentIdsByChild($childId);
if (isset($groupIds[0])) {
$parent_id = $groupIds[0];
return $parent_id;
}
// bundel product
$budel_id = $this->bundleSelection->getParentIdsByChild($childId);
if (isset($budel_id[0])) {
$parent_id = $budel_id[0];
return $parent_id;
}
return $parent_id;
}