バージョン選択

フォーラム

メニュー

オンライン状況

42 人のユーザが現在オンラインです。 (37 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 42
もっと...

サイト内検索

プラグイン > 開発について > 購入フローのerror, rollback処理はどこに実装するのが適切でしょうか

開発について

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
sheep
投稿日時: 2021/11/7 15:42
対応状況: 解決済
半人前
登録日: 2018/8/12
居住地:
投稿: 14
購入フローのerror, rollback処理はどこに実装するのが適切でしょうか
[EC-CUBE] 4.1


こんにちは。
現在決済プラグインを独自で制作中です。

[実現したいこと]

ShoppingController::checkout において
validate, apply, checkout と処理が流れていきますが
この流れの途中でエラーが発生した時に、独自のrollback処理を実装したいです。

クレジットカード情報をサーバー経由させないように
注文確認画面のsubmit(注文確定)のタイミングで、下記のような流れで処理を行おうと考えております。

1. 外部決済サービス(Stripe)のAPIを利用して、仮売上として売上を立てる
2. EC-CUBE注文確認画面をsubmitする(ShoppingController::checkoutが実行される)
3. 手順2でエラーが起きた際に、手順1の仮売上をキャンセルする(Order情報があればキャンセル手続きができます)

[試したこと]

ShoppingController::errorのイベントである「EccubeEvents::FRONT_SHOPPING_SHIPPING_ERROR_COMPLETE」では
cartServiceからOrder情報が取れないので、適切ではなさそうでした。

では、PurchaseProcessorを実装して、rollback関数に実装すれば良いのかな?と思ったのですが
例えば在庫が足りない時などには、このrollback関数に辿り着く前に、購入手続きのwarningに戻ってしまいます。

では、ItemHolderValidatorを拡張して、handle関数に実装すれば良いのかな?と思ったのですが
在庫が足りない時には、StockValidatorのhandle関数が実行されるだけで、自作のItemHolderValidatorのhandle関数は実行されませんでした。

私の想像できる限りのことは試したつもりですが、、、、、
正解に辿り着けなかったので、もし知見を持った方がいらっしゃればと質問させていただきました。

何卒、よろしくお願いいたします。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 購入フローのerror, rollback処理はどこに実装するのが適切でしょうか sheep 2021/11/7 15:42
     Re: 購入フローのerror, rollback処理はどこに実装するのが適切でしょうか 468 2021/11/8 10:28
       Re: 購入フローのerror, rollback処理はどこに実装するのが適切でしょうか sheep 2021/11/8 17:46
         Re: 購入フローのerror, rollback処理はどこに実装するのが適切でしょうか 468 2021/11/8 19:09
           Re: 購入フローのerror, rollback処理はどこに実装するのが適切でしょうか sheep 2021/11/8 20:16

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,885名です
総投稿数は110,000件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.