This section covers how to integrate analytics and marketing tools with SAP Commerce Cloud (formerly Hybris). SAP Commerce Cloud provides multiple integration approaches through its extensible architecture.
Available Integrations
Analytics Platforms
| Platform | Integration Method | Difficulty |
|---|---|---|
| Google Analytics 4 | Extension + Spartacus | Medium |
| Google Tag Manager | Extension + Data Layer | Medium |
SAP Commerce Architecture Overview
Storefront Options
SAP Commerce Cloud supports multiple storefront implementations:
- Spartacus - Modern Angular-based headless storefront (recommended)
- Accelerator - Traditional server-rendered JSP storefront
- Custom Headless - Custom frontend with Commerce APIs
Extension Model
SAP Commerce uses extensions for customization:
├── core extensions (platform)
├── addon extensions (features)
└── custom extensions (your code)
Common Integration Patterns
Spartacus (Headless)
For Spartacus storefronts, integrate via Angular services:
// analytics.service.ts
import { Injectable } from '@angular/core';
import { NavigationEnd, Router } from '@angular/router';
import { filter } from 'rxjs/operators';
@Injectable({ providedIn: 'root' })
export class AnalyticsService {
constructor(private router: Router) {
this.router.events
.pipe(filter(event => event instanceof NavigationEnd))
.subscribe((event: NavigationEnd) => {
this.trackPageView(event.urlAfterRedirects);
});
}
trackPageView(url: string): void {
window.dataLayer?.push({
event: 'page_view',
page_path: url
});
}
}
Accelerator (JSP)
For Accelerator storefronts, use JSP tag libraries:
<%@ taglib prefix="analytics" tagdir="/WEB-INF/tags/analytics" %>
<analytics:gtm containerId="${gtmContainerId}"/>
<analytics:dataLayer pageType="${pageType}" />
OCC API Extensions
Extend Commerce APIs to include tracking data:
@Controller
@RequestMapping("/occ/v2/{baseSiteId}/products")
public class ProductController {
@RequestMapping(value = "/{productCode}", method = RequestMethod.GET)
public ProductWsDTO getProduct(
@PathVariable String productCode,
@RequestParam(defaultValue = DEFAULT_FIELD_SET) String fields) {
ProductWsDTO product = productFacade.getProductForCodeAndOptions(productCode);
// Add tracking data
product.setTrackingData(buildTrackingData(product));
return product;
}
}
Prerequisites
Before integrating analytics tools:
- SAP Commerce Cloud Access - Admin access to Backoffice/HAC
- Development Environment - Local development setup with extensions
- Storefront Type - Determine if using Spartacus or Accelerator
- Deployment Pipeline - CI/CD for extension deployment