php magento magento-1.4

php - ¿Cómo obtener el ID de producto principal en magento?



magento-1.4 (5)

Sé que en Magento 1.4.2.0 uno obtiene la identificación de los padres como tal

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

Mi pregunta es: si no sé cuál es el padre, ¿cómo sé usar el modelo ''catalog / product_type_ configurable '' versus ''catalog / product_type_ grouped'' para obtener el id?


Aquí hay otra solución para magento 1.7.2

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


Puede llamar a ambos y ofrecer un repliegue como debería ser uno u otro:

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


Puede verificar el tipo de producto con $_product->getTypeId(); y si esto devuelve ''configurable'', tome el modelo configurable y si devuelve ''agrupado'', tome el modelo agrupado.

Espero que esto ayude.


Puedes utilizar:

$product->getTypeInstance();

Lo cual devolverá el tipo de objeto de su producto

Entonces puedes realizar tu:

->getParentIdsByChild()

Dar finalmente:

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


podemos usar en el archivo de bloque, 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; }