Cartridge Management
Link cartridges and modules into your project from the VS Code UI, with no dw.json or settings to maintain
Cartridge management in Intellij SFCC is entirely UI-driven. You link folders into the project from the Cartridges view and the Explorer right-click menu. There is no dw.json, no setting, and no cartridge-path string to edit manually.
Linking Cartridges
The plugin tries to detect all three types automatically with Find Cartridges. Every type can also be linked manually from the VS Code Explorer right-click menu, which is the surest way to add B2C and Global modules the scan does not surface.
Two ways to add folders, and together they cover everything: let the plugin scan, or link one manually.
Find Cartridges automatically
Run Find Cartridges from the Cartridges view, or the welcome button when the view is empty. The plugin scans the workspace, skips node_modules, .git, .vscode, and .intellij-sfcc, and opens a multi-select list of every cartridge, B2C module, and global module it found. Pick the ones to link and confirm. Duplicates are flagged so you do not link the same cartridge twice, and you can ignore any folder to keep it out of future scans.
Link a folder manually
Right-click a folder in the Explorer and choose the matching B2C - Link as ... command, one per type, listed in Three Cartridge Types below. Use this for module folders the scan does not surface, or to link one folder explicitly.
What Linking Unlocks
Linking is what makes a folder real to the plugin. Once it is linked, you get:
require()resolution that is cartridge-aware across everything you linked.- Override detection along the cartridge path, with one-click jumps between versions.
- Generated
dw.*types built from the metadata in your linked cartridges. - Navigation - go to definition, find references, and symbol search span the linked set.
Three Cartridge Types
The plugin recognizes three kinds of linkable folders, each with its own icon in the Cartridges view. It tells them apart by what the folder contains:
cartridgeA standard SFCC cartridge with controllers, templates, scripts, and metadata.
How to spot it: a folder with a cartridge/ subfolder inside.
Add it: right-click the folder and choose B2C - Link as Cartridge.
b2c-moduleA reusable module loaded by its name, with its own entry file.
How to spot it: a folder with a main.js or main.ts, and no cartridge/ subfolder.
Add it: right-click the folder and choose B2C - Link as B2C Module.
global-moduleA modules/ folder any cartridge can require by name. SFRA's server framework lives here.
How to spot it: a modules/ folder that contains a server.js.
Add it: right-click the folder and choose B2C - Link as Global Modules.
B2C - Link as Cartridge expects the folder to contain a cartridge/ subfolder. If it does not, the plugin tells you so instead of linking it.
The Cartridges View
The Cartridges section in the Intellij SFCC sidebar lists everything you have linked, each with the icon for its type and a count badge in the header.
- Order follows your active connection. When you are connected to an instance, the list is reconciled against that site's cartridge path, so what you see mirrors how the server resolves overrides. With no active connection, the list is alphabetical.
- Search in Cartridges filters the tree by name or path.
Unlinking and Ignoring
These actions only change what the plugin tracks. Nothing on disk is deleted, moved, or edited.
The difference is what the next scan does:
| Action | Where | What it does | Next scan |
|---|---|---|---|
| Unlink | Cartridges view, or Show Linked Cartridges | Drops it from the project. | Shows up again |
| Ignore | Find Cartridges list, or Show Linked Cartridges | Drops it and remembers to skip it. | Stays hidden |
| Show Ignored Cartridges | Cartridges view menu | Review the ignore list and restore any folder to the project. | - |
| Show Linked Cartridges | Cartridges view menu | Searchable list of everything linked, with unlink and ignore on each row. | - |
Duplicates are caught for you. When a scan finds a cartridge whose name is already linked, it tags the extra one 🚨 Duplicate and leaves it unchecked, so you never link two cartridges with the same name by accident. Ignore the copy you do not want, and it stays hidden on every future scan.
Creating a New Cartridge
To scaffold a fresh cartridge, run B2C - New Cartridge... from the Command Palette or the Explorer right-click menu. The plugin creates the folder with a cartridge/ directory, a .project file, and a <name>.properties file, then links it for you.
Where Linked Cartridges Are Stored
Linked and ignored cartridges live in VS Code workspace state, scoped to the current project. That has three practical consequences:
- Nothing to commit. There is no
dw.jsonkey or settings entry, so your linking choices never appear in version control. - Per developer. A teammate who opens the same repository runs Find Cartridges once to link their own copy. It takes seconds.
- Independent of deployment. This list drives editor intelligence only. How code uploads, and which cartridge path the server runs, is governed by your connection and the instance, not by what you link here.