Document Properties
Kbid29230E
Last Modified25-Sep-2020
Added to KB10-Sep-2019
Public AccessEveryone
StatusOnline
Doc TypeGuidelines, Concepts & Cookbooks
Product
  • ICM 7.10
  • Intershop CaaS

Guide - CaaS Customization Options

1 Introduction

Intershop Commerce as a Service is a combination of Software as a Service (SaaS) and Platform as a Service (PaaS) with a focus on digital commerce for B2C and B2B. It has several advantages, for example, it removes the need for organizations to install and run applications in their own data centers. It allows flexible payments, scalable usage, and automatic updates.
However, this model also brings some restrictions regarding possible customizations compared to the classic on-premises model. This guide explains the allowed and recommended ways to customize Intershop CaaS. It is targeted to developers and architects who want to extend and modify Intershop functionalities.

Important Note

The best customization? No customization!

Intershop is a feature-rich product that already contains a lot of configuration options. So please always check first if you can stick to the standard! Check the back office, the Knowledge Base and contact Intershop Support. If a customization is really necessary, then it still makes sense to contact Intershop.

If your feature wish is standard-worthy, then it is also an option that Intershop builds it as part of the standard product.

1.1 Big Picture

The architecture of Intershop CaaS is loosely coupled and consists of apps and services connected through APIs. There are larger application services (ICM, IOM, Solr, ERP, CRM,...) and smaller Microservices (Recurring Order Service, Inventory Service, Microsoft Connector Services,...).

In the picture below, there are the core CaaS components in red and custom components in blue. It is recommended to add new functionality as separate Microservice, but other customization options are also available.

As a customer-facing touchpoint, the Intershop Progressive Web App (PWA) is already provided, but any other touchpoint (Voice, IoT, Mixed Reality) can also be connected using the Intershop REST API.

Additionally, integration of backend systems like ERP and CRM is very typical and several integration options exist.

1.2 Continuous Updates/Upgrades

Intershop CaaS gets continuously improved. The goal is to deploy updates and upgrades as soon as possible to keep client installations on the most current version of the different Intershop components. To allow a smooth update process, Intershop keeps the APIs stable and also supports older versions of APIs (see Cookbook - REST API Versioning).

For CaaS implementation partners, this means that it is necessary to carefully follow the customization rules described in this document in order to minimize necessary update efforts.

1.3 Frontend Customizations

Intershop CaaS already includes a ready-to-use frontend blueprint. It is a Progressive Web App (PWA) based on Angular. However, you can also use any other frontend technology like React, Vue.js or Frontastic. The frontend is decoupled and only uses the Intershop REST API.

1.3.1 The Intershop Progressive Web App

The Intershop PWA is provided as source code. This means that anything can be customized. The customer or implementation partner basically owns a copy of the PWA and is responsible for it. Intershop guarantees that this project version of the PWA will also run with newer versions of Intershop CaaS because Intershop keeps the REST APIs stable and also supports older versions of the REST APIs.

Also see:

Hosting and operation of the PWA will be offered by Intershop as an additional service (front-end as a service) that will be integrated into the overall CaaS service. As the PWA is typically highly individualized, the costs depend on the infrastructure resources required and the operational effort. The latter depends, for example, on the factors of the number of deployments, number of incidents, etc.

1.3.2 The Classic inSPIRED Storefront

Alternatively to the PWA, the classic inSPIRED responsive storefront based on pipelines and ISML can still be used. It will be maintained on a functional "as-is" basis. That is, no functional enhancements will be made, only bug fixing of critical and serious issues. Technical enhancements and 3rd party updates are under restriction on commensurability and are decided case-related. The support period for the inSPIRED responsive storefront is the same as for Intershop Commerce Management (5 years).

1.3.3 Front End Decision Guide

Intershop Progressive Web App - Decision Guide

1.4 Additional Touch Points

Additional customer-focused touchpoints (Voice, IoT, Mixed Reality) can be connected easily using the Intershop inbound REST API, see http://developer.cloud.intershop.com/.

The following example shows how to connect Microsoft Cortana:

https://tech.intershop.com/headless-with-intershop/

1.5 Additional APIs and Replacement of APIs

It is recommended to create new REST APIs by adding new Microservices and integrate them using an API gateway (e.g., Kong or Azure API Management, currently not included in Intershop CaaS). Keycloak can be used as authentication server.

1.6 Additional Data

1.6.1 Custom Attributes

Intershop CaaS supports the concept of custom attributes. Additional attributes can be added using Intershop Commerce Management, XML import or the management REST APIs.

To retrieve custom attributes, here is an example from the product endpoint:

/categories/<cat_ID>/products/<sku>?attrs=<att1>,...,<attN>

Also see REST API - Get selected product attributes category.

1.7 Additional Behavior

1.7.1 Additional Behavior Using Subscriptions/Events

If it is necessary to execute an action after something has happened on the Intershop CaaS platform, then events are a good solution.

Intershop already supports certain business events as part of the business tracking framework, e.g., Basket View, Basket Add Product, Basket Remove Product, User Login, User Logout, Order Creation, Address Change, Create Wishlist, Add Product to Wishlist, Remove Product from Wishlist.

These events can be published to an event hub like Azure Event Grid and from there subscribed by different event consumers, e.g., Microservices, Logic Apps or Serverless Functions.

Here an additional example how the Customer subscribes/unsubscribes the newsletter-Event can be used to integrate the newsletter service Mailchimp, see How to connect Intershop with Mailchimp in 90 seconds.

1.8 Integration of Backend Systems

1.8.1 File-Based Interfaces

1.8.1.1 XML Import/Export and Product Data Feeds

File-based interfaces are a simple and robust method of asynchronous data exchange. Systems integrated in this way are decoupled from each other, and file formats can be transformed with relative ease using external ETL tools. If a file fails to import or export, or if a system is unavailable, the process can easily be repeated.

File-based interfaces are particularly good for transferring large quantities of data, a task for which REST APIs are often not well suited. The question of data volume should therefore be considered when choosing the integration method.

Intershop CaaS provides import and export functionality for most business objects. The usual file format is XML. During import, the system validates the data format and checks the consistency of the data. Again, this option allows high-speed import and export of very large quantities of data. This is particularly important for tasks, such as importing price lists with millions of products and prices. To convert data to the Intershop-supported formats, we recommend using an ETL tool, such as Talend. Import and export processes can be initiated easily via the back office; however, they are usually integrated into automated processes. To enable this, Intershop provides a REST API for job handling and batch processes.

For details refer to Reference - Job Handling REST API.

To simplify data transport processes, Intershop CaaS also includes an integrated transport framework that enables automated upload and download of data files via HTTP, HTTPS, FTP, SFTP, and email.

For details refer to Guide - Transport Framework.

The customization of import/export functionality inside the CaaS core is not allowed. Necessary transformations have to take place outside.

1.8.1.2 Product Data Feeds

Product data can be exported in various formats at specified times using the Product Data Feeds function. This can be used to integrate print and online marketing platforms as well as external search engines and dynamic pricing services. The business user can define the product range, select the target system, and schedule the export times. A range of formats is supported as standard, including Google Sitemap, Google Shopping, RSS, and Feed Dynamix.

1.8.2 Managed Service Interfaces

Intershop uses Managed Service APIs to efficiently integrate external (micro)services while accommodating the companies' own organizational structures (countries, brands, etc.). Examples are the integration of:

  • Payment service providers
  • ERP systems (orders, inventories)
  • CRM systems (customers, customer segments, quotes)
  • Tax service providers
  • Product recommendations
  • Search
  • E-mail marketing
  • Address verification services

The Managed Service API is a Java API where a service adapter needs to be developed that implements the Java interface of the service. More details can be found here:
Concept - Managed Service Framework.

Managed Service APIs are highly granular and therefore ideal for integrating Microservices. For example, stock information can be provided by an inventory Microservice that is integrated with the platform via a Managed Service API.

The following list shows the available interfaces:

Note

The implementation of a Managed Service Adapter requires the development of an Intershop custom cartridge that runs as part of the application server. The code of the Managed Service Adapter shall only reference the API of the Managed Service Java Interface, but no other internal APIs to minimize dependencies.

1.8.3 Outbound REST API

As an extension to the Managed Service API, Intershop CaaS also provides outbound REST interfaces (Webhooks) for certain business scenarios. This allows the connection of 3rd party systems without the need to develop Intershop cartridges. Instead any Microservice, Serverless Function or iPaaS can be connected remotely.

An example is the order connector for Microsoft Dynamics. It is implemented as a separate Microservice and connected using the outbound REST API. A customization on ICM side is not necessary.

The following outbound REST API endpoints are available:

1.9 Deep Customization Inside the CaaS Core

The usage of the following APIs is possible as well, but needs to be discussed in detail with Intershop before starting the customization:

  • Application API (Java Extension Points, Pipeline Extension Points, Template Extension Points)
  • Business API (Java Types in capi packages in bc_* cartridges, e.g. basket BO)
  • Platform API (Java Types in capi packages in pf_* cartridges, e.g. logging framework)

1.10 Customization Levels

The following table gives an overview about the different customization options and shows what is recommended and what is not.

LevelCustomization OptionsUsage

0

  • Business Configuration
(tick) (tick) (tick) Highly Recommended

1

  • Additional Touchpoints (Native Apps, Digital Assistents (e.g. Alexa), Smart Shelf, etc.)
  • Progressive Web App (Delivered as Source Code)
  • Microservices
  • File-based Interfaces using Standard-Formats (Transformation outside of Intershop)
  • Standard Events
  • Outbound REST APIs
  • Custom Attributes
(tick) (tick) Recommended, these options will be extended in short-term

2

  • Managed Service Adapter
  • DBInit (Properties, Configurations, Data)
  • Classic inSPIRED Storefront

(tick) Can still be safely used, but will be successively replaced by level 1 and 0 customization options.

The support period for level 2 customization is the same as for Intershop Commerce Management (5 Years).

3

  • Application API (Java Extension Points, Pipeline Extension Points, Template Extension Points)
  • Business API (Java Types in capi packages in bc_* cartridges, e.g. basket BO)
  • Platform API (Java Types in capi packages in pf_* cartridges, e.g. logging framework)
  • Basket Calculation
  • Solr 
  • Backoffice Extension Points

(warning) Should be discussed with Intershop before starting the customization in order to minimize future update/upgrade efforts.

For "Custom Persistent Objects" the replication and deployment process must be considered. Database changes require a downtime during deployment. 

4

  • Usage of Internal Java APIs
  • Overloading of Pipelines, Templates of p_platform or p_business
(error) Forbidden

1.11 Performance Considerations

The performance of a digital commerce solution is a major criteria for its market acceptance. The Intershop CaaS platform is continuously being optimised and carefully tested in this regard. However, any badly architected or implemented customization can seriously affect the performance of the overall system. It is therefore strongly recommended to follow the Intershop performance guides:

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Support Tickets