我有一个收银模块,取代了Magento 1.8的普通结账。它有一个唯一的URL,例如 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): ?>
mystore.com/mycashier 中的$ this-&gt; getTotal() - &gt; getFullInfo()为空。因此,我尝试使用分析器跟踪发生了什么:
在访问 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
但是,请注意,总折扣金额是可见且完美的,而不是单个折扣标签和金额。
我可以做些什么来完成这项工作?我该怎么办?
感谢任何想法!
谢谢!
答案 0 :(得分:0)
问题中的promo module会在文件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源代码)
答案 1 :(得分:0)
最后,我找到了解决方案,感谢Amasty。
在收银台模块中,我需要通过 getTotals()触发salesrule_validator_process,特别是来自 Mage :: getModel('checkout / cart') - &gt; getQuote()
所以我在模块的indexController文件中在布局渲染之前添加了两行:
$new_quote = Mage::getModel('checkout/cart')->getQuote();
$new_quote->collectTotals();