バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > dtb_product_stockについて教えていただきたいです

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kishikawa
投稿日時: 2019/2/22 12:02
対応状況: 解決済
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
dtb_product_stockについて教えていただきたいです
[EC-CUBE] 3.0.16
[PHP] 7.1
[データベース] MySQL
[WEBサーバ] apache

現在、在庫数はdtb_product_classとdtb_product_stockに持っていますが、
今やっているカスタマイズにて、在庫を触る箇所が増えます。
dtb_product_classとdtb_product_stockの不整合が起こらないように注意して実装をする予定ですが、そもそもdtb_product_stockの在庫数のデータは必要なのかな、と思いまして、どのような意味のあるデータなのか知りたいです。
dtb_product_stockを使わないようにすると、どのような影響があるのでしょうか?

hiroo
投稿日時: 2019/2/22 12:51
対応状況: −−−
長老
登録日: 2016/6/9
居住地:
投稿: 160
Re: dtb_product_stockについて教えていただきたいです
ざっくり言うと、見た目上の在庫と実際の在庫、のような使い分けのようです。
kishikawa
投稿日時: 2019/2/22 13:50
対応状況: −−−
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
Re: dtb_product_stockについて教えていただきたいです
hirooさん、ありがとうございます!

dtb_product_stockが見た目上の在庫で、
dtb_product_classが実際の在庫、
ということでしょうか?

ではdtb_product_stockとdtb_product_classの在庫数はずれがある可能性もある、ということでしょうか?
見た目上の在庫と、実際の在庫を分けて持っておきたい理由も知りたいです。
tsuji
投稿日時: 2019/2/22 13:50
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: dtb_product_stockについて教えていただきたいです
kishikawa 様


横から失礼します。
もう少し詳しく言いますとdtb_product_stockは
同一商品の同時購入を防いで購入によって
在庫が正しく減るように使われています。

2系では在庫がdtb_products_classのみに含まれていてそこでも
同様の仕組みが用いられていましたので、
dtb_product_classのみにすることも技術的には可能と思っています。

しかし、2系の場合、在庫を更新しない商品情報の更新によって
該当商品を含む購入が止まってしまう問題が起こったことがあるので
3系でテーブルを分けることによってそれが防がれているのだと思います。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

kishikawa
投稿日時: 2019/2/22 14:07
対応状況: −−−
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
Re: dtb_product_stockについて教えていただきたいです
tsuji様

ご回答ありがとうございます!

> 同一商品の同時購入を防いで購入によって
> 在庫が正しく減るように使われています。

こちらは購入時にdtb_product_stockにロックをかけていることをさしているのでしょうか?
dtb_product_stockではなくdtb_product_classにロックをかけても同様のことは可能なのかなと思っています。

また、管理画面の商品情報の更新では、在庫にロックをかける処理はないので、フロントで購入が止まるようなことはなさそうなのですが・・・。
(管理画面で在庫がロックなしに更新できることも疑問なのですが)

私の知識不足なのだと思いますが、テーブルを分けて持つ意義が完全には納得しきれないでいます・・・
hiroo
投稿日時: 2019/2/22 14:19
対応状況: −−−
長老
登録日: 2016/6/9
居住地:
投稿: 160
Re: dtb_product_stockについて教えていただきたいです
dtb_product_classが見た目上の在庫で、
dtb_product_stockが実際の在庫、ということのようです。

私もkishikawaさんと同じ疑問を持っていたのですが、ここのフォーラムで上記のようなことが書かれていたのを見た記憶があります。

フロントでカートに入れるあたりの在庫チェックをdtb_product_classで行うことで、購入時の在庫ロックの影響をうけないようにする、って感じなのではないでしょうか。
kishikawa
投稿日時: 2019/2/22 15:30
対応状況: −−−
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
Re: dtb_product_stockについて教えていただきたいです
hiroo様

重ねてご回答いただきありがとうございます。

>dtb_product_classが見た目上の在庫で、
>dtb_product_stockが実際の在庫、ということのようです。

そうなんですね、私が思っていたのと逆でしたね。
在庫チェックは見た目上の在庫で、
ロックをかけるのは実際の在庫で、ということですかね。

>フロントでカートに入れるあたりの在庫チェックをdtb_product_classで行うことで、購入時の在庫ロックの影響をうけないようにする

dtb_product_stockはselect for updateなので、在庫のチェックだけならselectするだけなので影響を受けなそうですが・・・。

実はdtb_product_stockがなくてもあまり問題がないのかなという印象を受けました。
ありがとうございました。
hiroo
投稿日時: 2019/2/23 10:59
対応状況: −−−
長老
登録日: 2016/6/9
居住地:
投稿: 160
Re: dtb_product_stockについて教えていただきたいです
私も同じように思い、以前にここで質問をしたことがあります。

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=17797&forum=2&post_id=77379#forumpost77379

しかし、回答は得られませんでした
tsuji
投稿日時: 2019/2/25 15:30
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: dtb_product_stockについて教えていただきたいです
kishikawa 様, hiroo 様

個人的な見解ですので、あくまで参考程度にしていただきたいのですが、

2系で商品登録CSVで登録が長い場合に購入できないという現象が発生しました。
トランザクションにより該当商品のdtb_products_classのレコードが
次々にロックされることによって
購入時の在庫のロックができないという状態が発生しました。

現状の3系のソースでも在庫が商品登録CSVに含まれているため、
dtb_product_classとdtb_product_stockにロックが掛かり
同様のことは発生すると思います。
しかし、商品登録CSVから在庫を別にした場合は
dtb_product_classにロックがかかるようになるため、
この現象は防げるということになるかと思っています。
※ つまり商品登録CSVの他に在庫登録CSVを作るイメージです。

上記で効力を発揮するかと思っています。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

kishikawa
投稿日時: 2019/2/25 15:45
対応状況: −−−
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
Re: dtb_product_stockについて教えていただきたいです
tsuji様

重ねてご回答いただきありがとうございます!

確かにロックが長時間になってしまうと、
ロックを取得する購入画面では待ちが発生しますね。
しかもCSV登録でロックを取得すると、
最終的なコミットまで待たなければならないので、
ロック時間が長くなりそうですね。

3系ではCSV登録ではロックを取得していないようですが、
上記のような理由があったのですね。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.