| name | b2c-webdav |
| description | List, upload, download, and manage files on B2C Commerce instances via WebDAV. Use this skill whenever the user needs to upload files to IMPEX directories, download exports from an instance, list remote files, create or delete directories, zip or unzip files on the server, manage file transfers to sandboxes, or browse instance file systems — even if they just say "upload a file to the instance" or "check what's in the IMPEX folder". |
B2C WebDAV Skill
Use the b2c CLI plugin to perform WebDAV file operations on Salesforce B2C Commerce instances. This includes listing files, uploading, downloading, and managing files across different WebDAV roots.
Tip: If b2c is not installed globally, use npx @salesforce/b2c-cli instead (e.g., npx @salesforce/b2c-cli webdav ls).
Configuration & Authentication
The CLI auto-discovers the target instance and credentials from SFCC_* environment variables, dw.json in the current or parent directories, ~/.mobify, package.json, and configuration plugins. Flags like --server, --client-id, --client-secret, --username, and --password are usually unnecessary — only pass them to override what's auto-detected.
Run b2c setup inspect to see the resolved configuration and which source provided each value (use --json for scripting, --unmask to reveal secrets). For precedence rules and troubleshooting, see the b2c-cli:b2c-config skill.
WebDAV Roots
The --root flag specifies the WebDAV directory:
impex (default) - Import/Export directory
temp - Temporary files
cartridges - Code cartridges
realmdata - Realm data
catalogs - Product catalogs
libraries - Content libraries
static - Static resources
logs - Application logs
securitylogs - Security logs
Examples
List Files
b2c webdav ls
b2c webdav ls src/instance
b2c webdav ls --root=cartridges
b2c webdav ls --root=impex --json
Download Files
b2c webdav get src/instance/export.zip
b2c webdav get src/instance/export.zip -o ./downloads/export.zip
b2c webdav get customerror.log --root=logs
b2c webdav get src/instance/data.xml -o -
Upload Files
b2c webdav put ./local-file.zip src/instance/
b2c webdav put ./my-cartridge.zip --root=cartridges
Create Directories
b2c webdav mkdir src/instance/my-folder
b2c webdav mkdir my-folder --root=temp
Delete Files
b2c webdav rm src/instance/old-export.zip
b2c webdav rm old-file.txt --root=temp
Delete Cartridges
To delete cartridges from a code version, use the cartridges root with the path format {code-version}/{cartridge-name}:
b2c webdav rm v25_1_0/app_mysite --root=cartridges
b2c webdav rm v25_1_0/app_mysite --root=cartridges
b2c webdav rm v25_1_0/int_myintegration --root=cartridges
b2c webdav ls v25_1_0 --root=cartridges
Important: The path is {code-version}/{cartridge-name}, not /cartridges/{code-version}/.... The --root=cartridges (or -r cartridges) flag sets the WebDAV root.
Zip/Unzip Remote Files
b2c webdav zip src/instance/my-folder
b2c webdav unzip src/instance/archive.zip
Import-Set Managed State
Do not manually script marker files when the goal is to apply a local set of site archives once. Use the higher-level command:
b2c job import-set
The command manages its own receipt directories so routine file cleanup does not remove applied state and reruns work across machines. Do not edit or delete that managed state unless deliberately resetting an import history: removing a receipt makes the corresponding archive eligible to run again.
For the canonical workflow, naming convention, retry behavior, and recovery rules, use the b2c-cli:b2c-site-import-export skill's Apply an Ordered, Idempotent Import Set section.
More Commands
See b2c webdav --help for a full list of available commands and options in the webdav topic.
Related Skills
b2c-cli:b2c-logs - Filtered log retrieval, search, and real-time tailing (preferred for log exploration)
b2c-cli:b2c-code - Higher-level code deployment (preferred for cartridge upload)
b2c-cli:b2c-site-import-export - Canonical site archive and idempotent import-set guidance
b2c-cli:b2c-job - Run and monitor jobs