我要用一个例子告诉我的问题。
我有一个可配置的产品。名称是:“测试”
我创造了4种不同尺寸的简单产品。他们是相关的。
测试小
测试介质
测试大号
Test-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”将再次退回。
如果我要在代码“test”中添加“size = xlarge”属性,将会再次退回。
我该怎么做?也许我需要高级sql,请告诉我。
答案 0 :(得分:0)
我不完全理解您的问题,但您可以使用type属性过滤集合。例如type_id ='configurable'或type_id ='simple'。
->addAttributeToFilter('type_id', array('eq' => 'configurable'));
->addAttributeToFilter('type_id', array('eq' => 'simple'));
**编辑以下评论
那么,那么,我认为你想要做的就是按原样运行集合,然后从简单的产品中找出它的可配置使用函数
$ productParentId = Mage :: getResourceSingleton('catalog / product_type_configurable') - > getParentIdsByChild($ simpleProductId);
该函数将返回一个数组,您可能需要额外的逻辑来推断哪些可配置,但我希望大多数商店只使用每个简单产品的一个可配置产品。我使用$ productParentId [0]来识别我商店中的可配置产品。