@salesforce/b2c-dx-mcp 3.0.1 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/content/guidance/b2c-cli/b2c-config/SKILL.md +18 -1
- package/content/guidance/b2c-cli/b2c-docs/SKILL.md +8 -3
- package/content/guidance/b2c-cli/b2c-ecdn/SKILL.md +4 -4
- package/content/guidance/b2c-cli/b2c-ecdn/references/ADVANCED.md +21 -6
- package/content/guidance/b2c-cli/b2c-ecdn/references/SECURITY.md +4 -4
- package/content/guidance/b2c-cli/b2c-job/SKILL.md +2 -0
- package/content/guidance/b2c-cli/b2c-job/references/EXPORT.md +9 -3
- package/content/guidance/b2c-cli/b2c-job/references/IMPORT.md +12 -0
- package/content/guidance/b2c-cli/b2c-mrt/SKILL.md +5 -4
- package/content/guidance/b2c-cli/b2c-mrt/references/BUNDLE-COMMANDS.md +21 -3
- package/content/guidance/b2c-cli/b2c-mrt/references/ENVIRONMENT-COMMANDS.md +23 -0
- package/content/guidance/b2c-cli/b2c-webdav/SKILL.md +17 -0
- package/content/guidance/index.json +22 -22
- package/content/guidance/mcp/scapi/SKILL.md +46 -14
- package/dist/commands/mcp.js +1 -1
- package/dist/guidance.js +0 -2
- package/dist/registry.js +1 -1
- package/dist/server-context.d.ts +2 -0
- package/dist/server-context.js +4 -0
- package/dist/server.d.ts +2 -4
- package/dist/server.js +16 -3
- package/dist/services.d.ts +7 -5
- package/dist/services.js +19 -8
- package/dist/tools/adapter.js +1 -1
- package/dist/tools/scapi/execution-registry.d.ts +62 -0
- package/dist/tools/scapi/execution-registry.js +303 -0
- package/dist/tools/scapi/index.d.ts +2 -1
- package/dist/tools/scapi/index.js +2 -2
- package/dist/tools/scapi/scapi-code.d.ts +2 -1
- package/dist/tools/scapi/scapi-code.js +71 -34
- package/dist/utils/types.d.ts +10 -3
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CLhGwQTn.d.mts +2 -1
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-dBHMsxwf.d.cts +2 -1
- package/node_modules/@modelcontextprotocol/server/dist/mcp-D7GmuPnv.cjs +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/mcp-DXXb3Vv3.mjs +1 -1
- package/node_modules/@modelcontextprotocol/server/dist/src-CX2iR2pK.mjs +2 -0
- package/node_modules/@modelcontextprotocol/server/dist/src-STyD_Vvf.cjs +2 -0
- package/node_modules/@salesforce/b2c-agent-plugins/CHANGELOG.md +30 -0
- package/node_modules/@salesforce/b2c-agent-plugins/README.md +4 -2
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/.codex-plugin/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/.codex-plugin/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-config/SKILL.md +18 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-docs/SKILL.md +8 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/SKILL.md +4 -4
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/references/ADVANCED.md +21 -6
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/references/SECURITY.md +4 -4
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/SKILL.md +2 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/EXPORT.md +9 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/IMPORT.md +12 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-mrt/SKILL.md +5 -4
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-mrt/references/BUNDLE-COMMANDS.md +21 -3
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-mrt/references/ENVIRONMENT-COMMANDS.md +23 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-webdav/SKILL.md +17 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/.codex-plugin/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/.codex-plugin/plugin.json +41 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/README.md +35 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/assets/logo.svg +31 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/plugin.json +45 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/skills/using-b2c-tooling-sdk/SKILL.md +226 -0
- package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/skills/using-b2c-tooling-sdk/references/api-catalog.md +154 -0
- package/node_modules/@salesforce/b2c-agent-plugins/package.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/plugins.json +3 -0
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/.codex-plugin/plugin.json +1 -1
- package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/plugin.json +1 -1
- package/oclif.manifest.json +2 -2
- package/package.json +3 -3
|
@@ -15,6 +15,7 @@ These skills follow the open [Agent Skills](https://agentskills.io/home) standar
|
|
|
15
15
|
| [`b2c-ops`](./b2c-ops) | Administrator and operator runbooks — job health, checkout failures, incident triage, recovery checks, and escalation |
|
|
16
16
|
| [`storefront-next`](./storefront-next) | Storefront Next development — project setup, routing, data fetching, components, design-system component authoring, vertical/theme creation, Page Designer, authentication, hybrid storefronts, i18n, state management, extensions, performance, testing, and Managed Runtime deployment |
|
|
17
17
|
| [`storefront-next-figma`](./storefront-next-figma) | Figma design-kit workflows for Storefront Next verticals — duplicate the kit, sync Brand variables from `brand.css`, edit components at the correct layer, and publish Code Connect. **Requires the [Figma MCP server](https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Figma-MCP-server).** |
|
|
18
|
+
| [`b2c-python-sdk`](./b2c-python-sdk) | Consuming the `salesforce-b2c-tooling-sdk` Python SDK from scripts and notebooks — install/import, choose an auth mechanism, resolve config from `dw.json`, and call the OCAPI/SCAPI/WebDAV clients and operations (code deploy, jobs, sites, catalogs, sandboxes, metrics, logs, SLAS shopper tokens) |
|
|
18
19
|
|
|
19
20
|
`b2c-dx-mcp` is also published as a plugin from this repository, but it is an **MCP server plugin**, not a skills plugin — its skills are not in this directory. For installation and configuration, see the [MCP Installation Guide](../docs/mcp/installation.md) and [MCP Overview](../docs/mcp/index.md).
|
|
20
21
|
|
|
@@ -59,7 +60,8 @@ skills/
|
|
|
59
60
|
├── b2c-cli/skills/ # B2C CLI operation skills
|
|
60
61
|
├── b2c-ops/skills/ # Administrator/operator runbooks
|
|
61
62
|
├── storefront-next/skills/ # Storefront Next skills
|
|
62
|
-
|
|
63
|
+
├── storefront-next-figma/skills/ # Figma design-kit skill(s)
|
|
64
|
+
└── b2c-python-sdk/skills/ # Python tooling SDK consumer skill(s)
|
|
63
65
|
```
|
|
64
66
|
|
|
65
67
|
Plugins listed in [`plugins.json`](./plugins.json) are zipped to `<name>-skills.zip` and attached to the `b2c-agent-plugins` GitHub release; the B2C CLI downloads those artifacts for `b2c setup skills`. Adding a plugin there is all that's needed for the release workflow to package it.
|
|
@@ -70,7 +72,7 @@ Plugins listed in [`plugins.json`](./plugins.json) are zipped to `<name>-skills.
|
|
|
70
72
|
- When changing development patterns, update the relevant `b2c/skills/<topic>/SKILL.md`.
|
|
71
73
|
- Add runbooks under `b2c-ops/skills/` using the shared operational structure in
|
|
72
74
|
`.agents/skills/mcp-development/references/workflows.md`; link shipped outcomes
|
|
73
|
-
from the Operations guide. Register collections in `
|
|
75
|
+
from the Operations guide. Register collections in `packages/b2c-dx-mcp/skills/collections.json`
|
|
74
76
|
for MCP bundling and in both marketplaces for native installation.
|
|
75
77
|
- To make a new plugin installable via the B2C CLI, add it to [`plugins.json`](./plugins.json) and register a source in `packages/b2c-tooling-sdk/src/skills/sources.ts` (plus the `SkillSet` type in `types.ts`).
|
|
76
78
|
- Add a changeset targeting `@salesforce/b2c-agent-plugins` for any skill content changes.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "b2c",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.10.1",
|
|
5
5
|
"description": "B2C Commerce development skills including Custom API development guides.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Salesforce"
|
|
@@ -31,6 +31,23 @@ Sources, in resolution order (highest priority first):
|
|
|
31
31
|
|
|
32
32
|
For unexpected values, inspect resolved configuration and sources with `config_inspect` or `b2c setup inspect`.
|
|
33
33
|
|
|
34
|
+
### Storefront Next Environment Compatibility
|
|
35
|
+
|
|
36
|
+
The resolver accepts these Storefront Next variables as fallbacks, so a project
|
|
37
|
+
can reuse its existing B2C Commerce and SLAS configuration:
|
|
38
|
+
|
|
39
|
+
| Storefront Next variable | Resolved field | Default toolkit variable |
|
|
40
|
+
| -------------------------------------------- | ------------------ | ------------------------- |
|
|
41
|
+
| `PUBLIC__app__commerce__api__clientId` | `slasClientId` | `SFCC_SLAS_CLIENT_ID` |
|
|
42
|
+
| `PUBLIC__app__commerce__api__organizationId` | `tenantId` | `SFCC_TENANT_ID` |
|
|
43
|
+
| `PUBLIC__app__commerce__api__shortCode` | `shortCode` | `SFCC_SHORTCODE` |
|
|
44
|
+
| `COMMERCE_API_SLAS_SECRET` | `slasClientSecret` | `SFCC_SLAS_CLIENT_SECRET` |
|
|
45
|
+
| `PUBLIC__app__defaultSiteId` | `siteId` | `SFCC_SITE_ID` |
|
|
46
|
+
| `MRT_PROJECT` | `mrtProject` | `MRT_PROJECT` |
|
|
47
|
+
| `MRT_TARGET` | `mrtEnvironment` | `MRT_ENVIRONMENT` |
|
|
48
|
+
|
|
49
|
+
Explicit flags and default toolkit variables win over these fallbacks.
|
|
50
|
+
|
|
34
51
|
### Shared Global Default
|
|
35
52
|
|
|
36
53
|
Use a shared fallback when the same `dw.json`-format file should work across the CLI, MCP server, and B2C DX VS Code extension:
|
|
@@ -263,7 +280,7 @@ The `setup inspect` command displays configuration organized by category:
|
|
|
263
280
|
- **Managed Runtime (MRT)**: mrtProject, mrtEnvironment, mrtApiKey, mrtOrigin (if set)
|
|
264
281
|
- **Project**: configured deployment, content, and documentation defaults
|
|
265
282
|
- **Metadata**: siteId, instanceName, and projectDirectory (only shown when configured)
|
|
266
|
-
- **Safety**:
|
|
283
|
+
- **Safety**: effective level, level-based confirmation, source column, and rule count after combining instance, global-file, and environment settings (only shown when configured). `SafetyFile` identifies the global file listed in Sources; `SafetyEnv` identifies environment settings. Use `--verbose` for numbered rules in matching order with their sources, or `--json` for the complete effective safety object. Explicit confirmation rules still apply when level confirmation is disabled.
|
|
267
284
|
- **Sources**: List of all configuration sources that were loaded
|
|
268
285
|
|
|
269
286
|
Each value shows its source in brackets:
|
|
@@ -17,7 +17,7 @@ Use the `b2c` CLI to search and read B2C Commerce documentation spanning multipl
|
|
|
17
17
|
|
|
18
18
|
- **Multi-corpus search** — Search across Script API, Developer Center guides, Salesforce Help (admin + merchandising), internal tooling docs (guides, CLI reference, MCP, and VS Code extension), job steps, and schemas in a unified index
|
|
19
19
|
- **Workspace-aware search** — Auto-detects project type (cartridges, SFRA, PWA Kit, Storefront Next) and boosts relevant documentation while de-boosting competing storefront frameworks
|
|
20
|
-
- **Category filtering** — Use `--category` to narrow results to a specific corpus (e.g., `commerce-api`, `pwa-kit-managed-runtime`, `sfra`, `script-api`, `help-admin`, `help-merchant`)
|
|
20
|
+
- **Category filtering** — Use `--category` to narrow results to a specific corpus (e.g., `commerce-api`, `pwa-kit-managed-runtime`, `sfra`, `script-api`, `help-admin`, `help-merchant`, `help-kb`)
|
|
21
21
|
- **Triage metadata** — Search results include `category`, `summary`, `keywords`, and `url` to help identify the right match without reading full content
|
|
22
22
|
- **Online content with local cache** — Script API, Developer Center guides, and Salesforce Help are fetched online when you read them and cached locally (memory + on-disk, 7-day TTL) so repeat reads avoid the network; graceful offline fallback shows the summary + headings + both URLs
|
|
23
23
|
- **Content-aware ranking** — BM25-style search indexes titles, section headings, summaries, and keywords for better recall on conceptual questions
|
|
@@ -54,6 +54,9 @@ b2c docs search "site import export" --category help-admin
|
|
|
54
54
|
# Search Salesforce Help — merchandising (catalogs, promotions, search, pricing)
|
|
55
55
|
b2c docs search "price book assignment" --category help-merchant
|
|
56
56
|
|
|
57
|
+
# Search Salesforce Help Knowledge Articles — troubleshooting, known issues, how-to answers
|
|
58
|
+
b2c docs search "code upload certificate hyperforce" --category help-kb
|
|
59
|
+
|
|
57
60
|
# Search tooling documentation
|
|
58
61
|
b2c docs search "authentication setup" --category tooling
|
|
59
62
|
b2c docs search "import set" --category tooling
|
|
@@ -153,6 +156,7 @@ b2c docs read pwa-kit-managed-runtime/getting-started
|
|
|
153
156
|
# Read Salesforce Help articles by namespaced ID
|
|
154
157
|
b2c docs read help-admin/b2c_site_import_export
|
|
155
158
|
b2c docs read help-merchant/b2c_creating_price_books
|
|
159
|
+
b2c docs read help-kb/002772125
|
|
156
160
|
|
|
157
161
|
# Read tooling guides
|
|
158
162
|
b2c docs read guide-authentication
|
|
@@ -239,10 +243,11 @@ xmllint --schema "$(b2c docs schema catalog --path)" my-catalog.xml --noout
|
|
|
239
243
|
| `job-step` | Standard (system) job step catalog | `ImportCatalog`, `ExportCatalog`, `job-steps` |
|
|
240
244
|
| `help-admin` | Salesforce Help — administration/ops (import/export, jobs, replication, security, Account Manager, permissions, logs, inventory) | `help-admin/b2c_site_import_export` |
|
|
241
245
|
| `help-merchant` | Salesforce Help — merchandising (catalogs, products, promotions, search, content, analytics, SEO) | `help-merchant/b2c_creating_price_books` |
|
|
246
|
+
| `help-kb` | Salesforce Help Knowledge Articles — troubleshooting, known issues, and how-to answers (keyed by article number) | `help-kb/002772125` |
|
|
242
247
|
|
|
243
|
-
> **URLs:** All categories except `job-step` carry both `url` (human .html page) and `sourceUrl` (machine-readable .md). For `help-admin`/`help-merchant`, `url` is the live help.salesforce.com article and content is read from `sourceUrl`. `job-step` entries have neither (content is bundled inline).
|
|
248
|
+
> **URLs:** All categories except `job-step` carry both `url` (human .html page) and `sourceUrl` (machine-readable .md). For `help-admin`/`help-merchant`/`help-kb`, `url` is the live help.salesforce.com article and content is read from `sourceUrl`. `job-step` entries have neither (content is bundled inline).
|
|
244
249
|
>
|
|
245
|
-
> **Caching:** Content for the online corpora (`script-api`, the guide categories, `help-admin`/`help-merchant`, `tooling`) is fetched on `docs read` and cached locally. Use `b2c docs cache` to inspect it and `b2c docs cache --clear` to purge it (forces a re-fetch).
|
|
250
|
+
> **Caching:** Content for the online corpora (`script-api`, the guide categories, `help-admin`/`help-merchant`/`help-kb`, `tooling`) is fetched on `docs read` and cached locally. Use `b2c docs cache` to inspect it and `b2c docs cache --clear` to purge it (forces a re-fetch).
|
|
246
251
|
|
|
247
252
|
## Common Script API Classes
|
|
248
253
|
|
|
@@ -60,10 +60,10 @@ b2c ecdn cache purge --zone my-zone --tag product-123 --tag category-456
|
|
|
60
60
|
b2c ecdn certificates list --zone my-zone
|
|
61
61
|
|
|
62
62
|
# add a new certificate
|
|
63
|
-
b2c ecdn certificates add --zone my-zone --hostname www.example.com --certificate-file ./cert.pem --private-key-file ./key.pem
|
|
63
|
+
b2c ecdn certificates add --zone my-zone --hostname www.example.com --type custom --certificate-file ./cert.pem --private-key-file ./key.pem
|
|
64
64
|
|
|
65
65
|
# validate a custom hostname
|
|
66
|
-
b2c ecdn certificates validate --zone my-zone --
|
|
66
|
+
b2c ecdn certificates validate --zone my-zone --custom-hostname-id abc123
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
### Manage Rate Limiting Rules
|
|
@@ -92,7 +92,7 @@ b2c ecdn rate-limit delete --zone my-zone --rule-id 2c0fc9fa937b11eaa1b71c4d701a
|
|
|
92
92
|
b2c ecdn security get --zone my-zone
|
|
93
93
|
|
|
94
94
|
# update security settings
|
|
95
|
-
b2c ecdn security update --zone my-zone --
|
|
95
|
+
b2c ecdn security update --zone my-zone --security-level medium --always-use-https --tls13
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
### Speed Settings
|
|
@@ -102,7 +102,7 @@ b2c ecdn security update --zone my-zone --ssl-mode full --min-tls-version 1.2 --
|
|
|
102
102
|
b2c ecdn speed get --zone my-zone
|
|
103
103
|
|
|
104
104
|
# update speed settings
|
|
105
|
-
b2c ecdn speed update --zone my-zone --
|
|
105
|
+
b2c ecdn speed update --zone my-zone --brotli on --http3 on --webp on
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
## Additional Topics
|
package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/references/ADVANCED.md
CHANGED
|
@@ -41,17 +41,32 @@ b2c ecdn mrt-rules delete --zone my-zone
|
|
|
41
41
|
|
|
42
42
|
## mTLS Certificates
|
|
43
43
|
|
|
44
|
+
Code upload certificates enable two-factor (mTLS) code upload to staging instances (`_stg` tenants only). Upload a CA certificate to eCDN, then issue client certificates (`.p12`) signed by that CA for each user or pipeline. The CA private key must be kept secret (treat like a password); the CA certificate bundle must have a maximum validity of 1 year and be renewed before expiry. On Hyperforce, use the `staging-<realm>-<customer>.demandware.net` code upload hostname (not legacy `cert.staging.*`).
|
|
45
|
+
|
|
46
|
+
For the complete workflow, security guidance, and renewal instructions, see [Deploying to Hyperforce: Code Upload Certificates](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/hyperforce#code-upload-certificates).
|
|
47
|
+
|
|
44
48
|
```bash
|
|
45
|
-
#
|
|
46
|
-
b2c ecdn mtls
|
|
49
|
+
# interactive wizard: generate CA, upload, issue your client cert, update dw.json
|
|
50
|
+
b2c ecdn mtls setup
|
|
51
|
+
|
|
52
|
+
# non-interactive: generate CA + upload + issue first client cert
|
|
53
|
+
b2c ecdn mtls create --name code-upload --generate
|
|
54
|
+
b2c ecdn mtls create --name code-upload --generate --out-dir ./certs --client-name jsmith
|
|
47
55
|
|
|
48
|
-
#
|
|
49
|
-
b2c ecdn mtls create --name
|
|
56
|
+
# upload an existing CA
|
|
57
|
+
b2c ecdn mtls create --name code-upload --certificate-file ./ca.pem --private-key-file ./ca.key
|
|
58
|
+
|
|
59
|
+
# issue additional client certificates (local-only, no API call)
|
|
60
|
+
b2c ecdn mtls issue --ca-cert-file ./certs/ca.pem --ca-key-file ./certs/ca.key --name jane.doe
|
|
61
|
+
b2c ecdn mtls issue --ca-cert-file ca.pem --ca-key-file ca.key --name ci --output ci.p12 --days 90
|
|
62
|
+
|
|
63
|
+
# list uploaded CA certificates
|
|
64
|
+
b2c ecdn mtls list
|
|
50
65
|
|
|
51
|
-
# get
|
|
66
|
+
# get certificate details
|
|
52
67
|
b2c ecdn mtls get --certificate-id abc123
|
|
53
68
|
|
|
54
|
-
# delete
|
|
69
|
+
# delete a CA certificate (uploaded CA stops accepting client certs)
|
|
55
70
|
b2c ecdn mtls delete --certificate-id abc123
|
|
56
71
|
```
|
|
57
72
|
|
package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/references/SECURITY.md
CHANGED
|
@@ -33,10 +33,10 @@ b2c ecdn waf migrate --zone my-zone
|
|
|
33
33
|
b2c ecdn firewall list --zone my-zone
|
|
34
34
|
|
|
35
35
|
# create a firewall rule
|
|
36
|
-
b2c ecdn firewall create --zone my-zone --description "Block bad bots" --
|
|
36
|
+
b2c ecdn firewall create --zone my-zone --description "Block bad bots" --expression '(cf.client.bot)' --actions block
|
|
37
37
|
|
|
38
38
|
# update a firewall rule
|
|
39
|
-
b2c ecdn firewall update --zone my-zone --rule-id abc123 --
|
|
39
|
+
b2c ecdn firewall update --zone my-zone --rule-id abc123 --actions managed_challenge
|
|
40
40
|
|
|
41
41
|
# reorder firewall rules
|
|
42
42
|
b2c ecdn firewall reorder --zone my-zone --rule-ids id1,id2,id3
|
|
@@ -49,7 +49,7 @@ b2c ecdn firewall reorder --zone my-zone --rule-ids id1,id2,id3
|
|
|
49
49
|
b2c ecdn rate-limit list --zone my-zone
|
|
50
50
|
|
|
51
51
|
# create a rate limiting rule
|
|
52
|
-
b2c ecdn rate-limit create --zone my-zone --description "API rate limit" --
|
|
52
|
+
b2c ecdn rate-limit create --zone my-zone --description "API rate limit" --expression '(http.request.uri.path matches "^/api/")' --characteristics cf.unique_visitor_id --action block --period 60 --requests-per-period 100 --mitigation-timeout 600
|
|
53
53
|
|
|
54
54
|
# delete a rate limiting rule
|
|
55
55
|
b2c ecdn rate-limit delete --zone my-zone --rule-id abc123
|
|
@@ -62,7 +62,7 @@ b2c ecdn rate-limit delete --zone my-zone --rule-id abc123
|
|
|
62
62
|
b2c ecdn page-shield notifications list
|
|
63
63
|
|
|
64
64
|
# create a notification webhook
|
|
65
|
-
b2c ecdn page-shield notifications create --url https://example.com/webhook --secret my-secret --zones zone1,zone2
|
|
65
|
+
b2c ecdn page-shield notifications create --webhook-url https://example.com/webhook --secret my-secret --zones zone1,zone2
|
|
66
66
|
|
|
67
67
|
# list Page Shield policies (zone level)
|
|
68
68
|
b2c ecdn page-shield policies list --zone my-zone
|
|
@@ -39,7 +39,9 @@ Deletion removes completed execution records; it does not cancel jobs.
|
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
41
|
b2c job import ./archive --show-log
|
|
42
|
+
b2c job import ./storefront-export.zip --wait-for-storefront
|
|
42
43
|
b2c job export --site MySite --site-data campaigns_and_promotions --output ./export
|
|
44
|
+
b2c job export --storefront my-storefront --output ./export
|
|
43
45
|
```
|
|
44
46
|
|
|
45
47
|
Import/export wait by default and transfer files over WebDAV. Jobs prefer SCAPI
|
package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/EXPORT.md
CHANGED
|
@@ -39,6 +39,9 @@ b2c job export --site RefArch
|
|
|
39
39
|
# export a site with specific site data units
|
|
40
40
|
b2c job export --site RefArch --site-data content,site_preferences
|
|
41
41
|
|
|
42
|
+
# export one composable storefront by storefront name
|
|
43
|
+
b2c job export --storefront my-storefront
|
|
44
|
+
|
|
42
45
|
# export multiple sites
|
|
43
46
|
b2c job export --site RefArch --site SiteGenesis --site-data campaigns_and_promotions
|
|
44
47
|
|
|
@@ -98,6 +101,7 @@ Do not require a temporary directory and copy step for export-based migrations.
|
|
|
98
101
|
| Flag | Description |
|
|
99
102
|
| ------------------ | ------------------------------------------------------------------------------ |
|
|
100
103
|
| `--site` | Site IDs to export (use `--site-data` to pick specific units, defaults to all) |
|
|
104
|
+
| `--storefront` | One composable storefront name |
|
|
101
105
|
| `--catalog` | Catalog IDs |
|
|
102
106
|
| `--library` | Library IDs |
|
|
103
107
|
| `--inventory-list` | Inventory list IDs |
|
|
@@ -106,10 +110,12 @@ Do not require a temporary directory and copy step for export-based migrations.
|
|
|
106
110
|
|
|
107
111
|
**Site data units** (use with `--site-data`):
|
|
108
112
|
|
|
109
|
-
`ab_tests`, `active_data_feeds`, `all`, `cache_settings`, `campaigns_and_promotions`, `content`, `coupons`, `custom_objects`, `customer_cdn_settings`, `customer_groups`, `distributed_commerce_extensions`, `dynamic_file_resources`, `gift_certificates`, `ocapi_settings`, `payment_methods`, `payment_processors`, `redirect_urls`, `search_settings`, `shipping`, `site_descriptor`, `site_preferences`, `sitemap_settings`, `slots`, `sorting_rules`, `source_codes`, `static_dynamic_alias_mappings`, `stores`, `tax`, `url_rules`
|
|
113
|
+
`ab_tests`, `active_data_feeds`, `all`, `cache_settings`, `campaigns_and_promotions`, `channels`, `commerce_feature_states`, `content`, `coupons`, `custom_objects`, `customer_cdn_settings`, `customer_groups`, `distributed_commerce_extensions`, `dynamic_file_resources`, `gift_certificates`, `ocapi_settings`, `payment_methods`, `payment_processors`, `point_of_sale_channels`, `redirect_urls`, `search_settings`, `shipping`, `site_descriptor`, `site_preferences`, `sitemap_settings`, `slots`, `sorting_rules`, `source_codes`, `static_dynamic_alias_mappings`, `stores`, `tax`, `url_rules`
|
|
110
114
|
|
|
111
115
|
**Global data units** (use with `--global-data`):
|
|
112
116
|
|
|
113
|
-
`access_roles`, `all`, `csc_settings`, `csrf_whitelists`, `custom_preference_groups`, `custom_quota_settings`, `custom_types`, `geolocations`, `global_custom_objects`, `job_schedules`, `job_schedules_deprecated`, `locales`, `meta_data`, `oauth_providers`, `ocapi_settings`, `page_meta_tags`, `preferences`, `price_adjustment_limits`, `services`, `sorting_rules`, `static_resources`, `system_type_definitions`, `users`, `webdav_client_permissions`
|
|
117
|
+
`access_roles`, `all`, `csc_settings`, `csrf_whitelists`, `custom_preference_groups`, `custom_quota_settings`, `custom_types`, `event_routing`, `geolocations`, `global_custom_objects`, `job_schedules`, `job_schedules_deprecated`, `locales`, `meta_data`, `oauth_providers`, `ocapi_settings`, `page_meta_tags`, `preferences`, `price_adjustment_limits`, `services`, `sorting_rules`, `static_resources`, `system_type_definitions`, `users`, `webdav_client_permissions`
|
|
118
|
+
|
|
119
|
+
For full control over the export configuration (including `assignments`, `catalog_static_resources`, `library_static_resources`, and `customer_lists`), use `--data-units` with a JSON string matching the `ExportDataUnitsConfiguration` shape. The `storefronts` object is keyed by storefront name and may select only one storefront.
|
|
114
120
|
|
|
115
|
-
|
|
121
|
+
The `storefronts` export data unit requires B2C Commerce 26.10 or later. Failed storefront exports include a version note alongside the original error; check the instance version when the server rejects this data unit.
|
package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/IMPORT.md
CHANGED
|
@@ -23,12 +23,24 @@ b2c job import existing-archive.zip --remote
|
|
|
23
23
|
# show job log on failure
|
|
24
24
|
b2c job import ./my-site-data --show-log
|
|
25
25
|
|
|
26
|
+
# wait for Storefront Next post-import setup after the archive import succeeds
|
|
27
|
+
b2c job import ./storefront-export.zip --wait-for-storefront
|
|
28
|
+
|
|
26
29
|
# import only a subset of a directory (extra positionals are paths/globs
|
|
27
30
|
# resolved against the directory; preserves layout inside the archive)
|
|
28
31
|
b2c job import ./my-site-data sites/RefArch libraries/mylib
|
|
29
32
|
b2c job import ./my-site-data 'libraries/**'
|
|
30
33
|
```
|
|
31
34
|
|
|
35
|
+
`--wait-for-storefront` snapshots existing setup-job executions before import,
|
|
36
|
+
waits for the archive import to succeed, and then polls briefly for the newly
|
|
37
|
+
triggered `sfcc-post-import-setup-storefront` execution before waiting for it to
|
|
38
|
+
finish. It cannot be combined with `--no-wait`. If no new setup execution appears
|
|
39
|
+
within 60 seconds, the CLI checks available import logs and includes `[DATAERROR]`
|
|
40
|
+
entries in the timeout error. Logs are downloaded for this diagnostic only on
|
|
41
|
+
discovery timeout. Resolve any reported data errors before retrying; if logs are
|
|
42
|
+
unavailable or contain no data errors, inspect the import contents and recent job executions.
|
|
43
|
+
|
|
32
44
|
### Import Sets
|
|
33
45
|
|
|
34
46
|
`job import-set` first applies site import/export archives from discovered cartridge `metadata/` sources, then applies archives in `./migrations`, and skips archives already recorded on the target instance:
|
|
@@ -17,15 +17,16 @@ Run `b2c setup inspect` to see the resolved configuration and which source provi
|
|
|
17
17
|
|
|
18
18
|
### MRT Backends (legacy vs SCAPI)
|
|
19
19
|
|
|
20
|
-
Most MRT commands run against the legacy MRT Cloud API (API key).
|
|
20
|
+
Most MRT commands run against the legacy MRT Cloud API (API key). Several commands can also run over the SCAPI MRT backend: `mrt bundle history`, `mrt bundle list`, `mrt bundle deploy` (both the local-build push and deploying an existing `<bundleId>`), and the `mrt env var` family (`list` / `set` / `push` / `delete`). Choose with `--mrt-backend` (`MRT_BACKEND` / `SFCC_MRT_BACKEND`, or `mrtBackend` in `dw.json`):
|
|
21
21
|
|
|
22
|
-
- `auto` (default) — use SCAPI when it's configured (`--short-code` + `--tenant-id` + client-credentials or JWT Bearer auth
|
|
22
|
+
- `auto` (default) — use SCAPI when it's configured (`--short-code` + `--tenant-id` + client-credentials or JWT Bearer auth), otherwise legacy. Falls back to legacy on safe pre-execution errors. Each command requests its own scopes: bundle commands use `sfcc.storefront.deployments[.rw]`; env var commands use `sfcc.storefront.environments[.rw]` (reads accept either tier, writes require `.rw`).
|
|
23
23
|
- `legacy` — always the MRT Cloud API.
|
|
24
|
-
- `scapi` — always SCAPI, with no fallback; errors if prerequisites are missing. Also errors on unsupported commands
|
|
24
|
+
- `scapi` — always SCAPI, with no fallback; errors if prerequisites are missing. Also errors on unsupported commands (every MRT command except the bundle and env var commands above).
|
|
25
25
|
|
|
26
26
|
Notes:
|
|
27
27
|
|
|
28
|
-
- Under `--json`, these commands emit the **serving backend's native shape** (legacy `{count, next, previous, deployments}` vs SCAPI `{limit, offset, total, data}`). The human table is normalized; `--json` is not. Pin `legacy` or `scapi` when a script needs a stable shape.
|
|
28
|
+
- Under `--json`, these commands emit the **serving backend's native shape** (e.g. `bundle history` is legacy `{count, next, previous, deployments}` vs SCAPI `{limit, offset, total, data}`; `env var list` is legacy `{count, variables}` vs the SCAPI native environment-variables map). The human table is normalized; `--json` is not. Pin `legacy` or `scapi` when a script needs a stable shape.
|
|
29
|
+
- Env vars over SCAPI use the Storefront Environments API. `set` and `delete` apply a merge-PATCH (only the keys you pass change; `delete` sends the key with a `null` value); values are always masked by both backends. `push` resolves the backend once from its initial read and pins every write to it, so a single `push` never crosses backends.
|
|
29
30
|
- Legacy-only flags (`--api-key`, `--cloud-origin` / `-u`, `--credentials-file` / `-c`) are ignored — with a warning — when SCAPI serves the request.
|
|
30
31
|
- `--storefront` (long) and `-s` (short) are aliases of `--project` / `-p` — the SCAPI storefront ID is the project slug, so all four are interchangeable on every `mrt` command. On `mrt project create` this flag sets the new project's slug (auto-generated from the name if omitted); `mrt bundle save` uses `-d` for `--save-dir`, keeping `-s` free for the storefront alias.
|
|
31
32
|
|
|
@@ -31,11 +31,22 @@ b2c mrt bundle deploy -p my-storefront --ssr-param SSRProxyPath=/api
|
|
|
31
31
|
b2c mrt bundle deploy -p my-storefront \
|
|
32
32
|
--ssr-param SSRProxyPath=/api \
|
|
33
33
|
--ssr-param SSRTimeout=30000
|
|
34
|
+
|
|
35
|
+
# Push a local build and deploy it via the SCAPI backend
|
|
36
|
+
b2c mrt bundle deploy -p my-storefront -e staging --mrt-backend scapi
|
|
37
|
+
|
|
38
|
+
# Push via SCAPI with a custom v2 archive layout
|
|
39
|
+
b2c mrt bundle deploy -p my-storefront --mrt-backend scapi --root-dir bld --match-mode ignore_missing
|
|
40
|
+
|
|
41
|
+
# Push via the legacy v2 endpoint (opt in with --v2)
|
|
42
|
+
b2c mrt bundle deploy -p my-storefront --mrt-backend legacy --v2 --match-mode ignore_missing
|
|
34
43
|
```
|
|
35
44
|
|
|
45
|
+
**Bundle format:** SCAPI always uploads the v2 format. The legacy backend defaults to v1; pass `--v2` to upload through the legacy v2 endpoint (upload, plus a separate deploy when `-e` is given). `--root-dir`, `--config-path`, and `--match-mode` control the v2 archive layout and only take effect on a v2 upload — on a legacy v1 push they are ignored and the command warns (pass `--v2` to enable them). `b2c mrt bundle deploy --v2` performs the same v2 upload as `b2c mrt bundle upload-v2` and can also deploy in one step.
|
|
46
|
+
|
|
36
47
|
### Deploy Existing Bundle
|
|
37
48
|
|
|
38
|
-
|
|
49
|
+
Both the local-build push and deploying an existing bundle (with a bundle ID) are backend-aware — they honor `--mrt-backend` (`auto` / `legacy` / `scapi`). For a local-build push under `auto`, a safe SCAPI upload failure falls back to legacy, but once the bundle is uploaded a later deploy failure is not retried on legacy (so a bundle is never uploaded twice). See the "MRT Backends" section in the skill overview.
|
|
39
50
|
|
|
40
51
|
```bash
|
|
41
52
|
# Deploy existing bundle by ID
|
|
@@ -55,6 +66,10 @@ b2c mrt bundle deploy 12345 -p my-storefront -e production --mrt-backend scapi -
|
|
|
55
66
|
| `--build-dir`, `-b` | Path to build directory | `build` |
|
|
56
67
|
| `--ssr-only` | Server-only file patterns | `ssr.js,ssr.mjs,server/**/*` |
|
|
57
68
|
| `--ssr-shared` | Shared file patterns | `static/**/*,client/**/*` |
|
|
69
|
+
| `--v2` | Use the v2 bundle format/endpoint (SCAPI always uses v2; opt in on legacy) | `false` |
|
|
70
|
+
| `--root-dir` | Archive path prefix for built files and the config file (v2 uploads only) | `bld` |
|
|
71
|
+
| `--config-path` | In-archive config file path, relative to `--root-dir` (v2 uploads only) | `.mrt/config.json` |
|
|
72
|
+
| `--match-mode` | Handling of SSR patterns matching no files — `strict` or `ignore_missing` (v2 uploads only) | `strict` |
|
|
58
73
|
| `--node-version`, `-n` | Node.js version for SSR | `24.x` |
|
|
59
74
|
| `--ssr-param` | SSR parameters (key=value, can repeat) | |
|
|
60
75
|
|
|
@@ -102,16 +117,19 @@ b2c mrt bundle upload-v2 -p my-storefront --dependencies @./deps.json --cc-overr
|
|
|
102
117
|
|
|
103
118
|
## Bundle List
|
|
104
119
|
|
|
105
|
-
List bundles in a project.
|
|
120
|
+
List bundles in a project. Backend-aware (`--mrt-backend`); under `--json` it returns the serving backend's native response verbatim (legacy vs SCAPI shapes differ).
|
|
106
121
|
|
|
107
122
|
```bash
|
|
108
123
|
b2c mrt bundle list --project my-storefront
|
|
109
124
|
b2c mrt bundle list -p my-storefront --limit 10
|
|
110
125
|
b2c mrt bundle list -p my-storefront --offset 20
|
|
111
126
|
b2c mrt bundle list -p my-storefront --json
|
|
127
|
+
|
|
128
|
+
# Force the SCAPI backend
|
|
129
|
+
b2c mrt bundle list -p my-storefront --mrt-backend scapi
|
|
112
130
|
```
|
|
113
131
|
|
|
114
|
-
**Output columns:** Bundle ID, Message, Status, Created
|
|
132
|
+
**Output columns:** Bundle ID, Message, Status, User, Created
|
|
115
133
|
|
|
116
134
|
## Bundle History
|
|
117
135
|
|
|
@@ -110,11 +110,16 @@ b2c mrt env b2c -p my-storefront -e production --clear-sites
|
|
|
110
110
|
|
|
111
111
|
## Environment Variables
|
|
112
112
|
|
|
113
|
+
The `mrt env var` commands (`list` / `set` / `push` / `delete`) are backend-aware: they honor `--mrt-backend` (`auto` / `legacy` / `scapi`) and, over SCAPI, use the Storefront Environments API (scopes `sfcc.storefront.environments` for reads, `sfcc.storefront.environments.rw` for writes). See the [MRT Backends](../SKILL.md#mrt-backends-legacy-vs-scapi) section for backend selection. Values are always masked by both backends. `set` and `delete` apply a merge-PATCH — only the keys you pass change (`delete` sends the key with a `null` value); other variables are preserved. Under `--json`, each command returns the serving backend's native shape.
|
|
114
|
+
|
|
113
115
|
### List Variables
|
|
114
116
|
|
|
115
117
|
```bash
|
|
116
118
|
b2c mrt env var list --project my-storefront --environment production
|
|
117
119
|
b2c mrt env var list -p my-storefront -e staging --json
|
|
120
|
+
|
|
121
|
+
# Force the SCAPI backend
|
|
122
|
+
b2c mrt env var list -p my-storefront -e staging --mrt-backend scapi
|
|
118
123
|
```
|
|
119
124
|
|
|
120
125
|
### Set Variables
|
|
@@ -130,6 +135,9 @@ b2c mrt env var set API_KEY=secret DEBUG=true FEATURE_FLAG=enabled \
|
|
|
130
135
|
# Value with spaces (use quotes)
|
|
131
136
|
b2c mrt env var set "MESSAGE=hello world" -p my-storefront -e production
|
|
132
137
|
|
|
138
|
+
# Force the SCAPI backend
|
|
139
|
+
b2c mrt env var set API_KEY=secret -p my-storefront -e staging --mrt-backend scapi
|
|
140
|
+
|
|
133
141
|
# Using environment variables for auth
|
|
134
142
|
export MRT_API_KEY=your-api-key
|
|
135
143
|
export MRT_PROJECT=my-storefront
|
|
@@ -137,10 +145,25 @@ export MRT_ENVIRONMENT=staging
|
|
|
137
145
|
b2c mrt env var set MY_VAR=value
|
|
138
146
|
```
|
|
139
147
|
|
|
148
|
+
### Push Variables from a .env File
|
|
149
|
+
|
|
150
|
+
Diff a local `.env` file against the remote environment and apply the additions/updates (remote-only variables are not deleted). `push` resolves the backend once from its initial read and pins every write to it; over SCAPI the changes are applied as a single merge-PATCH.
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Push ./.env, with confirmation prompt
|
|
154
|
+
b2c mrt env var push -p my-storefront -e production
|
|
155
|
+
|
|
156
|
+
# Push a custom file, skipping confirmation, over SCAPI
|
|
157
|
+
b2c mrt env var push -p my-storefront -e staging --file config/.env --yes --mrt-backend scapi
|
|
158
|
+
```
|
|
159
|
+
|
|
140
160
|
### Delete Variable
|
|
141
161
|
|
|
142
162
|
```bash
|
|
143
163
|
b2c mrt env var delete MY_VAR -p my-storefront -e production
|
|
164
|
+
|
|
165
|
+
# Force the SCAPI backend
|
|
166
|
+
b2c mrt env var delete MY_VAR -p my-storefront -e production --mrt-backend scapi
|
|
144
167
|
```
|
|
145
168
|
|
|
146
169
|
## URL Redirects
|
|
@@ -37,11 +37,28 @@ The `--root` flag specifies the WebDAV directory:
|
|
|
37
37
|
- `catalogs` - Product catalogs
|
|
38
38
|
- `libraries` - Content libraries
|
|
39
39
|
- `static` - Static resources
|
|
40
|
+
- `dynamic` - Site-specific files, including Velocity templates
|
|
40
41
|
- `logs` - Application logs
|
|
41
42
|
- `securitylogs` - Security logs
|
|
42
43
|
|
|
43
44
|
## Examples
|
|
44
45
|
|
|
46
|
+
### Dynamic Site Files
|
|
47
|
+
|
|
48
|
+
Use `--root=dynamic` with the site ID as the first remote path segment. For example,
|
|
49
|
+
`MySite/mockData/mock.vm` resolves to `Sites/Dynamic/MySite/mockData/mock.vm`.
|
|
50
|
+
This location holds site-specific files independently of code versions, including
|
|
51
|
+
Velocity templates used by `dw.template.Velocity.renderTemplate()`.
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
b2c webdav ls --root=dynamic MySite/
|
|
55
|
+
b2c webdav mkdir --root=dynamic MySite/mockData
|
|
56
|
+
b2c webdav put --root=dynamic ./mock.vm MySite/mockData/
|
|
57
|
+
b2c webdav get --root=dynamic MySite/mockData/mock.vm -o ./mock.vm
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The same root and site-prefixed paths work with `rm`, `zip`, and `unzip`.
|
|
61
|
+
|
|
45
62
|
### List Files
|
|
46
63
|
|
|
47
64
|
```bash
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "b2c-ops",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.10.1",
|
|
5
5
|
"description": "B2C Commerce operator and administrator runbooks for job health, checkout and failed orders, and incident triage.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Salesforce"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "b2c-python-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Consuming the salesforce-b2c-tooling-sdk Python SDK — authenticate to B2C Commerce, resolve dw.json config, and call OCAPI/SCAPI/WebDAV clients and operations from scripts or notebooks.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Salesforce"
|
|
7
|
+
},
|
|
8
|
+
"homepage": "https://salesforcecommercecloud.github.io/b2c-developer-tooling/",
|
|
9
|
+
"repository": "https://github.com/SalesforceCommerceCloud/b2c-developer-tooling",
|
|
10
|
+
"license": "Apache-2.0",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"salesforce",
|
|
13
|
+
"b2c-commerce",
|
|
14
|
+
"commerce-cloud",
|
|
15
|
+
"python",
|
|
16
|
+
"sdk",
|
|
17
|
+
"scapi",
|
|
18
|
+
"ocapi"
|
|
19
|
+
],
|
|
20
|
+
"skills": "./skills/",
|
|
21
|
+
"interface": {
|
|
22
|
+
"displayName": "B2C Python SDK",
|
|
23
|
+
"shortDescription": "Use the Salesforce B2C Commerce Python tooling SDK from your AI assistant.",
|
|
24
|
+
"longDescription": "Skills for consuming the salesforce-b2c-tooling-sdk Python SDK from scripts and Jupyter notebooks — install and import it, choose an authentication mechanism, resolve config from dw.json, and call the OCAPI/SCAPI/WebDAV clients and higher-level operations (code deploy, jobs, sites, catalogs, sandboxes, metrics, logs, SLAS shopper tokens).",
|
|
25
|
+
"developerName": "Salesforce",
|
|
26
|
+
"category": "Productivity",
|
|
27
|
+
"capabilities": [
|
|
28
|
+
"Read"
|
|
29
|
+
],
|
|
30
|
+
"logo": "./assets/logo.svg",
|
|
31
|
+
"composerIcon": "./assets/logo.svg",
|
|
32
|
+
"brandColor": "#0D9DDA",
|
|
33
|
+
"websiteURL": "https://salesforcecommercecloud.github.io/b2c-developer-tooling/",
|
|
34
|
+
"defaultPrompt": [
|
|
35
|
+
"Write a Python script that deploys the cartridges in ./cartridges using the B2C tooling SDK",
|
|
36
|
+
"Use the Python SDK to authenticate from my dw.json and run a job",
|
|
37
|
+
"Show me how to mint a SLAS guest shopper token with the Python SDK",
|
|
38
|
+
"Read the latest error logs from my instance with the Python tooling SDK"
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# b2c-python-sdk
|
|
2
|
+
|
|
3
|
+
Agent skills for **consuming** the [`salesforce-b2c-tooling-sdk`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/tree/main/python/b2c-tooling-sdk) Python SDK — authenticate to a Salesforce B2C Commerce instance, resolve config from `dw.json`, and call the OCAPI/SCAPI/WebDAV clients and higher-level operations from Python scripts and Jupyter notebooks.
|
|
4
|
+
|
|
5
|
+
> This plugin is for developers **writing Python code against the SDK**. To *develop the SDK itself*, see the SDK's own `python/b2c-tooling-sdk/CLAUDE.md`. To drive the B2C **CLI**, use the `b2c-cli` plugin instead.
|
|
6
|
+
|
|
7
|
+
Part of the [B2C Developer Tooling](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling) marketplace.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Claude Code
|
|
13
|
+
claude plugin marketplace add SalesforceCommerceCloud/b2c-developer-tooling
|
|
14
|
+
claude plugin install b2c-python-sdk@b2c-developer-tooling
|
|
15
|
+
|
|
16
|
+
# GitHub Copilot CLI
|
|
17
|
+
copilot plugin marketplace add SalesforceCommerceCloud/b2c-developer-tooling
|
|
18
|
+
copilot plugin install b2c-python-sdk@b2c-developer-tooling
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**VS Code (GitHub Copilot):** Command Palette → **Chat: Install Plugin From Source** → enter the repo `SalesforceCommerceCloud/b2c-developer-tooling`.
|
|
22
|
+
|
|
23
|
+
**Codex:** open the repo as a workspace, restart Codex, then install from the **B2C Developer Tooling** marketplace in the plugin directory.
|
|
24
|
+
|
|
25
|
+
For file-copy install to any supported IDE, use `b2c setup skills b2c-python-sdk`. See the [install guide](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/agent-skills) for details.
|
|
26
|
+
|
|
27
|
+
## What's included
|
|
28
|
+
|
|
29
|
+
- **`using-b2c-tooling-sdk`** — installing and importing the SDK, choosing between the async and sync facades, picking an authentication mechanism, resolving config from `dw.json`, the operations-vs-clients error contract, and minting SLAS shopper tokens. Includes a full symbol catalog in [`references/api-catalog.md`](./skills/using-b2c-tooling-sdk/references/api-catalog.md).
|
|
30
|
+
|
|
31
|
+
See [`skills/`](./skills/) for the full list.
|
|
32
|
+
|
|
33
|
+
## License
|
|
34
|
+
|
|
35
|
+
Apache-2.0. See the [repo LICENSE](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/main/LICENSE.txt).
|