gpt4 book ai didi

php - Magento Product Collection GROUP BY 具有最低价格产品 ID 的最低价格?

转载 作者:行者123 更新时间:2023-11-30 22:17:17 24 4
gpt4 key购买 nike

工作环境总结

我在一个网站上工作,我们有客户和经销商。每个经销商都可以有自己的产品价格。

生产收集数据对于每个具有该卖家价格的产品都有另一个重复记录(克隆产品)。例如,如果主目录有 IPHONE 6S 。超过 5 个经销 Iphone 6s 的经销商可以有自己的价格。克隆产品创建与卖家 ID 相关的新产品 ID

要求

我需要获得经销商价格最低的类别明智的产品 list 。还需要根据最低价格对该列表进行排序。

我尝试过的

目前我可以根据类别列出所有价格最低的产品。

$productCollection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('sellingprice')
->setStoreId($storeId)
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $_POST['category_id']))
->addAttributeToFilter('status', array('eq' => 1))
->addAttributeToFilter('dis_continue', array('eq' => 0));



$productCollection->addAttributeToFilter('seller_id', array('in' => $seller_list));

$productCollection->addExpressionAttributeToSelect(
'lowest_price', 'IF(({{special_from_date}}<=now() AND {{special_to_date}}>=now() OR {{special_from_date}} IS NULL AND {{special_price}}>0),{{special_price}},IF({{sellingprice}}>0,{{sellingprice}},{{price}}))', array('special_from_date', 'special_to_date', 'special_price', 'sellingprice', 'price'));


$productCollection->getSelect()->columns('MIN(IF((IF(at_special_from_date.value_id > 0, at_special_from_date.value, at_special_from_date_default.value)<=now() AND IF(at_special_to_date.value_id > 0, at_special_to_date.value, at_special_to_date_default.value)>=now() OR IF(at_special_from_date.value_id > 0, at_special_from_date.value, at_special_from_date_default.value) IS NULL AND at_special_price.value>0),at_special_price.value,IF(at_sellingprice.value>0,at_sellingprice.value,at_price.value))) as l_price')->group('product_name');

我找出经销商的最低售价,特价,mrp。

使用 Group By 按产品名称对所有数据进行分组,得到最低价格的最小值,并根据最低价格对其进行排序。

问题

正如我所解释的那样,我正在使用 GROUP BY NAME,这样我就可以拥有独特的产品,但我无法获得价格最低的关联卖家的产品 ID。我需要获得最低价格的卖家 ID

GROUP BY 总是返回第一个 ROW ,但是 MIN() 函数给出最低的价格。 First ROW 没有关联的最低价格的 PRODUCT ID

最佳答案

您可以尝试在不使用 min 的情况下获取按价格订购的所有产品,这将使每个产品的第一行成为具有最低价格的产品,然后在外部选择中使用 group by,如下所示:

Select * from ( 
Select product.id, product_name, price, ....
//your query with joins
order by price
)
group by product.id

很抱歉没有提供 Magento 代码,因为我对它有基本的了解

关于php - Magento Product Collection GROUP BY 具有最低价格产品 ID 的最低价格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37854292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com