4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Salesforce B2B/D2C Commerce でカートオブジェクトから注文オブジェクトへの項目の連携

Last updated at Posted at 2023-10-06

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

Salesforce B2B/D2C Commerce ではチェックアウト完了時にカートオブジェクトから注文オブジェクトが作成され、注文オブジェクトから注文概要オブジェクトが作成されます。
カート→注文→注文概要 といった流れです。
その際にそれぞれのオブジェクトのフィールドがどのようにマッピングされるのか紹介したいと思います。

注文概要オブジェクトは注文管理で利用するものですが、詳細はヘルプの「注文概要」をご覧ください。

オブジェクトと標準フィールドのマッピング

対応する標準オブジェクト下記の通りです。

カート関連オブジェクト 注文関連オブジェクト 注文概要関連オブジェクト
WebCart Order OrderSummary
CartItem OrderItem OrderItemSummary
CartDeliveryGroup OrderDeliveryGroup OrderDeliveryGroupSummary
CartItemPriceAdjustment OrderItemAdjustmentLineItem OrderItemAdjustmentLineSummary
CartTax OrderItemTaxLineItem OrderItemTaxLineItemSummary
WebCartAdjustmentGroup OrderAdjustmentGroup OrderAdjustmentGroupSummary

また、それぞれ対応するフィールドは「Map Cart Data to Order Data」をご覧ください。

カスタムフィールド

同一名称、同一タイプ、同一の設定(例:長さ、小数点、 項目レベルセキュリティ)の場合に自動でマッピングされます。現状対応しているマッピング可能なタイプは下記の通りです。

  • Checkbox
  • Currency
  • Date
  • DateTime
  • Email
  • Html
  • LongTextArea
  • Number
  • Percent
  • Phone
  • Text
  • TextArea
  • Url

実際にやってみる

やること

「Note」「TaxNote」 という名前のカスタムフィールドを WebCart、Order、OrderSummaryCartTax、OrderItemTaxLineItem、OrderItemTaxLineItemSummary に設定しそれぞれどのようにマッピングされるかを確認する。

カスタムフィールドの作成

下画像のように 「Note」 というフィールドを WebCart、Order、OrderSummary に、「TaxNote」 というフィールドを CartTax、OrderItemTaxLineItem、OrderItemTaxLineItemSummary に設定します。

この際、それぞれ同一名称、同一タイプ、同一の設定であることが必要です。

スクリーンショット 2023-10-06 13.51.58.png

WebCart のカスタムフィールドを編集する

自作した「GeneriCartField」というカートページやチェックアウトページで WebCart オブジェクトのカスタムフィールドを編集できるコンポーネントを利用して編集します。

下記のように [Note] というフィールドを編集できるようにコンポーネントを設定しました。
スクリーンショット 2023-10-06 17.54.13.png

そしてサイトからチェックアウト時に 「テスト」 という文字を入力し、チェックアウトを完了しました。
スクリーンショット 2023-10-06 14.47.25.png

CartTax のカスタムフィールドを編集する

CartTax のオブジェクトをサイトの画面上から編集するのは難しいので、チェックアウトインテグレーション税金のインテグレーションの際に利用する Apex を修正して編集します。
自作した税金インテグレーションのためのサンプルコードを下記のように修正し、チェックアウト時に 「テスト税」 という値が [TaxNote] フィールドに入力されます。

// -----省略-----
CartTax tax = new CartTax(
          Amount = amount * (B2BTaxSample.TAX_RATE / 100),
          CartItemId = item.Id,
          Name = item.Name,
          TaxCalculationDate = Date.today(),
          TaxRate = B2BTaxSample.TAX_RATE,
          TaxType = 'Actual',
          TaxNote__c = 'テスト税'
        );
cartTaxesToInsert.add(tax);
// -----省略-----

Order、OrderSummary の値の確認

下画像のように [Note]「テスト」 という値が入っていることを確認できます。

Order
スクリーンショット 2023-10-06 14.47.02.png

OrderSummary
スクリーンショット 2023-10-06 14.47.08.png

OrderItemTaxLineItem、OrderItemTaxLineItemSummary の値の確認

下画像のように [TaxNote]「テスト税」 という値が入っていることを確認できます。

OrderItemTaxLineItem
スクリーンショット 2023-10-06 17.06.54.png

OrderItemTaxLineItemSummary
スクリーンショット 2023-10-06 17.09.01.png

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?