---
title: Customer groups
slug: commerce-connect-14/docs/customer-groups
docTags: 
createdAt: 2026-07-23T10:25:34.370Z
---

Using customer groups you can manage contacts, and apply group-specific pricing and personalization.

Customer groups are created from the Create Customer or Create Organization view under the **Customers** tab. When on the **Create Customer** or **Create Organization** page, you should select the **Customers** (users) or organizations that are associated with a customer group. When working with variants, you can then assign special prices for selected customer groups.

Classes in this topic are available in the following namespaces:

- `Mediachase.Commerce.Customers`
- `Mediachase.BusinessFoundation.Common`

Customer `Group` is available as a field for both customer and organization records. The `CustomerContact` class exposes this field as `CustomerGroup`, and the `Organization` class exposes it as `OrgCustomerGroup`, with get and set public accessors available for both. These fields use a descriptive string value representation of the `Customer Group` to which a customer or organization belongs.

Internally, the field stores the strings as integers that map to the string values, so the acceptable values are limited by that mapping. But the acceptable values can be expanded at runtime. This capability is provided through the Business Foundation (BF) library. The acceptable values are shared between the two fields as the `ContactGroup MetaEnum` type. See [MetaEnum class](docId\:n7OqT6R_5SE1XDV8_thOW) to learn about working with the BF dynamic enum implementation.

As a BF field, CustomerGroup does not exist in the database in the initial installation but is added when you run `AutoInstallMetaDataModule` during initial site load. The default values available in the field are included in code in the `enum CustomerGroup.eContactGroup`, although the enum is of limited use otherwise. The `eContactGroup enum` is fixed at compile time and will not change at runtime when the list is edited in the application or in code by external processes.

The accessor properties on the `Organization` and `CustomerContact` are the preferred means of accessing these data. If you need to access the values directly, use `EntityObjectHelper.GetStringEntityEnumProperyValue()`. The field name for the `CustomerContact` version of the BF field is stored as a constant in `ContactEntity.FieldCustomerGroup`, and the equivalent field name for the Organization Business Foundation field is stored as a constant in `OrganizationEntity.FieldOrgCustomerGroup`.

The `CustomerContact` class has an additional get-only property, `EffectiveCustomerGroup`, which combines these data.

- If the `CustomerContact` is associated with an `Organization`, and that organization has a `CustomerGroup` assigned, then `EffectiveCustomerGroup` returns the `Organization`'s `CustomerGroup`.
- If no `Organization` is assigned to the `CustomerContact` or if the assigned `Organization` does not have a `CustomerGroup` assigned, then `EffectiveCustomerGroup` returns the `CustomerGroup` recorded on the `CustomerContact` record itself, if any.

This evaluation is not recursive on the `Organization` hierarchy, so only the `Organization` to which the `CustomerContact` belongs directly is considered. Any parent `Organizations` of that `Organization` are ignored.

:::hint{type="info"}
**Note**
Pricing evaluates customer group membership based on `EffectiveCustomerGroup`, so use `EffectiveCustomerGroup` instead of `CustomerGroup` where possible.
:::

## Work in the user interface

For ease of reading, this section uses the term "entity" as a collective name for both organizations and customer contacts.

### Assign Customer Groups to entities

Customer groups are managed and assigned to entities in the Customer Management user interface. Find the entity you wish to assign a customer group to, select it and click **Edit**. From here, select an available customer group from the drop-down.

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/EjfnhckIl2qQOqndkywDk_44c223f-create-contact-customer-group-options.jpg)

Next to the customer group drop-down is a button to edit the list of available customer groups. The same list of customer groups is used for all entities-it does not matter from which type of entity the customer group was created.

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/GhEcIgzyrPK7_I7WmT9Ww_245140a-manage-customer-groups.jpg)

### Set prices for Customer Groups

When adding a new price for a variation, you can specify that the price should apply to a customer group. See [Pricing](docId\:kPZXJ80ASjdANZrY_eFkk).

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/J3FA1I6qDeE6lGxcsBj4m_14a57dc-new-price-customer-group.png)
