Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add forcedotcom/sf-skills --skill commerce-b2b-store-create -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/commerce-b2b-store-create/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/commerce-b2b-store-create/

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

Similar skills

Everything for Backend and APIs →

From the same set167

omnistudio-dependencies-analyze Audits OmniStudio components in Salesforce orgs, detects namespaces, and builds Mermaid dependency graphs across OmniScripts, FlexCards, and Data Mappers. CX Codex +1 4,800installs omnistudio-omniscript-generate This skill builds and validates OmniScripts for guided, multi-step processes using Integration Procedures and Data Mappers. Use it for forms with branching logic and data flow. CX Codex +1 4,800installs omnistudio-datamapper-generate A skill that builds and reviews OmniStudio Data Mapper configs: Extract, Transform, Load and Turbo Extract, scored out of 100. Useful when mapping Salesforce object fields. CX Codex +1 4,800installs dx-code-analyzer-custom-rule-create Build custom Salesforce Code Analyzer rules for Regex, PMD, and ESLint. Use it when project standards require custom pattern bans or metadata XML governance. CX Codex +1 4,800installs mobile-platform-offline-validate Audits Lightning Web Components for Komaci offline priming compatibility in Salesforce mobile apps and generates code-level fixes. CX Codex +1 4,700installs mobile-platform-native-capabilities-integrate Guides an agent through building Salesforce LWCs that use native mobile features such as scanning, location, NFC, and payments. Use it for lightning/mobileCapabilities work. CX Codex +1 4,700installs commerce-b2b-open-code-components-replace Replaces out-of-the-box B2B Commerce components with open source equivalents in site metadata content.json. Or just reports the mappings when you don't want files touched. CX Codex +1 4,600installs commerce-b2b-open-code-components-integrate Pulls Salesforce B2B Commerce open source components from GitHub into a store's site metadata so they show up in the Experience Builder palette. CX Codex +1 4,600installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor