SAP Commerce Cloud (formerly Hybris) uses a type-system-driven user model where users, user groups, and access rights are defined as platform types with full inheritance hierarchies. The permission system combines user groups, access rights on types and attributes, and restrictions (search/read/write constraints based on conditions). This is one of the most granular permission systems in enterprise commerce, but also one of the most complex to configure correctly.
Permission model
SAP Commerce operates at four permission layers:
- Users and User Groups -- users (of type
Employee,Customer, or custom subtypes) belong to one or more user groups. User groups can be nested, and permissions are inherited from parent groups. - Access Rights -- granted per type (e.g.,
Product,Order,CatalogVersion) and per attribute. Four right types:read,change,create,remove. Applied to user groups, resolved by checking the user's full group membership chain. - Restrictions -- conditional access rules using FlexibleSearch queries. A restriction can say "users in group X can only read Products where
catalogVersion = Online." Restrictions enable row-level security. - Cockpit/Backoffice permissions -- the Backoffice UI has its own permission layer controlled through
backoffice-config.xmland widget visibility rules.
Common user types and groups
| Type / Group | Purpose | Typical access |
|---|---|---|
| Employee | Back-office users (admin, content managers) | Backoffice access, type depends on group membership |
| Customer | Storefront shoppers | Account, orders, wishlist. No backoffice access |
| admingroup | Platform administrators | All access rights on all types, full Backoffice |
| employeegroup | Base employee group | Basic Backoffice access, no type-level rights by default |
| cmsmanagergroup | Content management | Read/write on CMS types (ContentPage, CMSComponent, ContentSlot) |
| productmanagergroup | Catalog management | CRUD on Product, Category, CatalogVersion (Staged) |
| csagentgroup | Customer service | Assisted Service Module access, read customer/order data |
| marketingmanagergroup | Promotions and campaigns | CRUD on Promotion, Campaign, PromotionGroup types |
| backofficeadmingroup | Backoffice configuration | Manage Backoffice layouts, saved queries, roles |
Custom groups are created as instances of UserGroup type, typically via ImpEx:
INSERT_UPDATE UserGroup;uid[unique=true];groups(uid);locname[lang=en]
;analyticsviewergroup;employeegroup;Analytics Viewer
Admin UI paths
| Task | Location |
|---|---|
| User management | Backoffice > System > Users > Employees |
| User Group management | Backoffice > System > User Groups |
| Access Rights configuration | Backoffice > System > Types > [Type] > Access Rights tab |
| Restrictions | Backoffice > System > Restrictions (or HAC > Console > FlexibleSearch) |
| Backoffice role configuration | backoffice-config.xml in extension or Backoffice > Administration |
| Password policy | project.properties > user.password.* settings |
| SSO/SAML configuration | ccv2.portal > Environments > [Env] > SSO or samlsinglesignon extension |
| HAC (admin console) | https://<host>/hac -- requires admingroup membership |
API access management
OCC (Omni Commerce Connect) API:
- RESTful storefront API at
/occ/v2/ - OAuth2 client credentials for server-to-server calls
- Customer authentication via password or OTP grant types
- Client IDs registered as
OAuthClientDetailsin the platform - Scopes control resource access (e.g.,
basic,extended)
Integration APIs:
- Inbound integrations use Integration Objects defined in the
integrationbackoffice - Each Integration Object exposes specific type attributes
- Authentication via OAuth2 with client credentials
- Scoped to specific Integration Objects -- a client cannot access types outside its assigned objects
ImpEx:
- Bulk data import/export via ImpEx scripts
- Executed in HAC or via
hotfolderdirectory - No per-user scoping -- anyone with HAC access can run ImpEx
- Sensitive operations: restrict HAC access to
admingrouponly
Analytics-specific permissions
SAP Commerce has built-in analytics and integrates with SAP Analytics Cloud:
- Backoffice Reports -- built-in reports accessible via Backoffice > Reports. Access controlled by user group membership and Backoffice widget visibility in
backoffice-config.xml. - CMS tracking -- page and component impression tracking when configured. CMS content managers (
cmsmanagergroup) can modify tracking attributes on CMS components. - Promotion analytics -- promotion performance data accessible to
marketingmanagergroup. Read access toPromotionResultandAbstractOrdertypes needed. - SAP Analytics Cloud integration -- the
sapanalyticscloudextension pushes commerce data to SAC. Configuration requiresadmingroupaccess. Dashboard viewing is managed in SAC's own permission system. - Google Analytics / GTM -- typically integrated via SmartEdit or CMS components. The GA tracking ID is stored as a site property or CMS component attribute. Users in
cmsmanagergroupcan modify these values in SmartEdit.
To create an analytics-only role:
- Create
analyticsviewergroupas a child ofemployeegroup - Grant
readaccess rights on reporting-related types (Order, Product, PromotionResult) - Add a Restriction to limit reads to
OnlineCatalogVersion only - Configure Backoffice visibility in
backoffice-config.xmlto show only report widgets - Deny
change,create,removeon all types