Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按最低价格划分的Magento产品集合组是否具有最低价格产品ID?_Php_Mysql_Database_Sorting_Magento - Fatal编程技术网

Php 按最低价格划分的Magento产品集合组是否具有最低价格产品ID?

Php 按最低价格划分的Magento产品集合组是否具有最低价格产品ID?,php,mysql,database,sorting,magento,Php,Mysql,Database,Sorting,Magento,工作环境总结 我在一个网站上工作,我们有客户和经销商。每个经销商可以有自己的产品价格 生产收集数据对于每个具有该卖方价格的产品都有另一个重复记录(克隆产品)。例如,如果主目录有IPHONE 6S。超过5家iphone6s经销商可以有自己的价格。克隆产品将创建与卖家ID相关的新产品ID 要求 我需要得到类别明智的产品清单有最低的经销商价格。还需要根据最低价格对列表进行排序 我尝试的 目前我可以按类别列出所有价格最低的产品 $productCollection = Mage::getResource

工作环境总结

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

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

要求

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

我尝试的

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

$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');
$productCollection=Mage::getResourceModel('catalog/product\u collection'))
->addAttributeToSelect('sellingprice')
->setStoreId($storeId)
->joinField('category\u id','category/category\u product','category\u id','product\u id=entity\u id',null,'left')
->addAttributeToFilter('category\u id',array('in'=>$\u POST['category\u id']))
->addAttributeToFilter('status',array('eq'=>1))
->addAttributeToFilter('dis_continue',array('eq'=>0));
$productCollection->addAttributeToFilter('seller_id',数组('in'=>$seller_list));
$productCollection->addExpressionAttributeToSelect(
'最低价格','IF({special_from_date}}=now()或{special_from_date}}}为空且{special_price}>0),{{special_price}},IF({sellingprice}>0,{sellingprice},{price}'),数组('special_from_date,'special_to_date,'sellingprice}>,'sellingprice');
$productCollection->getSelect()->列('MIN(如果((从日期到日期的特殊值)id>0,从日期到日期的特殊值,从日期到日期的特殊值)0,从日期到日期的特殊值,从日期到默认值)>=now()或如果(从日期到日期的特殊值,从日期到默认值)为空,且在特殊价格下。值>0),在特殊价格下。值,如果(在特殊价格下。值>0,在特殊价格下。值,在特殊价格下。值)作为l价格->组('product_name');
我找到了最低的销售价格,特价,mrp的经销商

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

问题

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


GROUP BY始终返回第一行,但MIN()函数给出最低的价格。第一行没有最低价格的关联产品ID

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

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

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

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

Select * from ( 
   Select product.id, product_name, price, .... 
          //your query with joins
          order by price
   )
group by product.id
很抱歉没有提供Magento代码,因为我对它有基本的了解