产品收集问题-错误的价格数据或未显示缺货商品


9

我正在根据当前类别检索产品集合。我需要这个集合来包含进货和缺货产品,还需要正确显示定价数据。

我的商店配置为将产品定价存储为含税价格,并在商店正面以包含价格和非专有价格显示价格。

获取集合的代码如下:

$category = Mage::registry('current_category'); 
$_productCollection = Mage::getModel('catalog/product')->getCollection()
                ->addCategoryFilter($category)
                ->addAttributeToSelect(['sku', 'name', 'price'])
                ->addAttributeToFilter('status', 1)
                ->addAttributeToSort('jump_number', Varien_Data_Collection::SORT_ORDER_ASC); 

上面的问题是,使用该getPriceHtml()方法加载价格块时,包含价和排除价都显示为包含价。

经过一番研究,我发现向addFinalPrice()收藏夹中添加一种方法可以使我获得预期的价格-正确的排他价和正确的包含价。

但是,如果包含该addFinalPrice()方法,则我的收藏不再包含缺货的产品。

有没有一种方法可以返回正确的定价数据,并让集合包含可销售和缺货的产品?

Answers:


3

addFinalPrice()也打电话applyProductLimitationFilters。此方法根据集合的配置方式应用多个过滤器,例如商店过滤器仅显示当前商店中可见的产品。

如果您要加载所有可见或不可见的产品(例如没有价格过滤器),则可以致电之前删除存储过滤器,如下所示addFinalPrice()

$collection->setStoreId(null);

@fschmengler-谢谢,这似乎是一个更好的选择。
BrynJ 2015年

1

我现在已经解决了这个问题,它实际上非常简单且合乎逻辑-我只需要转到Configuration -> Catalog -> Inventory“显示缺货中的商品”并将其设置为即可Yes

将上述设置为Yes,并将addFinalPrice()方法添加到集合中,现在我可以获得所有产品和正确的定价数据。


这是好的,如果你想股票产品的展现了出来无处不在。如果仅是此收藏,请参阅下面的答案
Fabian Schmengler 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.