【问题标题】:Magento - Show out of stock products lastMagento - 最后显示缺货产品
【发布时间】:2014-09-10 04:28:33
【问题描述】:

我正在使用 Magento 1.9,并且我在 /app/code/local/Mage/Catalog/Block/Product/List.php 中使用了此代码行:

$this->_productCollection = $layer->getProductCollection()
                ->joinField(
                    'inventory_in_stock', 
                    'cataloginventory_stock_item', 
                    'is_in_stock', 
                    'product_id=entity_id',
                    'is_in_stock>=0', 
                    'left')
                ->setOrder('inventory_in_stock','desc');

但什么也没发生。

有人可以帮助我吗? 提前致谢!

【问题讨论】:

  • 尝试addAttributeToSort('inventory_in_stock', 'desc');而不是setOrder
  • 还是不行。

标签: magento


【解决方案1】:

您必须添加此代码:

$this->getSelect()->joinLeft(
            array('_inventory_table'=>$this->getTable('cataloginventory/stock_item')),
            "_inventory_table.product_id = e.entity_id",
            array('is_in_stock', 'manage_stock')
        );
        $this->addExpressionAttributeToSelect('on_top',
        '(CASE WHEN (((_inventory_table.use_config_manage_stock = 1) AND (_inventory_table.is_in_stock = 1)) OR  ((_inventory_table.use_config_manage_stock = 0) AND (1 - _inventory_table.manage_stock + _inventory_table.is_in_stock >= 1))) THEN 1 ELSE 0 END)',
         array());
        $this->getSelect()->order('on_top DESC');

就在之前

if ($attribute == 'price' && $storeId != 0) {
in app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php

如果你有 Magento,则在 app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php 中 1.7.0.0

或者你可以使用这个magento模块

http://www.magentocommerce.com/magento-connect/show-out-of-stocks-products-at-bottom.html

【讨论】:

  • 在我的 Magento 版本中,app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php 中的 Collection.php 文件为空...
猜你喜欢
  • 2015-04-30
  • 1970-01-01
  • 2011-05-26
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多