From b2c-cli
Manage SLAS clients for Salesforce B2C Commerce (SFCC) shopper authentication using b2c CLI. Create, list, get, update clients with OAuth scopes for PWA/headless and custom API testing.
npx claudepluginhub salesforcecommercecloud/b2c-developer-tooling --plugin b2c-cliThis skill uses the workspace's default tool permissions.
Use the `b2c` CLI plugin to manage SLAS (Shopper Login and API Access Service) API clients and credentials.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Use the b2c CLI plugin to manage SLAS (Shopper Login and API Access Service) API clients and credentials.
Important: SLAS is for shopper (customer) authentication used by storefronts and headless commerce. For admin tokens (OCAPI, Admin APIs), use
b2c auth token- see b2c-config skill.
Tip: If
b2cis not installed globally, usenpx @salesforce/b2c-cliinstead (e.g.,npx @salesforce/b2c-cli slas client list).
Common scenarios requiring SLAS client management:
c_loyalty) to test your Custom API endpoints# list all SLAS clients for a tenant
b2c slas client list --tenant-id abcd_123
# list with JSON output
b2c slas client list --tenant-id abcd_123 --json
# get details for a specific SLAS client
b2c slas client get my-client-id --tenant-id abcd_123
# create a new SLAS client with default scopes (auto-generates UUID client ID)
b2c slas client create --tenant-id abcd_123 --channels RefArch --default-scopes --redirect-uri http://localhost:3000/callback
# create with a specific client ID and custom scopes
b2c slas client create my-client-id --tenant-id abcd_123 --channels RefArch --scopes sfcc.shopper-products,sfcc.shopper-search --redirect-uri http://localhost:3000/callback
# create a public client
b2c slas client create --tenant-id abcd_123 --channels RefArch --default-scopes --redirect-uri http://localhost:3000/callback --public
# create client without auto-creating tenant (if you manage tenants separately)
b2c slas client create --tenant-id abcd_123 --channels RefArch --default-scopes --redirect-uri http://localhost:3000/callback --no-create-tenant
# output as JSON (useful for capturing the generated secret)
b2c slas client create --tenant-id abcd_123 --channels RefArch --default-scopes --redirect-uri http://localhost:3000/callback --json
Note: By default, the tenant is automatically created if it doesn't exist.
Warning: Use --scopes (plural) for client scopes, NOT --auth-scope (singular). The --auth-scope flag is a global authentication option for OAuth scopes.
When testing a Custom API that requires custom scopes:
# Create a private client with custom scope for testing
# Replace c_my_scope with your API's custom scope from schema.yaml
b2c slas client create \
--tenant-id zzpq_013 \
--channels RefArch \
--default-scopes \
--scopes "c_my_scope" \
--redirect-uri http://localhost:3000/callback \
--json
# Output includes client_id and client_secret - save these for token requests
Important: The custom scope in your SLAS client must match the scope defined in your Custom API's schema.yaml security section.
Use b2c slas token to obtain a shopper access token for API testing:
# Guest token with auto-discovery (finds first public SLAS client)
b2c slas token --tenant-id abcd_123 --site-id RefArch
# Guest token with explicit client (public PKCE flow)
b2c slas token --slas-client-id my-client --tenant-id abcd_123 --short-code kv7kzm78 --site-id RefArch
# Guest token with private client (client_credentials flow)
b2c slas token --slas-client-id my-client --slas-client-secret sk_xxx --tenant-id abcd_123 --short-code kv7kzm78 --site-id RefArch
# Registered customer token
b2c slas token --tenant-id abcd_123 --site-id RefArch --shopper-login user@example.com --shopper-password secret
# JSON output (includes refresh token, expiry, usid, etc.)
b2c slas token --tenant-id abcd_123 --site-id RefArch --json
# Use token in a subsequent API call
TOKEN=$(b2c slas token --tenant-id abcd_123 --site-id RefArch)
curl -H "Authorization: Bearer $TOKEN" "https://kv7kzm78.api.commercecloud.salesforce.com/..."
The --slas-client-id and --slas-client-secret can also be set via SFCC_SLAS_CLIENT_ID and SFCC_SLAS_CLIENT_SECRET environment variables, or slasClientId and slasClientSecret in dw.json.
# update the display name
b2c slas client update my-client-id --tenant-id abcd_123 --name "New Name"
# rotate the client secret
b2c slas client update my-client-id --tenant-id abcd_123 --secret new-secret-value
# add scopes (appends to existing by default)
b2c slas client update my-client-id --tenant-id abcd_123 --scopes sfcc.shopper-baskets
# replace scopes instead of appending
b2c slas client update my-client-id --tenant-id abcd_123 --scopes sfcc.shopper-baskets --replace
# replace channels
b2c slas client update my-client-id --tenant-id abcd_123 --channels RefArch,SiteGenesis --replace
# delete a SLAS client
b2c slas client delete my-client-id --tenant-id abcd_123
The tenant ID can be set via environment variable:
SFCC_TENANT_ID: SLAS tenant ID (organization ID)See b2c slas --help for a full list of available commands and options in the slas topic.
b2c:b2c-custom-api-development - Creating Custom APIs that require SLAS authenticationb2c-cli:b2c-scapi-custom - Checking Custom API registration status