首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式取消订单时未触发Magento事件

以编程方式取消订单时未触发Magento事件
EN

Stack Overflow用户
提问于 2016-09-15 21:47:57
回答 2查看 1.3K关注 0票数 2

我正在运行一个脚本来自动取消订单。我的脚本看起来像这样。

代码语言:javascript
复制
$order->cancel()->save();

这样做的问题是,它正确地取消了订单,但似乎没有调度order_cancel_after事件。

我应该如何解决这个问题,我可以在我的脚本中调度这个事件吗?为什么取消操作不同于在后端订单页面点击取消按钮?

EN

回答 2

Stack Overflow用户

发布于 2017-07-18 10:12:22

下面是我想出的在调用$order->cancel()时在前端触发order_cancel_after事件的方法。我必须为一个Magento_Authorizenet问题实现它,在这个问题中,当信用卡被拒绝时,该事件不会被触发。

编辑:我刚刚意识到你的问题是针对Magento1 EE的。我会把这个留在这里,以防任何人在Magento 2 EE上也有这个问题。

使用指定的内容创建以下文件(将供应商替换为您的供应商名称):

app/code/Vendor/Reward/registration.php

这个文件负责让Magento了解你的模块。在添加此答案中的所有文件后,您将需要运行php bin/magento setup:upgrade

代码语言:javascript
复制
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    '[Vendor]_Reward',
    __DIR__
);

app/code/Vendor/Reward/etc/module.xml

这个文件声明了模块的安装版本和它所依赖的任何模块(在我们的例子中是Magento_Reward)。

代码语言:javascript
复制
<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="[Vendor]_Reward" setup_version="0.1.0">
        <sequence>
            <module name="Magento_Reward"/>
        </sequence>
    </module>
</config>

app/code/Vendor/Reward/etc/frontend/events.xml

这个文件将注册已经为adminhtml (后端)定义的股票Magento_Reward观察器,但是要为前端注册(因为它在adminhtml中的位置

代码语言:javascript
复制
<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="order_cancel_after">
        <observer name="magento_reward" instance="Magento\Reward\Observer\ReturnRewardPoints" />
    </event>
</config>
票数 1
EN

Stack Overflow用户

发布于 2016-09-16 13:09:47

您可以像这样调度您自己的事件:

代码语言:javascript
复制
Mage::dispatchEvent(
        'order_cancel_after',
        array('order' => $order, 'quote' => $this->getQuote())
    );

根据您的使用情况放置此代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39512779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档