Smart Search

Find SFCC routes, hooks, job steps, custom APIs, and resource keys by their indexed identity

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.

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.

CategoryExample searchWhat opens
RoutesProduct-ShowThe SFRA or SiteGenesis controller declaration, or the matching pipeline route in the visual editor.
Hooksapp.demo.productThe indexed hook target. Row actions also expose its declaration and, where available, implementation.
Steptypescustom.ExportDemoThe script module function, the chunk step's process function, or the pipeline step's declaration.
Custom APIs/demo-productsThe endpoint's script implementation when resolved, otherwise its OpenAPI declaration.
Propertiesbutton.addtocartA 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:

Same key, different bundles
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 language server is stalled, use the status bar control whose tooltip is Restart Intellij SFCC Language Servers, 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.

On this page