Customers are stored as eZ Users in the CMS. eZ Commerce uses all features connected to users and roles such as
In addition eZ Commerce supports multiple user accounts using the same email address (e.g. for a multishop setup).
The shop uses an eZ user for shop customers.
It enriches the eZ User ContentType with new fields which are required for the shop:
Foreach shop a user group is used and private and business customers are stored in different sub user groups. If required shops can also share one common user group.
The customers are directly connected to the ERP system as soon as they are having a customer number or/and a contact number.
The customer number is usually the main reference to the ERP system and it is stored as a readonly field in the user record.
The shop automatically gets the information from the ERP the first time the user information (customerprofile data) is requested.
The information will be stored in the session in order to reduce the calls to the ERP system.
The ERP will provide:
The template offers a global twig variable which contains the main information about the current user and also infos about addresses. It also contains infos about data from the ERP.
Please do not use methods of the customerservice inside a constructor of a service. The reason is that the constructor is build at a very early stage of the process and the system may not have the information that a user is already logged in
Please do not use the customerservice in any place, that can not access the session. An example will be a CLI tool, or processes that are happing in backgroud - like sending out the order if customer payed via payment service provider.
eZ Commerce is using the standard UBL to model customer data. The most important type is the Party which describes a Address.
Foreach user these information will be stored. If a user has a customernumber this info will be updated from the ERP after the login:
Known ERP software packages:
You can configure the list of the bundles that will build the user menu:
You can add your own bundle to this configuration and extend the user menu as long as:
By default the additional data of your eZ User class is stored in the dataMap of CustomerProfileData with a prefix 'ez_'.
These eZ types are supported:
The Customers is using a list of templates which can be overridden if required.
Find recipes in the cookbook...