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.

Technology

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 core of SmartEdit is a JavaScript framework AngularJS. The ZK widgets created for other backoffice applications can’t be reused for SmartEdit. It makes it unique in SAP Hybris Commerce and probably explains why the development of SmartEdit is so slow-paced.   For the UI, SmartEdit 6.7 uses AngularJS UI Bootstrap 2.5.

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.

smartedit.png

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.

Capabilities

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.

Smartedit WCMS Cockpit
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

Page Management

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.

Smartedit WCMS Cockpit
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.

Smartedit WCMS Cockpit
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.

Screen Shot 2018-04-21 at 5.29.48 PM.png

Editing Permissions

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.

Smartedit WCMS Cockpit
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
Page-level
permissions
🚫 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

Navigation Management

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.

Smartedit WCMS Cockpit
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

Personalization

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.

WCMS Cockpit:

Screen Shot 2018-04-22 at 10.40.02 AM.png

SmartEdit:

Untitled 5.png

Let’s compare the default sets of editor tools:

WMSCockpit:

Screen Shot 2018-04-22 at 10.44.07 AM.png

SmartEdit:

Screen Shot 2018-04-22 at 10.45.09 AM.png

  • 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:

Screen Shot 2018-04-22 at 10.53.34 AM.png

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
    • Images
    • 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)

Summary

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
Page Management High Yes Medium Trashcan,
Page cloning
Forms are not dynamic
Components and page slots High Yes High Slot sync,
better and intuitive UI,
Component cloning
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

10 comments

  1. Marina M · · Reply

    Hi Rauf, very useful article, thanks! Just a note ,as I remember, WCMS cockpit does allow to clone(copy) components and rearrange them in the slot. Thanks!

    Like

  2. Karpyuk Viktor · · Reply

    Thanks Rauf for taking your time and explaining us a lot of different features that are very important to know for better understanding of hybris based projects! Keep it up!

    Liked by 1 person

    1. Thank you! A pleasure to hear;)

      Like

  3. Yuvaraj Aravindan · · Reply

    Not much analysis happens in the hybris world. You are really doing a wonderful job. Thnx a lot

    Like

    1. Thanks! Understanding it is useful really helps me to continue )

      Like

  4. Dawid Kotarba · · Reply

    Another great article, thanks!

    Like

    1. thanks!

      Like

  5. Very good overview Rauf. We are heavily using Smartedit in our deployment (no WCMS) and we are facing many of these painful shortcomings. I would say, on the more painful side, are the media management and the navigation management. We had to implement our own segmentation to make personalization useful.

    The most painful is by far the customization complexity, with the need to involve AngularJS and Java devs for almost anything. But it is still more customizable than WCMS.

    We like it or not, this is the future of the Hybris CMS and articles like this help a lot to keep the expectations reasonable (it is not rosy and out of the box as presented many times…).

    All the best from Cluj!

    Like

    1. Thanks!!!

      Like

  6. Hi Rauf, thanks for a good walkthrough.
    I don’t see you addressing the new feature multi-country. Can you put some words on this? (e.g. how does it work, what are you experiences..)

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: