Customers and users

Version: 10.2

Commerce Connect is a generic Commerce API that supports both B2C and B2B scenarios. In Connect:

  • A Commerce customer represents a person in a B2C scenario whereas in a B2B scenario a Commerce customer typically represents a company. The CommerceCustomer account is used for the customer in the ECS who receives and pays for the submitted orders.

  • A Commerce user represents a person who has registered or who is going through the checkout without registering (that is, an anonymous user). The CommerceUser account is used for authentication as well as for managing the Customer account profile.

Note

In a B2C scenario, the CommerceUser and CommerceCustomer can be considered one and the same, depending on the integration with the External Commerce System (ECS). In the Commerce Engine, only the CommerceUser account is used.

It is possible for customers to exist without users (for example, during anonymous checkout), but normally users would not be without customers.

There are many different ways to use Connect with an ECS for customers and users:

  • To pass customer and user information between the ECS and Sitecore.

  • To set and/or get customer information during checkout.

  • To register accounts for new users.

  • To authenticate (for example, login or logout registered users).

  • To enter a user into an engagement automation (EA) plan when creating a user account and trigger goals when logging in.

Configuration

You can find all configuration for the customer subsystem in the Sitecore.Commerce.Customers.config file. Here you will find all details for the entities, pipelines, and repositories used by the customer and user system.

Entities

The default customer entities for Commerce Connect only assume some of the basic customer and user information that will be used across all commerce systems; it is expected that you will need to extend these entities.

Note

The concept of a customer is determined by the integrated commerce system and the e-shop solution. In B2C solutions, the customer typically represents a person whereas in B2B scenarios a customer typically represents a company.

You can use the following five entities defined in the Connect system for customers and users to extend functionality to suit your needs:

  • CommerceCustomer -  is always extended to include custom information particular to the external commerce system (ECS).

  • CommerceUser - is always extended to include custom information particular to the external commerce system (ECS).

  • CustomerParty - represents the type and 0-to-many relationship between the customer and a list of parties, where parties are of type Party.

  • CustomerPartyType - indicates the type of relationship between the customer and party. The class is introduced as an extensible enum. To extend and customize the options, Connect has two party types: AccountingParty and BuyerParty.

  • Party - a shared entity between the carts service layer and the customer and users service layer. This entity stores party information, for example, address information.

    To extend any of these default entities, you create a new class that inherits from the relevant type and then patch the relevant entity under commerce.Entities in the  Sitecore.Commerce.Customers.config file.

Pipelines

There are numerous pipelines for customers and users that provide most basic functionality.

For example:

  • CreateCustomer and CreateUser pipelines - used to create customers and users.

  • UpdateCustomer and UpdateUser pipelines - used to update customers and users.

  • DeleteCustomer and DeleteUser pipelines - used to delete customers and users.

  • AddCustomers and AddUsers pipelines - used to associate customers to users.

  • AddParties pipelines - used to add party information.

Note

For more information, see the Commerce Connect Developer Reference.

Do you have some feedback for us?

If you have suggestions for improving this article,