コンテンツにスキップ

顧客可視性(Customer Visibility)プラグイン

概要

顧客・顧客グループ・グローバルのスコープに対して、商品やキャンペーンなどの対象リソースの可視性や許可/拒否を制御するプラグインです。Shop API に可視性を考慮した取得系クエリを追加し、Admin API でリソース/サブジェクトとポリシーの管理を行います。

主要コンセプト

  • リソースセット: 対象リソースを束ねる単位(商品、キャンペーン、コレクション、決済方法など)
  • サブジェクトセット: 顧客・顧客グループ・グローバルなど対象者を束ねる単位
  • ポリシー: リソースセットとサブジェクトセットを関連付け、可視性/価格/決済などの効果を定義

Shop API 拡張

  • productVariantsWithVisibility: ポリシーに基づいた商品バリアント一覧を取得
  • previewVisibility: 顧客と対象を指定して可視性の判定結果を確認
  • validateVisibility: 対象 ID の可視性判定を行い、有効なもののみ返却

Admin API 拡張

  • リソースセット/サブジェクトセット: resourceSets, subjectSets
  • ポリシー: policies, previewPolicy, customerPolicyOverview, customerGroupPolicyOverview
  • ルール/セット/ポリシーの CRUD ミューテーション

データ保存

以下のエンティティで管理します。

  • ResourceSetEntity / ResourceSetItemEntity
  • SubjectSetEntity / SubjectSetItemEntity
  • PolicyEntity

連携

  • 決済可否判定: paymentGroupEligibilityChecker が本プラグインのポリシーを参照します。
  • Vendure Dashboard: ポリシー管理 UI が Admin API を利用します。