EC-CUBE のカスタマイズ その2(EC-CUBEのデータベース構造)

商品情報

商品情報E-R図
商品情報E-R図

ダウンロードした実際のE-R図を見ていただいたほうがわかりやすいと思いますが、商品情報の中核となるのはdtb_productsです。ただ、dtb_productsには商品名や画像情報など、商品一覧に必要な情報程度しかありません。商品の属する商品規格や販売価格、商品コードなどはdtb_products_class(商品規格情報)に登録されます。ここのあたりがなかなかわかりづらいところです。

EC-CUBEをインストールすると、サンプルデータが登録されています。その登録内容が実際にどのようにデータベースに登録されているかを調べることで、複雑な商品情報が解明できます。実際のデータベースの登録状況を把握するためにphpPgAdmin(またはphpMyAdmin)も立ち上げて下さい。管理画面で表示される商品情報と見比べてみましょう。

「商品管理」-「商品マスター」で検索条件を入力しないで[この条件で検索する]をクリックすると、3つの商品が一覧表示されます。

商品一覧商品名「おなべ」の行で「編集」リンクをクリックすると、商品登録の画面が表示されます。まず商品カテゴリの欄を見てみましょう。

商品カテゴリ

右側の商品カテゴリの階層化した一覧から選択し、[登録]をクリックした内容が左側に表示されており、商品名「おなべ」の商品カテゴリは「食品>なべ」であることがわかります。商品カテゴリは複数登録できます。そのデータはdtb_product_categories(商品カテゴリ関連)に登録され、dtb_products_class(商品規格情報)とdtb_category(カテゴリ情報)がm:nで関連付けられるようになっています。ちなみにdtb_category(カテゴリ情報)では親カテゴリと階層により1テーブル内で階層構造が表現できるようになっています。

商品名「おなべ」はdtb_product_categories(商品カテゴリ関連)には以下のように登録されています。

product_id category_id rank
2 4 2

商品コードや販売価格等も画面上は表示されていますが、こちらはdtb_products_class(商品規格情報)に以下のように登録されています。

product_class_id product_id classcategory_id1 classcategory_id2 product_code stock price01 price02
10 2 0 0 nabe-01 100 1700 1650

ここで注意したいのは、classcategory_id1とclasscategory_id2がともに0となっていることです。これはこの商品に対して商品規格の設定がされていないことを表します。検索画面に戻り商品名「おなべ」の行で「規格」リンクをクリックすると、

商品規格(おなべ)規格1、規格2とも登録されていないのがわかります。

次のページヘ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です