Skip to content

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 Management
  • Segmentation And Restrictions
  • Customer Group

Primary implementation paths:

  • packages/framework/src/Models/CustomerGroup.php
  • packages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.php
  • packages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.php
  • packages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.php
  • packages/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

ChannelRoleNotes
Admin APIDirectCustomerGroupsController exposes CRUD and attach/detach endpoints
Customer create/update flowsDirect system-ownedSubmitted customer_groups values are synced into membership records
Product offer availabilityIndirectCustomer groups influence whether an offer is available to a shopper
Promotion prerequisitesIndirectPromotion conditions can require or exclude customer-group membership
Packaged admin Livewire UINot confirmedNo dedicated customer-group settings page was found in this sprint

Sources:

  • packages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.php
  • packages/framework/src/Actions/Customer/CreateCustomer.php
  • packages/framework/src/Actions/Customer/UpdateCustomer.php
  • packages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.php
  • packages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.php
  • packages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.php

Channel-Level Field Coverage

Admin API

The customer-groups API exposes:

  • name
  • customer_ids
  • customer_ids_to_remove
  • include=customers for paginated membership inspection

Sources:

  • packages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.php
  • packages/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.php
  • packages/framework/src/Actions/Customer/UpdateCustomer.php
  • packages/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:

FieldPurpose
namethe customer-group label

Membership behavior:

  • the group belongs to many customers
  • the group can also be attached to product offers with an exclude pivot
  • customers can be synced into groups by name during customer create/update flows

Sources:

  • packages/framework/src/Models/CustomerGroup.php
  • packages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.php
  • packages/framework/src/Models/ProductOffer.php

Relationships

CustomerGroup directly relates to:

  • customers
  • productOffers

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 IN and NOT_IN
  • changing group membership affects pricing and promotion eligibility, not just the account record itself

Sources:

  • packages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.php
  • packages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.php
  • packages/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.php
  • packages/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.php
  • packages/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.php
  • packages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.php
  • packages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.php

Current Documentation Takeaways

  • CustomerGroup is 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.php
  • packages/framework/src/Http/Controllers/Api/Admin/CustomerGroupsController.php
  • packages/framework/src/Actions/Customer/CreateCustomer.php
  • packages/framework/src/Actions/Customer/UpdateCustomer.php
  • packages/framework/src/Actions/Customer/CustomerGroups/SyncCustomerGroups.php
  • packages/framework/src/Models/Traits/ProductOffer/IsAvailableForCustomer.php
  • packages/framework/src/Services/Promotion/Conditions/Prerequisites/CustomerGroupCondition.php