EC-CUBE2からEC-CUBE3への移行

EC-CUBE2からEC-CUBE3への移行

はじめに

ec-cube3がリリースされてから早3年が経過しました。ec-cube3のプラグインが充実してきましたので、ec-cubeの設置先サーバーを変更するときにec-cube2からec-cube3に移行しました。その際の直面した注意点をまとめていきます。

Advertisement

ec-cube2からec-cube3への相違点の要約

ec-cube3のフレームワークがSymfony2ベースのSilexに変更されています。見た目で特に大きくことなる点は、

  • 複数存在したサブタイトルやサブコメントを統合
  • 画像が一元管理
  • ポイント機能がない

です。

 

複数存在したサブタイトルやサブコメントを統合

複数存在したサブタイトルやサブコメントの入力欄が、画像の赤丸で囲った「商品説明」の一か所に統合されています。そのためデータ移行のときは、少なくともサブタイトルとサブコメントを連結する必要があります。

 

画像が一元管理に変更

サブタイトルやサブコメントなどと同じく画像も一元管理に変更となります。もちろん複数の写真登録も可能ですが、写真の再撮影や再登録が必要です。

 

ポイント機能がない

ポイント機能が基本からプラグイン拡張に移行したため、初期状態ではポイント機能が無くなります。サイト内でポイント機能を提供しているときは、事前にポイントのプラグインを決める必要があります。

 

ec-cube2からec-cube3へデータベースの相違点

次にデータベースの移行です。今回はec-cube2からec-cube3に移行するときに作業が必須で、且つ移行するときの負担が大きい商品に焦点を当てて確認していきましょう。
また顧客情報に関しても注意事項が確認されましたので追記します。

 

商品データベースの相違点

テーブル名やカラム名が変更になっているものが多く、作業を行うときには注意しなければいけません。

eccube2のテーブル名 eccube3のテーブル名 論理テーブル名
dtb_category dtb_category 商品のカテゴリー
dtb_category_count dtb_category_count カテゴリー内の数
dtb_category_total_count dtb_category_total_count カテゴリー内の総数
dtb_classcategory dtb_class_category 商品の規格分類
dtb_class dtb_class_name 規格情報
dtb_products dtb_product 商品情報
dtb_product_categories dtb_product_category 商品のカテゴリーとの紐づけ
dtb_products_class dtb_product_class 商品の規格情報との紐づけ
× dtb_product_stock 商品在庫
mtb_product_type mtb_product_type 商品種別

 

商品移行のときの注意点

選択なしの値が「0」から「NULL」に変更しています
各カラムの選択なしの値が「0」から「NULL」に変更になっています。これはデータを移行する際には地味に大きい変更点です。データベースの移行は、mysqldumpのデータから移行するかと思いますが、把握せずにデータを移植しようするとどツボにはまることがあるのでご注意ください。

「dtb_product_stock」の設定が必要です
ec-cube3から在庫管理用のテーブル「dtb_product_stock」が追加されています。もし「dtb_product_stock」を設定しないと画像のように各商品の詳細ページにてエラーが発生するためご注意ください。

 

顧客情報の注意事項

eccube2では商品の送付先住所は「テーブル:dtb_customer」で管理して、別住所があれば「テーブル:dtb_customer_address」に追記する仕様でした。eccube3では商品の送付先の住所は全て「テーブル:dtb_customer_address」で管理する仕様に変更となりました。そのためeccube3に移行するときは「テーブル:dtb_customer_address」へ事前に「テーブル:dtb_customer」の住所を追加する必要があります。

 

さいごに

ある程度の覚悟はしていましたが、データ移行を行うと想定以上の労力がかかりました。ec-cbue2とec-cbue3は根本的な構造が異なるため、プラグインも新規で用意しなければいけないです。みなさんは移行するときは十分に準備してから移行して下さいね。
※個人的には移行する手間が想定をかなり超えていたため、もっと慎重に移行すればよかったと後悔しています(苦笑)

Advertisement

web開発カテゴリの最新記事