Smart Search uses the SFCC workspace index to find routes, hooks, step types, custom API endpoints, and resource keys. Start with the name used by your code, then open the declaration or implementation without knowing its file path
Open Smart Search
Let the workspace index load
Open the project, link the cartridges you need, and allow the Intellij SFCC language servers to finish indexing. Smart Search requires active plugin access, including trial access
Click the Smart Search status bar icon
Hover over the icon to see Smart Search. Clicking it opens the Routes picker
Choose a category
Use the icons at the top of the picker to switch between Routes, Hooks, Steptypes, Custom APIs, and Properties. Hover over an icon to see its category name
Search and open a result
Type a name or part of the result's description, select a match, and press Enter. The picker opens the indexed source; properties first offer a second picker for their declarations across locales and cartridges
Choose the right category
These examples are illustrative; results come from your linked workspace cartridges
| Category | Example search | What opens |
|---|---|---|
| Routes | Product-Show | The SFRA or SiteGenesis controller declaration, or the matching pipeline route in the visual editor |
| Hooks | app.demo.product | The indexed hook target. Row actions also expose its declaration and, where available, implementation |
| Steptypes | custom.ExportDemo | The script module function, the chunk step's process function, or the pipeline step's declaration |
| Custom APIs | /demo-products | The endpoint's script implementation when resolved, otherwise its OpenAPI declaration |
| Properties | button.addtocart | A declaration picker showing values, locales, cartridges, and resource files; Enter opens the selected key in source |
Custom API rows also provide Go to api.json declaration, Go to OpenAPI declaration, and Go to script implementation where the corresponding target is available. Step type rows provide Open json declaration to inspect the definition directly
Follow a route into the storefront
Route results include Open Endpoint, Copy Endpoint URL, and Show References actions. References help you follow callers; endpoint actions use the active connection and selected B2C Site Scope to construct the storefront URL
Opening or copying an endpoint requires a selected route, an active B2C connection, and a site scope. Opening a source result uses the local workspace index. It does not require the route to have been deployed or prove that the endpoint works on the sandbox
Resolve the right resource key
The Properties search starts with a key such as button.addtocart. After selecting it, compare the declaration rows: each includes its value, locale, cartridge, and file. Choose the declaration from the intended bundle before opening its references or localizations
For example, these are different resource identities even though their keys match:
Resource.msg('label.title', 'product', null);
Resource.msg('label.title', 'account', null);The declaration actions pass the selected key, bundle, and source location to the lookup. This keeps references tied to the intended resource rather than treating every identical key string as the same message
Troubleshooting
- No results: check the category, confirm the cartridge is linked, and wait for indexing to finish. Routes, hooks, APIs, steps, and properties each use their corresponding SFCC index
- A new declaration is missing: save the source file and allow the index to update. If the index still misses it, run Intellij SFCC: Refresh B2C Commerce Library from the Command Palette to reload the language server's SFCC model, or Developer: Reload Window, then wait for indexing again
- Several cartridges contain the same route or resource: compare the cartridge details and select the correct site scope for site-aware resolution
- Endpoint actions are unavailable: select the intended connection and site. Navigating local source and opening a remote endpoint have different prerequisites
- A hook or API has no implementation action: inspect its declaration and verify that the referenced script exists in a linked cartridge