The Xperience E-commerce Solution contains two types of objects and settings:
- Site – objects and settings that are specific to a site and are available on that site only.
- Global – objects and settings that are shared across all sites running on one Xperience instance.
When you create and then use a website, you can combine both of the types. This approach gives you more flexibility and is highly effective in a multi-site environment, for example, when hosting several e-commerce sites with the same content or when creating microsites.
E-commerce objects and settings according to their type
When objects and settings are both site and global, you can use some of them together and some of them either site or global depending on your choice. See the following table with e-commerce objects and settings grouped by their site/global availability:
|Either only site or site+global together||Either only site or only global||Only site|
Product statuses (both public and internal)
Customer credit (both site and global can be enabled but the customer can pay only with the one that is allowed on the specific website)
Since settings also have site and global variants, you can enable or disable a specific setting or a global object on a per site basis. See more about configuring settings in Configuring e-commerce settings for a specific site or globally.
Global objects can only work with other global objects
For example, global products can be placed only in global departments, that can have only global manufacturers, suppliers, etc. assigned. Moreover, the price of global products needs to be set in a global store currency. You can choose even from global objects that are not allowed on the current site.
Global and site customers
Anonymous customers are always site-related. Whether the customer makes an order in the store or a store manager creates their account in the administration interface, the system always assigns the current site to the anonymous customers. In the COM_Customer database table, the customer's CustomerUserID column is NULL while the CustomerSiteID column contains the site's ID.
Registered customers are always global. Every registered customer is connected to a user, which can be used on multiple sites. In the COM_Customer database table, the customer's CustomerUserID column contains the customer's user ID while the CustomerSiteID column is NULL.
Choosing between site and global objects/settings
See the following usual scenarios to help you decide which settings you should choose:
I run one store on one Xperience instance
In this case, we recommend that you use site objects and settings.
However, even if you choose to use global objects and settings, everything will work, only the user interface will get a little bit more complicated.
I run multiple stores with the same goods but with different design on one Xperience instance
When you provide the same products, shipping options, payment methods, etc., in all your stores, i.e. they are the same store only with different designs, we recommend that you use global objects and settings.
If there are some changes, for example, one of the stores provides a different set of currencies, you can use a mix of global and site objects and settings to achieve the easiest manageability.
I run multiple stores with different contents on one Xperience instance
When you provide different products in each store, we recommend you to use site objects and settings.
If there are some similarities, for example, you provide the same payment methods in all your stores, you can use a mix of global and site objects and settings to achieve the easiest manageability.
I run mutliple stores with different store managers on one Xperience instance
Different store managers want likely settings which only they can change and products which are not available for other stores on the instance. In this case, we recommend you use site objects and settings.
If your Xperience instance contains a mix of the described scenarios, you can also set the site/global settings globally and then specific sites can either inherit the global settings or use their own. This way you can achieve whichever combination you need.
If you decided to use at least some global objects or settings, you need to enable these global objects/settings.