Install AI Tools

B2C Commerce tools, documentation, and skills for your assistant.

Claude

Install the plugin Recommended

bash
claude plugin marketplace add SalesforceCommerceCloud/b2c-developer-tooling
claude plugin install b2c-dx-mcp@b2c-developer-tooling --scope project

Start a new Claude Code session in your project. Use --scope user instead for all projects.

Manual MCP setup

From your project directory:

bash
claude mcp add --transport stdio --scope project b2c-dx-mcp -- npx -y @salesforce/b2c-dx-mcp@latest

Start a new session. Use --scope user instead for all projects. See Claude Code MCP setup.

Claude Desktop setup

Codex

Install the plugin Recommended

bash
codex plugin marketplace add SalesforceCommerceCloud/b2c-developer-tooling
codex plugin add b2c-dx-mcp@b2c-developer-tooling

Start a new Codex session in your project. This setup also works with the Codex IDE extension and the ChatGPT Work desktop app.

Manual MCP setup
bash
codex mcp add b2c-dx-mcp -- npx -y @salesforce/b2c-dx-mcp@latest

Or add this to ~/.codex/config.toml (or $CODEX_HOME/config.toml if customized):

toml
[mcp_servers.b2c-dx-mcp]
command = "npx"
args = ["-y", "@salesforce/b2c-dx-mcp@latest"]

Start a new session. See Codex MCP configuration.

ChatGPT online setup

VS Code

Install the plugin Recommended

  1. Open the Command Palette (Cmd/Ctrl+Shift+P) and run Chat: Install Plugin from Source.
  2. Enter SalesforceCommerceCloud/b2c-developer-tooling.
  3. Select b2c-dx-mcp and follow the installation prompts.
  4. Start a new chat in GitHub Copilot.
Manual MCP setup

Add this to .vscode/mcp.json in your workspace:

json
{
  "servers": {
    "b2c-dx-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@salesforce/b2c-dx-mcp@latest"]
    }
  }
}

See VS Code MCP setup.

Copilot CLI setup

Cursor

Reload the MCP server in Cursor after installation.

Manual MCP setup

Add this to .cursor/mcp.json in your project:

json
{
  "mcpServers": {
    "b2c-dx-mcp": {
      "command": "npx",
      "args": ["-y", "@salesforce/b2c-dx-mcp@latest"]
    }
  }
}

For all projects, use ~/.cursor/mcp.json instead.

See Cursor's MCP documentation.

OpenCode

Add this to opencode.json in your project:

json
{
  "mcp": {
    "b2c-dx-mcp": {
      "type": "local",
      "command": ["npx", "-y", "@salesforce/b2c-dx-mcp@latest"],
      "enabled": true
    }
  }
}

Restart OpenCode. For all projects, use ~/.config/opencode/opencode.json. See OpenCode MCP setup.

Gemini

From your project directory, run:

bash
gemini mcp add --scope project b2c-dx-mcp -- npx -y @salesforce/b2c-dx-mcp@latest

Start a new Gemini CLI session. Use --scope user instead for all projects. See Gemini CLI MCP setup.

No separate skills plugins needed.

Other clients and manual setup →
Skip to content
View as Markdown
View as Markdown

@salesforce/b2c-tooling-sdk / clients / createFallbackBackend

Function: createFallbackBackend()

createFallbackBackend<T>(scapi, ocapi, domainName): T

Defined in: packages/b2c-tooling-sdk/src/clients/scapi-fallback-backend.ts:107

Creates a fallback wrapper over scapi and ocapi backends.

The returned object presents the same interface as T. Method calls are intercepted: the first call tries SCAPI; on a safe fallback trigger it falls back to OCAPI. The choice is cached for the wrapper's lifetime.

Contract:

  • Both scapi and ocapi must implement T. TypeScript enforces this at the call site since both are typed as T.
  • Only methods of T are routed through the fallback logic. The name getter is special-cased to reflect the resolved backend.
  • Non-method properties are returned from the SCAPI target only and are not switched on fallback. By convention, backends should be method bags — any state beyond name should be encapsulated, not exposed.
  • Concurrency: if two calls race before resolution, both may attempt SCAPI. This is benign for read operations (idempotent retries) and acceptable for writes (both either succeed or fail with the same error). Each Proxy instance has its own state, so this concerns only shared use of a single wrapper.

Type Parameters

T

T extends BackendBase

Parameters

scapi

T

Primary (SCAPI) backend implementation

ocapi

T

Fallback (OCAPI) backend implementation

domainName

string

Used in fallback log messages, e.g. 'jobs'

Returns

T

A Proxy over scapi whose methods route through fallback logic

Example

ts
const backend = createFallbackBackend<JobsBackend>(scapiJobs, ocapiJobs, 'jobs');
await backend.executeJob('my-job'); // tries SCAPI, may fall back to OCAPI