Prophet+ Debugger
Version 2.0.3
SFCC debugger, uploader, and language tooling for Salesforce B2C Commerce Cloud sandboxes.
Prophet+ is maintained by TLG (The Level Group). It is based on Prophet (MIT) and can be installed alongside the original Prophet — separate extension ID and settings namespace.
Prophet+ enhancements
- Multi-profile connections — sandbox profiles in VS Code settings; passwords in OS keychain
- Status panel — connection, upload, code version, cartridge path, and settings at a glance
- OCAPI cartridge path — live path from sandbox site configuration
- Code version selector — pick version for upload; refresh active version from sandbox
- Upload watch mode — auto-upload changed files only; Upload All for full sync
- Connection switcher — always in the status bar; toolbar in the Prophet+ sidebar
- Context-menu upload — upload single files from the explorer
Supported features
- Upload cartridges and watch changes
- Syntax highlight for
isml and ds files
- Validate ISML files (htmlhint, configurable via
.htmlhintrc)
- Advanced ISML support (hover, autocomplete, formatting, symbols, rename tag)
- Script debugger (breakpoints, stepping, variables, watches, console)
- Storefront Toolkit file open
- Cartridges and server logs views
- Multi-root workspaces
- Template/script override via context menu
Resource.msg, URLUtils, require('dw/'), require('~/'), controller find (Ctrl+F7)
- SOAP WebService API download
- Import/export properties to/from CSV
Warning: Some users have reported that the debugger can halt a sandbox. Ensure you can restart the sandbox before debugging.
Getting started
Open a workspace folder that contains cartridge projects (folders with .project / cartridge structure).
Debugger
Create .vscode/launch.json:
{
"version": "0.1.0",
"configurations": [
{
"type": "prophet-plus",
"request": "launch",
"name": "Attach to Sandbox"
}
]
}
Configure your sandbox connection via Prophet+ → Add Connection (or the Status panel). Legacy dw.json / dw.js is still supported when no Prophet+ profiles exist.
Optional launch fields:
trace — adapter diagnostic logging to the debug console
Connections (recommended)
{
"extension.prophetPlus.connections": [
{
"name": "Dev Sandbox",
"hostname": "dev01-realm.demandware.net",
"username": "user@company.com",
"clientId": "optional-ocapi-client-id"
}
],
"extension.prophetPlus.activeConnection": "Dev Sandbox"
}
Store the BM password via Edit Connection (saved in the OS keychain, not in settings).
Upload
Enable auto-upload in settings or via the Prophet+ toolbar:
{
"extension.prophetPlus.upload.enabled": true,
"extension.prophetPlus.clean.on.start": false
}
- Upload All — full cartridge sync
- Watch mode — uploads only changed files
Legacy dw.json example:
{
"hostname": "example.demandware.net",
"username": "user",
"password": "password",
"code-version": "version2"
}
The extension detects cartridges via .project files — do not exclude .project in files.exclude.
Key settings
| Setting |
Description |
extension.prophetPlus.upload.enabled |
Watch and upload changed files |
extension.prophetPlus.clean.on.start |
Full upload on startup (default: off) |
extension.prophetPlus.connections |
Connection profiles |
extension.prophetPlus.activeConnection |
Active profile name |
extension.prophetPlus.cartridges.path |
Local cartridge path fallback (: separated) |
extension.prophetPlus.toolbar.location |
viewTitle | statusBar | both |
extension.prophetPlus.htmlhint.enabled |
ISML linting |
extension.prophetPlus.sandbox.filesystem.enabled |
Sandbox file system provider |
jsconfig / types
Use a jsconfig.json per cartridge root and dw-api-types for richer IntelliSense.
Views
Open the Prophet+ activity bar for:
- Status — configuration overview
- Controllers — quick find (Ctrl+F7)
- Logs — sandbox log files
- Cartridges — workspace cartridge tree
SOAP WebService API
Right-click a WSDL file → Download SOAP Web Service API…
Requires javadoc on your PATH (same as UX Studio).
Support
Use the Q & A tab on the Visual Studio Marketplace listing for questions and bug reports.
For the upstream Prophet project, see SqrTT/prophet on GitHub.
Versioning
This project follows Semantic Versioning (MAJOR.MINOR.PATCH):
| Bump |
When |
| MAJOR |
Breaking changes, incompatible API/settings changes, irreversible migrations |
| MINOR |
New features, commands, settings, significant enhancements |
| PATCH |
Bug fixes, minor UI tweaks, refactors with no user-visible behavior change |
Every change requires a version bump in package.json and a corresponding entry in changelog
License
MIT — see LICENSE.txt in the extension package.
Original Prophet contributors