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