Magento将简单产品列为可配置产品

时间:2014-04-07 14:05:51

标签: magento magento-1.8

我要用一个例子告诉我的问题。

我有一个可配置的产品。名称是:“测试”
我创造了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,请告诉我。

1 个答案:

答案 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]来识别我商店中的可配置产品。