在产品列表和搜索结果页面的末尾显示缺货

时间:2014-02-26 14:58:41

标签: php magento magento-1.7 e-commerce

我已经在SO和其他论坛上尝试了这里提到的方法,但它没有用。我正在使用Magento ver。 1.7.0.2我希望将所有Out of Stock产品移至产品列表和搜索结果页面的末尾。

以下是我的尝试:

我将Collection.php的副本从/app/code/core/Mage/Catalog/Model/Resource/Product/复制到/app/code/local/Mage/Catalog/Model/Resource/Product/,并在addAttributeToSort函数开头的代码下面粘贴。

$this->getSelect()->joinLeft(array('_inventory_table' => $this->getTable('cataloginventory/stock_status')), '_inventory_table.product_id = e.entity_id', array('stock_status'));
$this->getSelect()->order('stock_status DESC');

它没有用,我更喜欢可以通过magento主题完成的选项,而不是编辑核心文件并将其复制到本地目录。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我希望在list.phtml文件中实现更直接的方法,或者在相应的类文件中使用函数,例如Yourpackage / Yourmodule / Block / Product / List.php。

您可以使用此代码

访问每个$_product的库存水平
  $cabac_stockObject = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product); 
  //get the stock levels
  $cabac_stockQuantityAvailable = (int)$cabac_stockObject->getQty() - (int)$cabac_stockObject->getMinimumQty(); //returns string! Like 10.000 or 0.0000 for 10 or 0 so cast to (int)  
  $cabac_stockStatus = (int)$cabac_stockObject->getIsInStock(); //returns string! Like 10.000 or 0.0000 for 10 or 0 so cast to (int)  

然后可以遍历集合,将产品对象和库存计数添加到数组中,按库存计数排序,然后将已排序的数组传递到list.phtml的{​​{1}}循环中。

这样的事情(粗略的伪代码道歉)

foreach