Magento Cafe Tokyo #3にいってきた(2012-03-17)
いつものごとくメモ漏れ、勘違いご容赦ください。
Magentoケーススタディ(フロントエンド・バックエンド編)
西 宏和氏 @hirokazu1225
- カテゴリを作ってもナビにでない
- ルートカテゴリとサブカテゴリを理解しよう
- 1つのショップに複数のルートカテゴリを登録できる
- 有効フラグ-Off、カテゴリに登録しないOnになってない?
- ルートカテゴリとサブカテゴリを理解しよう
- 商品を登録したのに表示されない
- 商品と在庫の関係を理解しよう
- 在庫フラグと在庫数は別
- 表示対象ー>検索、カテゴリ
- 有効フラグ-Offになってない?
- 商品と在庫の関係を理解しよう
- カテゴリに商品が出ない
- 商品とカテゴリ・サイトの関係を理解しよう
- 特にマルチサイトのとき
- 表示させるサイトの選択
- サイトのカテゴリ
- ※マルチサイトの場合、登録したサイトからしか会員ログインできない
- フロントから登録後管理画面から設定できない
- 税の設定がよくわからない
- 税区分と税率の関係を理解しよう
- BtoCの場合は内税とすべき。楽チン。税金が変わっても商品価格を変えるだけ
- BtoBの場合は会社ルールを考慮する必要あり。切り捨て、切り上げなどなど
- Magentoでやるのはややこしい
- 外国では品目や地域によって税率が異なることも多い
- 出荷する地域や購入者の地域で課税するのかなどなど
- 税区分と税率の関係を理解しよう
- デザインテーマの変え方がわからない
- テンプレートとスキンの関係を理解しよう
- デザイン
- default/blankを使う。JSやCSSが最小限の状態ー>これを変更するのが楽
- 設定ー>デザイン
- パッケージやテーマを変更する
- テンプレートとレイアウトは同じものを使うことが多い
- レイアウトのみ変更(カスタマイズ)するのも手
- 標準の動き。現在テーマにパーツがない場合、どこに戻るか設定する
- デザイン
- テンプレートとスキンの関係を理解しよう
base/default | ←最後にはここを使う |
default/default | ↑ここをみて |
default/iphone | ←ここにないと |
-
-
- ※base/defaultをカスタマイズしているとバージョンアップしたときに巻き戻るなど
-
- Magento Connectが動かない
- サーバの環境と設定を再確認しよう
- →Webサーバ実行ユーザがファイルの書き込みできていいの?
- インストールに失敗することがある
- ローカルないしテストサーバでダウンロードしておき、ファイルアップロードする方法を推奨
- サーバの環境と設定を再確認しよう
-
- 手動でダウンロードするには。
- downloader/.cacheの下にダウンロードされる
- ただし、依存性がある場合は手動で修正する必要がある
- だめなら、ソース読め
- 配送料金表の登録方法がわからない
- 住所表示の変更方法がわからない
- 設定画面で変更可能
- 設定ー>顧客ー>顧客設定→住所表記テンプレートを書き換える
- エクステンションのインストールに失敗したらサイトが見れなくなった
- エクステンションインストールしたのに設定画面にアクセスできない
- 権限を保存しなおせばOK
- Basic認証をかけたら画像をアップできなくなった
- スマホだけで別のテーマで表示したい
- ウェブサイトストア ストアビューの住み替え
- 同一サイト=マルチストア
- マルチサイト=マルチストア(ドメインが変わってもOK、会員情報を完全にわけることができる)
Magentoケーススタディ(チューニング編)
株式会社フラッツCTO 天方氏
- 背景
- Magentoのパフォーマンスについての相談をうけた
- リリース基準を満たせず、何度かあったリリース期日にリリースできない状態が続いていた
- サイトの特徴
- SKU数 約4500
- 将来的には数十万件
- 検索条件の軸が非常に多い
- 商品に検索からはいる
- スループット要件があった(25Request/Sec以上)
- ハード構成
- サーバスペック
- パフォーマンス測定(改善前)
- 22-24req/sec(トップページ、商品検索、空ページ)
- abコマンドで測定
- >ab -n 1000 -c 100 http://example.com/
- 問題点
- request/secの目標値の25以上に届いていない
- ページの表示が遅い
- クエリキャッシュが効いての数字。効かないとさらに遅い
- DBマスタの設定を変更する
- my.cnf
key_buffer=512m ->16m
innodb_buffer_pool_size=768m->4G (DBスレーブは10GB)
など
- 結果
- ほとんど変わらない。。。
- 再調査
- Memcache設定
- app/etc/local.xmlに追加する
- Webサーバの一台にmemcacheを設定して他のWebサーバから共有した
- 結果
- 32-36req/sec(速くなった。要件クリア)
- (クエリキャッシュが効いている状態)
- 検索ページはクエリキャッシュが効く前
- 0.26req/sec
- ApacheSolrなど入れる必要あるかも
- 課題
- memcacheの冗長化
- 検索
- 検索クエリの最適化
- ApacheSolr組み込み
- 総合対策
- MagentoCE1.6へ変更(パフォーマンス向上する)
- MagentoEnterpriseEdition変更(劇的に向上する)
- 教訓
- セッションをDB管理する場合は、DBマスタのトランザクション性能に気をつける
- Magentoの標準は日本語検索弱い。日本語検索はApacheSolrを使うなど
- セッション情報の保存に、当初memcacheを使っていたが、ロードバランサでセッションが切れる問題があった
- →WEBサーバごとに独立したmemcacheを設定していた
Magentoケーススタディ(カスタマイズ編)
西 宏和氏 @hirokazu1225
- default/blankを複製してカスタマイズ
- 余計な装飾がない
- バージョンのあわないテーマを導入すると壊れることがある。
- アップデートすると問題が発生することがある
- エクステンションの競合
- rewriteは1回しかできない
- エクステンションAとエクステンションBが同じクラスを拡張している場合、どちらかしか使われない
- クラスの継承関係は自動で解決しない
- コードを読んで自力で調整
- インデックスが更新できない
- ゴミデータがどこかにある(外部キー張ってるのに)→データベースをみて解決するしか
- Magentoのシステムログをみて解決する
- インデックスが更新できないとURLが更新できない
- 「商品とカテゴリとURL書き換えインデックス」「EAVカテゴリストラクチャをflatstructureに変換したインデックス」でよく起きる
- →DBを見るか、プログラム追いかけるか
- 商品登録でエラーがでる
- カスタムオプション周りでエラーが出ることがある
- 下記あたりにゴミがある。
catalog_product_option
catalog_product_option_title
catalog_product_option_type_price
catalog_product_option_type_title
catalog_product_option_type_value
- バージョンを上げたいんだけど
- coreいじってないですか?
base/default
default/default
default/modern
default/blank
default/iphoneあたり
- いれてるエクステンションは最新ですか?
- 有料の場合は、買い直すなど
- 無料の場合は、バージョンアップに対応してないなど
- OK?じゃあテスト環境でテスト
- 2回目からはきっとスムーズにできるよ
QAコーナー
Q.osCommerceからの乗せ換えをしたいが、どのパッケージを選べばいいの?
- Magentoは、eBayの資本がはいって、コミュニティの窓口として位置づけられている。すぐに開発が停まることはない。
- ZenCartは、バージョンアップ停滞。中の人も現状で満足してる(?)
- EC-Cubeは箱をあけたらすぐ使える。小型店舗向け。ベトナムやUSに展開といっているが???? 今後もコアには手を入れない方針。再設計はちょっとありえない。多言語対応、ダウンロード販売は無理。
Q.材質や大きさなどと細かく入力して注文するフォームは可能?
- 数量を設定して掛け算するくらいならOK。
- ボリュームライセンスなどの値引きを細かく設定することはできない。
- 動的に価格計算するもの、ビジネスロジックが複雑なものはそもそもパッケージには向いてない
- http://www.youorder.com/みたいのがあり
Q.CMSとの連携エクステンションっていいのある?