Как получить идентификатор родительского продукта в пурпуре?

Я знаю, что в Magento 1.4.2.0 вы получаете родительский идентификатор

list( $parentId ) = Mage::getModel('catalog/product_type_configurable') ->getParentIdsByChild( $product->getId() ); 

Мой вопрос: если я не знаю, что такое родитель, откуда я могу использовать модель 'catalog / product_type_ configurable ' vs 'catalog / product_type_ grouped' для получения идентификатора?

Вы можете использовать:

 $product->getTypeInstance(); 

Который вернет тип объекта вашего продукта

Затем вы можете выполнить свое:

 ->getParentIdsByChild() 

Наконец:

 $product->getTypeInstance()->getParentIdsByChild($child->getId()); 

Вы можете просто позвонить обоим и предложить отступить, так как это должно быть одно или другое:

 if($product->getTypeId() == "simple"){ $parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($product->getId()); if(!$parentIds) $parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId()); if(isset($parentIds[0])){ $parent = Mage::getModel('catalog/product')->load($parentIds[0]); // do stuff here } } 

Вот еще одно решение для magento 1.7.2

 $parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($mageProduct->getId()); 

мы можем использовать в блочном файле, magento 2,

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

Вы можете проверить тип продукта с помощью $_product->getTypeId(); и если это возвращает «настраиваемый», возьмите конфигурационную модель и, если она вернется, сгруппирована, возьмите сгруппированную модель.

Надеюсь это поможет.