Amasty促销不在Magento模块中工作

时间:2014-08-27 00:03:09

标签: php magento magento-1.8

我有一个收银模块,取代了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

但是,请注意,总折扣金额是可见且完美的,而不是单个折扣标签和金额。

我可以做些什么来完成这项工作?我该怎么办?

感谢任何想法!

谢谢!

2 个答案:

答案 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();