Unofficial Salesforce™ Commerce Cloud uploader & manager for Atom. Upload your files and cartridges on SFCC via WebDAV.
This package provides the following services:
This package consumes the following services:
Unofficial Salesforce ™ Commerce Cloud B2C uploader & manager for Atom.
Intro
Atomforce is a package for Atom, that with a simple interface in the Atom Status Bar, helps you upload files and cartridges in your Sandbox via WebDAV for the B2C development.
Installation
Command Line
- Install the latest version of Atom
- In the terminal, install the package via apm:
apm install atomforce
GUI
- Install the latest version of Atom
- Launch Atom
- Open Settings View using Cmd+, on macOS or Ctrl+, on other platforms
- Click the Install tab on the left side
- Enter
atomforcein the search box and press Enter - Click the "Install" button that appears
Configuration
As required by the standard in the various npm Salesforce packages eg: (dwupload or sgmf-scripts), Atomforce also requires a file named dw.json in the root of the project, which is needed to enable connection to the WebDAV.
In the following indexes you can find most of the examples to be able to upload your files and cartridges to Sandbox correctly.
dw.json
In order to create a connection file to the WebDAV it is available with Atomforce, an integrated provider for the autocompletion of the correct properties. Create a new dw.json file in the root of your SFCC project in order to auto-complete the file correctly.

However, it's possible to consult the attributes of the properties and the mandatory fields for the right connection, here.
| Keyword | Mandatory | Type | Description |
|---|---|---|---|
hostname |
true |
string |
The Hostname of your sandbox without the https protocol. The name must end before /on/demandware.store/. |
username |
true |
string |
The username used to access on your Sandbox. The same value of the field that in "Sandbox Istance" is called login. In some sandboxes with the SFRA architecture the username, corresponds to the username used in account.demandware.com |
password |
true |
string |
The password used to access on your Sandbox. In some sandboxes with the SFRA architecture the password, corresponds to the password used in account.demandware.com |
code-version or version |
true |
string |
The version of the code active in your Sandbox. You can check the version in Administration > Site Development > Code Deployment. |
root |
false |
string |
Root option allows for path resolution of the file to upload relative to a directory. |
cartridges |
false |
array |
List of cartridges to be uploaded and viewed by the watcher filesystem. |
p12 |
false |
string |
The absolute path of p12 file necessary for two-factor authentication. If hostname key contains cert initials, this key become mandatory. |
passphrase |
false |
string |
The keyword necessary for two-factor authentication. If p12 is set, passphrase become mandatory. |
A final example of how the file should be structured.
Remember to add the
dw.jsonfile in your.gitignoreto avoid committing your Sandbox credentials!.
{
"hostname": "dev01-eu01-sample.demandware.net",
"username": "username",
"password": "mypassword",
"code-version": "version1"
}
2FA (Two-factor Authentication)
Atomforce supports 2FA (Two-factor Authentication).
The p12 key can be added to the dw.json file, and the path of where the p12 certificate file is allocated as the value. The passphrase key is also required, where the keyword required for authentication is indicated as the value.
{
"hostname": "cert.staging.eu01.sample.demandware.net",
"username": "username",
"password": "mypassword",
"code-version": "version1",
"p12": "absolutepath/to/certificate.p12",
"passphrase": "keyword"
}
Root
Root option allows for path resolution of the file to upload relative to a directory on WebDAV.
To better understand this option, suppose we have the following structure.
cartridges/
├── app_storefront_base/
├── plugin_ups/
├── plugin_wishlist/
└── README.md
In this structure in the WebDAV the cartridges folder will also be uploaded, to avoid this, just insert the initial path in the value of root, where the cartridges are allocated.
{
"hostname": "dev01-eu01-sample.demandware.net",
"username": "username",
"password": "mypassword",
"code-version": "version1",
"root": "cartridges"
}
If the value of root is: . the full path will be considered, so the cartridges folder will also be uploaded in the WebDAV. If the path of your cartridges is on several levels: cartridges/src just indicate the complete path. Final slash is not required.
Cartridges List
The cartridges option allows you to stay in watch on one or more cartridges and upload these accordingly in WebDAV. If this option is not defined in the dw.json file, the watcher filesystem will listen all event (add, change and delete) to all files and folders in the project root or path indicated in the root option, and all files and folders will be uploaded.
{
"hostname": "dev01-eu01-sample.demandware.net",
"username": "username",
"password": "mypassword",
"code-version": "version1",
"root": "cartridges",
"cartridges": ["app_storefront_base", "plugin_ups"]
}
Additionals Packages
To improve the development workflow in Salesforce Commerce Cloud we recommend installing the .isml & .ds syntax, snippets and autocompletion package.
Contributing
Prerequisites
- Latest version of Atom installed.
- Recommended Installed Packages:
- editorconfig
- prettier-atom (with
Format Files On Saveenabled)
Getting Started
Before cloning the repository, make sure you have node.js installed on your OS.
git clone https://github.com/matteobertoldo/atomforce.gitcd atomforceapm installapm link
Contributing Details
Please read CONTRIBUTING.md for details on code of conduct, and the process for submitting pull requests.
License
Atomforce is licensed under the MIT License - see the LICENSE.md file for details.