バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > EC-CUBEペイメントLite4での在庫なしでのシステムエラー

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
maruchan
投稿日時: 2022/5/25 15:19
対応状況: −−−
新米
登録日: 2022/5/25
居住地:
投稿: 2
EC-CUBEペイメントLite4での在庫なしでのシステムエラー
▼テンプレート
[EC-CUBE] EC-CUBE4.0.5、新規インストール
[レンタルサーバ] AWS
[OS] Amazon Linux 2
[PHP] 7.4.15
[導入プラグインの有無] EC-CUBEペイメントLite4

[現象] 商品Aをカートに入れてカート画面の状態で、他のユーザーもしくは管理画面で商品Aの在庫が0になった後にカート画面からレジに進むボタンを押すとシステムエラーの画面になります。

EC-CUBEペイメントLite4を停止した状態で同じことをすると購入エラーの画面になります。

EC-CUBEペイメントLite4でも購入エラーの画面になるようにしたいですが、どのように修正したら良いでしょうか?
yt1969
投稿日時: 2022/5/25 19:40
対応状況: −−−
一人前
登録日: 2018/3/3
居住地:
投稿: 91
Re: EC-CUBEペイメントLite4での在庫なしでのシステムエラー
うわ、ほんとですね。。

Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalThrowableError: "Call to a member
  function getDelivery() on bool" at
  /Users/xx/web/EC/onlineshop/app/Plugin/EccubePaymentLite4/Service/PurchaseFlow/Processor/MemberCheckForRegularPurchaseValidator.php
  line 47


MemberCheckForRegularPurchaseValidator.phpの
46:        // 定期商品ではない場合は処理をスキップ
47:        if ($Order->getShippings()->first()->getDelivery()->getSaleType()->getName() !== '定期商品') {
48:            return;
49:        }

ここで在庫0になったら$Order->getShippings() が値を返さないから落ちちゃう。

Order.phpのここって在庫に左右されるんですかね??
        /**
         * Get shippings.
         *
         * @return \Doctrine\Common\Collections\Collection|\Eccube\Entity\Shipping[]
         */
        public function getShippings()
        {
            $criteria = Criteria::create()
            ->orderBy(['name01' => Criteria::ASC, 'name02' => Criteria::ASC, 'id' => Criteria::ASC]);

            return $this->Shippings->matching($criteria);
        }

もはや違う問題? 私にはわかりません。。

追記:これと関係ある? Avoid using Doctrine’s Collection::matching method

→ 正規ルートとして開発元となるイプシロンに問合せしていただいたほうがよろしいかと思います。


ちなみに当方では定期購入とかやってないんで、下記2つの「$Order->getShipping()」が使われているif判定を削除してreturnだけ残して逃げようかなと思います。
app/Plugin/EccubePaymentLite4/Service/PurchaseFlow/Processor/MemberCheckForRegularPurchaseValidator.php
app/Plugin/EccubePaymentLite4/Service/PurchaseFlow/Processor/ProductClassRegularCycleValidator.php

…イプシロンの決済プラグイン、EccubePaymentLite4に変わってから当方には不要な定期購入のへんで色々面倒なことになって。。もう。。。
maruchan
投稿日時: 2022/5/26 13:16
対応状況: −−−
新米
登録日: 2022/5/25
居住地:
投稿: 2
Re: EC-CUBEペイメントLite4での在庫なしでのシステムエラー
yt1969さん ありがとうございます!

こちらも定期購入は必要がないので同様の対応をしてみようと思います。
yt1969
投稿日時: 2022/5/26 23:59
対応状況: −−−
一人前
登録日: 2018/3/3
居住地:
投稿: 91
Re: EC-CUBEペイメントLite4での在庫なしでのシステムエラー
昨日はドタバタっとやっちゃったのでもう一度状況を整理。

在庫が1しかない商品をAさんBさんが同時購入しようとしている。

〜〜
APP_ENV=dev
APP_DEBUG=1

case-1)
Aさんがカートに入れてジーッとしてる
その隙にBさんが購入しちゃった
この後Aさんがレジに進むと「FatalThrowableError」システムエラー

case-2)
Aさんがカートに入れた後ご注文手続きをしている
その隙にBさんが購入しちゃった
この後Aさんが確認するに進むと「FatalThrowableError」システムエラー

case-3)
Aさんがカートに入れた後ご注文内容のご確認をしている
その隙にBさんが購入しちゃった
この後Aさんが注文するに進むと「FatalThrowableError」システムエラー

case-4)
Aさんがカートに入れた後お買い物を続ける
その隙にBさんが購入しちゃった
この後Aさんがカートに戻ると「現在カート内に商品はございません。」

〜〜
APP_ENV=prod
APP_DEBUG=0

case1,2,3)「FatalThrowableError」の代わりに

システムエラーが発生しました。
大変お手数ですが、サイト管理者までご連絡ください。
トップページへ

このエラー画面からトップに戻り、カートに戻ると「現在カート内に商品はございません。」

〜〜

つまり、本番環境だとシステムエラー画面になるけれど復帰は可能。
これは、、困るけど、致命的ではない、かな

同時購入取り合いは過去問題出たことがあるんだけど、1個しかないのに2人とも買えちゃったみたいなw
それに比べたら遥かにマシなことなので、当方ではコード修正せずにひとまず様子見とします。。

yt1969
投稿日時: 2022/11/11 14:47
対応状況: −−−
一人前
登録日: 2018/3/3
居住地:
投稿: 91
Re: EC-CUBEペイメントLite4での在庫なしでのシステムエラー
本件イプシロンに問い合わせしてましたら5ヶ月かかってw回答が来ましたので共有しておきます。

引用:

商品を同時購入された際の挙動につきまして、
以下の通りプラグインの改修が完了しております。

恐れ入りますが、プラグインを最新のバージョン(ver.1.0.15)へアップデートいただき
挙動についてご確認をいただけますでしょうか。

----------------------------------------
<リンク決済のご設定の場合>
購入処理中ステータス(イプシロン決済画面への遷移前)で在庫が0になった場合、
イプシロン決済画面への遷移前に購入エラーが発生し、
購入を完了することができない仕様へ修正済みとなります。

なお、イプシロン決済画面へ遷移し決済処理中ステータスに入った後で
在庫が0になった場合は購入も決済も完了できてしまいますことをご了承ください。

<トークン決済のご設定の場合>
クレジットカード情報入力画面で[購入する]ボタンを
クリックするまでに在庫が0になると購入エラーが発生するよう修正済みとなります。
[購入する]ボタンをクリックしてエラーにならなければ、購入も決済も完了している状態となります。
-----------------------------------------


Version1.0.14のリリースノートに「購入途中で在庫が0になった際に購入エラーメッセージが表示するように修正」とあるのでこれがそうだったのかな?
確認も何ももうすでに3Dセキュア2.0対応のためにVersion1.0.15使ってるんですけどねw
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン



統計情報

総メンバー数は76,865名です
総投稿数は105,255件です

投稿数ランキング

1
seasoft
7333
2
468
3217
3
AMUAMU
2712
4
nanasess
2275
5
umebius
2085
6
yuh
1669
7
red
1556
8
h_tanaka
1195
9
tsuji
944
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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