commerce-b2b-store-create — Claude Code skill for Salesforce B2B
Walks you through creating a Commerce B2B store in Salesforce and pulls the generated storefront metadata into your repo. Useful when a storefront has to come out of an existing store.
npx skills add forcedotcom/sf-skills --skill commerce-b2b-store-create -a claude-codeWhat commerce-b2b-store-create does
The skill keeps two things apart: a Store holds backend data, a Storefront is frontend metadata. You cannot hand-write the storefront — the setup wizard produces it once the Store exists. The agent explains that split, then runs a seven-step flow and waits for your confirmation at every step.
You create the store in the Salesforce UI first: Setup → Commerce → Stores, or App Launcher → Commerce → Create Store, picking Commerce Store as the type. Spaces in the name turn into underscores and site names pick up numeric suffixes, so the agent lists real sites with sf org list metadata --metadata-type DigitalExperienceConfig --json and has you choose from those. Retrieval follows: sf project retrieve start -m DigitalExperienceBundle:site/<selected-store-name> --json. Every Salesforce CLI call carries the --json flag.
You need Salesforce CLI sf at 2.0.0 or newer and API version 56.0 or higher. With no Store in the org there is nothing to retrieve, because the wizard has not generated any storefront metadata yet.
What it helps with
- create a Commerce B2B store in a Salesforce org
- retrieve storefront metadata into the project repo
- tell a Store apart from a Storefront
- pick the right Digital Experience site among generated names
- deploy the storefront back after edits
Example prompts for the agent
- Create a B2B Commerce store in my org
- Retrieve storefront metadata for My_B2B_Store1
- List the Digital Experience sites in my org
How to install commerce-b2b-store-create
1Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill commerce-b2b-store-create -a claude-code2Manually: put the files in place
~/.claude/skills/commerce-b2b-store-create/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/commerce-b2b-store-create/
1Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill commerce-b2b-store-create -a codex2Manually: put the files in place
.agents/skills/commerce-b2b-store-create/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill commerce-b2b-store-create -a cursor2Manually: put the files in place
.cursor/skills/commerce-b2b-store-create/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install forcedotcom/sf-skills commerce-b2b-store-create2Manually: put the files in place
.github/skills/commerce-b2b-store-create/SKILL.md1Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill commerce-b2b-store-create -a gemini-cli2Platform CLI
gemini skills install https://github.com/forcedotcom/sf-skills --path skills/commerce-b2b-store-createManually: put the files in place
.devin/skills/commerce-b2b-store-create/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add forcedotcom/sf-skills --skill commerce-b2b-store-create -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about commerce-b2b-store-create
How do I install commerce-b2b-store-create in Claude Code?
Run npx skills add forcedotcom/sf-skills --skill commerce-b2b-store-create -a claude-code. The skill then lives at ~/.claude/skills/commerce-b2b-store-create/SKILL.md.
What does commerce-b2b-store-create do?
It guides you through creating a Commerce B2B store and retrieves the generated storefront metadata into your repository. It also explains how Store and Storefront relate.
Can I create storefront metadata by hand?
No. The Commerce setup wizard generates hundreds of configuration values, and manual creation fails. The Store comes first, and the storefront follows it.
Source text
SKILL.md · Apache-2.0
---
name: commerce-b2b-store-create
description: "Interactive workflow to create Commerce B2B Stores and retrieve storefront metadata. Use when users want to: create B2B Commerce stores, build Commerce storefronts, set up B2B stores from Vibes, retrieve Commerce metadata, deploy Commerce experiences, work with DigitalExperienceBundle for Commerce."
metadata:
version: "1.0"
domains: ["Commerce", "Experience"]
minApiVersion: "56.0"
cliTools:
- tool: ["sf"]
semver: ">=2.0.0"
---
# Commerce B2B Storefront Creation
Interactive workflow to create a Commerce B2B Store in Salesforce and retrieve the auto-generated storefront metadata to your repository.
## Critical Concepts
Commerce B2B = Store (backend data) + Storefront (frontend metadata). **Store must be created first** in the org to auto-generate the Storefront. Never create storefront metadata manually.
> See [Store vs Storefront Reference](references/store-vs-storefront.md)
## When to Use This Skill
Trigger when users request:
- "Create a B2B Commerce store"
- "Build a Commerce storefront"
- "Set up Commerce B2B"
- "Create B2B Commerce"
- "Retrieve Commerce storefront metadata"
- "Deploy B2B storefront"
## Rules That Always Apply
1. **Always follow the interactive flow.** Do NOT skip steps. Each step requires user confirmation before proceeding.
2. **Never create storefront metadata manually.** The Commerce setup wizard generates hundreds of configuration values. Manual creation will fail.
3. **Always list sites before retrieval.** Store names get underscores and number suffixes (e.g., "My B2B Store" → "My_B2B_Store1"). Let the user select from the actual list.
4. **Always use `--json` flag.** Include `--json` on all Salesforce CLI commands for parseable output.
## Interactive Workflow: 7 Steps
### Step 1: Explain Commerce B2B Concept
**Agent explains:** Commerce has Store (data) + Storefront (metadata). Store must be created first.
> See: [Store vs Storefront Reference](references/store-vs-storefront.md)
---
### Step 2: Guide User to Create B2B Store
**Agent provides these steps:**
1. Navigate to **Setup → Commerce → Stores**
- Or: **App Launcher → Commerce → Create Store**
2. Click **"Create Store"** or **"Setup New Store"**
3. Select **"Commerce Store"** as the store type
4. Follow the wizard:
- **Store Name**: Choose descriptive name (e.g., "My B2B Store")
- Important: Spaces become underscores in folder names
- **Site URL**: Unique URL name for the site
5. Complete wizard - it creates:
- WebStore record
- Default buyer group and entitlement policies
- Associated Digital Experience (LWR site)
6. Optional: Configure payment gateway, tax provider, shipping
**Agent then asks:**
"Have you completed creating the B2B Store in your org? Reply 'yes' when ready and provide the store name you used."
---
### Step 3: Get User Confirmation
**Agent waits for:** User confirmation and store name
**Agent validates:** Store name format (no special characters, spaces will appear as underscores)
**Agent acknowledges:** "Great! Let me list the available storefronts in your org..."
---
### Step 4: List Available LWR Sites
**Agent executes:**
```bash
sf org list metadata --metadata-type DigitalExperienceConfig --json
```
**Agent should:**
- Parse JSON output to extract site names
- Display as numbered list
- Explain naming (underscores, number suffixes)
**Example output:**
```text
Available Digital Experience sites:
1. My_B2B_Store1
2. Partner_Portal
3. Customer_Community
```
---
### Step 5: Let User Select Storefront
**Agent asks:**
"Which site corresponds to your B2B Store? Select the site name:"
**Agent validates:** Selection matches available sites
**Agent confirms:** "Got it! I'll retrieve metadata for [site-name]..."
---
### Step 6: Retrieve Storefront Metadata
**Agent executes:**
```bash
sf project retrieve start -m DigitalExperienceBundle:site/<selected-store-name> --json
```
**Agent should:**
- Show retrieval progress
- Confirm successful retrieval
- List retrieved directory structure
**Expected output:**
```text
Retrieved: force-app/main/default/digitalExperiences/site/My_B2B_Store1/
├── My_B2B_Store1.digitalExperience-meta.xml
├── sfdc_cms__view/ (home, current_cart, detail_*, list_*, etc.)
├── sfdc_cms__site/
├── sfdc_cms__route/
└── [other sfdc_cms__* directories]
```
---
### Step 7: Provide Next Steps
**Agent provides:**
**Metadata retrieved successfully!**
**Next steps:**
- Customize with custom LWCs or branding changes
- Deploy: `sf project deploy start --source-dir force-app/main/default/digitalExperiences/site/My_B2B_Store1/ --json`
**Resources:** [DigitalExperienceBundle Docs](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_digitalexperiencebundle.htm), [B2B Commerce Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_commerce_dev_guide.meta/b2b_commerce_dev_guide/)
---
## Reference
- **[store-vs-storefront.md](references/store-vs-storefront.md)** - Technical details on Store vs Storefront, source control, and why manual creation fails
---
## Remember
**Store first (creates storefront) → Retrieve → Customize**
© forcedotcom · Apache-2.0 · forcedotcom/sf-skills