Salesforce B2C CommerceのSFRA, PWA Kit, Headlessの違い

※ これから記載する事項は、私が所属する会社とは一切関係のない事柄です。

Salesforce B2C Commerceと商品を購入するユーザを繋げるUIを作成する手段には大きく分けて下記の３つあります。

* **SFRA (Storefront Reference Architecture)**
* **PWA Kit**
* **Headless**

この記事ではこの３つの違いとそれぞれのメリットを紹介したいと思います！


## SFRA

Storefront Reference Architectureの略です。
B2C Commerceに標準でビルドインされているUIのベストプラクティスを詰め込んだテンプレートで、そのテンプレートに対して修正を加えながらサイトを構築していくので、短期間でのサイトの立ち上げが可能です。モバイルファーストなのでモバイル対応もバッチリです。

A/Bテストができたり、プロモーションでサイトを訪れた顧客に合わせたUIの切り替えができたり、分析ツールでAPIの応答時間を確認できる機能が標準でついているので、導入後のUI/UXを向上させていくのも容易です。

さらに、[パートナーが提供してくれるカートリッジ](https://www.salesforce.com/products/commerce-cloud/partner-marketplace/)を利用して簡単に機能を拡張していったり、自分でカートリッジを作成して機能を追加することもできます。

MVCモデルを採用していたり、コードはJavascriptを利用して実装するので、初めての方でもかなりとっかかりやすいと思います。

使い方については今後の記事で紹介できればいいなと思っております。

詳細はDeveloper Centerの[SFRAの記事](https://developer.commercecloud.com/s/article/SFRA)が参考になります。


## PWA Kit

B2C CommerceでPWAを実現するためのテンプレートです。

こちらもSFRA同様、UIのベストプラクティスが詰め込まれていますし、もちろんモバイル対応です。
PWA KitはSFRAとは違い、フロントエンドがB2C Commerceから分離されており、Managed Runtimeというプラットフォーム上に構築します。

Nodejs, Express.jsやReactといったオープンソースを利用しているので、他の案件で経験がある方が参画しやすいようになっています。必要となりそうなスキルセットに関しては[こちら](https://developer.commercecloud.com/s/article/Skills-for-Success)に記載あります。

PWA Kitのコードは[NPMに公開](https://www.npmjs.com/package/pwa-kit-create-app)されているので、実際に見てみて確認してみてもいいかもしれません。isomorphic/universal javascriptで実装されているので、開発効率も非常に高いです。

Managed Runtimeには標準でCDNやWAFなどが搭載されているので、インフラ構築にかける手間が大幅に軽減されますし、デプロイも非常に早く、多くの場合１分程度で完了します。

使い方については今後の記事で紹介できればと考えています。

詳細はDeveloper Centerの[PWA Kitの記事](https://developer.commercecloud.com/s/article/PWA-Kit)が参考になります。


## Headless

Headlessは上記で紹介したテンプレートと違い、API群のことです。

B2C CommerceにはCommerce APIというフロントエンドを実装する際に利用できるAPIがあり、そのAPIを利用すれば、ネイティブアプリやIoTデバイスなどの様々なフロントエンドからB2C Commerceへアクセスできます。その様々なフロントエンド(=ヘッド)はユーザの要件によって変えることができるので、そのヘッドはなんでもいいよ的な意味合いでヘッドレスと呼ばれています。上記で紹介したPWA KitもCommerce APIを利用しているので、ヘッドレスの一部と言えます。

ちなみに「ヘッドレスコマース」は一般用語なので是非検索してみてください。
ここではB2C Commerceではヘッドレスコマースを実現するためにCommerce APIと[APIに接続するためのSDK](https://www.npmjs.com/package/commerce-sdk)が提供されているということだけ理解していただければいいなと思います。

詳細はDeveloper Centerの[Headlessの記事](https://developer.commercecloud.com/s/article/CommerceAPI)が参考になります。



## まとめ


概念図と考えられるメリットを下に掲載しておきます。
SFRAでは短期の導入ができたり、標準で豊富な機能が組み込まれているので、サイトの改善が非常にしやすくなっています。
最近では自社で開発チームを持って、フロントエンドとバックエンドを分離させて、スピード感を持って新しいソリューションを導入していくような動きもあるので、そんな時はCommerce APIを利用してフロントエンドは自社で実装できるようになっています。また、新たにPWA Kitが出てきたことによって、短期間にCommerce APIを利用したサイトが作成でき、さらにPWAも実現できるようになりましたし、これからどんどん機能が実装されていくようなので、非常に楽しみです！


![スクリーンショット 2021-12-21 15.22.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/0af8cb79-c89c-0464-670b-9a02f27d71de.png)




|	|メリット	|
|---	|---	|
|**SFRA**	|・新しいユーザー体験を実現するサイトを早くリリースできる<br/>・ EC管理者やマーケターにとって役立つ機能をすぐに提供できる<br/>・ サイトを運営するための機能が一揃いになっている<br/>・ AIドリブンの検索やレコメンド<br/>・ モバイルファースト、マルチサイト、マルチロケーションのグローバルプラットフォームである<br/>・ ノーコードでのページの作成や編集、プロモーション、キャンペーン施策が可能<br/>・ パートナーカートリッジを利用した機能の拡張	|
|**PWA Kit**	|・ 柔軟で無限なユーザ体験の提供ができる<br/>・ サイトの表示スピードの向上とモバイル最適化<br/>・ サイト運用のアジリティの向上<br/>・ 1からヘッドレスを利用するよりもリスク・コストを低減できる<br/>・ すぐにサイトをローンチできる<br/>・ PWA Kitを自社ブランドの要件に沿ってカスタマイズできる<br/>・ プリビルドされた疎結合のストアフロントである<br/>・ 自社ブランドのグローバル展開に合わせてローカライズされたマルチサイトを提供できる<br/>・ スケーラブルなManaged Runtimeを利用してリスク・コストの低減が可能<br/>・ Commerce APIを利用しさまざまな顧客接点を実装可能	|
|**Headless**	|・ ITチームに完全コントロールを与え、フロントエンドの体験を自立させる<br/>・ 既存のフロントエンドに対する投資にレバレッジかけれる<br/>・ Commerce APIを利用し、どんなフレームワークでも、フロントエンドを構築できる。<br/>・ Commerce APIを利用しさまざまな顧客接点を実装可能	|