我需要按数量和价格对产品进行分类,即所有类别的产品都应该按最大数量列出。最大数量的产品应该排在第一位,然后列出较低数量的产品。我通过在/app/code/core/mage/catalog/model/resource/product/collection.php中编写这段代码实现了这一点
public function addAttributeToSort($attribute, $dir = self::SORT_ORDER_ASC)
{
if ($attribute == 'position') {
/**** Sorting for quantity starts***************/
//join the stock status index table for the current website and check if the product is saleable and the qtu.
$select = $this->getSelect();
$select->joinLeft(
array('stock_qty' => $this->getTable('cataloginventory/stock_status')),
'e.entity_id = stock_qty.product_id AND stock_qty.website_id='.Mage::app()->getWebsite()->getId(),
array(
'salable' => 'stock_qty.stock_status',
'qty' => 'stock_qty.qty'
)
);
//get the reversed sorting
//if by position ascending, then you need to sort by qty descending and the other way around
$reverseDir = ($dir == 'ASC') ? 'DESC' : 'ASC';
//this is optional - it shows the in stock products above the out of stock ones independent if sorting by position ascending or descending
$this->getSelect()->order('salable DESC');
//sort by qty
$this->getSelect()->order('qty '.$reverseDir);
return $this;
/**** Sorting for quantity ends ***************/
} elseif($attribute == 'is_saleable'){
$this->getSelect()->order("is_saleable " . $dir);
return $this;
}
$storeId = $this->getStoreId();
if ($attribute == 'price' && $storeId != 0) {
$this->addPriceData();
$this->getSelect()->order("price_index.min_price {$dir}");
return $this;
}
if ($this->isEnabledFlat()) {
$column = $this->getEntity()->getAttributeSortColumn($attribute);
if ($column) {
$this->getSelect()->order("e.{$column} {$dir}");
}
else if (isset($this->_joinFields[$attribute])) {
$this->getSelect()->order($this->_getAttributeFieldName($attribute) . ' ' . $dir);
}
return $this;
} else {
$attrInstance = $this->getEntity()->getAttribute($attribute);
if ($attrInstance && $attrInstance->usesSource()) {
$attrInstance->getSource()
->addValueSortToCollection($this, $dir);
return $this;
}
}
return parent::addAttributeToSort($attribute, $dir);
}
现在我需要按价格递减来分类产品,即数量递减与价格递减
Product Quantity Price
------- -------- -------
A 100 9000
B 100 8000
C 89 7000
D 80 6000
我还尝试转到系统>配置>目录>产品列表Sort by=Price。但这对我没有帮助。所以我在寻找解决方案,我认为解决方案是通过操纵这里的代码
$select = $this->getSelect();
$select->joinLeft(
array('stock_qty' => $this->getTable('cataloginventory/stock_status')),
'e.entity_id = stock_qty.product_id AND stock_qty.website_id='.Mage::app()->getWebsite()->getId(),
array(
'salable' => 'stock_qty.stock_status',
'qty' => 'stock_qty.qty'
)
);
请帮帮我。提前致谢
最后,我找到了解决方案:在按降序排序数量后添加这行代码==>$this->getselect()->order('price desc');
$select = $this->getSelect();
$select->joinLeft(
array('stock_qty' => $this->getTable('cataloginventory/stock_status')),
'e.entity_id = stock_qty.product_id AND stock_qty.website_id='.Mage::app()->getWebsite()->getId(),
array(
'salable' => 'stock_qty.stock_status',
'qty' => 'stock_qty.qty'
)
);
//get the reversed sorting
//if by position ascending, then you need to sort by qty descending and the other way around
$reverseDir = ($dir == 'ASC') ? 'DESC' : 'ASC';
//this is optional - it shows the in stock products above the out of stock ones independent if sorting by position ascending or descending
$this->getSelect()->order('salable DESC');
//sort by qty
$this->getSelect()->order('qty '.$reverseDir);
$this->getSelect()->order('price DESC');
return $this;
我用的是Woo排序 在商业方面
我的elasticsearch索引中有几千个文档。文档有几个嵌套集合。其中之一是“变体”的嵌套集合。JSON结构文档之一是: 我的商店在一页上只显示了48种产品。我的索引总共有4800种产品,所以在我的商店里有100页。 我对按价格排序有一个问题。 我编写了一些elasticsearch查询(用于第一页): 我有第一个48个产品与他们的变体,但这种排序工作不是在我的索引中的所有产品变体。这种排序的
在从可配置产品中获取一些数据时遇到了问题,基本上“标准”下拉选择菜单会在我的产品页面上正常地选择一些数据。 正如您所看到的,title中的attr是空白的,因为这是我需要拉入选项值的地方。magento为选项框提供的html如下所示: 我想我已经找到了我需要的价值所在的位置, App/code/core/mage/catalog/model/resource/product/type/config
本文向大家介绍python根据京东商品url获取产品价格,包括了python根据京东商品url获取产品价格的使用技巧和注意事项,需要的朋友参考一下 京东商品详细的请求处理,是先显示html,然后再ajax请求处理显示价格。 1.可以运行js,并解析之后得到的html 2.模拟js请求,得到价格 再给大家分享一个京东价格的爬虫:
我使用Woocommerce插件在wordpress中开发了购物车。我需要按产品价格在购物车订单中显示产品,请帮助我做到这一点 谢啦
我需要找到产品的最低和最大价格,这样我就可以用它来设置我的价格过滤器的范围。我在catalog/model/layer/filter/price.php中使用了getMaxPriceInt()和getMinPriceInt()方法。但是返回的值基于'min_price'字段。 如何根据final_price找出集合中产品的最低和最高价格?也就是说,如果集合中有4个产品(我只登记需要的字段) get