フィールドマッピング
Stripe Connector for NetSuite を使用して、NetSuite レコードに同期されたデータをカスタマイズする方法をご紹介します。
フィールドマッピングは、NetSuite でレコードのレポート作成や分類を行う必要がある場合、またはコネクターがレコードを作成する必要がある必須フィールドの値を追加する場合に利用します。
Stripe Connector for NetSuite を使用して NetSuite レコードにデータを追加する方法は 2 つあります。
- フィールドデフォルト (静的)
- フィールドマッピング (動的)
コネクターアプリから設定 > フィールドマッピングに移動すると、両方のマッピング方法を確認できます。これにより、たとえばデフォルトで同期されるデータよりも多くのデータを NetSuite レコードに同期したい場合に、NetSuite に同期するデータをカスタマイズできます。
フィールドデフォルト
フィールドデフォルト (静的な値) は、Stripe に存在しない場合でも、実装によって作成される任意のレコードに追加できます。NetSuite レコードの 1 つに必須フィールドがある場合、コネクターはそのフィールドの値を含めてレコードを作成する必要があります。これを怠った場合、レコード作成のリクエストがエラーにより失敗します。
たとえば、請求書フォームに必須の Class
フィールドがある場合、Class
の値を指定してコネクターがレコードを作成できるようにする必要があります。Class
は recordReference
またはドロップダウンフィールドであるため、コネクターにはフィールドデフォルトとして使用する値の内部 ID が必要です。internalID: 5
が指定された Corporate
を使用したい場合、次の JSON ハッシュを入力します。
invoice: { "klass_id": 5 }
請求書のラインアイテムに同じフィールドが必要な場合は、次の JSON ハッシュを入力します。
invoice_item: { "klass_id": 5 }
上記の例では、class
ではなく klass
を使用しています。これは、このフィールドの NetSuite API に固有のものです。サフィックス _
は、フィールド値が recordReference
(ドロップダウン) であることを NetSuite に示します。もう一つの一般的なサフィックスとして _
があります。これは、Unix タイムスタンプ形式にする必要がある NetSuite の日付フィールドを示します。
よくある間違い
必須フィールド、invoice
のヘッダーフィールド、または invoice_
のラインフィールドが不足している場合、同じエラーメッセージが表示されます。ヘッダー別にマッピングを追加してレコードの同期に失敗した場合は、ライン別のマッピングの追加をお試しください。
フィールドマッピング
Stripe から NetSuite にフィールドマッピング (動的な値) を渡すことができます。これを実行するために、コネクターは Stripe フィールドからデータを取得し、それを NetSuite フィールドに記録します。
たとえば、Stripe に構築済みのシステムは、各支払いのメタデータに company_
を渡します。この ID を NetSuite の顧客への支払いのカスタムフィールドに渡し、トラッキングを行いたいとします。そのためには、以下のフィールドマッピングを設定する必要があります。
customer_payment: { "metadata.company_id": "custbody_company_identifier" }
上の例では、NetSuite のカスタムフィールドで _
ではなく _
を使用しています。NetSuite は _
を使用してレコード参照やドロップダウンフィールドタイプを示すため、カスタムフィールドではサフィックス _
以外の値を使用する必要があります。
たとえば、サービスセールアイテムに収益認識ルールを設定する際のフィールドデフォルトは次のようになります。
"service_sale_item": { "revenue_recognition_rule_id": 123 }
カスタマイズを上書きする
コネクターは NetSuite でレコードを作成すると、Stripe レコードの標準のデータセットを NetSuite レコードにマッピングします。たとえば、Stripe 顧客の ID とメールアドレスは、コネクターによって作成される NetSuite 顧客にマッピングされます。
コネクターの標準のデータマッピングを上書きする場合は、フィールドデフォルトまたはフィールドマッピングを使用します。同じ NetSuite フィールドにデフォルトマッピング (静的) とフィールドマッピング (動的) がある場合は、フィールドデフォルトよりもフィールドマッピングが優先されます。
たとえば、コネクターが Stripe 顧客名を NetSuite フィールド company_
にマッピングしたとします。NetSuite は、デフォルトで company_
の値を法人 ID にコピーします。コネクターはこの機能を上書きし、代わりに Stripe 顧客 ID を使用して、一意の法人 ID を使用するという NetSuite の要件を満たします。このとき、Stripe 顧客 ID は使用しないでください。代わりに一意の ID を使用することをお勧めします。
この場合は、法人 ID を null にすることで、標準のデータマッピングを上書きできます。これにより、NetSuite は顧客の名前を法人 ID としてコピーし、NetSuite のデフォルトの動作を使用できます。
"customer": { "entity_id": null }