Amazon Web Services ブログ

ヘッドレスコマース型の小売ストアをCommercetools と統合する方法 – Part 2

前回の投稿「ヘッドレスコマース型の小売ストアを Commercetools と統合する方法 – Part 1」では、commercetools API を使用する commercetools ソリューションを使って、e コマースストアのフロントエンドをバックエンドの小売マイクロサービスに統合するプロセスについて説明しました。

アマゾンウェブサービス(AWS)クラウドで構築された commercetools は、モダンな e コマースソリューションの厳しいニーズを満たすように設計された、一連の柔軟な REST および GraphQL API を提供しています。API は、このソリューションと関連機能に保存されているデータに対してプログラムからアクセスするためのインターフェイスを作成します。AWS パートナーである commercetools は、本番環境ですぐに利用できるコマースソリューションを提供しており、小売企業はこれを使って高品質で拡張性の高い、モダンな e コマースアーキテクチャを構築することができます。

ブログの Part 2 では、commercetools ソリューションで生成される特定のイベントに対応するための Amazon EventBridge の使い方を紹介します。Amazon EventBridge はサーバーレス型のイベントバスで、AWS や既存システム、SaaS アプリケーションを繋ぐ大規模なイベント駆動型アプリケーションを簡単に構築することができます。このブログでは、よくある顧客エンゲージメントのユースケースである、新商品告知のためのキャンペーンメール送信、を実装するプロセスを、順を追って解説します。

commercetools のメッセージについて

commercetools ソリューションでは、注文や商品といったリソースに対する変更や何らかのアクションが発生したときにメッセージが生成されます。Amazon Simple Queue Service(Amazon SQS)や Amazon EventBridge といった任意のメッセージキューイングサービスを使用して、新しいメッセージに関する通知を作成できます。Amazon SQS はメッセージを使用してシステム間でデータを送信する、フルマネージドなメッセージキューサービスです。

Amazon EventBridge は、コンテンツに基づいてメッセージをフィルタリングやルーティングする簡単な方法を提供しているので、commercetools 利用者は Amazon EventBridge を使うことで、低運用コストでスケーラブルかつ動的なイベントパイプラインを作成できます。その他の一般的な使用例には次のようなものがあります:

  • 商品レビューのモデレートと顧客エンゲージメント – 商品レビューを受け取り、機械学習(ML)によりテキスト内から価値ある洞察と関連性を見出す自然言語処理(NLP)サービスである Amazon Comprehend を使用して、レビューが好意的かそうでないかを判定できます。好意的でない文脈の場合は、状況に対処するために能動的に顧客に連絡することができます。
  • 顧客エンゲージメント – 商品が値引きされた場合、以前に同じ商品あるいは、類似の商品を閲覧や購入したことのある顧客に連絡し、店舗を訪問してもらうよう促すことができます。
  • 注文フルフィルメント – 注文が確定されたら、最も顧客に近い拠点から商品を発送します。このソリューションの実装方法の詳細についてはチュートリアルを参照してください。

新商品通知の e メールを送信するユースケースの実装手順

この例では以下のようなフローになります:

  1. ストア管理者がウェブフロントエンドに商品を作成、公開します。 commercetools API を呼び出して、バックエンドで新商品を作成します。
  2. commercetools が「ProductPublishedMessage」メッセージを生成し、Amazon EventBridge に配信します。
  3. 次に Amazon EventBridge が AWS Lambda をターゲットにメッセージをルーティングします。AWS Lambda はサーバーレスのイベント駆動型コンピューティングサービスで、サーバーをプロビジョニングも管理もすることなく、あらゆるタイプのアプリケーションやバックエンドサービスのコードを実行できます。
  4. AWS Lambda 関数は AWS SDK を介して、マルチチャネルのマーケティングコミュニケーションサービスである Amazon Pinpoint の API を呼び出し、新しいメールキャンペーンを作成し、新商品を通知したい顧客セグメントに対してメッセージを送信します。

まず、e メールキャンペーン用に Amazon Pinpoint で顧客セグメントを構築する必要があります。Amazon Pinpoint におけるセグメントは、特定の属性を共有する顧客のグループです。たとえば、過去一年間に店舗を訪れたことのある顧客すべて、あるいは、注文したことのある顧客すべて、といったセグメントを作成できます。こちらの手順に従い、さまざまな顧客セットをターゲットとするセグメントを構築してください。

次にターゲットとなる AWS Lambda 関数を作成し、Amazon EventBridge が ProductPublishedMessage メッセージをルーティングするようにします。AWS Lambda 関数のサンプルコードを利用できます。 必ず前述で作成したセグメントを使用して、ターゲットとなる顧客セットに適切なメッセージにカスタマイズしてください。Amazon Pinpoint 経由で e メールのメッセージを送信する場合は、e メールチャネルを開始し、送信者 e メールアドレスが一つであることを確認するよう、注意してください。

Amazon EventBridge 管理コンソールから、commercetools の新しいパートナーイベントソース統合を設定します。

commercetools と Amazon EventBridge を統合するためには、以下に示すように、commercetools の Subscription API を使用してサブスクリプションを作成する必要があります。


$ curl https://api.eu-central-1.aws.commercetools.com/<YOUR_PROJECT_KEY>/subscriptions -sH "Authorization: Bearer <YOUR_AUTH_TOKEN>" -X POST -d @./create-subscription-payload.json

以下のようなペイロードを送信します:


{
    "key": "YOUR_SUBSCRIPTION_ID",
    "destination": {
        "type": "EventBridge",
        "accountId": "YOUR_AWS_ACCOUNT_ID",
        "region": "YOUR_AWS_REGION"
    },
    "messages": [
        {
            "resourceTypeId": "product",
            "types": [
                "ProductPublished"
            ]
        }
    ]
}

Amazon EventBridge 管理コンソールに戻ります。ナビゲーションペインで [Partner event sources] (パートナーイベントソース)を選択します。ペイロードで指定したものと同じ名前のパートナーイベントソースの横にあるボタンを選択し、[Associate with event bus] (イベントバスと関連付ける)を選択します。

イベントソースのステータスが「Pending(保留中)」から「Active(アクティブ)」に変わり、イベントバスの名前がパートナーイベントソース名と一致するように更新されます。

次に、こちらの手順に従って、commercetools イベントに一致するルールを構成します。  [Define pattern] (パターンの定義)セクションでは、次のように指定します:

  1. [Event pattern] (イベントパターン)を選択します
  2. [Pre-defined pattern by services] (サービスごとに事前定義されたパターン)を選択します
  3. [Service provide] (サービスプロバイダー)には [Service partners] (サービスパートナー)を選択します
  4. [Service name] (サービス名)には [commercetools] を選択します
  5. [Product Published] (公開されたプロダクト)のみに一致するよう、イベントパターンをカスタマイズします。「編集」を選択して変更を加えてから、「保存」を選択します

{
  "account": ["<YOUR_AWS_ACCOUNT_ID>"],
  "detail": {
    "type": [ "ProductPublished" ]
  }
}
 

[Service event bus] (サービスイベントバス)には必ず、前述で作成したパートナーイベントソースに関連付けられているイベントバスを選択してください。

ルールのターゲットとして、前述で作成した Amazon Lambda 関数を選択します。「作成」を選択してルールを作成します。

最後にソリューションをテストします。 commercetools Merchant Center から新商品を作成して公開します。新商品を作成すると、Amazon Pinpoint 管理コンソールでキャンペーンのステータスを確認できます。

始めてみましょう

このブログがお役に立てば幸いです。 Amazon EventBridge を使用したイベントドライブアーキテクチャについて詳しく知りたい場合は、こちらの AWS ワークショップをご覧ください。

ヘッドレスコマースアーキテクチャが小売ビジネスにどのように役立つかについてディスカッションをご希望の場合、または Amazon Pinpoint と commercetools を使用してイベント駆動型メールキャンペーンを作成するためのサポートが必要な場合は、AWS アカウントチームに連絡するか、Retail on AWS にアクセスしてください。


AWS パートナースポットライト

commercetools は、最新の MACH 原則(マイクロサービスベース、APIファースト、クラウドネイティブ、ヘッドレス)に基づいて構築された先進的なコマースソリューションであり、コマースソリューションと連携することで小売企業はビジネスと顧客の正確なニーズに合わせたエクスペリエンスを調整できます。

commercetools について詳細はこちらを御覧ください。

著者について

Daniele Stroppa

Daniele Stroppa は、小売業界 AWS パートナーの EMEA テクニカルリードです。小売テクノロジーのソリューションアーキテクチャと技術戦略、および AWS のコンサルティングパートナーを担当しています。AWS には 8 年間在籍しており、Amazon Elastic Compute Cloud(Amazon EC2)コンテナサービスチームとソリューションアーキテクチャチームを担当してきました。ソフトウェア開発にも情熱を注いでおり、開発者が最適なサービスを提供できるよう支援しています。

翻訳は Solutions Architect 杉中が担当しました。原文はこちらです。