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

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

今回は[「B2C Commerce のその他 Salesforce 製品との接続」シリーズ](https://qiita.com/syunyama/items/366fcbc315be5e5c252f)として B2C Commerce から Salesforce Platform 上に構築されている Salesforce Order Management (以下 SOM) へデータを送信する接続について紹介したいと思います。B2C Commerce から SOM のデータにアクセスする方法は[後編](https://qiita.com/syunyama/items/3b03acf2d1cbd3a27731)にて紹介します。
※ ここでは接続に関してのみ取り扱いSOMの内容は取り扱いませんのでご了承ください。

![Cross Cloud (12).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/fb31d9a0-907e-caf5-e3e6-0cc51a2e6a79.jpeg)






## 接続内容とポイント

* B2C Commerce から SOM への注文データの送信を行います
* ステータスが「新規」または「未処理」の B2C Commerce の注文を送信します。不正チェックを行うためなどで送信を一旦止めていきたい場合はステータスを「作成済み」にします。
*  B2C の注文データは SOM の Order オブジェクトとその関連オブジェクト（連携されるデータは後述）に連携され、Salesforce Platform のフローにて Order から OrderSummary オブジェクトを作成し、注文に関する操作を行っていきます。（[ヘルプ](https://developer.salesforce.com/docs/atlas.ja-jp.242.0.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_order_summary_erd.htm)）その後、注文が履行された際には FulfillmentOrder が作成されます。（[ヘルプ](https://developer.salesforce.com/docs/atlas.ja-jp.242.0.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_fulfillment_orders.htm)）
* SOM で変更を行うような注文は「管理対象注文」、過去注文のような変更を行わない注文を取り込む際は「未管理注文」として取り込みます。（[ヘルプ](https://developer.salesforce.com/docs/atlas.ja-jp.242.0.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_importing_data_into_data_mgmt.htm)）



## 接続方法

詳細については[ヘルプ](https://resources.docs.salesforce.com/latest/latest/ja-jp/sfdc/pdf/sfom_impl_b2ce.pdf)をご覧ください。単純な接続だけの設定だと [Spring’23](https://help.salesforce.com/s/articleView?id=release-notes.rn_om_provision_deactivate_b2c_connections.htm&release=242&type=5) から非常に簡単になっているのでその点に絞って紹介します。

Salesforce Platform で **設定 > B2C Commerce 接続** に遷移し、「新しい接続」をクリックします。
![スクリーンショット 2023-03-17 11.41.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/8de358d9-d5fe-df91-2199-be76da9789e5.png)




任意の接続名とテナントIDを入力し保存します。
※ テナントIDについては「[B2C Commerceに関わるIDを把握](https://qiita.com/syunyama/items/58433ae8e3c5fda7f37e#a--b2c-commerce%E3%81%AB%E9%96%A2%E3%82%8F%E3%82%8Bid%E3%82%92%E6%8A%8A%E6%8F%A1)」を参照してください。
![スクリーンショット 2023-03-17 11.48.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/d9968f0a-8556-bcf3-d2f4-7b5e38fa4df4.png)


しばらくするとメールにてプロビジョニングされたことが通知されます。
![スクリーンショット 2023-03-17 11.44.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/edfb6465-2eea-1239-9987-c7e4db0939dc.png)





プロビジョニングが完了すると B2C Commerce の Business Manager で **管理 > グローバル環境設定 > Salesforce Order Management 連携管理** に遷移し連携状態が選択状態になっていることを確認できます。

![スクリーンショット 2023-03-17 11.42.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110894/c01d8846-2180-834d-0f34-3c5a4200758c.png)




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

接続データの詳細は[ヘルプ](https://developer.salesforce.com/docs/atlas.ja-jp.242.0.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_b2c_commerce_data_map.htm)をご覧ください。

* 注文連携時には顧客データが取引先や取引先責任者へ連携されますが、その際に過去に注文したこのある顧客や [CRM Sync](https://qiita.com/syunyama/items/75d5c15a968bce8a076a) などであらじめ Salesforce Platform に連携している顧客の情報が重複しないように「B2C インテグレーションデータ一致ルール」を設定しておきましょう
* 配送方法はあらかじめ B2C Commerce の 配送方法ID と一致するような 参照番号を持つ OrderDeliveryMethod オブジェクトを Salesforce Platform に作っておく必要があります。
* Salesforce Payments を利用しない場合はカスタムの支払い方法（GtwyProvPaymentMethodType オブジェクトの作成）を設定する必要があります。
* B2C Commerce とSalesforce Platform の対応するオブジェクトに対して一致した名前( `__c` サフィックスをお忘れなく）のカスタム項目を指定することでカスタム属性の送信も可能です。



## リソース

* [Salesforce Developers](https://developer.salesforce.com/docs/atlas.en-us.242.0.order_management_developer_guide_html.meta/order_management_developer_guide_html/order_management_developer_resources.htm)
* [Salesforce Help](https://help.salesforce.com/s/articleView?id=sf.om_order_management_resources.htm&type=5)