Code Completion

Intelligent autocomplete for SFCC APIs, ISML tags, and more

Intellij SFCC provides context-aware code completion across all SFCC file types, powered by the JetBrains platform's indexing engine.

DW API Completion

Get full autocomplete for the entire dw.* API surface:

var ProductMgr = require('dw/catalog/ProductMgr');
var product = ProductMgr.getProduct('my-product-id');
product. // ← full completion for Product methods and properties

The plugin ships with type stubs for the entire SFCC API. Completions include JSDoc descriptions, parameter types, and return types.

Require Path Resolution

The plugin resolves require() paths across your cartridge path overlay:

// Resolves across cartridge overlay
var base = require('*/cartridge/scripts/helpers/productHelpers');
var guard = require('*/cartridge/scripts/guard');

Completion triggers automatically when typing inside require('...') strings, offering:

  • Cartridge-relative paths (*/cartridge/...)
  • Absolute module paths (dw/...)
  • Relative paths (./, ../)

ISML Tag Completion

Full tag completion inside .isml templates:

<isif condition="${pdict.}">
  <!-- ↑ completion for pdict properties -->
  <isinclude template="" />
  <!-- ↑ completion for template paths -->
  <isset name="" value="" scope="page" />
</isif>

The plugin provides completion for all built-in ISML tags (isif, isloop, isinclude, isset, etc.) with parameter suggestions and documentation.

Inside ${} expressions, get completion for:

  • pdict properties passed from controllers/pipelines
  • DW API static methods
  • Loop variables from isloop
  • Session, request, and response objects

Hook Completion

When registering or calling hooks, the plugin completes hook names from your hooks.json:

{
  "hooks": [
    {
      "name": "app.payment.processor.CREDIT_CARD",
      "script": "./cartridge/scripts/hooks/payment/processor/creditCard"
    }
  ]
}

Controller Route Completion

Get completion for controller routes when using URLUtils:

var URLUtils = require('dw/web/URLUtils');
URLUtils.url('Account-Show'); // ← completion for all controller routes

On this page