B2C Commerce のその他 Salesforce 製品との接続 - Salesforce Order Management 後編

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



今回は[「B2C Commerce のその他 Salesforce 製品との接続」シリーズ](https://qiita.com/syunyama/items/366fcbc315be5e5c252f)として B2C Commerce と Salesforce Platform 上に構築されている Salesforce Order Management (以下 SOM) との plugin_ordermanagement というカートリッジを利用した接続方法を紹介したいと思います。B2C Commerce から SOM のデータを送信する方法は[前半](https://qiita.com/syunyama/items/802fa03e96e387828179)にて紹介します。
※ ここでは接続に関してのみ取り扱いSOMの内容は取り扱いませんのでご了承ください。

![Cross Cloud (11).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/0ee4b213-eed7-583a-a4a6-c95759a23a0b.jpeg)



プラグイン設定時の注文詳細画面
![スクリーンショット 2023-03-30 17.03.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/c6745946-50ed-2aee-8786-b232395fbda8.png)



## 接続内容とポイント

※ [plugin_ordermanagement の GitHub (Account Manager アカウント必要)](https://github.com/SalesforceCommerceCloud/plugin_ordermanagement)から抜粋しています。

* ゲストユーザが注文を検索できる
* 登録ユーザが注文履歴を確認できる
* 注文のステータスを確認できる
* 返品・キャンセルができる



## 接続方法

#### 1. Salesforce Platform への権限設定

**設定 > 権限セット** に遷移し、「OMSelfServicePermissionsSet」の「有功化された注文の編集」を有効にする。

![スクリーンショット 2023-03-29 14.55.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/9b71d666-c788-c9da-22a8-5ddb976a9d44.png)





#### 2. Salesforce Platform と B2C Commerce の接続を行う

**設定 > 注文管理** に遷移し、「B2C Commerce 接続」を有効にする。

![スクリーンショット 2023-03-30 9.24.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/c3668f19-558e-f4fd-30dd-6992519a9a45.png)




**設定 > クラウドツークラウド接続を管理** に遷移し、「新しい接続」ボタンをクリックすると、下記の画像のような入力ボックスが表示されるので、クラウドまたはアプリケーションは「Commerce Cloud」を選択。リモートテナント URL は B2C Commerce の Business Manager の URL を入力し、「接続を要求」をクリックし、Business Manager の画面へ遷移するので「Allow(許可)」ボタンをクリックし、さらに「完了」ボタンをクリックする。

![スクリーンショット 2023-03-29 14.32.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/74a0d171-0be5-48db-12f0-cb0306289800.png)



#### 3. B2C Commerce に plugin_ordermanagement カートリッジを設定する

実際の方法は [plugin_ordermanagement の GitHub (Account Manager アカウント必要)](https://github.com/SalesforceCommerceCloud/plugin_ordermanagement) みてください。ポイントとして下記の通りです。

* カートリッジのアップロードと有効化。（参考 Qiita「[Salesforce B2C CommerceのSFRA開発環境セットアップ＆デプロイ方法](https://qiita.com/syunyama/items/21c71ac9c49b332e126d#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E6%96%B9%E6%B3%95)」）
* 商品オブジェクトへカスタム属性( `nonRMA` と `nonReturnOrderRMA` )の追加
* 設定（APIバージョンや注文ステータス名の変更など）は `plugin_ordermanagement/cartridges/plugin_ordermanagement/cartridge/config/somPreferences.js` で行える。




## 接続データとポイント

* データに関しては固定のデータではなくカートリッジコード上の SOQL クエリから確認できます（[例](https://github.com/SalesforceCommerceCloud/plugin_ordermanagement/blob/master/cartridges/plugin_ordermanagement/cartridge/scripts/som.js#L13)）
* 目視の確認では下記のオブジェクトを取得していました。
    * OrderDeliveryMethod、CardPaymentMethod、FulfillmentOrder、Account、FulfillmentOrderShipments、Shipment、FulfillmentOrderLineItems、OrderSummary、OrderPaymentSummaries、OrderDeliveryGroupSummaries、OrderItemSummaries



## リソース

*  [plugin_ordermanagement の GitHub (Account Manager アカウント必要)](https://github.com/SalesforceCommerceCloud/plugin_ordermanagement) 
* [Salesforce Order Management 実装ガイド](https://successjp.salesforce.com/article/NAI-000555)
* [Salesforce Order Management ヘルプ](https://help.salesforce.com/s/articleView?id=sf.om_order_management.htm&type=5)
* [Salesforce Order Management 開発者ガイド](https://developer.salesforce.com/docs/atlas.ja-jp.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_developer_guide_intro.htm)
* [[Trailhead] Salesforce Order Management](https://trailhead.salesforce.com/ja/content/learn/modules/om-salesforce-order-management)