Customer Group
First-Pass Node Dossier
This page is an evidence-backed node dossier generated from the domain hierarchy and node questionnaire.
What It Is
CustomerGroup is a customer-segmentation record used to group customers for pricing eligibility, promotion prerequisites, and account membership management.
Parent hierarchy:
Customer ManagementSegmentation And RestrictionsCustomer Group
Primary implementation paths:
packages/framework/src/Models/CustomerGroup.phppackages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.phppackages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.phppackages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.phppackages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.php
What Users Can Do With It
Direct capabilities
Operators and integrations can:
- create, list, show, update, and delete customer groups through the admin API
- attach and detach customers from a customer group
- include customer memberships when showing a group
- sync customer groups when creating or updating a customer
Indirect capabilities
Other workflows consume customer groups without exposing a dedicated settings page:
- product offers use customer groups when resolving customer-specific availability
- promotions use customer groups as a prerequisite condition
- customer create and update flows can create groups on the fly from submitted group names
Where It Is Managed
| Channel | Role | Notes |
|---|---|---|
| Admin API | Direct | CustomerGroupsController exposes CRUD and attach/detach endpoints |
| Customer create/update flows | Direct system-owned | Submitted customer_groups values are synced into membership records |
| Product offer availability | Indirect | Customer groups influence whether an offer is available to a shopper |
| Promotion prerequisites | Indirect | Promotion conditions can require or exclude customer-group membership |
| Packaged admin Livewire UI | Not confirmed | No dedicated customer-group settings page was found in this sprint |
Sources:
packages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.phppackages/framework/src/Actions/Customer/CreateCustomer.phppackages/framework/src/Actions/Customer/UpdateCustomer.phppackages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.phppackages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.phppackages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.php
Channel-Level Field Coverage
Admin API
The customer-groups API exposes:
namecustomer_idscustomer_ids_to_removeinclude=customersfor paginated membership inspection
Sources:
packages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.phppackages/framework/src/Http/Resources/Admin/CustomerGroupResource.php
Customer create and update flows
Customer creation and update can accept:
customer_groups
The sync action treats those values as group names and creates missing groups automatically.
Sources:
packages/framework/src/Actions/Customer/CreateCustomer.phppackages/framework/src/Actions/Customer/UpdateCustomer.phppackages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.php
Model fields
The model itself is intentionally small:
name
Source:
packages/framework/src/Models/CustomerGroup.php
Configuration And Data Model
Key model characteristics:
- soft-deletable
- searchable
- membership-aware
Important field groups:
| Field | Purpose |
|---|---|
name | the customer-group label |
Membership behavior:
- the group belongs to many customers
- the group can also be attached to product offers with an
excludepivot - customers can be synced into groups by name during customer create/update flows
Sources:
packages/framework/src/Models/CustomerGroup.phppackages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.phppackages/framework/src/Models/ProductOffer.php
Relationships
CustomerGroup directly relates to:
customersproductOffers
Source:
packages/framework/src/Models/CustomerGroup.php
Rules And Downstream Effects
Important rules and effects:
- customer creation/update can materialize groups automatically from submitted names
- product-offer availability can be filtered by the customer's group membership
- promotion conditions can match on customer-group membership with
INandNOT_IN - changing group membership affects pricing and promotion eligibility, not just the account record itself
Sources:
packages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.phppackages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.phppackages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.php
Integrations And Automation
Admin API
The packaged product gives customer groups an API surface rather than a dedicated settings page.
Sources:
packages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.phppackages/framework/src/Http/Resources/Admin/CustomerGroupResource.php
Pricing and promotion automation
Customer groups are used as eligibility inputs in pricing and promotion workflows.
Sources:
packages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.phppackages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.php
Where It Appears To End Users
CustomerGroup is not a shopper-facing record on its own, but it affects what customers can see and buy.
It appears indirectly through:
- customer-specific offer availability
- promotion eligibility rules
- customer membership administration
Sources:
packages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.phppackages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.phppackages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.php
Current Documentation Takeaways
CustomerGroupis real and operational, but the packaged product exposes it as an API-backed segmentation node, not a dedicated admin page.- The most important business effect is eligibility: customer groups influence both pricing and promotions.
- Customer-group names can be created implicitly from customer save flows, so membership may originate from account maintenance rather than only from the group screen.
Open Questions
- This first pass did not identify a dedicated packaged admin Livewire settings page for customer groups.
- The exact operational source of truth between customer-name sync flows and direct group CRUD should be governed by the host app.
Sources
packages/framework/src/Models/CustomerGroup.phppackages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.phppackages/framework/src/Actions/Customer/CreateCustomer.phppackages/framework/src/Actions/Customer/UpdateCustomer.phppackages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.phppackages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.phppackages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.php