Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Amasty促销在Magento模块中不起作用_Php_Magento_Magento 1.8 - Fatal编程技术网

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

Php Amasty促销在Magento模块中不起作用,php,magento,magento-1.8,Php,Magento,Magento 1.8,我有一个出纳模块,它取代了普通的结账I Magento 1.8。它有一个唯一的url,例如mystore.com/mycashier 我的问题是Amasty中的折扣明细(标签和个人折扣金额)没有显示在购物车中。例如,mystore.com/checkout/cart或mystore.com/checkout/onepage,但在mystore.com/mycashier中不起作用 我在折扣中找到了这些特定行。phtml: <?php if (is_array($this->getTo

我有一个出纳模块,它取代了普通的结账I Magento 1.8。它有一个唯一的url,例如mystore.com/mycashier

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

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

<?php if (is_array($this->getTotal()->getFullInfo())) : ?>
<?php foreach ($this->getTotal()->getFullInfo() as $info): ?>
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\u validator\u过程
,并检查商品折扣是否大于零。然后打电话

$this->_addFullDescription($observer->getEvent()->getAddress(), 
                $rule, $item, $amountToDisplay);  
函数,它的轮到设置地址的完整描述

然后将其添加到Mage_SalesRule_Model_Quote_折扣类中,并显示在模板中

因此,您可以自定义模块 1.不要抛出事件
2.重写类别Mage\u SalesRule\u Model\u Quote\u折扣
3.对总计使用自定义模板

4.使用CSS隐藏折扣(查看页面HTML源代码)

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

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

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

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

任何人如何在第三方收银员上启动observer?非常感谢您的反馈。我敢肯定这是第一:不要扔球。2.模块中不重写此类。我在模块代码的任何地方都看不到Mage_SalesRule_Model_Quote_折扣。3.没有用于总计的自定义模板(它使用默认的totals.phtml)4。数据根本不在HTML文件中。问题:您介意告诉我如何将事件抛出模块吗?我为mystore.com/checkout/cart运行了探查器,其中Amasty模块的折扣详细信息非常有效,并与mystore.com/newcheckout模块进行了比较。这一个在签出/购物车调度事件中找到:salesrule_validator_process 0.0278 1 207472 262144,但在newcheckoutmodule中找不到。因此,解决方案必须是为newcheckoutmodule启动事件。请给我一些关于如何正确操作的反馈,我将非常感激!非常感谢满意的客户!:)我认为这取决于签出模块,取决于它的逻辑,您应该将事件抛出到正确的位置。