[英]Amasty promotions not working in Magento module
我有一个收银员模块,可以代替普通的Magento 1.8结帐。 它具有唯一的网址,例如mystore.com/mycashier
我的问题是,Amasty中的折扣明细(标签和个人折扣金额)没有显示在购物车中。 例如,这在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中为NULL。 因此,我尝试使用探查器跟踪发生的情况:
在访问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
但是,请注意,总折扣金额可见并且可以正常使用,而单个折扣标签和金额却没有。
我可以做些什么来做这项工作,我该怎么做?
任何想法表示赞赏!
谢谢!
问题中的促销模块在文件app \\ code \\ local \\ Amasty \\ Rules \\ Model \\ Observer.php中添加单个项目折扣
它观察事件salesrule_validator_process
并检查商品折扣是否大于零。 然后打电话
$this->_addFullDescription($observer->getEvent()->getAddress(),
$rule, $item, $amountToDisplay);
该函数依次设置地址的完整描述。
然后将其添加到Mage_SalesRule_Model_Quote_Discount类中,并显示在模板中。
因此,您的自定义模块可以1.不引发事件
2.重写类Mage_SalesRule_Model_Quote_Discount
3.使用自定义模板进行总计
4.使用隐藏折扣的CSS(检查页面HTML源代码)
终于,有了Amasty,我找到了解决方案。
在出纳模块中,我需要通过getTotals()触发salesrule_validator_process,特别是从Mage :: getModel('checkout / cart')-> getQuote()
因此,我在模块的indexController文件中的布局渲染之前添加了两行:
$new_quote = Mage::getModel('checkout/cart')->getQuote();
$new_quote->collectTotals();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.