Ec cubeの基礎からcms連携まで
-
Upload
makoto-nishimura -
Category
Technology
-
view
815 -
download
2
description
Transcript of Ec cubeの基礎からcms連携まで
![Page 1: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/1.jpg)
EC-CUBEの基礎からCMS連携まで
![Page 2: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/2.jpg)
お品書き
自己紹介
EC-CUBEとは
EC-CUBEとconcrete5を連携してみる
![Page 3: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/3.jpg)
自己紹介
西村誠
EC-CUBE公式エヴェンジェリスト
![Page 4: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/4.jpg)
自己紹介
Microsoft MVP
- Windows Platform Development
![Page 5: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/5.jpg)
自己紹介
Twitter – coelacanth
Facebook –西村誠
![Page 6: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/6.jpg)
EC-CUBEとは?
![Page 7: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/7.jpg)
EC-CUBEとは?
国産のオープンソース
ECサイト構築フレームワーク
![Page 8: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/8.jpg)
ちょっと脱線
ECサイトと言って色々あります
![Page 9: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/9.jpg)
モール型
モール型
一つのシステムに複数のECサイトが存在
楽天市場、ヤフーショッピングモールなど
![Page 10: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/10.jpg)
モール型
メリット
開店が楽、集客が期待できる
デメリット
土地代を払う、自由にカスタマイズできない
![Page 11: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/11.jpg)
ASP型
ASP型
既存のシステムをレンタルして利用
Stores.jp、BASE、カラーミーショップなど
![Page 12: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/12.jpg)
ASP型
メリット
初期費用が安い
デメリット
自由にカスタマイズできない
![Page 13: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/13.jpg)
問題
自由にカスタマイズできない!!
![Page 14: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/14.jpg)
EC-CUBEとは?
言語はPHP
テンプレートエンジンはSmarty
DBは主にPostgreSQL or MySQL
(SQLServer対応プラグインも)
![Page 15: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/15.jpg)
EC-CUBEとは?
国産だからフォーラムは日本語で活発にやり取りされている
オープンソースだからカスタマイズ自由
![Page 16: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/16.jpg)
EC-CUBEとは?
プラグイン対応(Ver 2.12以降)で
ノンプログラミングで機能追加
豊富な決済モジュール
![Page 17: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/17.jpg)
バージョンについて
最新のバージョンは2.13
2.12 ← 2.11 ← ?
![Page 18: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/18.jpg)
バージョンについて
最新のバージョンは2.13
2.12 ← 2.11 ← 2.4 ← 2.3
![Page 19: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/19.jpg)
DEMO
EC-CUBE(デフォルト)を見てみましょう
http://59.106.184.173/~mac/ec/html/
![Page 20: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/20.jpg)
DEMO
基本的なEC機能
プラグインやカスタマイズによる機能追加
デザインテンプレート
![Page 21: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/21.jpg)
主な開発者のかかわり方
EC-CUBEの導入
プラグイン作成
![Page 22: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/22.jpg)
間違ったとらえ方
EC-CUBEは無料だから安く導入できるんでしょ?
![Page 23: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/23.jpg)
間違ったとらえ方
EC-CUBEは無料だから安く導入できるんでしょ?
カスタマイズで他にはないECサイトを自由に作れるのがEC-CUBE
とりあえず安く手軽に始めたいなら、モールとかASP型のサービスでOK
![Page 24: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/24.jpg)
間違ったとらえ方
EC-CUBEが高いわけではない
同じことをオリジナルでやることに比べたら、圧倒的なコストパフォーマンス
![Page 25: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/25.jpg)
例外
店舗主だけど自分でPHPとか勉強して全部やってやるぜ!! というのは確かに最少コスト
なんか色々勉強して、バージョン管理とかも使い始めた店舗主さんもいらっしゃいます
![Page 26: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/26.jpg)
技術的なお話
導入
レンサバなどでは簡単にインストールできることも
![Page 27: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/27.jpg)
技術的なお話
導入
Azureでも
![Page 28: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/28.jpg)
カスタマイズの注意点
決済部分は慎重に
決済モジュールはモジュール会社提供の部分なので、
それぞれコードが異なる
カスタマイズが決済に影響を与える仕様変更か確認
![Page 29: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/29.jpg)
カスタマイズの注意点
スマフォとモバイルへの影響範囲忘れないで
すべての修正をスマフォにも反映させる?
(UI/UXはどうなる?)
![Page 30: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/30.jpg)
カスタマイズの注意点
管理ページ(帳票や自動返信メール)に影響でない?
表側の修正に気を取られがちだけど、この辺の見積もりおよび修正を忘れないで
![Page 31: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/31.jpg)
カスタマイズの注意点
EC-CUBEじゃないECサイトからの移行
前のサイトにあった機能をどこまで移行する?
こういうお客様にはしっかり機能を説明して理解いただくのが大事。
![Page 32: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/32.jpg)
カスタマイズの注意点
パフォーマンスについて
EC-CUBEはDBのスケールアウトは大変
Webサーバーはクラウドなどでスケールアウト可能
基本スケールアップを検討
![Page 33: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/33.jpg)
カスタマイズの注意点
パフォーマンスについて
デフォルトではDBのインデックスは改善可能
理由=低スペックサーバーではインデックス張りすぎがパフォーマンスダウンになることがあるから
![Page 34: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/34.jpg)
カスタマイズの注意点
DBのクエリについて
仕様とトレードオフできるなら、トレードオフが楽
![Page 35: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/35.jpg)
カスタマイズの注意点
運用でカバーできることも
商品点数や商品規格が多い場合は運用(商品登録の仕方)をお客様と相談することも
![Page 36: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/36.jpg)
カテゴリーページが重い
最初に遭遇する「EC-CUBEが重い」はこれ!!
![Page 37: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/37.jpg)
重いクエリその1
SELECT alldtl.product_id FROM dtb_products AS alldtlWHEREalldtl.del_flg = 0 AND alldtl.status = 1 AND EXISTS (SELECT * FROM dtb_product_categories WHERE category_id IN (52,'53','57','54','55','56','58','59','60') AND product_id = alldtl.product_id) ORDER BY (SELECT T3.rank * 2147483648 + T2.rank FROM (SELECT * FROM dtb_product_categories WHERE category_id IN (52,'53','57','54','55','56','58','59','60')) T2 JOIN dtb_category T3 ON T2.category_id = T3.category_id WHERE T2.product_id = alldtl.product_id ORDER BY T3.rank DESC, T2.rank DESC LIMIT 1 OFFSET 0) DESC ,product_id DESC LIMIT 0, 15;
![Page 38: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/38.jpg)
重いクエリその1
Explainするとこれ
![Page 39: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/39.jpg)
重いクエリその1
SELECT alldtl.product_id FROM dtb_products AS alldtlWHEREalldtl.del_flg = 0 AND alldtl.status = 1 AND EXISTS (SELECT * FROM dtb_product_categories WHERE category_id IN (52,'53','57','54','55','56','58','59','60') AND product_id = alldtl.product_id) ORDER BY (SELECT T3.rank * 2147483648 + T2.rank FROM (SELECT * FROM dtb_product_categories WHERE category_id IN (52,'53','57','54','55','56','58','59','60')) T2 JOIN dtb_category T3 ON T2.category_id = T3.category_id WHERE T2.product_id = alldtl.product_id ORDER BY T3.rank DESC, T2.rank DESC LIMIT 1 OFFSET 0) DESC ,product_id DESC LIMIT 0, 15;
![Page 40: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/40.jpg)
重いクエリその1
すげー難しそうなクエリだけど結果はこれ
+------------+
| product_id |
+------------+
| 5003 |
| 5002 |
・・略・・・商品IDが15個
+------------+
![Page 41: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/41.jpg)
重いクエリその2
SELECT product_id ,product_code_min ,product_code_max ,name ,comment1 ,comment2 ,comment3 ,main_list_comment ,main_image ,main_list_image ,price01_min ,price01_max ,price02_min ,price02_max ,stock_min ,stock_max ,stock_unlimited_min ,stock_unlimited_max ,deliv_date_id ,status ,del_flg ,update_date FROM ( SELECT dtb_products.product_id ,dtb_products.name ,dtb_products.maker_id ,dtb_products.status,dtb_products.comment1 ,dtb_products.comment2 ,dtb_products.comment3 ,dtb_products.comment4 ,dtb_products.comment5 ,dtb_products.comment6 ,dtb_products.note,dtb_products.main_list_comment ,dtb_products.main_list_image ,dtb_products.main_comment,dtb_products.main_image ,dtb_products.main_large_image ,dtb_products.sub_title1 ,dtb_products.sub_comment1 ,dtb_products.sub_image1 ,dtb_products.sub_large_image1 ,dtb_products.sub_title2 ,dtb_products.sub_comment2 ,dtb_products.sub_image2 ,dtb_products.sub_large_image2 ,dtb_products.sub_title3 ,dtb_products.sub_comment3 ,dtb_products.sub_image3 ,dtb_products.sub_large_image3 ,dtb_products.sub_title4 ,dtb_products.sub_comment4 ,dtb_products.sub_image4 ,dtb_products.sub_large_image4 ,dtb_products.sub_title5 ,dtb_products.sub_comment5 ,dtb_products.sub_image5 ,dtb_products.sub_large_image5 ,dtb_products.sub_title6 ,dtb_products.sub_comment6 ,dtb_products.sub_image6 ,dtb_products.sub_large_image6 ,dtb_products.del_flg ,dtb_products.creator_id ,dtb_products.create_date ,dtb_products.update_date ,dtb_products.deliv_date_id ,T4.product_code_min ,T4.product_code_max ,T4.price01_min ,T4.price01_max ,T4.price02_min ,T4.price02_max ,T4.stock_min ,T4.stock_max ,T4.stock_unlimited_min ,T4.stock_unlimited_max ,T4.point_rate ,T4.deliv_fee ,T4.class_count ,dtb_maker.name AS maker_name FROM dtb_products JOIN ( SELECT product_id, MIN(product_code) AS product_code_min, MAX(product_code) AS product_code_max, MIN(price01) AS price01_min, MAX(price01) AS price01_max, MIN(price02) AS price02_min, MAX(price02) AS price02_max, MIN(stock) AS stock_min, MAX(stock) AS stock_max, MIN(stock_unlimited) AS stock_unlimited_min, MAX(stock_unlimited) AS stock_unlimited_max, MAX(point_rate) AS point_rate, MAX(deliv_fee) AS deliv_fee, COUNT(*) as class_countFROM dtb_products_class WHERE del_flg = 0 GROUP BY product_id ) AS T4 ON dtb_products.product_id = T4.product_id LEFT JOIN dtb_maker ON dtb_products.maker_id = dtb_maker.maker_id ) AS alldtl WHERE alldtl.product_id IN ('5003','5002','5001','5000','4999','4998','4997','4996','4995','4994','4993','4992','4991','4990','4989') AND alldtl.del_flg = 0;
![Page 42: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/42.jpg)
重いクエリその2
これは一覧の商品の詳細データを取ってくるクエリ
![Page 43: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/43.jpg)
重いクエリその2
こんなデザインだと先述クエリいらない!!
![Page 44: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/44.jpg)
重いクエリその2
試してみる価値あるかも
http://svn.ec-cube.net/open_trac/ticket/2325
PostgreSQL向け?
![Page 45: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/45.jpg)
重いクエリその2
![Page 46: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/46.jpg)
重いクエリはどうやって見つけるの?
ダミー商品登録プログラムがあります
/test/createEcCubeData-v25.php
これで商品と規格をガンガン作成してみましょう
![Page 47: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/47.jpg)
カスタマイズの注意点
いざとなったら
弊社のようなインテグレートパートナーに相談してください
![Page 48: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/48.jpg)
CMS連携
![Page 49: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/49.jpg)
EC-CUBEの苦手なところ
ランディングページ(LP)など
店舗主さんが触るにはHTMLの知識が必要
![Page 50: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/50.jpg)
EC-CUBEの苦手なところ
ブログ機能は無い
運用開始後にお客様にページ追加や修正してもらう場合にCMSが便利
![Page 51: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/51.jpg)
Concrete5の苦手なところ
EC機能は無い
EC機能をEC-CUBEで!!
![Page 52: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/52.jpg)
連携案
ランディングページ、ブログはconcrete5で
管理ページのログイン連携
EC-CUBEのユーザーログインを利用して
concrete5でログイン限定ページを
![Page 53: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/53.jpg)
連携案
商品詳細ページをconcrete5で
EC-CUBEにconcrete5のブロックを埋め込み
concrete5側にEC-CUBEのカートインボタンを表示
![Page 54: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/54.jpg)
まとめ
EC-CUBEはオーダーメイドのECサイトを作れる
開発する場合は色々注意点があるよ
CMSと連携すると幅が広がる
![Page 55: Ec cubeの基礎からcms連携まで](https://reader034.fdocument.pub/reader034/viewer/2022052207/559726441a28ab0e0e8b46e6/html5/thumbnails/55.jpg)
ご静聴ありがとうございました