コンテンツにスキップ

顧客拡張プラグイン(CustomerExtensionsPlugin)

Shop API に「ログイン中の顧客自身に関する情報」を追加するための統合プラグインです。
他顧客の情報は返さず、利用者の権限に応じて自分の階層情報だけを提供します。

目的

  • Shop API で顧客自身の追加情報を取得できるようにする
  • 顧客系の拡張を単一プラグインに集約し、運用・拡張を容易にする

実装ファイル

  • apps/vendure-server/src/plugins/customer-extensions.plugin.ts
  • apps/vendure-server/src/vendure-config.shared.ts(プラグイン登録)

提供するShop API

customerHierarchy

ログイン中の顧客を起点に、請求先コード(billingCustomerCode)で親子関係を判定します。

  • : roleType=HEAD かつ請求先コードが一致する顧客
  • : 親(HEAD)のみ取得可能
  • 子の視認範囲: 直接の親まで(兄弟は取得しない)

返却フィールド

  • parent: 親の基本情報(存在しない場合は null
  • self: 自分の基本情報
  • children: 子の基本情報(親のみ取得)

基本情報は次の要素で構成します。

  • id
  • firstName
  • lastName
  • customFieldscustomerCode / 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のトークンは不要
  • 返却する情報は常に「自分を起点にした親子関係」のみ

拡張方針

今後、顧客自身に関する追加情報を提供する場合は、このプラグイン内で統合することを推奨します。