我要用一个例子来讲述我的问题 .
我有一个可配置的产品 . 名称是:“测试”
我创造了4种不同尺寸的简单产品 . 他们是相关的 .
测试 - 小
测试中
测试大
测试XLARGE
我正在使用此代码获取所有产品:
$collection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addStoreFilter()
->setOrder('created_at', 'desc')
->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
我想将这4种产品合二为一 . 具有所有尺寸属性 . 作为一个 .
如果我要在代码中添加“size = small”属性,则“test”将返回产品 .
如果我要将“size = medium”属性添加到代码“test”将再次退回 .
如果我要将“size = large”属性添加到代码“test”将再次返回 .
如果我要将“size = xlarge”属性添加到代码“test”将再次退回 .
我怎样才能做到这一点?也许我需要高级sql,请告诉我 .
1 回答
我不完全理解您的问题,但您可以使用type属性过滤集合 . 例如type_id ='configurable'或type_id ='simple' .
**编辑以下评论
所以,那么,我认为你想要做的是按原样运行集合,然后从简单的产品中找出它的可配置使用的功能
$ productParentId = Mage :: getResourceSingleton('catalog / product_type_configurable') - > getParentIdsByChild($ simpleProductId);
该函数将返回一个数组,您可能需要额外的逻辑来推断哪些可配置,但我希望大多数商店只使用每个简单产品的一个可配置产品 . 我使用$ productParentId [0]来识别我商店中的可配置产品 .