---
title: Customers
slug: commerce-connect-14/docs/customers
docTags: 
createdAt: 2026-07-23T10:25:32.050Z
---

This is a central component that lets you work with organizations and contacts. From Customer Management, you also can create purchase orders for a customer account.

The following image illustrates Customer Management and the relationship among the various objects, and different types of relationships between Business Foundation (BF) objects. See [Meta-class references](docId\:fXR_s2krZgeM3dU4JDHke).

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/ohSHFR_WjaSKDSYJbievC-20260723-164625.jpg)

**Definitions:**

- **Contact** – Individual with a set of personalized information (name, address, email, and so on). A contact can be a customer or a user with Commerce Manager permissions to manage one or more systems.
- **Organization** – Group or sub-group of contacts.

:::hint{type="info"}
**Note**
Commerce Admin user role management is done from Permissions for functions in the Optimizely Content Management System (CMS) Admin view.
:::

Classes in this topic are available in the following namespaces:

- `Mediachase.BusinessFoundation.Data.Business`
- `Mediachase.Commerce.Customers`
- `Mediachase.Commerce.Security`

## Customer groups

Customer groups target multiple Customers and Organizations for pricing and promotions. Both the `Customer` and the `Organization` expose their own `CustomerGroup` information, and the `Customer` has a derived property, called `EffectiveCustomerGroup`, that combines the two with the priority on the `Organization` value. See [Customer groups](docId:7pjOZ-m8HwAlO29c6y8V2).

`EffectiveCustomerGroup` is used in pricing and promotions instead of the regular `CustomerGroup`. The `EffectiveCustomerGroup` returns the `CustomerGroup` of the parent `Organization`, if the `CustomerContact` belongs to a parent `Organization` that belongs to a `CustomerGroup`. Otherwise, `EffectiveCustomerGroup` returns its own group.

## Child organizations

Use `EntityObject` to access an organization's child organizations, a core BF object. The `EntityObject` is an important base class for `CustomerContact`, `Organization`, and any custom business objects you create. `EntityObject` has only a `PrimaryKeyId` property to retrieve the full organization object from the `CustomerContext` singleton.

```csharp
List<Organization> PartnerOrganizations = new List<Organization>();
    foreach (object child in PartnerOrganization.GetChildren())
      {
        EntityObject obj = child as EntityObject;
        Organization org = CustomerContext.Current.GetOrganizationById(obj.PrimaryKeyId.Value);
    
        if (org != null)
          {
            PartnerOrganizations.Add(org);
          }
      }
```
