顧客拡張プラグイン(CustomerExtensionsPlugin)¶
Shop
API に「ログイン中の顧客自身に関する情報」を追加するための統合プラグインです。
他顧客の情報は返さず、利用者の権限に応じて自分の階層情報だけを提供します。
目的¶
- Shop API で顧客自身の追加情報を取得できるようにする
- 顧客系の拡張を単一プラグインに集約し、運用・拡張を容易にする
実装ファイル¶
apps/vendure-server/src/plugins/customer-extensions.plugin.tsapps/vendure-server/src/vendure-config.shared.ts(プラグイン登録)
提供するShop API¶
customerHierarchy¶
ログイン中の顧客を起点に、請求先コード(billingCustomerCode)で親子関係を判定します。
- 親:
roleType=HEADかつ請求先コードが一致する顧客 - 子: 親(HEAD)のみ取得可能
- 子の視認範囲: 直接の親まで(兄弟は取得しない)
返却フィールド¶
parent: 親の基本情報(存在しない場合はnull)self: 自分の基本情報children: 子の基本情報(親のみ取得)
基本情報は次の要素で構成します。
idfirstNamelastNamecustomFields(customerCode/billingCustomerCode/roleType/branchType)
取得例¶
query {
customerHierarchy {
parent {
id
firstName
lastName
customFields {
customerCode
roleType
}
}
self {
id
firstName
lastName
customFields {
customerCode
roleType
}
}
children {
id
firstName
lastName
customFields {
customerCode
roleType
}
}
}
}
セキュリティ方針¶
- Shop API はログイン済み顧客のみアクセス可能
- 管理者APIのトークンは不要
- 返却する情報は常に「自分を起点にした親子関係」のみ
拡張方針¶
今後、顧客自身に関する追加情報を提供する場合は、このプラグイン内で統合することを推奨します。