バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 在庫数の更新に関して質問です

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yskz
投稿日時: 2018/10/31 12:53
対応状況: −−−
新米
登録日: 2018/10/31
居住地:
投稿: 4
在庫数の更新に関して質問です
[EC-CUBE] 4.0.0
[レンタルサーバ] (開発環境 WSL)
[OS] windows10
[PHP] 7.2.11
[データベース] MySQL 5.7.24
[WEBサーバ] Apache/2.4.18
[ブラウザ] edge / chrome
[導入プラグインの有無] 無
[カスタマイズの有無] カスタマイズ準備中

※synfony/doctorineは初心者です。EC-CUBEも3系は触れてません。

他システムとの連携で、在庫を変動させたいと思っています。
とりあえず/src/Eccube/Controller/Admin/Product/ProductController.phpなどを参考に、
以下のような手順で更新できているようなのですが、作法的にあっているのでしょうか?


// $productClass : 更新対象の商品コードを持ったproductClass
if( !$productClass->isStockUnlimited() ){
  $productClass->setStock( 【新在庫数】 );
  $this->entityManager->persist( $productClass );
  
  $productStock = $productClass->getProductStock();
  $productStock->setStock( 【新在庫数】 );
  $this->entityManager->persist( $productStock );
  
  $this->entityManager->flush();
}


特に在庫数が2テーブルにそれぞれ存在しているのが不思議に思ったので、その辺りの理由も確認出来ると嬉しいです。
nanasess
投稿日時: 2018/10/31 15:37
対応状況: −−−
登録日: 2006/9/9
居住地: 宝塚
投稿: 1833
Re: 在庫数の更新に関して質問です
ProductClass::stock は、表示用の在庫数、
ProductStock は商品購入時に行ロックされるテーブルです。

ProductStock のロックを取得してから更新するのが正しいです。
以下の実装が参考になると思います。

https://github.com/EC-CUBE/ec-cube/blob/4.0/src/Eccube/Service/PurchaseFlow/Processor/StockReduceProcessor.php#L80-L94


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
有限会社 Loop AZ

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

yskz
投稿日時: 2018/10/31 18:33
対応状況: −−−
新米
登録日: 2018/10/31
居住地:
投稿: 4
Re: 在庫数の更新に関して質問です
ご教授ありがとうございます!

テーブルの役割の違い、ロックに関して、共に了解しました。
特にロックに関して、トランザクション回りなども含めて、もう少し調べてから実装してみようと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は35,019名です
総投稿数は88,157件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1833
4
yuh
1521
5
468
1287
6
red
1186
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
667
13 karin 656
14 sumida 641
15
homan
633
16
h_tanaka
587
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.