質問 > フロント機能 > 複数サイトで会員データを共通化 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
jgjg |
投稿日時: 2020/8/28 14:39
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2020/8/19 居住地: 投稿: 12 |
複数サイトで会員データを共通化 [EC-CUBE]4.0.4(新規インストール)
[PHP]7.2.27 [データベース] MySQL 10.4.11 複数のサイトで、会員情報を共通化し、どのサイトでも同じユーザーでログインできるようにしたいです。 以下サイトを参考にしていますが、バージョンが異なるので、そのまま同じようには進められません。 https://qiita.com/chihiro-adachi/items/bb47fa419bb13e2c339a ご助言をお願いしたいです。 よろしくお願いします。 |
468 |
投稿日時: 2020/8/29 11:09
対応状況: −−−
|
神 ![]() ![]() 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 複数サイトで会員データを共通化 リンク先で紹介されているymlに相当する記述はECCUBE4では
/src/Eccube/Entity/以下の各PHPファイル内にてアノテーションで設定されています。 例えばcustomer.phpであれば
の1行がDBとの接続に関する設定となります。 nameのdtb_customerを[店舗Aのデータベース名].dtb_customerとする事で 該当のテーブルのみ別DBに繋がるのかどうかは分かりませんが... あと、このような連携を行った場合、トランザクションが保証されるのかどうか分かりません。 (別々のサイトでほぼ同時に買い物をした時にポイントの計算が重複したり反映されなかったりといった現象を100%防げる保証が保てるのかどうか分からないという意味です)
|
jgjg |
投稿日時: 2020/8/29 18:23
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2020/8/19 居住地: 投稿: 12 |
Re: 複数サイトで会員データを共通化 468様
ご回答ありがとうございます。 確かにcustomer.phpを書き換えたところ、1つのユーザーで2つのサイトにログインすることができました。 しかし、書き換えたほうのサイトではログインできるものの、商品をカートに入れたり、お気に入りに入れるなどができませんでした。サーバーエラーになります。 今回、お気に入りやお届け先情報の共有は求めておらず、同じユーザーでログインできることが目標です。(参考リンクはお気に入りなども共有しています) 以下も参考にしようと思いましたが、もしものことを考えるとやはりやらないほうが良いのかもしれないと思いました… <別のサーバーのデータベースのテーブルデータを更新するトリガーを作成する> https://www.it-swarm.dev/ja/mysql/%E5%88%A5%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B/l956682774/ 468様、ありがとうございました。 |
468 |
投稿日時: 2020/8/30 10:36
対応状況: −−−
|
神 ![]() ![]() 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 複数サイトで会員データを共通化 >しかし、書き換えたほうのサイトではログインできるものの、商品をカートに入れたり、お気に入りに入れるなどができませんでした。サーバーエラーになります。
ユーザーと連携をしているテーブルに関して、外部制約がDBのほうで定義されているかと思いますが 同一DB内のテーブル同士で制約チェックしている為、DB内に存在しないユーザーIDを持つお気に入りや注文のレコードが格納できないのだと思います。 これに関してはDBを操作して外部制約を外していく必要があるのではないでしょうか?
|
jgjg |
投稿日時: 2020/8/31 15:15
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2020/8/19 居住地: 投稿: 12 |
Re: 複数サイトで会員データを共通化 468様
ありがとうございます! >同一DB内のテーブル同士で制約チェックしている為、DB内に存在しないユーザーIDを持つお気に入りや注文のレコードが格納できないのだと思います。 >これに関してはDBを操作して外部制約を外していく必要があるのではないでしょうか? 仰る通りでした。 dtb_cart dtb_customer_address tb_customer_favorite_product dtb_order のcustomer_idの外部キーを削除したところ、 お気に入りやカートに入れる処理ができるようになりました。 今この状態が目指していた状態ではありますが、 最初に468様が仰っていた >このような連携を行った場合、トランザクションが保証されるのかどうか分かりません。 について、どこで影響があるかわからないため、実際の運用で採用するか迷います。 ログインでき、会員の基本情報のみが共有されていて、 お気に入り・お届け場所・購入履歴・ポイントはサイト間で共有しない状態を求めています。 (今、Customer.phpの編集、auth magic の編集、上記外部キー削除で、望んだ状態にはなっています) 468様、ご回答ありがとうございます! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |