5 Productivity-Enhancing Tips for Improving Your Demandware (Salesforce Commerce Cloud) Development Environment

Bradley Spencer
4 min readSep 30, 2018

--

For developers used to large, open-source communities where nearly every problem can be solved with a quick google search, starting to develop on Demandware can be painfully opaque.

The good news is that there are a lot of smart and talented developers using Demandware and creating plugins and tools… they are just harder to find.

Many of the interesting projects are behind logins on Demandware XChange or on private repos on Bitbucket or Github, meaning that search engines can’t find them.

Below I’ll introduce you to some good resources for developers new to Demandware, or grissled Demandware developers looking to learn some new tricks. If you think I’ve missed something, please feel free to add it in the comments below.

1. Switch from Eclipse to VS Code & Prophet Debugger & DW-Utils Node Package

Years ago when I started working with Demandware, you had no choice but to use Eclipse as your IDE in order to upload to your sandbox and debug because only the UX Studio plugin existed. Now you have more options, and if you like a snappier IDE with better syntax highlighting then you are in luck.

My preferred setup is VS Code, with the Prophet Debugger for debugging (as the name implies) and DW-Utils for uploading and cleaning your sandbox from the command line.

This suggestion is #1 on my list for a reason: it made me feel like my development environment jumped a decade into the future when I left Eclipse.

One note: you’ll still need to fire up Eclipse if you have to debug pipelines. But as we use fewer pipelines and more controllers, I’ve found that I can go days without opening Eclipse.

2. Join and Contribute to the Unofficial Demandware Slack Channel

If you’ve exhausted yourself looking through the Demandware Docs and Demandware Xchange and are still stuck, there is a surprisingly active unofficial slack channel for Demandware:

This slack channel has helped me out dozens of times and you can learn a lot by seeing what other folks are working on.

3. Use The Salesforce Commerce Cloud Community Suite

The Salesforce Commerce Cloud community suite is a library of tools that can make the life of a developer much easier.

Our grunt build script, for instance, is just a customized version of the Grunt script that comes out of Community Suite.

There are lots of other projects in the Community Suite, including:

  1. Unit Testing / Mocking Tool
  2. Data Usage Tool
  3. Content Copy Tool

And many more…

Currently the Community Suite’s location is a bit in flux. Up until last month the repo was kept on Bitbucket but it looks like it is being moved to Github. Check this page on Demandware Xchange to find out how to get access to the community suite whenever you are reading this in the future.

4. Read Demandware Site Genesis aka Reference Architecture

I suspect that virtually all new Demandware implementations use the then-current Reference Architecture as a starting point. Once the implementation is complete, though, it can be very difficult to upgrade to a new version of the Reference Architecture without breaking the site’s customizations.

Given this, many sites will stay on the same version of the reference architecture for years while the newest Reference Architectures add really interesting features and code styles.

I encourage all Demandware developers to look over the newest Reference Architectures as they come out. Frankly this wasn’t something I did until my previous Lead Developer recommended it. I’m so glad he did.

As of this writing, the latest Reference Architecture has all sorts of new features, including…

  1. Client-side testing framework using Mocha and Webdriver, Docker and Selenium Server
  2. Tons of new interesting tasks in the Grunt and Gulp Files

You can find the latest Reference Architectures available for download on Demandware Xchange.

5. Easily Implement React.js / Vue.js / Typescript / Javascript Library Du Jour

If you aren’t in love with .isml (and I don’t blame you!), you can always use a front-end framework you love with Demandware.

I’ve personally used React and Typescript with Demandware and really enjoyed the experience.

While I don’t have experience using Vue.js with Demandware, I don’t see why there would be a problem using it.

If you decide to use React.js, Vue.js, Typescript, or something else, you will need to setup babel or the typescript compiler to watch your files and compile them. The SFCC Community Suite can help with this.

Thanks for reading some tips to make improve your developer experience on Demandware. Please leave your own tips in the comments below or feel free to reach out to me on linkedin or my own personal website at BradleySpencer.com.

--

--

Bradley Spencer

Full-stack developer who loves Javascript and Coffee, appreciates good design, and aspires to be a mediocre tennis player.