バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > バグ報告・利用に関する質問 > 商品オプションプラグイン(ProductOption)について

バグ報告・利用に関する質問

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
zN45n3wg79
投稿日時: 2020/1/14 13:25
対応状況: −−−
新米
登録日: 2020/1/14
居住地:
投稿: 5
商品オプションプラグイン(ProductOption)について
現在、受注管理>受注マスター>受注管理(受注登録・編集)画面にはユーザーが注文した際に設定したオプションの名前が表示されますが、
そこにオプション管理で設定した金額も表示したいように考えております。
そのため、デフォで商品を注文した際dtb_order_detailというテーブルに注文した商品の情報が格納されるように
オプションの価格もどこかのテーブルに登録されないか、あるのならそこから引っ張ってこれないかと思い、
テーブルを調べてみました。

その結果
・オプションの名前や価格を設定した際登録されるテーブル:A
・受注した際に格納されるテーブル:B
ということがわかりました。
上記を踏めて検証を行った結果、
管理画面からオプション価格を変更し、受注管理(受注登録・編集)画面を更新すると、
受注データが格納されているテーブルBの中身も更新されてしまうことがわかりました。
そのためやりたいことが実現できずに困っております。

上記のような場合みなさまどうされているでしょうか?
ご意見・ご教授いただけますと幸いです。
よろしくお願いいたします。

■使用しているバージョン
EC-CUBE:3.0.17
DBサーバー:MySQL 5.7.27
WEBサーバー:Apache
PHPバージョン:7.2
商品オプションプラグインバージョン:1.7.6
468
投稿日時: 2020/1/15 11:05
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2444
Re: 商品オプションプラグイン(ProductOption)について
該当のプラグインですが以下のテーブルで受注明細単位のオプション情報を保持しているのではないかと思うのですが
以下のテーブルは存在していますか?

plg_productoption_dtb_order_detail
plg_productoption_dtb_order_option_item

オプションの価格については
plg_productoption_dtb_order_option_item.priceに保存されているのではないかと思われますが如何でしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

zN45n3wg79
投稿日時: 2020/1/15 13:18
対応状況: −−−
新米
登録日: 2020/1/14
居住地:
投稿: 5
Re: 商品オプションプラグイン(ProductOption)について
ありがとうございます。

>以下のテーブルは存在していますか?

>plg_productoption_dtb_order_detail
>plg_productoption_dtb_order_option_item

はい。存在しています。

>オプションの価格については
>plg_productoption_dtb_order_option_item.priceに保存されているのではないかと思われますが如何でしょうか?

仰る通り、plg_productoption_dtb_order_option_item.priceに保存はされております。

例といたしまして「ユーザーA」というユーザーが商品を購入し、「オプションA」というオプションをつけて購入されたとします。
そのオプションAの価格はユーザーAが商品を購入した時点では3000円に設定していたとします。
この時点でのユーザーAの受注データに紐づいているplg_productoption_dtb_order_option_item.priceは3000になっています。

その状態でeccube管理画面のオプション管理からオプションAの価格を3000円から4000円に変更したとします。
受注マスターから上記の例で挙げたユーザーAの受注明細が載っている注文番号を探し、
その注文番号から受注編集画面を開いて「受注情報を登録」を選ぶと
ユーザーAの受注データに紐づいているplg_productoption_dtb_order_option_item.priceの値が4000に変更されてしまいます。

紐づいているものだけなので仮に「ユーザーB」というユーザーが、ユーザーAより先にオプションAをつけて商品を購入されていたとしても、
ユーザーBの受注データに紐づいているplg_productoption_dtb_order_option_item.priceの値は3000のままです。
ただし、ユーザーBの受注データも受注編集画面で「受注情報を登録」を選ぶと
ユーザーBの受注データに紐づいているplg_productoption_dtb_order_option_item.priceの値も4000に変更されてしまいます。

以上のことからオプションの価格を管理画面から変更し、「価格を変更したオプション」が載っている受注データの受注編集画面で「受注情報を登録」すると
受注データに紐づいているplg_productoption_dtb_order_option_item.priceの値が変わってしまうので
そこは変わらないようにしたいと考えています。

わかりにくい説明ですみません。

よろしくお願いいたします。
468
投稿日時: 2020/1/16 12:05
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2444
Re: 商品オプションプラグイン(ProductOption)について
受注情報更新時にplg_productoption_dtb_order_option_itemの情報を常にマスターから上書きする処理が存在しているようですね。

ざっとプラグインのソースを追ってみましたが
最終的に
/app/Plugin/ProductOption/Repository/OrderOptionRepository.php function save()で
plg_productoption_dtb_order_option_itemを再構築されているように思われます。
この辺りを改修すれば、注文時の金額を残せるのではないでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

zN45n3wg79
投稿日時: 2020/1/16 14:50
対応状況: −−−
新米
登録日: 2020/1/14
居住地:
投稿: 5
Re: 商品オプションプラグイン(ProductOption)について
ありがとうございます。該当ファイルについて調べてみます。

因みに何故
>plg_productoption_dtb_order_option_itemの情報を常にマスターから上書きする処理が存在しているようですね。
この処理を行うようにされているのかがとても気になっております。

知見があまりなくて恐縮ですが、私の想像ではオプションの価格が変わったとしても
受注情報のテーブル(plg_productoption_dtb_order_option_item)の値までは変わらないものと思っておりました。

eccubeの仕様上もし上記の処理をしないと重大なバグが発生するから上書き処理を行っているというものなのでしょうか?
もしよろしければ有識者の方で推測やご意見が頂ければ大変ありがたいです。
468
投稿日時: 2020/1/16 16:53
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2444
Re: 商品オプションプラグイン(ProductOption)について
>eccubeの仕様上もし上記の処理をしないと重大なバグが発生するから上書き処理を行っているというものなのでしょうか?
私の個人的な感覚からすると判断の難しいところかと思います。
受注データを過去の記録として考えれば、マスタの値が変わったからといって受注データ上の値が変わってしまうのはマズイと思いますが
受注データの更新を行う=受注データの内容を変更して再計算を行いたい。というパターンもあるかもしれませんので、まったく値が変わらないのも困るかもしれません。

因みに今回のような場合、plg_productoption_dtb_order_option_item.priceのみ値が変わるのでしょうか?
受注データの合計金額、受注明細データの金額も再計算されて変わるものなのでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

zN45n3wg79
投稿日時: 2020/1/17 9:09
対応状況: −−−
新米
登録日: 2020/1/14
居住地:
投稿: 5
Re: 商品オプションプラグイン(ProductOption)について
>私の個人的な感覚からすると判断の難しいところかと思います。
>受注データを過去の記録として考えれば、マスタの値が変わったからといって受注データ上の値が変わってしまうのはマズイと思いますが
>受注データの更新を行う=受注データの内容を変更して再計算を行いたい。というパターンもあるかもしれませんので、まったく値が変わらないのも困るかもしれません。

貴重なご意見ありがとうございます。とても参考になります。

>因みに今回のような場合、plg_productoption_dtb_order_option_item.priceのみ値が変わるのでしょうか?
>受注データの合計金額、受注明細データの金額も再計算されて変わるものなのでしょうか?

今の所はplg_productoption_dtb_order_optionのテーブルだけが変わりますが、
変わる所はpriceの他にoption_nameとoption_category_nameも変わります。
受注データの合計金額、受注明細データの金額は変わってはいません。
468
投稿日時: 2020/1/17 13:05
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2444
Re: 商品オプションプラグイン(ProductOption)について
>受注データの合計金額、受注明細データの金額は変わってはいません。
という事であれば、オプション料金の再計算を行う想定ではなさそうですね。
そうであればplg_productoption_dtb_order_optionテーブル等は変更しないほうが良さそうな気もしますが
単純に新規注文登録時のロジックと管理画面で注文更新時のロジックが共通化されていて、意図せず更新されてしまっているのかもしれません。

ただ、あくまで私の想像に過ぎませんので
詳しい仕様については、プラグインの配布元に問い合わせされたほうが良いかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

zN45n3wg79
投稿日時: 2020/1/17 13:45
対応状況: −−−
新米
登録日: 2020/1/14
居住地:
投稿: 5
Re: 商品オプションプラグイン(ProductOption)について
>という事であれば、オプション料金の再計算を行う想定ではなさそうですね。
>そうであればplg_productoption_dtb_order_optionテーブル等は変更しないほうが良さそうな気もしますが
>単純に新規注文登録時のロジックと管理画面で注文更新時のロジックが共通化されていて、意図せず更新されてしまっているのかもしれません。

>ただ、あくまで私の想像に過ぎませんので
>詳しい仕様については、プラグインの配布元に問い合わせされたほうが良いかと思います。

ありがとうございます!開発元に問い合わせしてみます。
数日間にわたりお付き合い頂きましてありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は63,693名です
総投稿数は96,836件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2444
4
nanasess
2078
5
yuh
1612
6
umebius
1596
7
red
1407
8
h_tanaka
1022
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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