一般的なアーキテクチャのベストプラクティスの確認
学習の目的
この単元を完了すると、次のことができるようになります。
- ビジネス機能をコードから切り離すことが重要な理由を説明する。
- コンテンツスロットの計画に関する考慮事項を 3 つ挙げる。
- iFrame の制約について説明する。
- 動画の最適な処理方法を説明する。
- アプリケーションの最適なパフォーマンスを実現する手法を 3 つ挙げる。
アーキテクチャのベストプラクティス
Salesforce B2C Commerce の実装は目新しいことではありません。このソリューションは 2005 年頃、つまり Salesforce が Demandware を買収して B2C Commerce 製品に作り変えるはるか前から存在します。つまり、ストアフロントの実装をスムーズに実行する完璧なプロセスの実現に大勢の人々が何年も費やしてきたということです。通常ベストプラクティスは、悩みの中から生み出されます!
では、課題が深刻な問題に発展する前に食い止めるためのベストプラクティスを見ていきましょう。このモジュールでは、次の事項を中心に説明します。
- 一般的なアーキテクチャ
- ストアフロント
- モバイル
- 国際化
それでは始めましょう。
ビジネス機能のコードからの分離
1 つ目のベストプラクティスは、ストアフロントのビジネス機能がコードとは別に処理されるようにすることです。この一方をもう一方に影響を及ぼすことなく変更できれば、更新に伴う複雑さが大幅に減少します。例:
- 新しいコードのバージョンを本番インスタンスに導入しても、マーチャンダイザーが商品の画像を設定したり、新しいプロモーション用のクーポンを作成する作業に影響がない。
- キャンペーンを更新し (さらにストアフロントにすぐ反映されるようにスケジュールを変更し) ても、ステージングから本番へ進行中のコードのレプリケーションには影響がない。
ご存知のとおり、レプリケーションプロセスではコードがインスタンスにコピーされ、現在のコードが自動的に新しいコードに切り替わります。
Salesforce のリファレンスアーキテクチャ (とシステム) は、ビジネス機能がコードから切り離されるように設計されています。ビジネス機能をコードの導入やレプリケーションと連動させると、サイトの柔軟性が本来の設計より低下します。
コンテンツスロット
コンテンツスロットでは、マーチャントがストアフロントの 1 つの場所を指定し、スケジュールを使用してそこに表示する内容を管理できます。マーチャントはコンテンツスロットの内容をスケジュール可能なため、顧客グループなどの対象条件に基づいて表示を変更することができます。コンテンツスロットが複数あり、異なる内容を表示できる場合は、A/B テストでスロットを比較し、どちらの表示によってビジネスへの効果が大きいかを確認できます。スケジューリングやターゲティング、テストなどを実施できない静的コンテンツアセットを表示した場合との差は明らかです。
A/B テスト
A/B テストは Business Manager に搭載されている機能で、複数のカスタマー体験を設定して異なるグループに示し、テスト期間中にどちらの体験が売上の増大につながったかを判断できます。異なるスロットの設定、プロモーション、並び替えルールによる体験の差を比較することが考えられます。買い物客が参照しているページや属する顧客グループに関連する特定のトリガーや条件に適合すると、A/B テストの対象になります。たとえば、バージニア州に住む 25 ~ 40 歳の男性と、ニューヨーク州に住む 60 ~ 75 歳の女性とでは体験が異なるようにします。それ以外の買い物客にはコントロール体験を表示します。
以下は、買い物客に表示されるコントロール体験と A/B テスト体験の例です。
マーチャントは、データを収集してどの体験から最大の成果がもたらされるかを判断し、その結果に応じてサイトを変更できます。また、特定の買い物客のみに対してサイトが変更されるように設定することもできます。
アセットかスロットか
コンテンツスロット機能は素晴らしいものですが、コンテンツがさらに複雑になります。何をコンテンツスロットまたはコンテンツアセットとして設定するかを慎重に検討します。静的なコンテンツや変更頻度の低いコンテンツはコンテンツアセットとして設計します。ヘッダーのロゴやフッターのリンクがこれに該当します。こうした情報は変更されることが少なく、スケジューリングやターゲティング、テストなども不要です。
コンテンツスロットの最大数
コンテンツ関連のクォータ
B2C Commerce は、この上に構築されるアプリケーションの効率性と安定性を確保するために、設計上特定の制約や限度 (「クォータ」という) が設けられています。クォータを超えたときは、カスタムコードがサポートされている機能を非効率的な方法で使用しているため、より効率的なソリューションを使用する必要があることを意味します。
以下に、インスタンスあたりのコンテンツ関連のクォータを示します。数値は特定のインスタンス上の全サイトの最大数を表します。
名前 |
説明 |
制限 |
コンテンツオブジェクト |
コンテンツアセットの最大数 |
100,000 |
フォルダー |
フォルダーの最大数 |
10,000 |
サブフォルダー |
ライブラリ内のサブフォルダーの最大数 |
1,000 |
ライブラリ |
コンテンツライブラリの最大数 |
140 |
スロットの設定 |
スロットの設定の最大数 |
10,000 |
iFrames
iFrame とは、Web ページを別の Web ページ内に表示するための手段です。ユーザビリティ、アクセシビリティ、ページのパフォーマンスの点では iFrame はコスト高です。そのため、B2C Commerce のベストプラクティスは、実装で iFrame を使用しないようにすることです。
動画
動画コンテンツは人々を惹きつけるだけでなく、アパレル業界を筆頭に多くの買い物客にとって当たり前のものになっています。そのため、効果的かつ効率的な実装で重要な点は、動画がうまく処理されるようにすることです。B2C Commerce は動画ホスティングプラットフォームではなく、実装でそのようにとらえるべきでもありません。
ベストプラクティスは、動画ホスティングに LINK パートナーテクノロジーを使用することです。CorMedia や Informatica など LINK テクノロジーの数社のパートナーがリッチメディア機能を提供しています。Salesforce パートナーコミュニティで、上記の企業やその他の LINK パートナーを確認してください。他の動画ソリューションとして YouTube や Vimeo もあります。
アクセシビリティ
Commerce Cloud ストアフロントリファレンスアーキテクチャ (SFRA) は基本的なアクセシビリティ基準に対応しています。ベストプラクティスは、カスタマイズでも同レベル以上のアクセシビリティを維持することです。また、アクセシビリティのレベルを高める要件を文書化することもベストプラクティスです。
パフォーマンス
オンライン販売を増大させるためには、ストアフロントサイトのパフォーマンスが極めて重要です。商品がなかなか見つからなかったり、注文手続きに時間がかかれば、買い物客はサイトから立ち去ります。サイトを最高レベルのパフォーマンスにするためのベストプラクティスとしていくつかの手法が挙げられます。
- CSS スプライト: スプライトとは、複数の画像を 1 つの画像にまとめたうえで、CSS を使用してその画像の特定の部分を特定の時間に特定の場所にコールすることです。CSS スプライトを使うと、ページを表示するために HTTP サーバーにコールする回数が少なくなります。また、帯域幅も節約できます。この点は携帯電話用あるいは低帯域幅の接続を使ってページを表示する場合に重要です。
- 縮小: JavaScript や CSS コードを縮小し、ストアフロントの Web ページを小さくして読み込みやすくします。この場合、空白や不要な文字が排除され、変数名が短縮されます。ファイルが小さくなれば、大きなバージョンよりも速く読み込まれます。
- 結合 CSS: 使用する CSS ファイル数が減るため、HTTP サーバーへのコールが少なくなり、ページの読み込みが速くなります。
- ページのウエイトの管理: ページの合計ウエイトが 1.5MB を超えないようにします。