2011-11-28 11 views
5

最近、オブザーバーとMagentoイベントを使用してMagentoストアの受注を管理するための自動スクリプトをいくつか設定しました。私の問題は、注文が選択された支払いタイプに応じてシステムに置かれて保存されるときの問題を扱っています。Magento PayPalモジュールのイベント

たとえば、誰かが前払いを選択した場合、注文はすぐに保存され、顧客は自動的に成功ページに転送されます。これまでのところ問題はありません。

お客様がPaypal経由で支払いを行う場合、状況はまったく異なります。 PayPalにリダイレクトされ、アカウントにログインして支払いを確認した後、顧客はMagentoストアにリダイレクトされません。彼はリンクをクリックしてそこに戻り、成功ページにも転送しますが、確かに誰もそれをやることはありません。問題は、私が使っているオブザーバーイベントは、そのページにユーザーがいるとコードを実行するだけです。 (私が使っているイベントは "checkout_Onepage_Controller_Success_Action"です)。

したがって、私は、MagentoがPayPalの支払いが成功したか、キャンセルされたかなどの情報をどこから取得する必要があるかを知る必要があります。私は、/ app/code/core/Mage/Paypal/controllers /の下のPayPalコントローラファイルを調べましたが、可能な解決策に近いと思われるのはStandardController.phpのsuccessAction()でした。しかし、この機能は、顧客がMagento店に戻って私の役に立たないようにすることを選択した場合にのみ起動されるようにも見えます。

誰かがその問題を経験していますか?

+0

正確に使用しているpaymenntメソッドを指定 –

+0

私の例はMagento v1.5.1.0の標準PayPalモジュールを指します – FlyingM

+0

コントローラーイベントではなくオーダーオブジェクトに関連するイベントにバインドし、すべてのイベントをテキストファイルにログアウトしてくださいあなたのプロセスの中でトリガーされているものがあれば、適切なものを選択することができます –

答えて

0

私は問題を回避する方法を考え出しました: 明らかに、MagentoにはPayPalの入金に対応するイベントはありません。可能な解決策は、支払いが確認されるとすぐにスクリプトをトリガーするIPN URLを提供することですが、顧客を店舗にリダイレクトして管理する必要はありませんでした。

「ウェブサイトの設定」のPayPalアカウントのプロファイル設定には、「自動リダイレクト」というオプションがあります。このオプションを有効にしてURLを入力すると、顧客は自動的にそのURLに転送されます。最初は、これは私には役に立たないと思ったのは、複数のWebショップが関わっており、すべてが自分の個別のリターンURLを持ち、複数のWebショップを指定することはできないからです。ただし、返品URLがPayPalに渡されたときに渡されると、プロファイル設定で指定されたURLを上書きします。Magentoモジュールはデフォルトでこれを行いますので、テキストフィールドにランダムURLを入力してオプションを有効にするだけでした顧客が注文をしてPayPal経由で支払いをすると、私の店にリダイレクトされるようになりました。

関連する問題