magento cafe plus #6
TRANSCRIPT
![Page 1: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/1.jpg)
Veriteworks Inc. 西 宏和
Magento Cafe Plus #6
![Page 2: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/2.jpg)
Agenda
• 最近のMagento
• 商品属性の管理とカスタマイズ
• マルチサイト運用のイロハ
![Page 3: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/3.jpg)
最近のMagento
![Page 4: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/4.jpg)
セキュリティパッチ
• パッチ番号SUPEE-5344で2月9日リリース済
• 管理画面の forwarded パラメータに関する脆弱性
• https://www.magentocommerce.com/products/downloads/magento/ からダウンロードして適用を
![Page 5: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/5.jpg)
Magento2
• beta11がリリース(ほぼ毎週新バージョンが出る)
• インストール画面のデザイン変更
• とかく毎バージョン変更がてんこ盛り
![Page 6: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/6.jpg)
新インストール画面
![Page 7: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/7.jpg)
HHVMのアレな話
• エクステンション開発者の間ではHHVMでのテストがじわじわ進行中
• Magento2も意識はしている・・・らしい
• で、Magento1.xは?→ オフィシャルには非対応。一応動く
![Page 8: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/8.jpg)
ところが
• https://github.com/magento/magento2/issues/966#issuecomment-78294346
![Page 9: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/9.jpg)
正直、本番で使うのダメ
![Page 10: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/10.jpg)
商品属性の管理とカスタマイズ
![Page 11: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/11.jpg)
復習:商品属性の作り方 by 管理画面
![Page 12: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/12.jpg)
管理画面から作るときのポイント
• 属性コードはシステム内でユニーク&半角英数字+アンダースコア (ただし、先頭文字に数字はNG)
• スコープは用途を考えて慎重に →後から変更できるが、できれば変えないほうが吉
• 入力形式は後で変更できない
• あとの設定はいつでも変えられるのであまり考えなくてもOK
![Page 13: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/13.jpg)
商品属性の作り方 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, ));
![Page 14: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/14.jpg)
スクリプトで作るときのポイント
• $installerはMage_Catalog_Model_Resource_Setupを使う(Mage_Eav_Model_Entity_Setupの系列でも可)
• 管理画面から作る場合と異なり、あらゆるパラメータが指定可能
• 一括で複数の属性をつくることも当然可能(オプションを同時に登録する、なども可)
![Page 15: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/15.jpg)
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 メモ
![Page 16: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/16.jpg)
frontend_model例:eav/entity_attribute_frontend_datetime
![Page 17: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/17.jpg)
backend_model例:eav/entity_attribute_backend_datetime
![Page 18: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/18.jpg)
source_model例:eav/entity_attribute_source_boolean
![Page 19: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/19.jpg)
実は顧客や住所属性でも 応用できます…
![Page 20: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/20.jpg)
商品属性とエクステンション・テーマ
• エクステンションやテーマの中には、独自の属性を定義するものがある
• これらをインストールする際は問題なくとも、アンインストール時に問題が起きることがある→エクステンションやテーマを消しても属性は残る!
• 外部システムと連携する際に、これらの属性が障害になることもあるので、要注意
![Page 21: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/21.jpg)
マルチサイト運用のイロハ
![Page 22: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/22.jpg)
復習:Magentoのサイト構成
グローバル
admin サイトA サイトBストアA1
ストアA2
ストアB
日本語 英語
中国語
日本語 英語
フランス語 ドイツ語
![Page 23: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/23.jpg)
スコープ
• Magento上の設定値を管理する単位
• グローバル・ウェブサイト・ストアビューの3階層
• 属性や設定値によって、利用できるスコープが異なる
• 管理画面は1ウェブサイト・1ストアビュー
![Page 24: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/24.jpg)
グローバル
• Magento上で最上位にある設定スコープ
• 管理画面のスコープとほぼ同義
• シングルサイト運営の場合はこのスコープだけ見ていれば基本OK
![Page 25: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/25.jpg)
ウェブサイト
• 2階層目のスコープ
• 顧客・商品・価格などの情報を保持する
• 基本通貨を変えたい場合はこのレベルで設定する
• 客層を切り分けたい場合もこのレベル
• システム上でユニークなコードを持つ
![Page 26: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/26.jpg)
ストア
• カテゴリと複数のストアビューを管理するスコープ
• このレベルで設定パラメータを保持することはできない
• システム内部では「ストアグループ」という扱いになっている
![Page 27: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/27.jpg)
ストアビュー
• 最下層のスコープ
• 商品・カテゴリのロケール別データを保持する
• 設定データも設定可能なものは保持できるようになっている
• システム上でユニークなストアコードを持つ
![Page 28: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/28.jpg)
Webサーバーの設定とindex.php
• index.phpには2つの環境変数がある
• MAGE_RUN_CODE(ストアビューコードまたはウェブサイトコード)
• MAGE_RUN_TYPE(storeまたはwebsiteを指定)
• ApacheやNginxのVHOST設定で指定する
![Page 29: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/29.jpg)
1index.phpで複数サイト
• それぞれのVHOST設定で・・・
• MAGE_RUN_CODEにウェブサイトコードを指定
• MAGE_RUN_TYPEにwebsiteを指定
• これで1つのindex.phpを使って複数サイト運営ができる(ストアビュー切り替えはしない)
![Page 30: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/30.jpg)
ディレクトリを作って複数サイト
• ドキュメントルートに適当な名前でディレクトリを作成する
• index.phpとApacheの場合は.htaccessもコピーする
• index.phpの52行目のパスを変える
• MAGE_RUN_TYPEとMAGE_RUN_CODEをハードコードする
• Magentoの管理画面で対応するウェブサイトまたはストアビューのベースURLにディレクトリを追加する
![Page 31: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/31.jpg)
SSL用ドメインを共用してマルチサイト
• あんまりやりたくないテクニック
• カード加盟店契約が1FQDN単位であることに対する逃げ道
• セキュアベースURLのドメイン名を共用しつつ、ディレクトリでindex.phpを分けて、サイト別のSSLページ・データスコープを作る
![Page 32: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/32.jpg)
マルチサイト運用とAccept Language
• Accept Languageを用いて言語振り分けをするというニーズ
• 難関はストアビューコードはシステム上、ユニークであること
• つまり、ja_JPをjpというストアビューへの振り分けは1ウェブサイトの時しかできない
• マルチウェブサイトの場合は、ハードコードするか、なにか手を考える必要がある
• いずれにしてもVHOST設定の追加は必要なので、非技術者にはハードルが高い
![Page 33: Magento Cafe Plus #6](https://reader030.vdocuments.site/reader030/viewer/2022020208/55a862651a28abd6628b4840/html5/thumbnails/33.jpg)
おわり