Is SmartEdit Ready to Replace CMS Cockpit?
In mid-2016, SAP released the first version of the new-generation CMS management module, SmartEdit 6.0. All further versions were updating this module while old CMS Cockpit hasn’t been changed for years. Of course, SAP plans to sunset the legacy WCMS, and they consider SmartEdit as a “new WCMS”. I was wondering is SmartEdit ready to replace CMS Cockpit?
The CMS is a subject close to me. Many years ago I was heading the CMS development project and dealing with the challenges on how to make the CMS functional and convenient, how to find a right balance between feature richness and simplicity, and how to find a solution that would be extremely flexible and configurable to an organization’s needs. It’s an intense subject.
In this article, I am trying to compare the functionality of SmartEdit and WCMS and highlight my personal view on advantages and weaknesses of these solutions. The official “feature parity” is published on SAP Hybris Help, but it doesn’t answer all my questions.
It should be pointed out that this article sets forth the exclusively personal point of view of its author.
Despite the similarities in the UI, SmartEdit is not built with Cockpit NG Backoffice Framework. The Cockpit NG is intensively developed by SAP to use for data management applications in SAP hybris. For example, this framework is used as a foundation for all new cockpits, such as PCM Backoffice for products or Adaptive Search for Search and Navigation Module. SmartEdit doesn’t use it at all.
The old WCMS Cockpit was built with a legacy cockpit framework called Cockpit Framework. I’d say that every developer hates extending old cockpits because the framework is incredibly unfriendly to developers. Many components of the existing cockpits are not extendable, and it is always a challenge to add new features to cockpits if they are not in the narrow area of possible options.
SmartEdit interacts with the database and hybris API via AJAX calls. On the hybris side, there are customizable modules, such as cmswebservices for this purpose. For example, to show the list of CMS pages, SmartEdit makes a call to /cmswebservices/v1/sites/electronics/cmsitems. Almost all operations are handled by webservices.
If you want to support both SmartEdit and WCMS Cockpit, you likely need to multiply your development efforts by two. There is a lot you need to do specifically for SmartEdit in addition to you generally do for WCMS Cockpit.
For example, some components (such as Product Carousel Component) need to have an access to Product Catalog. It makes necessary to provide the e-commerce data to SmartEdit via webservices to let Smartedit components be configurable. It means that if you customize any e-commerce components, you will need to extend the default set of webservices just for Smartedit as well as define or modify the code for the components where these data are used.
AngularJS and Java developers are commonly from different worlds. So if you decide to go with SmartEdit, you will need to get both roles involved even for smallest changes. The current implementation of SmartEdit is not very stable but it is getting better with every version.
So the flip side of having a fancy UI for content management, you need to take into account that the maintenance costs will be definitely higher.
Thus, currently, SAP hybris has three different frameworks for backoffice applications, Cockpit Framework, Backoffice Cockpit Framework and SmartEdit.
In hybris 6.7, the majority of the features commonly used for content management are supported by SmartEdit. These features are implemented even in a better way that we have in the old WCMS Cockpit. Some features are introduced only for SmartEdit. Unfortunately, they may not have a counterpart in old WCMS Cockpit. To provide this service to a customer you need to support both systems, WCMS and SmartEdit, or admit that such features as “component cloning”, won’t be delivered with the solution at all. If you make any changes in the default data models or functionality, SmartEdit will be probably broken because there is a dependency. So you need to keep the eye on many things if you decide to support SmartEdit. It is not on by default.
Creating websites and catalogs
In WCMS Cockpit, the administrators are able to create a new website and content catalog directly from WCMS Cockpit. I think that it is extremely dangerous operation and should be off for all projects to keep data in safe. In SmartEdit it is not possible. You can manage only existing websites and catalogs.
|Creating a website and content catalog||🚫 No.||✓ Yes, but basic. Smartedit doesn’t work with the created website/catalog OOTB. It creates invalid configuration to use with SE.|
|Removing the website or content catalog||🚫 No||🚫 No, you need to use Backoffice or HMC, but it is a very complex operation.|
|Editing the website or content catalog parameters||🚫 No||🚫 No, you need to use Backoffice or HMC|
Like in WCMS Cockpit, in SmartEdit the list of pages is plain, not hierarchical. Search works only with page ids and page names. If you need to find a page having a particular URL, you will need to open all pages one by one or guess the page name. Search is faster in SmartEdit. There is no way to filter pages by type or other attributes. The removed page in WCMS is not reversible. In SmartEdit you can restore the removed page. The SEO attributes, such as description and keywords weren’t added to the page edit panel. The panel itself is partly dynamic: many changes on the server side require making changes in the code for SmartEdit. In WCMS you don’t need to touch the codebase or configuration in the most cases, everything is completely automatic. The page can be cloned in SmartEdit, it is a great feature. Unfortunately, SAP hasn’t implemented it for CMS Cockpit. The page template is not editable.
|Removing pages||✓ Yes, revertable||✓ Yes, but non-revertable|
|Revert removed pages||✓ Yes||🚫 No|
|Edit SEO attributes||🚫 No||Yes|
|Page template can be changed for a page||🚫 No||✓ Yes|
|Custom attributes automatically added to the editor panel||🚫 No, you need to extend the code if any changes are made in the data model||🚫 No,ML|
|Cloning pages||✓ Yes||🚫 No|
Components and page slots
The concept of components and page slots is the same as in old WCMS cockpit. In SmartEdit, you can drag the components to a new position on the page. In a similar manner, you can add new components from the library and group components in slots.
The is an issue on how this drag-and-drop is implemented. Sometimes, after you drop the component to a new position, SmartEdit doesn’t move it at all with no errors or warnings.
|Adding a component to a slot on the page||✓ Yes, drag-n-drop from the component library||✓ Yes, by choosing from the list.|
|Moving a component in or between slots||✓ Yes, drag-n-drop.||🚫 Only movable inside the slot. You need to re-link the component to the target slot. It requires an understanding of the data model|
|Rearranging the components in the slot||✓ Yes, drag-n-drop||🚫 No|
|Clone a component||✓ Yes (6.6+)||🚫 No|
|Hide a component||✓ Yes||✓ Yes, but the hidden components aren’t marked as hidden in the UI|
|Convert shared content slot to a page specific one||✓ Yes with cloning components support||✓ Yes, but you need to create/link components to a new slot from scratch|
|Synchronize a component||✓ Yes||✓ Yes|
|Synchronize a slot||✓ Yes||🚫 No|
|Synchronize a subset of components within a slot||✓ Yes||🚫 No|
|Assign a restriction to a component||Partially. You can create or edit category, time, and user group restrictions only||✓ Yes|
|Actions for components||✓ Yes||🚫 No|
Not all component types are supported in SmartEdit and WCMS Cockpit. For example, the text on the login screen is not editable in both systems:
This text is stored in property files, so you need to redeploy the system to have it changed if the needs arise.
Media Management in components
Both in SmartEdit and WCMS Cockpit, media management is implemented in a terrible way.
In WCMS cockpit, when you want to change a banner image, you need to understand the difference between changing the image of a media object, changing a media object of a container and changing a media container. WCMS Cockpit doesn’t support SVG preview. Large images are not displayed nicely too. Understanding of the concept of media formats and its mapping with storefront entities and modes is often too hard for content managers.
In SmartEdit, SAP oversimplified things. Now you can upload the image instead of one already uploaded only. There is no way to pick the image from the library or re-use the image uploaded before. The REPLACE link opens an image upload pop-up.
The access control is derived from hybris Platform. There is almost nothing added by Smartedit on top of what we had before. The FlexibleSearch restrictions don’t help much: the webservices turn them off for some operations.
|Permission management||✓ Yes, with issues. Implemented differently than WCMS. For example, you can revoke the permission of catalog sync for the user group. It will work in CMS Cockpit, but not in Smartedit (respect sync permissions only is not in play).||✓ Yes, with issues.|
|CatalogVersion-level permissions||✓ Yes||✓ Yes|
|🚫 Not implemented OOTB. FlexibleSearch restrictions are not nicely handled||🚫 Not implemented OOTB. The only option is FlexibleSearch restrictions|
|ComponentType-level permissions||🚫 Not implemented OOTB. I couldn’t restrict the list of available CMS Component Types per user/usergroup||🚫 Not implemented OOTB. I couldn’t restrict the list of available CMS Component Types per user/usergroup|
|Component-level permissions||🚫 Not implemented OOTB. I couldn’t restrict the list of available CMS Components per user/usergroup even with FlexibleSearch restrictions||🚫 Not implemented OOTB, but it is possible via FlexibleSearch restrictions|
Both in SmartEdit and WCMS, you can define the navigation structure that is used to set up the links that will be exposed in navigation components, such as the category navigation component, the footer navigation component, and the account navigation component. Each item of this structure can be linked to a hybris page, media or external URL.
|Synchronize a node||🚫 No||✓ Yes|
|Synchronize a subtree||🚫 No||🚫 No|
|Synchronize all items||🚫 No||🚫 No|
|Editing the CMSLink component of the node||🚫 No||✓ Yes|
|Creating a CMS Link (External link)||🚫 No. It seems that SmartEdit assumes these links have already been created somewhere else||✓ Yes|
It was the most interesting feature for me. The legacy personalization module (BTG) is so slow that seemingly nobody uses it on the traffic-intensive websites. SmartEdit Personalization seemed like a fresh wind of hope.
How does it work? In SmartEdit personalization, you can select the components to be changed if/when the user is put into one of the predefined segments or their combination. For example, the banner will be replaced to another once the system realizes that they are from the group with customers from a particular city.
In BTG, legacy personalization engine, the customer is assigned to a segment automatically on the fly, once the website session, user data or database state meet some criteria. In new SmartEdit Personalization, this mechanism is built outside hybris, it is part of Hybris Profile, or need to be custom built.
Out of the box, SAP Hybris does not provide any concrete integration to any other external system but it gives the opportunity for the custom implementations to do so. It is very similar to how product recommendations work in hybris: no smart mechanisms at all, just a framework and a set of design templates.
So, in order to update the information about user segments (what users belong to what segments) you need to create a custom provider (UserSegmentsProvider) or your own implementation of the user segment strategy (UpdateUserSegmentStrategy). It means that without Hybris Profile the personalization module is not ready to be user from the day 0. It is just a template for a full-scale solution.
This mechanism is used in SAP hybris Profile integration. As part of personalizationyprofile module, there is an implementation of the user segments provider, ConsumptionLayerUserSegmentsProvider, which gets the data from Hybris Profile and maps it to segments. It is used by DefaultCxUpdateUserSegmentStrategy to collect the user segments.
Built-in WYSIWYG Rich Text Editor
SmartEdit uses CKEditor 4.5.7, one of the best embeddable editor software on the market. The similar package is used by Backoffice. Old cockpits, such as WCMS Cockpit or Product Cockpit, use the outdated version, 2.6.1.
Let’s compare the default sets of editor tools:
- Both editors are not capable to upload an image. The picture icon in the SmartEdit’s is just to insert a link to the image with the known URL.
- Both editors are not capable to insert the image from the hybris media library. It was quite useful, especially if you need to use the same images on different language versions
- SmartEdit editor is not capable to align or underline the text
SmartEdit has a useful feature “Paste from Word”. It is supposed to clean the HTML code exported from Microsoft Word to get it better aligned for Web. There are reports that it doesn’t work in Google Chrome, but in my case it doesn’t work in Firefox 57.0.2 (Mac OS) too:
I would recommend SAP to put more attention to the HTML editor. Namely, adding the following features will make content managers happy:
- Media upload and Media library integration
- Downloadable files
- Language-dependent spell checking and auto-correction
- Text beautifiers: The tools like http://www.typograf.ru/ is widely used for Russian texts, for example. There are solutions for English too.
- Fix Paste from Word
- Multiple configurations for the editor:
- For experienced administrators
- The simplified mode (with many features off)
Too abstract, requires yProfile or additional customization/integration
|Importance||WCMS feature||SmartEdit coverage||SmartEdit unique features||Key drawbacks|
|Creating websites and categories||High||Yes||—||—||Not implemented yet|
|Forms are not dynamic|
|Components and page slots||High||Yes||High||Slot sync,
better and intuitive UI,
|Forms are not dynamic,
extra efforts: dev & support and maintenance
|Media Management||Medium||Yes||Low||Better UI||Media library is not implemented. No way to reuse|
|Navigation Management||Medium||Yes||Low||—||Non-editable items linked to navnodes, no sync|
|Permissions Management||High||No||Low||—||Not implemented|
|Personalization||High||No*||Low||Great concept||Too abstract. Requires hybris Profile or custom development|
|Rich text Editor||High||Yes||High||Latest version of CKEditor, full screen mode||No image manipulations, some important features are not working|