sap-commerce-tools – Unofficial tools to improve the life of a SAP (Hybris) Commerce developer
One of the issues I see in many SAP Commerce project is the lacking developer tooling, especially around project setup, packaging, deployment etc.
This prompted me to write and share various tools with the wider developer audience, which can be found here:
Everything is licensed under Apache License 2.0
Disclaimer: This is not officially endorsed or supported by SAP
Here are some highlights:
SAP Commerce Gradle Plugin
This plugin enables you to do the following with Gradle:
- Download a SAP Commerce release from the SAP ONE Support Launchpad
- Bootstrap (Unpack, configure, …) your SAP Commerce project
- Build SAP Commerce with Gradle
- Easily create valid CCv1 (aka. “SAP Commerce Cloud on SAP infrastructure”) deployment packages
- (experimental) Use a CCv2 (aka “SAP Commerce Cloud in the Public Cloud”) manifest.json to configure the build
The plugins are extensively documented in the Github wiki of the project, check it out!
Also have a look at out the various example repositories:
With these plugins, you can fully automate the project setup (for new developers, or on your Continuous Integration server) and (ideally) reduce it to a single gradle task:
git clone <project> cd <project> ./gradlew bootstrap
ybp – Auto-navigate to hybris/bin/platform
Everybody that develops SAP Commerce projects knows how annoying it is to change the directory to …/hybris/bin/platform, source the ant configuration if necessary and then run the commands like ant or hybrisserver.sh, especially if you work on multiple projects.
This little helper script (available for Linux, macOS and Windows) automates that.
So instead of:
cd ../../../bin/platform source setantenv.sh ant clean all
you can just run
ybp ant clean all
With some shell aliases / additional helper scripts (on Windows) you can reduce that even further, for example:
ya clean all
Check the README of the repository for details.
ccv1-ansible – Deploy to CCv1 (“SAP Commerce Cloud on SAP infrastructure”)
For CCv1 projects, the development team is responsible for so called “open” environments. (usually DEV)
This means that they have to figure out how to deploy a new (test) release correctly.
These Ansible scripts automate the recommended approach as documented on help.hybris.com, and can serve as a starting point for Continuous Delivery for on-prem customers.
So instead of ~10 manual steps, you just run the following:
#Install release ansible-playbook -i dev install-release.yaml --extra-vars "package=acme-ts_v1.0.0" #Activate release and execute update running system ansible-playbook -i qa activate-release.yaml --extra-vars "package=acme-ts_v1.0.0 update=true"
Other cool stuff
I also share extensions that cover common requirements that are relevant for nearly every SAP Commerce projects:
changeprompteditorarea – Prompt if there are unsaved changes
It’s not 100% perfect, but provides a quick and easy fix for this common requirement.
hacvcsinfo – Display version control information in the administration console
It really helps to see what commit/branch/tag was used to build the currently running server.
I hope these tools help everyone embarking on their SAP Commerce projects, as they already did for others.
And of course, Pull Requests, Issues, Ideas and maybe even a tool that you want to share are highly welcome!