$order->cancel()
が呼び出されたときにフロントエンドでorder_cancel_after
イベントが発生するようになったのはこれです。私は、Magento_Authorizenの問題のためにこれを実装しなければなりませんでした。その問題は、クレジットカードが拒否されたときにそのイベントが解消されなかったためです。
を編集してください:Magento 1 EEに関するご質問がありました。 Magento 2 EEでこの問題が発生した場合に備えて、ここに残しておきます。
、指定されたコンテンツ(ベンダー名で[ベンダー]の交換)で、次のファイルを作成します。
アプリ/コードを/ [ベンダー] /Reward/registration.php
このファイルには責任がありますあなたのモジュールについてMagentoに知らせるためです。この回答のすべてのファイルを追加したら、php bin/magento setup:upgrade
を実行する必要があります。
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'[Vendor]_Reward',
__DIR__
);
アプリ/コード/ [ベンダー] /Reward/etc/module.xml
このファイルには、モジュールのセットアップのバージョンと、それは(私たちの場合はMagento_Reward)に依存して任意のモジュールを宣言します。
<?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>
アプリ/コード/ [ベンダー] /Reward/etc/frontend/events.xml
すでにadminhtml(バックエンド)のために定義された株式Magento_Rewardオブザーバを登録しますが、ためにそれを行います。このファイルフロントエンド(なぜなら、それは/ etc フロントエンドに場所年代の):
<?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>
あなたの拡張機能のconfig.xml –
に追加されたイベントハンドルを共有することができますそれは、企業の報酬の拡張機能である、私はこの拡張機能をorder_cancel_afterトリガすることになるでしょう顧客に報酬を返す。 – Jack
@Jack私はMagento 2 EEでまったく同じ問題を実際に処理しています。 Magento_Rewardsのorder_cancel_afterイベントは、バックエンドでのみ起動するように設定されているようです。フロントエンドでイベントオブザーバを登録するモジュールを追加する方法を示す答えを追加します。 – floorz