看一下Mage_Catalog_Model_Product_Type_Configurable和Mage_Bundle_Model_Product_Type类。他们有获得父级和子元素产品的有用方法。你想要getParentIdsByChild():
对于可配置产品:
$parent_ids = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($childId);对于捆绑产品:
$parent_ids = Mage::getModel('bundle/product_type')->getParentIdsByChild($childId);这些仅适用于ID。您需要将子SKU转换为id,然后将父ID转换回SKU。从SKU获取id的简单方法是:
Mage::getModel('catalog/product')->getIdBySku($sku);此外,您可以拥有多个父ID,因此您必须了解这一点。这是一个例子:
$child_id = Mage::getModel('catalog/product')->getIdBySku($child_sku);
$parent_ids = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($child_id);
$parent_collection = Mage::getResourceModel('catalog/product_collection')
->addFieldToFilter('entity_id', array('in'=>$parent_ids))
->addAttributeToSelect('sku');
$parent_skus = $parent_collection->getColumnValues('sku');