在购物车页面上,我需要能够获得父SKU使用子SKU。
我在StackOverflow上尝试了从Magento论坛和类似问题中截取的几个代码,但都没有成功。
我可以通过使用getTypeId()来确定一个产品是否只是一个没有父级的简单产品,但之后我尝试的所有操作都无法获得父级SKU。
Magento版本: 1.4.2.0
发布于 2012-07-14 12:46:30
看一下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);这些只适用于ids。您需要将子SKU转换为id,然后将父id转换回SKU。从SKU获取id的简单方法是:
Mage::getModel('catalog/product')->getIdBySku($sku);此外,您可以有多个父ids,因此您必须注意这一点。下面是一个例子:
$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');https://stackoverflow.com/questions/11480126
复制相似问题