Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Magento Cafe Plus #6

625 views

Published on

第6回Magento Cafe Plusで使用した資料です。商品属性の話と、マルチサイト構成のイロハについて解説しています。

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Magento Cafe Plus #6

  1. 1. Veriteworks Inc. 西 宏和 Magento Cafe Plus #6
  2. 2. Agenda • 最近のMagento • 商品属性の管理とカスタマイズ • マルチサイト運用のイロハ
  3. 3. 最近のMagento
  4. 4. セキュリティパッチ • パッチ番号SUPEE-5344で2月9日リリース済 • 管理画面の forwarded パラメータに関する脆弱性 • https://www.magentocommerce.com/products/downloads/ magento/ からダウンロードして適用を
  5. 5. Magento2 • beta11がリリース(ほぼ毎週新バージョンが出る) • インストール画面のデザイン変更 • とかく毎バージョン変更がてんこ盛り
  6. 6. 新インストール画面
  7. 7. HHVMのアレな話 • エクステンション開発者の間ではHHVMでのテストがじわじわ進行中 • Magento2も意識はしている・・・らしい • で、Magento1.xは?
 → オフィシャルには非対応。一応動く
  8. 8. ところが • https://github.com/magento/magento2/issues/ 966#issuecomment-78294346
  9. 9. 正直、本番で使うのダメ
  10. 10. 商品属性の管理とカスタマイズ
  11. 11. 復習:商品属性の作り方 by 管理画面
  12. 12. 管理画面から作るときのポイント • 属性コードはシステム内でユニーク&半角英数字+アンダースコア
 (ただし、先頭文字に数字はNG) • スコープは用途を考えて慎重に
 →後から変更できるが、できれば変えないほうが吉 • 入力形式は後で変更できない • あとの設定はいつでも変えられるのであまり考えなくてもOK
  13. 13. 商品属性の作り方 by セットアップスクリプト $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, ‘my_new_attr’, array(
 'group' => 'General',
 'type' => 'varchar',
 'backend' => '',
 'frontend' => '',
 'label' => ‘My New Attribute',
 'input' => 'select',
 'class' => '',
 'source' => 'catalog/product_attribute_source_boolean',
 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
 'visible' => true,
 'required' => false,
 'user_defined' => false,
 'searchable' => false,
 'filterable' => false,
 'comparable' => false,
 'visible_on_front' => false,
 'unique' => false,
 'apply_to' => 'simple,configurable,bundle,grouped',
 'is_configurable' => false,
 ));
  14. 14. スクリプトで作るときのポイント • $installerはMage_Catalog_Model_Resource_Setupを使う
 (Mage_Eav_Model_Entity_Setupの系列でも可) • 管理画面から作る場合と異なり、あらゆるパラメータが指定可能 • 一括で複数の属性をつくることも当然可能
 (オプションを同時に登録する、なども可)
  15. 15. eav_attributeテーブル 列名 説明 attribute_id 連番 entity_type_id eav_entity_typeを参照 attribute_code ユニーク値。半角英数字で attribute_model 未使用 backend_model 入力値の管理画面用表示処理に使用 backend_type DB側のデータ型。varcharやtext、intなど backend_table 未使用 frontend_model 入力値のフロント側表示処理に使用 frontend_input 入力形式 frontend_label 管理画面に表示するラベル fronted_class jsバリデーションクラス名 source_model 選択肢などの元データに使用 is_required 必須フラグ is_user_defined ユーザー定義フラグ default_value デフォルト値 is_unique ユニークフラグ note メモ
  16. 16. frontend_model 例:eav/entity_attribute_frontend_datetime
  17. 17. backend_model 例:eav/entity_attribute_backend_datetime
  18. 18. source_model 例:eav/entity_attribute_source_boolean
  19. 19. 実は顧客や住所属性でも 応用できます…
  20. 20. 商品属性とエクステンション・テーマ • エクステンションやテーマの中には、独自の属性を定義するものがある • これらをインストールする際は問題なくとも、アンインストール時に問題が 起きることがある
 →エクステンションやテーマを消しても属性は残る! • 外部システムと連携する際に、これらの属性が障害になることもあるので、 要注意
  21. 21. マルチサイト運用のイロハ
  22. 22. 復習:Magentoのサイト構成 グローバル admin サイトA サイトB ストアA1 ストアA2 ストアB 日本語 英語 中国語 日本語 英語 フランス語 ドイツ語
  23. 23. スコープ • Magento上の設定値を管理する単位 • グローバル・ウェブサイト・ストアビューの3階層 • 属性や設定値によって、利用できるスコープが異なる • 管理画面は1ウェブサイト・1ストアビュー
  24. 24. グローバル • Magento上で最上位にある設定スコープ • 管理画面のスコープとほぼ同義 • シングルサイト運営の場合はこのスコープだけ見ていれば基本OK
  25. 25. ウェブサイト • 2階層目のスコープ • 顧客・商品・価格などの情報を保持する • 基本通貨を変えたい場合はこのレベルで設定する • 客層を切り分けたい場合もこのレベル • システム上でユニークなコードを持つ
  26. 26. ストア • カテゴリと複数のストアビューを管理するスコープ • このレベルで設定パラメータを保持することはできない • システム内部では「ストアグループ」という扱いになっている
  27. 27. ストアビュー • 最下層のスコープ • 商品・カテゴリのロケール別データを保持する • 設定データも設定可能なものは保持できるようになっている • システム上でユニークなストアコードを持つ
  28. 28. Webサーバーの設定とindex.php • index.phpには2つの環境変数がある • MAGE_RUN_CODE(ストアビューコードまたはウェブサイトコード) • MAGE_RUN_TYPE(storeまたはwebsiteを指定) • ApacheやNginxのVHOST設定で指定する
  29. 29. 1index.phpで複数サイト • それぞれのVHOST設定で・・・ • MAGE_RUN_CODEにウェブサイトコードを指定 • MAGE_RUN_TYPEにwebsiteを指定 • これで1つのindex.phpを使って複数サイト運営ができる
 (ストアビュー切り替えはしない)
  30. 30. ディレクトリを作って複数サイト • ドキュメントルートに適当な名前でディレクトリを作成する • index.phpとApacheの場合は.htaccessもコピーする • index.phpの52行目のパスを変える • MAGE_RUN_TYPEとMAGE_RUN_CODEをハードコードする • Magentoの管理画面で対応するウェブサイトまたはストアビューのベース URLにディレクトリを追加する
  31. 31. SSL用ドメインを共用してマルチサイト • あんまりやりたくないテクニック • カード加盟店契約が1FQDN単位であることに対する逃げ道 • セキュアベースURLのドメイン名を共用しつつ、ディレクトリでindex.phpを 分けて、サイト別のSSLページ・データスコープを作る
  32. 32. マルチサイト運用とAccept Language • Accept Languageを用いて言語振り分けをするというニーズ • 難関はストアビューコードはシステム上、ユニークであること • つまり、ja_JPをjpというストアビューへの振り分けは1ウェブサイトの時し かできない • マルチウェブサイトの場合は、ハードコードするか、なにか手を考える必要 がある • いずれにしてもVHOST設定の追加は必要なので、非技術者にはハードルが高 い
  33. 33. おわり

×