フィールドマッピング
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 }