How Overrides work
To control access to a setting, Overrides take advantage of the fact that every Website User has one or more Customers and Roles set against them. The general rule operating on Overrides is the hierarchy: Global < Role < Customer < User. Global is usually the default setting. If a setting is enabled or disabled, this means it is ON or OFF for all Users. A value set at the Role level will override this Global value. In turn, any Customer level value will override both Role and Global settings. Finally, a User setting will override all the other settings.
Here is a summary:
- The value set at the Global level is always the fallback default.
- A Role level setting overrides Global.
- A Customer level setting overrides both the Role and Global settings.
- A User level overrides all previous settings.
- For some functions, User Customer is available. This caters for Users that are linked to more than one Customer account. It allows values to be set for the pUser against a specific Customer.
NOTE - Not all settings will have all Override levels. Some settings may also have rules that exclude certain User groups already.
As a simple example, let's use the 'Standing Orders' feature. 'Standing Orders' allows Users to create recurring orders, e.g., orders that will automatically be placed according to a schedule. For example, a customer could be a government entity that regularly reorders stationery from a seller. Suppose we want to allow this customer to place a standing order so that they don't have to manually place an order every couple of months. If we decide to let all users create recurring orders, we would just toggle on Enable Standing Orders globally. If we toggle it ON with no overrides, the setting will be available all Users. If it is OFF, no User will have access. We don't want either of these options. So we will use the Overrides facility.
Step 1: Decide whether the global setting is to be ON or OFF. For our example, we will leave the global setting disabled and enable it on for a specific subset of Users. (This means before any Overrides are set, no User can access this feature.)
Step 2: Click the Overrides button. This will open the Setting Override window for the setting.
Step 3: Here, we can set a Role override for the B2B user (CSSUser) with an Override Value of ON. (This means all Users with Role 'CSSUser' will have access to the feature.)
Step 4: We can also add overrides at the Customer level. Here we have set value=OFF for Customer 'WAFFA'. As a result, a User with Role 'CSSUser' for Customer 'WAFFA' will not have access to Standing Orders since Customer level settings override Role ones.
Step 5: A User level setting overrides all other settings. So if we add a User Override, 'jane.smith' who is a User of Customer 'WAFFA' and set the override value=ON, she will have access to Standing Orders even when logged into the Customer account 'WAFFA'.
Step 6: To save your overrides, click Confirm, then Save or Save & Exit in the main Settings screen.
- When configuring Overrides for a setting or function, you do not have to add overrides at every available level. In our example, you can simply add a User level override for User 'jane.smith' and skip overrides at the Role and Customer levels.
- If you need very specific Roles only to access a setting, you can create custom Roles and assign Users to them, then add Overrides.