Every connection in the Explorer panel has two child nodes. Settings holds the values the extension needs to reach and work with the instance, and Instance browses it over WebDAV (see B2C WebDAV Explorer)
The name and hostname are edited from the connection row itself, and two per-connection options live in the status bar instead of the tree: Auto Upload and B2C Scope
Settings at a Glance
| Setting | Where you change it | Required | Used by |
|---|---|---|---|
| Name | Edit Connection on the connection row | Yes | Tree, status bar, notifications |
| Hostname | Edit Connection on the connection row | Yes | Every request to the instance, access key lookup |
| Account | ← Account row under Settings | Yes | WebDAV requests, script and pipeline debugger |
| Code Version | ← Code Version row under Settings | For upload and debugging | Upload, auto upload, debugger |
| SCAPI / OCAPI | SCAPI / OCAPI row under Settings | No | JSON file sync today, OCAPI and SCAPI features in upcoming updates |
| Self-Signed Certificate | Self-Signed Certificate row under Settings | Only when the instance requires a client certificate | WebDAV requests, debugger |
| Connection Cartridges | Connection Cartridges row under Settings | No | Deployment and auto upload |
| Auto Upload | Auto upload item in the status bar | No | The file watcher that uploads saved changes |
| B2C Scope | B2C Scope item in the status bar | No | Code assistance, overrides, endpoint actions |
Settings belong to one connection. The status bar items and most commands act on the active connection, so switching connections also switches the account, code version, certificate, cartridges, auto upload state, and B2C Scope in use
Name and Hostname
Click the Edit Connection inline action (pencil) on a connection row to open Edit Connection [name]. It lists Name, Hostname, Account, and Code Version, and returns to the list after each change so you can edit several values in a row
- Name is the display name in the tree, the status bar, and messages. It has no effect on requests
- Hostname is the instance host, for example
zzrx-001.dx.commercecloud.salesforce.comfor a sandbox orstaging-eu01-acme.demandware.netfor a PIG instance. The picker offers the hostnames of your existing connections plus a PIG template and a Sandbox template. Replace the{}placeholders with your values - Paste a full URL into the hostname field and only the hostname is kept, so a Business Manager link works as input
Access keys in Credentials are stored per hostname. After you change a hostname, the connection uses the WebDAV access key saved for the new hostname, or the account password when there is none
Account
The account row shows the username of the linked account followed by ← Account. Click the row, or its Change Account inline action, to open Select account for [name]
- The list shows every account in Credentials. The current one is marked
└ ◉ Selected - Use the + title button (Add Account) to create an account without leaving the picker
- Each account has item buttons for Edit Password, Edit Access Keys, Copy Username, Copy Password, and Delete
The connection stores only the username. When a request needs to authenticate, the extension looks up that account in Credentials and uses the WebDAV access key saved for the connection's hostname, falling back to the account password. The same credentials are used for WebDAV (upload, deployment, the Instance tree, logs) and for the script and pipeline debugger
Copy Username and Copy Password are also on the connection row's context menu
Code Version
The code version row shows the selected code version followed by ← Code Version. Uploads and auto upload write into that code version on the instance (Sites/Cartridges/[code version] over WebDAV), and the debugger attaches to it
- Change Code Version (pencil) opens Select Code Version | [name] with the code versions found on the instance. The detail line marks the one
Active on instance, the oneSelectedfor this connection, or both - The + title button creates a new code version, and the trash item button deletes one from the instance
- Switch to Active Code Version on Instance (wand) reads the code version activated in Business Manager and selects it for the connection
- The status bar shows the selected code version next to the active connection. It has its own wand item for the same switch
Selecting a code version here does not activate it on the instance. The storefront keeps running the code version that is active in Business Manager, so activate it there if you want the instance to run what you upload. See Code Versions for an animated walkthrough
Change Code Version and Switch to Active Code Version on Instance are licensed features. Without an active Intellij SFCC license they show a license message instead of running
SCAPI / OCAPI
OCAPI and SCAPI features are not available in the VS Code extension yet. They are planned for upcoming updates. You can already link API clients to a connection, so your connections are ready when those features ship
SCAPI / OCAPI is a collapsed row with two children, one per API client role:
| Row | Role |
|---|---|
| ← Shop (OCAPI / SCAPI) | Meant for shopper-facing APIs, such as the OCAPI Shop API and the SCAPI shopper APIs |
| ← Data | Meant for administrative APIs, such as the OCAPI Data API |
Until a client is linked, the row shows a warning icon and Select API Client. Click the row to open Select Shop API Client or Select Data API Client:
- The picker lists every API client saved in Credentials, by name with the client ID as description. Type a name or client ID to filter
- Clients already linked to this connection show
→ Shop (OCAPI / SCAPI)or→ Datain their detail line. One client can fill both roles - Names longer than 20 characters are shortened with
...in the tree - Clear API Client (trash) unlinks the client from the role. The client stays in Credentials
The connection stores only the client ID. The client secret stays in Credentials. Today the only feature that reads a linked client is Sync to a JSON File, which writes the Data client's ID and secret into the Client Id and Client Secret fields
Self-Signed Certificate
Some instances, typically staging instances with two-factor authentication, only accept WebDAV traffic that presents a client certificate on a separate certificate hostname. The Self-Signed Certificate row turns this on per connection
- Use Certificate Authentication (check) enables it. The row then reads
← Enabledand expands to three settings - Disable Certificate Authentication (circle-slash) turns it off. The three values are kept, so you can turn it back on later
| Setting | Action | What to enter |
|---|---|---|
| Secure Hostname | Edit Secure Hostname | The certificate hostname, in the format cert.staging.<realm>.<client>.demandware.net |
| File Path (p12) | Select Certificate File | The path of the PKCS#12 certificate file. Paste a path or use the title button to browse |
| Password / Passphrase | Edit Certificate Password | The passphrase that unlocks the certificate file. A change asks for confirmation |
For a hostname shaped like <instance>-<realm>-<client>.demandware.net, Edit Secure Hostname prefills the matching cert.<instance>.<realm>.<client>.demandware.net, and the wand title button (Try generate Secure Hostname) fills it again. If you leave the secure hostname empty, the extension derives it the same way when it sends requests
While the certificate is enabled, WebDAV requests (upload, deployment, the Instance tree, logs) go to the secure hostname, present the certificate from the file, and accept the instance's self-signed server certificate. The debugger uses the same certificate settings. If the file cannot be read, the extension reports that it failed to read the certificate file, which usually means a wrong path or passphrase
Connection Cartridges
By default, deployment and auto upload use every cartridge linked in the workspace. Connection Cartridges narrows that to a list you choose, for example when a sandbox should only receive the cartridges your team owns
- Edit Connection Cartridges (pencil) opens [name] Cartridges (Deployment/Auto Upload), a multi-select list of the linked cartridges plus cartridges found in the workspace that are not linked or ignored. Each item shows its path, current choices are marked
→ Selected, and cartridges whose name appears twice are flagged as duplicates - Check the cartridges this connection should receive and press Enter. A confirmation lists the cartridges that will be used
- Unselect All (title button) clears the list. Accepting an empty list goes back to all linked cartridges
- What are Connection Cartridges? (question) explains the setting in a dialog
With a list in place the row reads Connection Cartridges ([count]) and shows the chosen cartridges as children. Click one to open it in the VS Code Explorer
Connection Cartridges only affects what is uploaded. Code assistance, navigation, and override resolution still use all linked cartridges and the selected B2C Scope
Auto Upload
Auto upload is a per-connection switch in the status bar. Its tooltip reads Auto Upload Enabled for [name] or Auto Upload Disabled for [name], and clicking it toggles the value for the active connection
- When it is on, the file watcher uploads saved cartridge files to the connection's code version, limited to the Connection Cartridges when a list is set
- The item is hidden until the workspace has at least one linked cartridge and at least one connection
- Auto upload is a licensed feature
See Upload and Deploy for manual uploads, deployments, and watcher behavior
B2C Scope
The B2C Scope status bar item selects the site whose cartridge path the extension uses for code assistance, overrides, and endpoint actions. The selection is stored with the connection, so each sandbox keeps its own site. See B2C Site Scopes
When Changes Take Effect
Changes apply immediately, without a reload. The tree, the status bar, and the next request use the new value
If a debug session is running, changing the active connection's hostname, account, code version, certificate settings, or B2C Scope restarts the debugger on the new target. Renaming a connection or linking API clients does not restart it
Where Settings Are Stored
Connections are saved in VS Code's workspace storage for the current workspace, not in a project file. Accounts are stored by username and API clients by client ID. Passwords, access keys, and client secrets live only in the encrypted credentials file
| Saved with the connection | Included in an export | |
|---|---|---|
| Name, hostname, group, active flag | Yes | Yes |
| Account username, API client IDs | Yes | Yes |
| Code version, auto upload, B2C Scope, Connection Cartridges | Yes | Yes |
| Self-signed certificate settings | Yes | No |
| Passwords, access keys, client secrets | No | No |
When you import connections, accounts and API clients that are missing from Credentials are created as references without secrets. Add the password or client secret in Credentials afterwards, and set the certificate again for connections that need one
If the workspace contains a .idea/misc.xml with connections from Intellij SFCC for JetBrains IDEs, the extension imports those connections once, the first time it opens the workspace
Related VS Code Settings
A few extension settings shape how connections are used. See Settings for details
intellij-sfcc.credentialsFilePathpoints at the credentials file that holds the accounts and API clients connections referenceintellij-sfcc.concurrentRequestsPerSecondcaps parallel WebDAV requests during uploads, deployments, and downloadsintellij-sfcc.deployment.clearCodeVersioncontrols how deployment cleans the target code version before it uploads