我正在開發一個腳本(Magento外部,而不是一個模塊),其目的是輸出所有可用產品的文本列表,它們的價格和一些其他屬性。但是,目錄價格規則似乎不適用於產品價格。如果我使用以下任何一項:Magento:如何獲得應用目錄規則的產品的價格
$_product->getPrice()
$_product->getFinalPrice()
我得到正常價格(沒有應用規則)。
如果我使用:
$_product->getSpecialPrice()
我得到空,除非該產品實際上有一個特殊的價格插在產品本身的(即如有特殊價格不與目錄規則有關)。
我也試過
Mage::getModel('catalogrule/rule')->calcProductPriceRule($product,$product->getPrice())
爲在法比安布萊赫施密特給出的答案建議,但有趣的是它返回只有當產品被任何目錄規則的影響,回國空否則正常價格。
前段時間StackOverflow和Magento Forums也有類似的問題,但是提供的答案(即插入代碼如下)對我不起作用(返回的價格保持不變)。
Mage::app()->loadAreaPart(Mage_Core_Model_App_Area::AREA_FRONTEND,Mage_Core_Model_App_Area::PART_EVENTS);
有沒有人有如何實現這個想法?
我使用的是Magento 1.6.2.0。 在此先感謝。
也許還有其他的事情正在涉及您的數據或索引。所有定製模塊被禁用時,折扣價格是否按默認主題預期顯示? – benmarks
是的,折扣價顯示在前端。問題是這不是一個Magento模塊,而是一個「外部」腳本。看來Magento加載了一切正常工作所需的附加內容。換句話說,Magento中的所有東西都必須是一個模塊...... – faken
*「Magento中的所有內容都必須是模塊」* - 並非如此。然而,有很多模塊在應用程序執行時以多種方式進行交互。我會檢查'Mage_CatalogRule_Model_Observer'是否正在實例化。也許你應該粘貼遠程腳本的相關部分('Mage :: app()'實例化,'loadAreaPart()'調用,產品加載等) – benmarks