Send SMS Using Only Native SAP Commerce Libraries with Twilio API

Hi Everyone! I hope everyone is doing well. It's no surprise that SMS delivery messages are an important communication channel for B2B and B2C customers. Customers expect to receive opted-in SMS-based notifications, as well as, email-based notifications for order tracking and delivery. Recently, I built a Groovy script to send customer-facing SMS-Based delivery notifications using the Twilio SMS API.  I decided to leverage out-of-the-box Java libraries that are natively bundled with SAP Commerce instead of adding the Twilio JAR library to the client's long list of custom libraries already used in its SAP Commerce implementation. If you are a regular …

Solr Index Error

Hi Everyone, This is a very quick post. I hope everyone is doing well. Recently, I experienced an issue performing a Full Solr Index. The Synchronization cron job reported no issues in the Backoffice, but the Full Solr Index failed. Obviously, an issue existed. The issue, in my case, a category incorrectly pointed to itself in the STAGED Catalog Version. If  you encounter a similar issue, go to you log files, and search for the following term: SynchronizationPersistenceException (hopefully you are using Splunk or Kibana) You should find a similar log entry if a category issue exists: de.hybris.platform.servicelayer.exceptions. ModelSavingException: cannot assign supercategory Accessories(8796125855886) …

How To Configure SAP Hybris Commerce to Cache Static Assets Locally Using the Browser Cache?

There are many techniques to improve the performance of SAP Hybris Commerce, but there is one (simple) client-side technique that should not be overlooked any SAP Hybris Commerce project. With Out-of-the-Box "OOTB" SAP Hybris Commerce, static files (JavaScript, CSS, images) are stored and served from the /_ui/ directory. In the project.properties, there is an important property called storefront.staticResourceFilter.response.header.Cache-Control  With OOTB Hybris Commerce, this property is set to: storefront.staticResourceFilter.response.header.Cache-Control=no-cache,must-revalidate Which is ideal for development purposes, since we want to minimize caching of any sort during development. However, as your SAP Hybris Commerce implementation is nearing its go-live deployment date, it's important to …

How Can Learning Groovy Improve Your Hybris Commerce Knowledge?

If you are serious about learning SAP Hybris Commerce, you must learn the fundamentals of the Groovy scripting language.  Groovy is an integral part of Hybris, and it will accelerate your Hybris Commerce development and testing efforts. For example, let's say you know nothing about the Hybris Stock or Warehouse Services. How would you learn more about these Hybris Services? Answer: Use Groovy to expedite your learning of these important services.  With this tutorial, I will show you how to retrieve a single product's stock level from a particular warehouse using Groovy. Prerequisites The BaseCommerce and ElectronicsStore extensions and their essential …

How Do You Decide Whether a Product Attribute Should Use the Classification System Instead of the Type System?

Here are few helpful pointers: The product attribute is not used in the business logic The product attribute is used only in a limited or select number of products The product attribute’s longevity is unknown, and it may become unnecessary in a matter of a few months or less The product attribute will be added dynamically at run-time The product attribute is a display property and does not have any reporting requirements

How Do You Disable Hybris Backoffice Cockpits' Pre-Populated Logins and Default Passwords?

Prior to moving your  Hybris Commerce implementation into production, it's important to disable the login auto-fill feature and the default passwords for the backoffice cockpits. To eliminate this potential security risk, set the pre-populated values to empty in the local.properties file. ############################################################### # The following disables default user/password for login cockpit pages and hmc ############################################################### productcockpit.default.login= productcockpit.default.password= cmscockpit.default.login= cmscockpit.default.password= cscockpit.default.login= cscockpit.default.password= hmc.default.login= hmc.default.password=

How Do You Disable Tomcat's Development Mode?

Disabling Tomcat's development mode is an important step before moving your Hybris Commerce application into production. Why is this an important pre-production step? When Tomcat is in development mode, it checks JSPs (Java Server Pages) timestamps for modifications. When a modification is detected, Tomcat will then recompile the JSP in the background. This process is wonderful for development as it helps with debugging, but will degrade production performance. Here are the steps to disable Tomcat's development mode: 1. Open and the web.xml (config/tomcat/conf/web.xml) 2. Once the file is open, please ensure your web.xml file has its development parameter value set to …

How Do You Prevent Tasks From Running On Hybris Commerce Front-End Storefront Nodes?

Answer Go to your local.properties file in the hybris/bin folder.  Enter the following: task.excluded.cluster.ids=1,2 This entry will prevent nodes 1 and 2 (front-end nodes in my case) from processing tasks. Additional Background With OOTB Hybris Commerce, all nodes are eligible to process tasks from the task queue. In production, front-end storefront nodes should be configured to process customer traffic only, and not used to process backoffice tasks, which tend to require a significant amount of system resources at times.

Strange Hybris 6.3 Commerce B2C Accelerator Build Error on Windows 10

A month ago, a client asked me to build Hybris 6.3 on his Windows 10 laptop to demo the new 6.3 functionality. Since this was a local machine, I decided to install Hybris using the B2C Acclerator. Pretty harmless, right?. I ran the following install script from his command prompt: install.bat -r b2c_acc initialize However, my build failed when loading the grunt-karma.js task. I did some research, and learned that there was a conflict with my client's local version of NodeJs/NPM. I removed the existing C:\Program Files\nodejs from my client's PATH environment variables list, and this resolved the issue.

Why Use Hybris Accelerators?

Hybris Accelerators: Leverage the OOTB responsive design that that support different devices using a single code base Leverage WCMS for easier management of site templates/pages and CMS components Use site preview capabilities via WCMS Enable new site editing features via SmartEdit