@W-21274365 Add instructions to create commerce b2b store from vibes (#22)

* Add instructions to create commerce b2b store from vibes

* update rule and sf commands

* Refactor Commerce B2B skill: rename and flatten directory structure

- Rename skill from create-b2b-commerce-storefront to creating-b2b-commerce-store to better reflect what users actually create (the Store, not the Storefront)
- Flatten directory from skills/commerce/create-b2b-commerce-storefront/ to skills/creating-b2b-commerce-store/ to match repository pattern
- Remove old prompts and rules consolidated into skill
- Remove Commerce prompt and rule entries from manifest.json (consolidated into skill)
This commit is contained in:
nkurapati-sfdx 2026-03-27 18:24:35 +05:30 committed by GitHub
parent 569ad46f10
commit c1cfb9f672
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 338 additions and 0 deletions

View File

@ -0,0 +1,169 @@
---
name: creating-b2b-commerce-store
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."
Critical: "Agents must follow the interactive flow and NEVER create storefront metadata from scratch."
license: Apache-2.0
compatibility: "Requires Commerce licenses, Experience Cloud, Salesforce CLI"
metadata:
version: "1.0"
category: "commerce"
---
# 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:**
```
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:**
```
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**

View File

@ -0,0 +1,169 @@
# Commerce Store vs Storefront: Technical Reference
## Overview
Understanding the distinction between Commerce Store and Storefront is critical for successful Commerce B2B development. This document provides technical details about these two components and explains why they must be created in a specific order.
---
## The Two Components
### 1. Commerce Store (Backend Data)
**What it is:**
- Runtime data and configuration created in the Salesforce org
- NOT source-controllable metadata
- Created through Commerce app UI
**What it includes:**
- Store configuration and settings
- Default buyer groups (associated with Accounts)
- Entitlement policies (who can see which products)
- Pricing policies and price book mappings
- Payment gateway configuration (Stripe, Adyen, etc.)
- Tax provider configuration (Avalara, Vertex, manual)
- Shipping methods and configurations
- Product catalog associations
- Inventory locations
- Search index configurations
**Where it lives:**
- Data records in standard Commerce objects:
- `WebStore` - Store settings and configuration
- `BuyerGroup` - Account-based buyer segments
- `EntitlementPolicy` - Product visibility rules
- `CommerceEntitlementProduct` - Product-policy associations
- `ProductCatalog` - Catalog definitions
- `Pricebook2` - Price books
- Additional payment, tax, shipping records
**How to create:**
- Via UI: Setup → Commerce → Stores
- Cannot be created via Metadata API
- Cannot be deployed via `sf project deploy`
---
### 2. Storefront (Frontend Metadata)
**What it is:**
- Digital Experience (LWR site) for buyer-facing shopping experience
- Source-controllable as ExperienceBundle metadata
- Created automatically when you create a Commerce Store
**What it includes:**
- ExperienceBundle metadata (`StorefrontName.digitalExperience-meta.xml`)
- URL routing configuration (`sfdc_cms__route`)
- Page definitions (`sfdc_cms__view`)
- Homepage
- Product List Pages (PLP)
- Product Detail Pages (PDP)
- Shopping cart
- Checkout flow
- Order confirmation
- Search results
- Lightning Web Components (product cards, cart components, checkout)
- Branding and theme configuration (`sfdc_cms__brandingSet`, `sfdc_cms__theme`)
- Page layouts (`sfdc_cms__themeLayout`)
- Navigation structure
- Custom LWCs for extensions
**Where it lives:**
- `force-app/main/default/digitalExperiences/site/StorefrontName/`
- Example: `force-app/main/default/digitalExperiences/site/My_B2B_Store1/`
**How to create:**
- Automatically generated by Commerce Store setup wizard
- Retrieved from org using Salesforce CLI
- Cannot be manually created from scratch
**How to deploy:**
- Retrievable: `sf project retrieve start -m DigitalExperienceBundle:site/<name>`
- Deployable: `sf project deploy start -m DigitalExperienceBundle`
- Source-controllable in Git
---
## Why You Cannot Create Storefront Metadata from Scratch
### Technical Reasons
1. **Complex Dependency Chain**
- Create merchandisers store
- Create DigitalExperienceBundle
- Integrate both together
2. **Hundreds of Auto-Generated Configurations**
- Component IDs and region IDs (UUIDs)
- WebStore associations
- Commerce-managed component configurations
- Default routing rules
- Search configurations
- Cart and checkout flow definitions
- Payment integration settings
3. **Commerce-Managed Components**
- Product List Page (PLP) components
- Product Detail Page (PDP) components
- Cart components
- Checkout components
- Search components
- These require specific configurations from Store data
4. **Metadata API Limitation**
- Metadata API deploys metadata types (Apex, LWCs, objects)
- Metadata API CANNOT create SObject data (WebStore records)
- Store creation requires data operations, not metadata operations
---
## The Required Creation Order
### Step 1: Create Commerce Store (Must Be First)
```
User Interface (Commerce App)
WebStore Record Created
BuyerGroup Records Created
EntitlementPolicy Records Created
Digital Experience Auto-Generated
Commerce Components Configured
```
**Why this must be first:**
- Generates WebStore record with unique ID
- Creates default configurations
- Auto-generates associated Digital Experience
- Configures Commerce component relationships
- Sets up default buyer access rules
### Step 2: Retrieve Storefront Metadata
```
sf org list metadata --metadata-type DigitalExperienceConfig
Select Store from List
sf project retrieve start -m DigitalExperienceBundle:site/<name>
Metadata Saved to Local Repository
Now Editable and Source-Controllable
```
---
## Key Takeaway
**Commerce B2B = Store (data) + Storefront (metadata)**
1. Create Store → generates Storefront
2. Retrieve Storefront → customize and version control if needed
3. Deploy Storefront → only after creating Store in target org
**Never skip the Store creation. Never create Storefront metadata from scratch.**