バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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
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
それに比べたら遥かにマシなことなので、当方ではコード修正せずにひとまず様子見とします。。

maruchan
投稿日時: 2022/5/26 13:16
対応状況: −−−
新米
登録日: 2022/5/25
居住地:
投稿: 2
Re: EC-CUBEペイメントLite4での在庫なしでのシステムエラー
yt1969さん ありがとうございます!

こちらも定期購入は必要がないので同様の対応をしてみようと思います。
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/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でも購入エラーの画面になるようにしたいですが、どのように修正したら良いでしょうか?
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,784名です
総投稿数は109,972件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1644
8
red
1570
9
mcontact
1289
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.