Amasty促销在Magento模块中不起作用


Amasty promotions not working in Magento module

我有一个收银模块,它取代了Magento 1.8的普通收银功能。它有一个唯一的url,例如mystore.com/mycashbor

我的问题是Amasty中的折扣明细(标签和个人折扣金额)没有显示在购物车中。这在mystore.com/checkout/cartmysql.com/checkout/onepage中起作用,但在mystore.com/mycheckout不起作用。

我在折扣.phtml:中找到了这些特定的行

<?php if (is_array($this->getTotal()->getFullInfo())) : ?>
<?php foreach ($this->getTotal()->getFullInfo() as $info): ?>

$this->getTotal()->getFullInfo()mystore.com/mycashbor中为NULL。因此,我尝试使用探查器跟踪发生了什么:

访问mystore.com/checkout/cart时在探查器中可以找到以下行,但访问mystore.com/mycheckout则无法找到:

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_ModelQuote_Discount类中,并显示在模板中。

因此,您可以自定义模块1.不要抛出事件
2.重写类Mage_SalesRule_Model_Quote_Discount
3.使用汇总的自定义模板
4.使用隐藏折扣的CSS(检查页面HTML源代码)

多亏了Amasty,我终于找到了解决方案。

在出纳模块中,我需要通过getTotals()触发salesrule_validator_process,特别是从Mage::getModel('checkout/cart')->getQuote()TR

因此,我在模块的indexController文件中的布局渲染之前添加了两行:

    $new_quote = Mage::getModel('checkout/cart')->getQuote();
    $new_quote->collectTotals();