我有一个收银机模块,以取代普通的结帐I Magento 1.8。它有一个独特的url,例如mystore.com/mycashier。
我的问题是,阿米斯蒂的折扣故障(标签和个别折扣金额)没有出现在购物车中。例如,它在mystore.com/checkout/cart或mystore.com/checkout/onepage,中工作,但在mystore.com/mycashier.中不起作用。
我在discount.phtml中找到了这些特定的行
<?php if (is_array($this->getTotal()->getFullInfo())) : ?>
<?php foreach ($this->getTotal()->getFullInfo() as $info): ?>$this->getTotal()->getFullInfo()在mystore.com/mycashier.中为空所以我试着用分析器追踪到底发生了什么:
在访问mystore.com/checkout/cart时,在分析器中可以找到下面的行,而在访问mystore.com/mycashier时则不能找到
OBSERVER: amasty_promo_model_observer
CORE::create_object_of::Amasty_Rules_Model_SalesRule_Rule_Condition_Product_Combine
CORE::create_object_of::Amasty_Rules_Model_SalesRule_Rule_Condition_Product
OBSERVER: amasty_rules_model_observer但是,请注意,总折扣金额是可见的,工作完美,只是没有个别的折扣标签和金额。
我能做些什么来使这件事成功,我该如何做呢?
任何想法都是值得赞赏的!
谢谢!
发布于 2014-09-02 09:24:13
最后我找到了解决办法,多亏了阿米斯蒂。
在出纳模块中,我需要通过Mage::getModel('checkout/cart')->getQuote() (特别是从getTotals() )触发salesrule_validator_process
因此,我在模块的indexController文件中的布局呈现之前添加了两行:
$new_quote = Mage::getModel('checkout/cart')->getQuote();
$new_quote->collectTotals();发布于 2014-08-29 09:00:31
问题中的promo模块在文件promo模块中添加单个项目折扣
它观察事件salesrule_validator_process并检查项目折扣是否大于零。然后打电话
$this->_addFullDescription($observer->getEvent()->getAddress(),
$rule, $item, $amountToDisplay); 它的功能,它反过来设置地址完整的描述。
然后将其添加到类Mage_SalesRule_Model_Quote_Discount中,并在模板中显示。
所以您的自定义模块可以1.不要抛出事件
https://stackoverflow.com/questions/25516977
复制相似问题