A note from 2026: This article was published in 2023 and describes version 2023.2.7 of the SAP Commerce Developers Toolset IntelliJ IDEA plugin. The plugin, IntelliJ Platform APIs, SAP Commerce Cloud releases, and CCv2/js-storefront tooling have continued to evolve, so check the current GitHub repository and JetBrains Marketplace page for up-to-date compatibility and feature details.

This article is brought by
Mykhailo Lytvyn
Software Engineering Team Leader, Solution Architect, Development/Performance/Open-Source Lead

Contributors & Editors:
Rauf Aliev, Chief Software Engineer, Solution Architect

Author portrait

Welcome back!

Hard to image how fast time flies, how the Plugin gained power, features and new happy users.

It’s been almost nine months since my first commit to the Plugin repository on a late night on the 9th of October 2022.

With every new day and every new line of code, experience transforms into realization of crazy ideas you thought were impossible a day before.

Instead of thousand of words, let’s start and dig into new features introduced between 2023.1.1 and 2023.2.7 versions of the Plugin.


As always, if you would like to contribute or share any ideas, the Plugin‘s GitHub repository is open.

To begin with, check out the official Intellij Platform Plugin SDK documentation.

SAP Commerce IntelliJ IDEA plugin logo


Everything about the Project

New light and dark custom icons

Common icon Common icon dark Common icon for various activities
OOTB icon OOTB icon dark OOTB features or additional OOTB extensions
Core icon Core icon dark Core features and extensions
external_dependencies.xml icon external_dependencies.xml icon dark external_dependencies.xml
unmanaged_dependencies.xml icon unmanaged_dependencies.xml icon dark unmanaged_dependencies.xml
Cloud-only extension icon Cloud-only extension icon dark Cloud-only extension
Custom extension icon Custom extension icon dark Custom extension
Core extension icon Core extension icon dark Core extension
OOTB extension icon OOTB extension icon dark OOTB extension
Platform extension icon Platform extension icon dark Platform extension

Let’s call it Project Import 2.0… You may ask: why? The answer is clear – new structure, new facets, new compilation, new modules and new features.


Kotlin

SAP CX supports multiple languages, latest release of the Plugin adds support of the Kotlin language via tight integration with kotlinnature extension.


CCv2

New light and dark custom icons

CCv2 module icon CCv2 module icon dark New icon for CCv2 module
CCv2 module group icon CCv2 module group icon dark New icon for CCv2 module group

Hybris administration console (hac)


Omni Commerce Connect (OCC)


Groovy Script


Extension Info


Local Extensions


Spring Framework


FlexibleSearch

It is not just FlexibleSearch, it can be called FlexibleSearch 2.0 because of total rewriting of almost everything related to it.
New language JFlex Parser model and Lexer implementation support much-much-much more complex queries.

Brand-new icons:

Column alias icon Column alias icon dark Column alias
Table alias icon Table alias icon dark Table alias
Outer join icon Outer join icon dark Outer join
Parens icon Parens icon dark Parens
Separator icon Separator icon dark Separator
Star icon Star icon dark Star

Inspection rules:


Polyglot Query Language

Take a note, that it is available only from SAP Commerce 1905+.

Welcome new custom language! Actually, it is a sub-version of the FlexibleSearch language with limited capabilities and different purpose.

It allows you to get your data from an alternative storage, such as a document-type storage, read more at SAP Help Portal – Polyglot Persistence Query Language.

Inspection rules:


Cockpit NG System (Backoffice)

Inspection rules:


Type System

Welcome new light and dark icons for Type System:

Group By (used in Preview)

Atomic type group icon Atomic type group icon dark Atomic type
Enum type group icon Enum type group icon dark Enum type
Collection type group icon Collection type group icon dark Collection type
Item type group icon Item type group icon dark Item type
Map type group icon Map type group icon dark Map type
Relation type group icon Relation type group icon dark Relation type

Types

Atomic icon Atomic
Enum icon Enum icon dark Enum
Collection icon Collection icon dark Collection
Item icon Item icon dark Item
Map icon Map icon dark Map
Relation icon Relation icon dark Relation

Type characteristics

Enum value icon Enum value icon dark Enum value
Relation source icon Relation source icon dark Relation source
Relation target icon Relation target icon dark Relation target
Attribute icon Attribute icon dark Attribute
Ordering attribute icon Ordering attribute icon dark Ordering attribute
Custom property icon Custom property icon dark Custom property
Index icon Index
Index remove icon Index (remove)
Index replace icon Index (replace)
Index unique icon Index (unique)

Besides icons, few more features introduced to simplify coding and support missed SAP Commerce Type System attributes:

Type System – Diagram

Prerequisites: Intellij IDEA Ultimate edition

Long waiting feature is finally here – feel full power of the Plugin in combination with Intellij IDEA Ultimate Diagram capabilities. Legend can be found here – Type System Legend.

To generate Type System Diagram for current project you can:

Just take a look on those cool features available for Type System Diagram!

Type System – Preview

Preview of the Type System provides overview of all Types used in your SAP Commerce solution. With intention to provide alternative way to manipulate Type System, by not touching items.xml files.
The Plugin provides detailed and accumulated information for each Type with new edit and navigation capabilities.

Go-to declaration icon Go-to declaration icon dark Go-to declaration icon

Type System – items.xml

Interceptor icon Updated interceptor icon

Inspection rules:


Bean System

Beans are everywhere, when they are brewed properly it may be a great beverage. And the Plugin is here once again to master the recipes, the tools and help you to become an outstanding Barista!

Some thoughts for the future:

What comes to my mind is possibility to convert Bean <-> WsBean <-> Event.
Plain conversion may not be too helpful, on other hand, condition-based conversion will require much more efforts.
One of such conditional Inspection to convert Bean into WsBean may be usage of the Bean in the OCC xml level mapping.

If you can imagine any other cases suitable for conversion feel free to create a new GitHub issue or drop a message in the Slack!

Brand-new light and dark icons

Group By (used in Preview)

DTO group icon DTO group icon dark DTO
Enum group icon Enum group icon dark Enum
Event group icon Event group icon dark Event
Web-service DTO group icon Web-service DTO group icon dark Web-service DTO

Types

Bean icon Bean icon dark Bean
Enum icon Enum icon dark Enum

Type characteristics

Enum value icon Enum value icon dark Enum value
Property icon Property icon dark Property
Primitive icon Primitive icon dark Primitive
Boxed icon Boxed icon dark Boxed
Collection icon Collection icon dark Collection
Map icon Map icon dark Map
Object icon Object icon dark Object

With latest release beans.xml enhanced with un/common features such as:

Bean System – Preview

Preview of the Bean System received its first write capabilities and few new actions.

Go-to declaration icon Go-to declaration icon dark Go-to declaration icon

Inspection rules for beans.xml:

With new inspection you will do more by doing less!


ImpEx

Oh.. ImpEx, so many tears, so many hours, it’s hard to count, even harder to measure how much each Developer put into it.

That’s why I tried my best to make every Developer at least slightly happier, when they are dealing with an ImpEx.

Through various improvements and uncovered hidden features I hope that new and existing SAP Commerce developers will enhance their ImpEx files and will understand better capabilities they provide.

Besides list below, there are still few more thoughts on what I can do for ImpEx:

ImpEx – User Rights 2.0

As you may now, User Rights != ImpEx, they are processed differently and have strict rules.
It may be worth refreshing the knowledge and, “thanks SAP!, we do have it well-documented at SAP Help Portal – User Rights.

To be able to support all User Rights features I had to rewrite from the scratch all logic related to it.
As an outcome each developer will have better view, understanding and simplified usage of the User Rights defined in the ImpEx file.

Inspection rules


Business Process

Business process may be simple or complex, to improve its usability this release includes several visual improvements, as well as injections of custom languages.

In the next release it’s planned to enable folding support.

Business Process – Diagram

This functionality is not new, but with new enhancements you may think that you see brand-new Diagram, thanks to:


Other


Fixes and Adjustments


Plans & Ideas


That’s all for now! Stay tuned, submit your ideas and contribute!