Sitecore Content Hub の機能として提供している Content Marketing Platform - CMP を利用して、静的なサイトを構築するための仕組み、Sitecore Experience Edge for Content Hub というソリューションの提供を開始しました。今回は、このソリューションを紹介するデモを動かしてみました。
関連情報の確認
今回の内容において、、以下のことを理解していることを前提とします。
またライセンスとしては、以下のライセンスが必要となります。
Sitecore Content Hub - Content Marketing Platform
Sitecore Experience Edge for Content Hub
それでは早速初めていきます。
Sitecore Content Hub CMP + Jamstack
前回紹介をしたように、Sitecore Content Hub の情報に関して、GraphQL 経由でアクセスすることができました。
コンテンツのデリバリーについて
コンテンツデリバリーに関しては以下のページが参考になります。
このページで紹介されている画像を抜き出してみました。

ポイントは以下の通りです。
商品情報に関して、Deliver Platform 経由でデータを取得することができます
Sitecore CMP のコンテンツに関しても Delivery Platform を通じて提供します
Sitecore DAM のデータに関しては、Public link を通じて画像の表示ができるようになります
つまり、Delivery Platform を経由して、外部のチャンネルで必要と考えられるデータを取得することができます。
コンテンツコレクション
Sitecore CMP の新しい仕組みとして、コンテンツコレクションが追加されました。
ここに追加されるコンテンツが、Delivery Platform を通じて公開するコンテンツ管理をすることができます。もちろん、ここに追加するコンテンツに関してもワークフローが提供されており、承認が完了したコンテンツのみ、展開するという流れになっています。
このデータに対して、GraphQL のエンドポイントを通じてアクセスすることができる、というわけです。
Jamstack
上記のように Sitecore Content Hub に情報が蓄積されていて、GraphQL のエンドポイントを通じてアクセスすることができます。そこで連携する仕組みとして、Jamstack のソリューションの一つ、Next.js に対応したサンプルを提供しています。
Jamstack とは
JavaScript
APIs
Markup
の頭文字を並べた技術用語で、JavaScrip を利用して API を通じて Markup のデータを配信するという形になります。Jamstack のソリューションとしてはさまざまなものがありますが、Next.js に関しては以下のようなメリットがあります。
静的サイトを構築することができる
SSR (Server Side Rendering) にも対応
React ベースである
Sitecore の開発で共通点としては、Sitecore Experience Platform と連携する Next.js のテンプレートも用意していますので、同じ技術で Web サイトを構築することができる、という点があります。
そして何より、静的サイトをベースとして構築する形となるため、CDN との相性がよく、パーソナライズなどの仕組みが必要ない場合、安定稼働をするためのコストを抑えることが可能となります。
デモを動かす
Sitecore Content Hub の準備
前回の記事で動作している Sitecore Content Hub の環境を用意してください。
設定で publishing が有効になっていること
有効な API キーが準備できている
GraphQL のエンドポイントにアクセスして結果を取得することができる
この状態になっているのを前提として、次のステップに進みます。
リポジトリの準備
Sitecore Experience Edge のデモを動かすために、以下のリポジトリのクローンを手元に保存してください。
このリポジトリのルートに .env というファイルを作成します。ファイルの中は設定を2行だけ記載してください。
CH_TOKEN="<<CH_PREVIEW_TOKEN>>"
CH_URL="<<CH_PREVIEW_URL>>"
実際に動作しませんが、以下のような書き方となります。
CH_TOKEN="L0pYRkx6bmVYOWZtZmsxSVZqSkNuTm1YcU9jK2wwRXE4eTJBVFZYNkdkST18bGlnaHRob3VzZTQwMWph"
CH_URL="https://your-instance-name/api/graphql/"
実行する
ローカルにリポジトリを利用する際に、初回は必ず以下のコマンドを実行してください。
npm install
これは初回のみで大丈夫です。
実際に実行する際には、以下のコマンドを実行します。
npm run dev
以下のような画面が表示されます。

http://localhost:3000 にアクセスすることでサンプルにアクセスすることが出来ますが、デモサイトではエラーになります。

このエラーは、Query を投げて対象となるコンテンツタイプのデータがない、という結果になっていることがわかります。あとは Sitecore Content Hub - CMP にコンテンツのタイプを用意することで動作する形となります。この部分はまた追って紹介をします。
まとめ
残念ながらデモに関してはサンプルのデータが Content Hub 側似なかったのでエラーが表示されただけですが、Next.js のサンプルで作られた Edge Portal のデモが Sitecore Content Hub のデータを参照しに行っているところまで確認をすることができました。時間を見つけて、実際に動かすところまでの追加の手順は、別途紹介したいと考えています。