Skip to content

@salesforce/b2c-tooling-sdk / instance / B2CInstance

Class: B2CInstance

Defined in: packages/b2c-tooling-sdk/src/instance/index.ts:109

Represents a connection to a B2C Commerce instance.

Provides lazy-loaded, typed API clients for WebDAV and OCAPI operations. Authentication is handled automatically based on the configured credentials.

Example

ts
// From environment configuration
const instance = B2CInstance.fromEnvironment({
  clientSecret: process.env.SFCC_CLIENT_SECRET,
});

// WebDAV uses Basic auth if available, falls back to OAuth
await instance.webdav.mkcol('Cartridges/v1');

// OCAPI always uses OAuth
const { data } = await instance.ocapi.GET('/sites', {});

Constructors

Constructor

new B2CInstance(config, auth): B2CInstance

Defined in: packages/b2c-tooling-sdk/src/instance/index.ts:189

Creates a new B2CInstance.

Parameters

config

InstanceConfig

Instance configuration (hostname, code version)

auth

AuthConfig

Authentication configuration

Returns

B2CInstance

Properties

auth

readonly auth: AuthConfig

Defined in: packages/b2c-tooling-sdk/src/instance/index.ts:191

Authentication configuration


config

readonly config: InstanceConfig

Defined in: packages/b2c-tooling-sdk/src/instance/index.ts:190

Instance configuration (hostname, code version)

Accessors

ocapi

Get Signature

get ocapi(): OcapiClient

Defined in: packages/b2c-tooling-sdk/src/instance/index.ts:233

OCAPI Data API client.

Returns the openapi-fetch client directly with full type safety. Always uses OAuth authentication.

Example
ts
const { data, error } = await instance.ocapi.GET('/sites', {});
const { data, error } = await instance.ocapi.PATCH('/code_versions/{code_version_id}', {
  params: { path: { code_version_id: 'v1' } },
  body: { active: true }
});
Returns

OcapiClient


webdav

Get Signature

get webdav(): WebDavClient

Defined in: packages/b2c-tooling-sdk/src/instance/index.ts:213

WebDAV client for file operations.

Uses Basic auth if username/password are configured, otherwise falls back to OAuth.

Example
ts
await instance.webdav.mkcol('Cartridges/v1');
await instance.webdav.put('Cartridges/v1/app.zip', content);
const entries = await instance.webdav.propfind('Cartridges');
Returns

WebDavClient


webdavHostname

Get Signature

get webdavHostname(): string

Defined in: packages/b2c-tooling-sdk/src/instance/index.ts:198

The hostname to use for WebDAV operations. Falls back to main hostname if not specified.

Returns

string

Methods

fromEnvironment()

static fromEnvironment(options): B2CInstance

Defined in: packages/b2c-tooling-sdk/src/instance/index.ts:135

Creates a B2CInstance from environment configuration files with optional overrides.

Searches upward from the current directory for configuration files (dw.json, etc.), then applies any provided overrides.

Parameters

options

FromEnvironmentOptions = {}

Loading options and overrides

Returns

B2CInstance

Configured B2CInstance

Throws

Error if no configuration found or required configuration missing

Example

ts
// Auto-find configuration, override secrets
const instance = B2CInstance.fromEnvironment({
  clientId: process.env.SFCC_CLIENT_ID,
  clientSecret: process.env.SFCC_CLIENT_SECRET,
});

// Use named instance
const instance = B2CInstance.fromEnvironment({
  instance: 'staging',
});

All rights reserved.