【问题标题】:Getting both final price and out of stock products in Magento在 Magento 中获取最终价格和缺货产品
【发布时间】:2014-06-23 14:49:34
【问题描述】:

我正在为 Magento 模块编写一些代码,但我注意到一个相当大的问题,我似乎无法找到一个干净的解决方案。

基本上,我想按如下方式获取产品集合:

$products = Mage::getResourceModel('catalog/product_collection')
    ->setStoreId($storeId) // $storeId is set earlier in the code
    ->addAttributeToSelect('*')
    ->addFinalPrice()
    ->addStoreFilter()
    ->addUrlRewrite()
    ->getItems();

如果我这样做,那么在我的代码中的另一个地方,我正在迭代这个集合,我可以在单个捆绑产品上调用 getMinimalPrice() 并实际获取产品的价格。

但是,只要我在获取集合时调用addFinalPrice(),所有缺货产品都会从集合中排除。但是,如果我删除这个对addFinalPrice() 的调用,那么就不可能在捆绑产品上使用getMinimalPrice()(好吧,你可以随意调用它,但你不会得到任何数据。

所以,我发现自己处于一个有问题的境地,我如何以获取所有产品的方式获取集合,无论它们是否有库存,同时仍能获取足够的价格数据来实际获取我的捆绑产品的价格?

【问题讨论】:

    标签: php magento


    【解决方案1】:

    我不确定它是否能解决您的问题,但产品集合模型中有一个名为 addPriceData 的函数,可帮助您在加载集合时收集有关价格的信息(而不是 addFinalPrice)。当产品缺货时,它可以帮助获得最低价格。最终价格可以通过Mage_Catalog_Model_ProductMage_Catalog_Model_Product_Type_PricegetFinalPrice函数获取。第二个模型有很多有趣的价格函数。

    【讨论】:

    • 不幸的是,getFinalPrice 给了我0 作为捆绑产品的价格,而实际上所有addFinalPrice 所做的都是调用addPriceData
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    相关资源
    最近更新 更多