magento cafe plus #6

33
Veriteworks Inc. 西 宏和 Magento Cafe Plus #6

Upload: hirokazu-nishi

Post on 17-Jul-2015

149 views

Category:

Internet


3 download

TRANSCRIPT

Page 1: Magento Cafe Plus #6

Veriteworks Inc. 西 宏和

Magento Cafe Plus #6

Page 2: Magento Cafe Plus #6

Agenda

• 最近のMagento

• 商品属性の管理とカスタマイズ

• マルチサイト運用のイロハ

Page 3: Magento Cafe Plus #6

最近のMagento

Page 4: Magento Cafe Plus #6

セキュリティパッチ

• パッチ番号SUPEE-5344で2月9日リリース済

• 管理画面の forwarded パラメータに関する脆弱性

• https://www.magentocommerce.com/products/downloads/magento/ からダウンロードして適用を

Page 5: Magento Cafe Plus #6

Magento2

• beta11がリリース(ほぼ毎週新バージョンが出る)

• インストール画面のデザイン変更

• とかく毎バージョン変更がてんこ盛り

Page 6: Magento Cafe Plus #6

新インストール画面

Page 7: Magento Cafe Plus #6

HHVMのアレな話

• エクステンション開発者の間ではHHVMでのテストがじわじわ進行中

• Magento2も意識はしている・・・らしい

• で、Magento1.xは?→ オフィシャルには非対応。一応動く

Page 8: Magento Cafe Plus #6

ところが

• https://github.com/magento/magento2/issues/966#issuecomment-78294346

Page 9: Magento Cafe Plus #6

正直、本番で使うのダメ

Page 10: Magento Cafe Plus #6

商品属性の管理とカスタマイズ

Page 11: Magento Cafe Plus #6

復習:商品属性の作り方 by 管理画面

Page 12: Magento Cafe Plus #6

管理画面から作るときのポイント

• 属性コードはシステム内でユニーク&半角英数字+アンダースコア (ただし、先頭文字に数字はNG)

• スコープは用途を考えて慎重に →後から変更できるが、できれば変えないほうが吉

• 入力形式は後で変更できない

• あとの設定はいつでも変えられるのであまり考えなくてもOK

Page 13: Magento Cafe Plus #6

商品属性の作り方 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

スクリプトで作るときのポイント

• $installerはMage_Catalog_Model_Resource_Setupを使う(Mage_Eav_Model_Entity_Setupの系列でも可)

• 管理画面から作る場合と異なり、あらゆるパラメータが指定可能

• 一括で複数の属性をつくることも当然可能(オプションを同時に登録する、なども可)

Page 15: Magento Cafe Plus #6

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

frontend_model例:eav/entity_attribute_frontend_datetime

Page 17: Magento Cafe Plus #6

backend_model例:eav/entity_attribute_backend_datetime

Page 18: Magento Cafe Plus #6

source_model例:eav/entity_attribute_source_boolean

Page 19: Magento Cafe Plus #6

実は顧客や住所属性でも 応用できます…

Page 20: Magento Cafe Plus #6

商品属性とエクステンション・テーマ

• エクステンションやテーマの中には、独自の属性を定義するものがある

• これらをインストールする際は問題なくとも、アンインストール時に問題が起きることがある→エクステンションやテーマを消しても属性は残る!

• 外部システムと連携する際に、これらの属性が障害になることもあるので、要注意

Page 21: Magento Cafe Plus #6

マルチサイト運用のイロハ

Page 22: Magento Cafe Plus #6

復習:Magentoのサイト構成

グローバル

admin サイトA サイトBストアA1

ストアA2

ストアB

日本語 英語

中国語

日本語 英語

フランス語 ドイツ語

Page 23: Magento Cafe Plus #6

スコープ

• Magento上の設定値を管理する単位

• グローバル・ウェブサイト・ストアビューの3階層

• 属性や設定値によって、利用できるスコープが異なる

• 管理画面は1ウェブサイト・1ストアビュー

Page 24: Magento Cafe Plus #6

グローバル

• Magento上で最上位にある設定スコープ

• 管理画面のスコープとほぼ同義

• シングルサイト運営の場合はこのスコープだけ見ていれば基本OK

Page 25: Magento Cafe Plus #6

ウェブサイト

• 2階層目のスコープ

• 顧客・商品・価格などの情報を保持する

• 基本通貨を変えたい場合はこのレベルで設定する

• 客層を切り分けたい場合もこのレベル

• システム上でユニークなコードを持つ

Page 26: Magento Cafe Plus #6

ストア

• カテゴリと複数のストアビューを管理するスコープ

• このレベルで設定パラメータを保持することはできない

• システム内部では「ストアグループ」という扱いになっている

Page 27: Magento Cafe Plus #6

ストアビュー

• 最下層のスコープ

• 商品・カテゴリのロケール別データを保持する

• 設定データも設定可能なものは保持できるようになっている

• システム上でユニークなストアコードを持つ

Page 28: Magento Cafe Plus #6

Webサーバーの設定とindex.php

• index.phpには2つの環境変数がある

• MAGE_RUN_CODE(ストアビューコードまたはウェブサイトコード)

• MAGE_RUN_TYPE(storeまたはwebsiteを指定)

• ApacheやNginxのVHOST設定で指定する

Page 29: Magento Cafe Plus #6

1index.phpで複数サイト

• それぞれのVHOST設定で・・・

• MAGE_RUN_CODEにウェブサイトコードを指定

• MAGE_RUN_TYPEにwebsiteを指定

• これで1つのindex.phpを使って複数サイト運営ができる(ストアビュー切り替えはしない)

Page 30: Magento Cafe Plus #6

ディレクトリを作って複数サイト

• ドキュメントルートに適当な名前でディレクトリを作成する

• index.phpとApacheの場合は.htaccessもコピーする

• index.phpの52行目のパスを変える

• MAGE_RUN_TYPEとMAGE_RUN_CODEをハードコードする

• Magentoの管理画面で対応するウェブサイトまたはストアビューのベースURLにディレクトリを追加する

Page 31: Magento Cafe Plus #6

SSL用ドメインを共用してマルチサイト

• あんまりやりたくないテクニック

• カード加盟店契約が1FQDN単位であることに対する逃げ道

• セキュアベースURLのドメイン名を共用しつつ、ディレクトリでindex.phpを分けて、サイト別のSSLページ・データスコープを作る

Page 32: Magento Cafe Plus #6

マルチサイト運用とAccept Language

• Accept Languageを用いて言語振り分けをするというニーズ

• 難関はストアビューコードはシステム上、ユニークであること

• つまり、ja_JPをjpというストアビューへの振り分けは1ウェブサイトの時しかできない

• マルチウェブサイトの場合は、ハードコードするか、なにか手を考える必要がある

• いずれにしてもVHOST設定の追加は必要なので、非技術者にはハードルが高い

Page 33: Magento Cafe Plus #6

おわり