mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-08-03 21:56:02 +08:00
update rule and sf commands
This commit is contained in:
parent
7a6b28633d
commit
ec6fc8b77f
@ -53,21 +53,22 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Retrieve Commerce Storefront Metadata",
|
"name": "Create and Retrieve B2B Commerce Storefront",
|
||||||
"path": "prompts/commerce/retrieve-commerce-storefront.md",
|
"path": "prompts/commerce/create-retrieve-b2b-storefront.md",
|
||||||
"description": "Download and version-control an existing B2B/B2C Commerce LWR storefront from your org after creating the Commerce Store",
|
"description": "Interactive guide to create a Commerce B2B Store and retrieve storefront metadata",
|
||||||
"category": "commerce",
|
"category": "commerce",
|
||||||
"tags": [
|
"tags": [
|
||||||
"commerce",
|
|
||||||
"b2b",
|
"b2b",
|
||||||
"b2c",
|
"scom",
|
||||||
|
"scom b2b",
|
||||||
|
"commerce b2b",
|
||||||
"storefront",
|
"storefront",
|
||||||
"lwr",
|
"lwr",
|
||||||
"retrieve",
|
"retrieve",
|
||||||
"metadata"
|
"metadata"
|
||||||
],
|
],
|
||||||
"requires_setup": true,
|
"requires_setup": true,
|
||||||
"setup_summary": "Commerce Store must be created in the org first via Setup → Commerce → Store Administration"
|
"setup_summary": "Requires Commerce licenses; agent guides through store creation interactively"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Account Layout Field Enhancement",
|
"name": "Account Layout Field Enhancement",
|
||||||
@ -339,14 +340,15 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Commerce Store Creation Requirements",
|
"name": "Commerce B2B Store Creation Requirements",
|
||||||
"path": "rules/commerce/commerce-store-requirements.md",
|
"path": "rules/commerce/commerce-b2b-store-requirements.md",
|
||||||
"description": "Critical workflow for creating B2B/B2C Commerce stores and storefronts - understand the distinction between Commerce Store (runtime data) and Storefront (LWR site).",
|
"description": "Critical workflow for creating B2B Commerce stores - understand Store vs Storefront distinction",
|
||||||
"category": "commerce",
|
"category": "commerce",
|
||||||
"tags": [
|
"tags": [
|
||||||
"commerce",
|
|
||||||
"b2b",
|
"b2b",
|
||||||
"b2c",
|
"scom",
|
||||||
|
"scom b2b",
|
||||||
|
"commerce b2b",
|
||||||
"store",
|
"store",
|
||||||
"storefront",
|
"storefront",
|
||||||
"lwr",
|
"lwr",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# Commerce Prompts
|
# Commerce Prompts
|
||||||
|
|
||||||
Prompts for building and managing Salesforce B2B Commerce and B2C Commerce storefronts.
|
Prompts for building and managing Salesforce B2B Commerce storefronts.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@ -33,58 +33,65 @@ Commerce consists of two distinct but connected parts:
|
|||||||
|
|
||||||
### Correct Workflow
|
### Correct Workflow
|
||||||
|
|
||||||
|
> See full interactive flow in `create-retrieve-b2b-storefront.md`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Create Commerce Store in org (via UI)
|
# 1. Create Commerce Store in org (via UI)
|
||||||
# Setup → Commerce → Store Administration → Create Store
|
# Setup → Commerce → Stores → Create Store
|
||||||
|
|
||||||
# 2. Retrieve the auto-generated storefront metadata
|
# 2. List available storefronts
|
||||||
sf project retrieve start --metadata ExperienceBundle:My_Store_Name
|
sf org list metadata --metadata-type DigitalExperienceConfig
|
||||||
|
|
||||||
# 3. Customize with additional LWCs or pages
|
# 3. Retrieve the auto-generated storefront metadata
|
||||||
|
sf project retrieve start -m DigitalExperienceBundle:site/My_Store_Name
|
||||||
|
|
||||||
|
# 4. Customize with additional LWCs or pages
|
||||||
# Add custom components, modify layouts in Experience Builder
|
# Add custom components, modify layouts in Experience Builder
|
||||||
|
|
||||||
# 4. Version control and deploy
|
# 5. Version control and deploy
|
||||||
git add force-app/main/default/experiences/
|
git add force-app/main/default/digitalExperiences/
|
||||||
git commit -m "feat: add My Store storefront"
|
git commit -m "feat: add My Store storefront"
|
||||||
```
|
```
|
||||||
|
|
||||||
### ❌ Incorrect Approach
|
### ❌ Incorrect Approach
|
||||||
|
|
||||||
Don't manually create StorefrontName.digitalExperience-meta.xml or StorefrontName.digitalExperience-meta.xml from scratch. The Commerce setup wizard generates complex configurations that are difficult to replicate manually.
|
Don't manually create StorefrontName.digitalExperience-meta.xml from scratch. The Commerce setup wizard generates complex configurations that are difficult to replicate manually.
|
||||||
|
|
||||||
## Available Prompts
|
## Available Prompts
|
||||||
|
|
||||||
### Retrieve Commerce Storefront Metadata
|
### Create and Retrieve B2B Commerce Storefront
|
||||||
**Use when:** You've created a Commerce Store in your org and want to download the storefront to version control
|
**Use when:** You want to create a Commerce B2B Store and download the storefront to version control
|
||||||
|
|
||||||
**Prerequisites:**
|
**Prerequisites:**
|
||||||
- Commerce Store created via Commerce app
|
- Commerce licenses available in org
|
||||||
- Experience Cloud site exists and is associated with store
|
- Experience Cloud enabled
|
||||||
- Default org authorized with Salesforce CLI
|
- Salesforce CLI authorized with default org
|
||||||
|
|
||||||
**What it does:**
|
**What it does:**
|
||||||
- Guides you through retrieving ExperienceBundle metadata
|
- Guides through interactive 7-step workflow
|
||||||
- Explains what files you'll get
|
- Explains Store vs Storefront concept
|
||||||
- Provides customization next steps
|
- Lists available Digital Experiences in org
|
||||||
- Includes deployment instructions for other orgs
|
- Retrieves ExperienceBundle metadata
|
||||||
|
- Provides customization and deployment guidance
|
||||||
|
|
||||||
## Related Rules
|
## Related Rules
|
||||||
|
|
||||||
Before using these prompts, review:
|
Before using these prompts, review:
|
||||||
|
|
||||||
**`rules/commerce/commerce-store-requirements.md`**
|
**`rules/commerce/commerce-b2b-store-requirements.md`**
|
||||||
- Explains Store vs Storefront distinction
|
- Explains Store vs Storefront distinction
|
||||||
- Details the required creation workflow
|
- Details the required creation workflow
|
||||||
- Lists what is/isn't source-controllable
|
- Lists what is/isn't source-controllable
|
||||||
- Provides deployment checklist
|
- Provides deployment checklist
|
||||||
|
- Contains agent guidance for interactive flow
|
||||||
|
|
||||||
## Common Scenarios
|
## Common Scenarios
|
||||||
|
|
||||||
### Scenario 1: New B2B Store
|
### Scenario 1: New B2B Store
|
||||||
```
|
```
|
||||||
1. Follow commerce-store-requirements.md rule
|
1. Follow commerce-b2b-store-requirements.md rule
|
||||||
2. Create Store in org via Commerce app
|
2. Create Store in org via Commerce app
|
||||||
3. Use "Retrieve Commerce Storefront Metadata" prompt
|
3. Use "Create and Retrieve B2B Commerce Storefront" prompt
|
||||||
4. Customize with custom LWCs (hero banner, promotions)
|
4. Customize with custom LWCs (hero banner, promotions)
|
||||||
5. Commit and deploy to other environments
|
5. Commit and deploy to other environments
|
||||||
```
|
```
|
||||||
@ -129,34 +136,32 @@ After retrieving a Commerce storefront:
|
|||||||
|
|
||||||
```
|
```
|
||||||
force-app/main/default/
|
force-app/main/default/
|
||||||
├── experiences/
|
└── digitalExperiences/
|
||||||
│ └── My_B2B_Store/
|
└── site/
|
||||||
│ ├── StorefrontName.digitalExperience-meta.xml # Site config
|
└── My_B2B_Store1/
|
||||||
│ ├── StorefrontName.digitalExperience-meta.xml # Bundle metadata
|
├── My_B2B_Store1.digitalExperience-meta.xml # Bundle metadata
|
||||||
│ ├── config/ # Store settings
|
├── sfdc_cms__view/ # Pages
|
||||||
│ ├── views/ # Page definitions
|
│ ├── home/
|
||||||
│ │ ├── home.json
|
│ ├── current_cart/
|
||||||
│ │ ├── category.json # PLP
|
│ ├── current_checkout/
|
||||||
│ │ ├── product.json # PDP
|
│ ├── detail_*/ # PDP
|
||||||
│ │ ├── cart.json
|
│ └── list_*/ # PLP
|
||||||
│ │ └── checkout.json
|
├── sfdc_cms__route/ # URL routing
|
||||||
│ └── routes/ # URL routing
|
├── sfdc_cms__site/ # Site settings
|
||||||
└── lwc/
|
├── sfdc_cms__theme/ # Theme config
|
||||||
├── b2bHeroBanner/ # Custom components
|
└── [other sfdc_cms__* directories]
|
||||||
├── b2bPromotionCard/
|
|
||||||
└── b2bNavHelper/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Tags
|
## Tags
|
||||||
|
|
||||||
Commerce prompts use these tags:
|
Commerce prompts use these tags:
|
||||||
- `commerce` - General Commerce functionality
|
|
||||||
- `b2b` - B2B Commerce specific
|
- `b2b` - B2B Commerce specific
|
||||||
- `b2c` - B2C Commerce specific
|
- `scom` - Salesforce Commerce
|
||||||
- `storefront` - Buyer-facing storefront
|
- `scom b2b` - Salesforce Commerce B2B
|
||||||
- `store` - Backend store configuration
|
- `commerce b2b` - Commerce B2B specific
|
||||||
|
- `storefront` - Buyer-facing storefront (metadata)
|
||||||
|
- `store` - Backend store configuration (data)
|
||||||
- `lwr` - Lightning Web Runtime sites
|
- `lwr` - Lightning Web Runtime sites
|
||||||
- `experience-cloud` - Experience Cloud/Digital Experiences
|
|
||||||
- `retrieve` - Metadata retrieval operations
|
- `retrieve` - Metadata retrieval operations
|
||||||
- `metadata` - Source-controllable assets
|
- `metadata` - Source-controllable assets
|
||||||
|
|
||||||
@ -164,8 +169,8 @@ Commerce prompts use these tags:
|
|||||||
|
|
||||||
**Salesforce Documentation:**
|
**Salesforce Documentation:**
|
||||||
- [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_commerce_dev_guide.meta/b2b_commerce_dev_guide/)
|
- [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_commerce_dev_guide.meta/b2b_commerce_dev_guide/)
|
||||||
- [B2C Commerce on Core Guide](https://help.salesforce.com/s/articleView?id=sf.comm_digital_overview.htm)
|
|
||||||
- [Experience Cloud LWR Sites](https://developer.salesforce.com/docs/platform/lwr-sites/guide/overview.html)
|
- [Experience Cloud LWR Sites](https://developer.salesforce.com/docs/platform/lwr-sites/guide/overview.html)
|
||||||
|
- [DigitalExperienceBundle Metadata](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_digitalexperiencebundle.htm)
|
||||||
|
|
||||||
**Trailhead:**
|
**Trailhead:**
|
||||||
- [B2B Commerce Basics](https://trailhead.salesforce.com/content/learn/modules/b2b-commerce-basics)
|
- [B2B Commerce Basics](https://trailhead.salesforce.com/content/learn/modules/b2b-commerce-basics)
|
||||||
@ -174,12 +179,11 @@ Commerce prompts use these tags:
|
|||||||
**CLI Commands:**
|
**CLI Commands:**
|
||||||
```bash
|
```bash
|
||||||
# List Commerce metadata
|
# List Commerce metadata
|
||||||
sf org list metadata --metadata-type DigitalExperience
|
sf org list metadata --metadata-type DigitalExperienceConfig
|
||||||
sf org list metadata --metadata-type ExperienceBundle
|
|
||||||
|
|
||||||
# Retrieve storefront
|
# Retrieve storefront
|
||||||
sf project retrieve start --metadata ExperienceBundle:StoreName
|
sf project retrieve start -m DigitalExperienceBundle:site/StoreName
|
||||||
|
|
||||||
# Deploy storefront
|
# Deploy storefront
|
||||||
sf project deploy start --source-dir force-app/main/default/experiences/
|
sf project deploy start --source-dir force-app/main/default/digitalExperiences/site/StoreName/
|
||||||
```
|
```
|
||||||
|
|||||||
238
prompts/commerce/create-retrieve-b2b-storefront.md
Normal file
238
prompts/commerce/create-retrieve-b2b-storefront.md
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
---
|
||||||
|
name: Create and Retrieve B2B Commerce Storefront
|
||||||
|
description: Interactive guide to create a Commerce B2B Store and retrieve storefront metadata
|
||||||
|
tags: commerce, b2b, scom, scom b2b, commerce b2b, storefront, lwr, retrieve, metadata
|
||||||
|
category: commerce
|
||||||
|
requires_setup: true
|
||||||
|
setup_summary: Requires Commerce licenses; agent guides through store creation interactively
|
||||||
|
---
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
This interactive workflow guides you through creating a Commerce B2B Store in your Salesforce org and retrieving the auto-generated storefront metadata to your local repository.
|
||||||
|
|
||||||
|
**Important:** Commerce B2B consists of two components:
|
||||||
|
1. **Commerce Store (Backend)** - Runtime data configured in the org (NOT source-controllable)
|
||||||
|
2. **Storefront (Frontend)** - LWR Digital Experience site (source-controllable metadata)
|
||||||
|
|
||||||
|
The Store must be created first because it automatically generates the associated Digital Experience site.
|
||||||
|
|
||||||
|
> **See:** `rules/commerce/commerce-b2b-store-requirements.md` for detailed Store vs Storefront distinction
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Interactive Flow
|
||||||
|
|
||||||
|
### Step 1: Explain Commerce B2B Store Concept
|
||||||
|
|
||||||
|
**Agent should explain:**
|
||||||
|
|
||||||
|
Commerce B2B on Salesforce Core consists of two components that work together:
|
||||||
|
|
||||||
|
1. **Commerce Store (Backend)** - Runtime data configured in the org (WebStore records, buyer groups, pricing policies, payment settings). This is NOT source-controllable.
|
||||||
|
|
||||||
|
2. **Storefront (Frontend)** - LWR Digital Experience site for buyers. This IS source-controllable as metadata (ExperienceBundle).
|
||||||
|
|
||||||
|
The Store must be created in the org first because the setup wizard automatically generates the associated Digital Experience site with all necessary Commerce components configured correctly.
|
||||||
|
|
||||||
|
> **See:** `rules/commerce/commerce-b2b-store-requirements.md` for detailed Store vs Storefront distinction
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Step 2: Ask User to Create B2B Store
|
||||||
|
|
||||||
|
**Agent should provide these steps:**
|
||||||
|
|
||||||
|
1. In your Salesforce org, navigate to **Setup → Commerce → Stores**
|
||||||
|
- OR use the Commerce app from **App Launcher → Commerce → Create Store**
|
||||||
|
|
||||||
|
2. Click **"Create Store"** or **"Setup New Store"**
|
||||||
|
|
||||||
|
3. Select **"B2B Store"** as the store type
|
||||||
|
|
||||||
|
4. Follow the store setup wizard:
|
||||||
|
- **Store Name**: Choose a descriptive name (e.g., "My B2B Store")
|
||||||
|
- ⚠️ Important: This name determines the folder name (spaces become underscores)
|
||||||
|
- **Default Buyer Group**: Associate with Account objects
|
||||||
|
- **Price Book**: Select or create price book
|
||||||
|
- **Checkout Settings**: Configure checkout flow
|
||||||
|
|
||||||
|
5. Complete the wizard - it will automatically create:
|
||||||
|
- WebStore record
|
||||||
|
- Default buyer group and entitlement policies
|
||||||
|
- Associated Digital Experience (LWR site)
|
||||||
|
|
||||||
|
6. Optionally configure:
|
||||||
|
- Payment gateway (Stripe, Adyen, etc.)
|
||||||
|
- Tax provider (Avalara, Vertex)
|
||||||
|
- Shipping methods
|
||||||
|
|
||||||
|
**Agent should then ask:**
|
||||||
|
"Have you completed creating the B2B Store in your org? Please reply 'yes' when ready, and let me know the store name you used."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Step 3: Get Confirmation from User
|
||||||
|
|
||||||
|
**Agent waits for:** User confirmation (e.g., "yes") and store name
|
||||||
|
|
||||||
|
**Agent validates:** Store name format
|
||||||
|
- No special characters
|
||||||
|
- Spaces in name will appear as underscores in folder (e.g., "My B2B Store" → "My_B2B_Store1")
|
||||||
|
|
||||||
|
**Agent acknowledges:** "Great! Let me list the available storefronts in your org..."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Step 4: Run CLI Command to List LWR Sites
|
||||||
|
|
||||||
|
**Agent executes:**
|
||||||
|
```bash
|
||||||
|
sf org list metadata --metadata-type DigitalExperienceConfig
|
||||||
|
```
|
||||||
|
|
||||||
|
**Agent should:**
|
||||||
|
- Parse the output to extract site names
|
||||||
|
- Display as a numbered list for easy selection
|
||||||
|
- Explain: "The store name appears with underscores and may have a number suffix (e.g., 'My_B2B_Store1')"
|
||||||
|
|
||||||
|
**Example output format:**
|
||||||
|
```
|
||||||
|
Available Digital Experience sites:
|
||||||
|
1. My_B2B_Store1
|
||||||
|
2. Partner_Portal
|
||||||
|
3. Customer_Community
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Step 5: Let User Select Storefront
|
||||||
|
|
||||||
|
**Agent should ask:**
|
||||||
|
"Which site corresponds to your B2B Store? Enter the number or the full site name:"
|
||||||
|
|
||||||
|
**Agent validates:**
|
||||||
|
- Selection matches one of the available sites
|
||||||
|
- If unclear, ask user to confirm the exact name
|
||||||
|
|
||||||
|
**Agent confirms:** "Got it! I'll retrieve the metadata for [site-name]..."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Step 6: Retrieve Storefront Metadata
|
||||||
|
|
||||||
|
**Agent executes:**
|
||||||
|
```bash
|
||||||
|
sf project retrieve start -m DigitalExperienceBundle:site/<selected-store-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Agent should:**
|
||||||
|
- Show retrieval progress
|
||||||
|
- Confirm successful retrieval
|
||||||
|
- List the 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: Inform User About Next Steps
|
||||||
|
|
||||||
|
**Agent provides:**
|
||||||
|
|
||||||
|
✅ **Storefront metadata successfully retrieved!**
|
||||||
|
|
||||||
|
**What you can do next:**
|
||||||
|
|
||||||
|
1. **Customize the storefront:**
|
||||||
|
- Add custom LWCs for unique B2B features
|
||||||
|
- Modify page layouts in Experience Builder
|
||||||
|
- Customize branding (colors, fonts, logos)
|
||||||
|
- Add content pages (About Us, Contact, etc.)
|
||||||
|
|
||||||
|
2. **Version control:**
|
||||||
|
```bash
|
||||||
|
git add force-app/main/default/digitalExperiences/
|
||||||
|
git commit -m "feat: add B2B Commerce storefront metadata"
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Deploy to other orgs:**
|
||||||
|
- First create B2B Store in target org with same name
|
||||||
|
- Then deploy the metadata:
|
||||||
|
```bash
|
||||||
|
sf project deploy start --source-dir force-app/main/default/digitalExperiences/site/My_B2B_Store1/
|
||||||
|
```
|
||||||
|
|
||||||
|
**📚 Documentation Resources:**
|
||||||
|
- [DigitalExperienceBundle Metadata](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_digitalexperiencebundle.htm)
|
||||||
|
- [DigitalExperienceBundle Site](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_digitalexperiencebundle_site.htm)
|
||||||
|
- [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_commerce_dev_guide.meta/b2b_commerce_dev_guide/)
|
||||||
|
|
||||||
|
**🎯 For Advanced Customization:**
|
||||||
|
See `rules/commerce/commerce-b2b-store-requirements.md` for:
|
||||||
|
- B2B-specific workflow patterns
|
||||||
|
- Custom LWC development guidelines
|
||||||
|
- Multi-org deployment strategies
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Important Notes
|
||||||
|
|
||||||
|
### ⚠️ Commerce Store Data vs Storefront Metadata
|
||||||
|
|
||||||
|
**What IS source-controllable (Storefront):**
|
||||||
|
- ✅ ExperienceBundle metadata (this prompt)
|
||||||
|
- ✅ Custom LWCs
|
||||||
|
- ✅ Page layouts and content
|
||||||
|
- ✅ Navigation structure
|
||||||
|
|
||||||
|
**What is NOT source-controllable (Commerce Store):**
|
||||||
|
- ❌ WebStore records (store settings, buyer groups)
|
||||||
|
- ❌ Product catalog data
|
||||||
|
- ❌ Price books and pricing rules
|
||||||
|
- ❌ Entitlement policies
|
||||||
|
- ❌ Inventory data
|
||||||
|
- ❌ Payment/tax/shipping configurations
|
||||||
|
|
||||||
|
**To migrate Commerce Store data between orgs:**
|
||||||
|
- Use Data Loader or Salesforce Data APIs
|
||||||
|
- Or recreate via Commerce app UI
|
||||||
|
- Or use Commerce APIs for programmatic setup
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Issue: "No DigitalExperienceConfig found"
|
||||||
|
|
||||||
|
**Cause:** Store name mismatch or store not yet created
|
||||||
|
|
||||||
|
**Fix:**
|
||||||
|
1. Verify store exists: Setup → Commerce → Stores
|
||||||
|
2. Verify Experience site exists: Setup → Digital Experiences → All Sites
|
||||||
|
3. Check exact name (case-sensitive, underscores for spaces)
|
||||||
|
4. Try: `sf org list metadata --metadata-type DigitalExperienceConfig`
|
||||||
|
|
||||||
|
### Issue: "Deployment failed - Store not found"
|
||||||
|
|
||||||
|
**Cause:** Target org doesn't have a Commerce Store with matching name
|
||||||
|
|
||||||
|
**Fix:**
|
||||||
|
1. In target org, create Commerce Store with SAME NAME as source
|
||||||
|
2. Then deploy Experience metadata
|
||||||
|
|
||||||
|
### Issue: "Commerce components not rendering"
|
||||||
|
|
||||||
|
**Cause:** Store configuration missing or incorrect WebStore association
|
||||||
|
|
||||||
|
**Fix:**
|
||||||
|
1. Verify WebStore is active in target org
|
||||||
|
2. Check Experience is associated with correct WebStore
|
||||||
|
3. Verify buyer user has correct entitlements and permissions
|
||||||
@ -1,356 +0,0 @@
|
|||||||
---
|
|
||||||
name: Retrieve Commerce Storefront Metadata
|
|
||||||
description: Download and version-control an existing B2B/B2C Commerce LWR storefront from your org after creating the Commerce Store
|
|
||||||
tags: commerce, b2b, b2c, storefront, lwr, retrieve, metadata, scom
|
|
||||||
category: commerce
|
|
||||||
requires_setup: true
|
|
||||||
setup_summary: Commerce Store must be created in the org first via Setup → Commerce → Stores
|
|
||||||
---
|
|
||||||
|
|
||||||
## Context
|
|
||||||
|
|
||||||
You have created a Commerce Store (B2B or B2C) in your Salesforce org using the Commerce app, and now you want to:
|
|
||||||
1. Download the auto-generated Experience Cloud storefront metadata
|
|
||||||
2. Version-control it in your repository
|
|
||||||
3. Customize it with additional LWCs or pages
|
|
||||||
|
|
||||||
**Important:** This prompt assumes you have ALREADY created the Commerce Store in your org. If you haven't done that yet, refer to the "Commerce Store Creation Requirements" rule first.
|
|
||||||
|
|
||||||
## Setup
|
|
||||||
|
|
||||||
### 1. Verify Commerce Store Exists in Org
|
|
||||||
|
|
||||||
Before proceeding, confirm your Commerce Store is set up:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Check your connected org
|
|
||||||
sf org display --verbose
|
|
||||||
|
|
||||||
# Verify the store exists
|
|
||||||
# Go to Setup → Commerce → Stores
|
|
||||||
# You should see your store listed with status "Active"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Required information:**
|
|
||||||
- Store name (e.g., "My B2B Store")
|
|
||||||
- Associated Experience Cloud site name (usually matches store name with underscores)
|
|
||||||
- Store is active and has default configurations
|
|
||||||
|
|
||||||
### 2. Find Your Experience Site Name
|
|
||||||
|
|
||||||
The Commerce setup wizard automatically creates an Experience Cloud site. To find it:
|
|
||||||
|
|
||||||
1. **In Setup:**
|
|
||||||
- Go to Setup → Digital Experiences → All Sites
|
|
||||||
- Look for the site with same name as your store (e.g., "My B2B Store")
|
|
||||||
- Note the exact folder name used in metadata (e.g., "My_B2B_Store1")
|
|
||||||
|
|
||||||
2. **Or use CLI:**
|
|
||||||
```bash
|
|
||||||
sf org list metadata --metadata-type DigitalExperience
|
|
||||||
```
|
|
||||||
|
|
||||||
## Instructions
|
|
||||||
|
|
||||||
### Step 1: List Available Digital Experiences
|
|
||||||
|
|
||||||
First, see what's available in your org:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# List all Digital Experiences
|
|
||||||
sf org list metadata --metadata-type DigitalExperience
|
|
||||||
|
|
||||||
# List all Experience Bundles (more detailed)
|
|
||||||
sf org list metadata --metadata-type ExperienceBundle
|
|
||||||
```
|
|
||||||
|
|
||||||
**Example output:**
|
|
||||||
```
|
|
||||||
DigitalExperience/My_B2B_Store
|
|
||||||
DigitalExperience/Partner_Community
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 2: Retrieve the Experience Bundle
|
|
||||||
|
|
||||||
Retrieve the complete storefront metadata for your Commerce store:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Replace "My_B2B_Store" with your actual store name
|
|
||||||
sf project retrieve start --metadata ExperienceBundle:My_B2B_Store
|
|
||||||
|
|
||||||
# Alternative: Retrieve all experiences (if you're unsure of the name)
|
|
||||||
sf project retrieve start --metadata ExperienceBundle
|
|
||||||
```
|
|
||||||
|
|
||||||
**What this retrieves:**
|
|
||||||
```
|
|
||||||
force-app/main/default/digitalExperiences/site/StorefrontName/
|
|
||||||
├── StorefrontName.digitalExperience-meta.xml # Digital Experience Bundle metadata
|
|
||||||
├── sfdc_cms__appPage/ # App page configuration
|
|
||||||
├── sfdc_cms__brandingSet/ # Branding assets
|
|
||||||
├── sfdc_cms__label/ # Labels and translations
|
|
||||||
├── sfdc_cms__languageSettings/ # Language configuration
|
|
||||||
├── sfdc_cms__lwc/ # Lightning Web Components (custom)
|
|
||||||
├── sfdc_cms__mobilePublisherConfig/ # Mobile configuration
|
|
||||||
├── sfdc_cms__route/ # URL routing configuration
|
|
||||||
├── sfdc_cms__site/ # Site settings
|
|
||||||
├── sfdc_cms__styles/ # CSS styles
|
|
||||||
├── sfdc_cms__theme/ # Theme configuration
|
|
||||||
├── sfdc_cms__themeLayout/ # Theme layouts
|
|
||||||
└── sfdc_cms__view/ # Page definitions (views)
|
|
||||||
├── home/ # Homepage
|
|
||||||
├── current_cart/ # Shopping cart page
|
|
||||||
├── current_checkout/ # Checkout page
|
|
||||||
├── detail_*/ # Product Detail Pages (PDP)
|
|
||||||
├── list_*/ # Product List Pages (PLP)
|
|
||||||
├── order/ # Order confirmation
|
|
||||||
├── global_search/ # Search results
|
|
||||||
└── [other pages...]
|
|
||||||
```
|
|
||||||
|
|
||||||
**Example:** For a store named "My B2B Store", the folder would be:
|
|
||||||
```
|
|
||||||
force-app/main/default/digitalExperiences/site/My_B2B_Store1/
|
|
||||||
├── My_B2B_Store1.digitalExperience-meta.xml
|
|
||||||
└── [subdirectories as shown above]
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 3: Verify Retrieved Files
|
|
||||||
|
|
||||||
Check that the metadata was retrieved successfully:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# List the experience files
|
|
||||||
ls -la force-app/main/default/digitalExperiences/My_B2B_Store1/
|
|
||||||
|
|
||||||
# Check the digitalExperience metadata file
|
|
||||||
cat force-app/main/default/digitalExperiences/site/My_B2B_Store1/My_B2B_Store1.digitalExperience-meta.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
**Expected content in digitalExperience-meta.xml:**
|
|
||||||
```xml
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<DigitalExperienceBundle xmlns="http://soap.sforce.com/2006/04/metadata">
|
|
||||||
<label>My B2B Store</label>
|
|
||||||
<modules>...</modules>
|
|
||||||
</DigitalExperienceBundle>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 4: Inspect Commerce Pages
|
|
||||||
|
|
||||||
Review the out-of-box Commerce pages:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# List all views (pages)
|
|
||||||
ls force-app/main/default/digitalExperiences/site/My_B2B_Store1/sfdc_cms__view/
|
|
||||||
|
|
||||||
# View a product detail page directory
|
|
||||||
ls force-app/main/default/digitalExperiences/site/My_B2B_Store1/sfdc_cms__view/detail_*/
|
|
||||||
```
|
|
||||||
|
|
||||||
**Key Commerce pages you'll find in sfdc_cms__view/:**
|
|
||||||
- **home/** - Homepage with hero banner, featured products
|
|
||||||
- **list_*/** - Product List Pages (PLP) with filters, facets
|
|
||||||
- **detail_*/** - Product Detail Pages (PDP) with images, add-to-cart
|
|
||||||
- **current_cart/** - Shopping cart with quantity updates, remove items
|
|
||||||
- **current_checkout/** - Multi-step checkout flow (shipping, payment, review)
|
|
||||||
- **global_search/** - Search results page
|
|
||||||
- **addresses/** - Buyer address management (B2B)
|
|
||||||
- **order/** - Order confirmation and history
|
|
||||||
|
|
||||||
### Step 5: Commit to Version Control
|
|
||||||
|
|
||||||
Add the retrieved metadata to your repository:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Add the experience files
|
|
||||||
git add force-app/main/default/digitalExperiences/My_B2B_Store1/
|
|
||||||
|
|
||||||
# Commit with descriptive message
|
|
||||||
git commit -m "feat: add My B2B Store commerce storefront metadata
|
|
||||||
|
|
||||||
Retrieved from org after creating Commerce Store via Setup.
|
|
||||||
Includes home, category, product, cart, checkout pages with
|
|
||||||
out-of-box Commerce components."
|
|
||||||
|
|
||||||
# Push to remote
|
|
||||||
git push origin main
|
|
||||||
```
|
|
||||||
|
|
||||||
## Testing & Verification
|
|
||||||
|
|
||||||
### 1. Test Retrieval in a Scratch Org
|
|
||||||
|
|
||||||
**Important:** You cannot deploy Commerce storefront metadata to a scratch org without first creating the Commerce Store in that org.
|
|
||||||
|
|
||||||
To test in another org:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 1. Create scratch org with Commerce features
|
|
||||||
sf org create scratch --definition-file config/project-scratch-def.json --alias commerce-scratch
|
|
||||||
|
|
||||||
# 2. In the scratch org Setup, create a Commerce Store with the SAME NAME as your source org
|
|
||||||
# (Setup → Commerce → Stores → Create Store)
|
|
||||||
# Use the same store name: "My B2B Store"
|
|
||||||
|
|
||||||
# 3. THEN deploy the experience metadata
|
|
||||||
sf project deploy start --source-dir force-app/main/default/digitalExperiences/My_B2B_Store1/ --target-org commerce-scratch
|
|
||||||
|
|
||||||
# 4. Open Experience Builder to verify
|
|
||||||
sf org open --target-org commerce-scratch --path /lightning/setup/SetupNetworks/home
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Verify Components in Experience Builder
|
|
||||||
|
|
||||||
1. Open your org in Setup
|
|
||||||
2. Go to Digital Experiences → All Sites
|
|
||||||
3. Click "Builder" next to your store site
|
|
||||||
4. Verify all pages load correctly:
|
|
||||||
- Home page with hero banner
|
|
||||||
- Category page with product grid
|
|
||||||
- Product page with add-to-cart
|
|
||||||
- Cart with line items
|
|
||||||
- Checkout flow
|
|
||||||
|
|
||||||
## Customization Next Steps
|
|
||||||
|
|
||||||
Now that you have the storefront metadata, you can customize it:
|
|
||||||
|
|
||||||
### 1. Add Custom LWCs
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Create a custom promotion banner component
|
|
||||||
sf lightning generate component --type lwc \
|
|
||||||
--name b2bPromotionBanner \
|
|
||||||
--output-dir force-app/main/default/lwc
|
|
||||||
|
|
||||||
# Make it available to Experience Builder
|
|
||||||
# Edit b2bPromotionBanner.js-meta.xml:
|
|
||||||
# <isExposed>true</isExposed>
|
|
||||||
# <targets>
|
|
||||||
# <target>lightningCommunity__Page</target>
|
|
||||||
# </targets>
|
|
||||||
```
|
|
||||||
|
|
||||||
**Follow these rules for Commerce LWCs:**
|
|
||||||
- Use LDS-first approach (no Apex unless necessary)
|
|
||||||
- Expose `@api` properties for Experience Builder configuration
|
|
||||||
- Use `lightning-` base components (SLDS)
|
|
||||||
- Use `NavigationMixin` for routing
|
|
||||||
- Follow naming: `b2b[ComponentName]` or `b2c[ComponentName]`
|
|
||||||
|
|
||||||
### 2. Modify Page Layouts
|
|
||||||
|
|
||||||
1. Open Experience Builder in your org
|
|
||||||
2. Edit the page layout (e.g., add your custom component to Home)
|
|
||||||
3. Save and publish
|
|
||||||
4. Retrieve the updated metadata:
|
|
||||||
```bash
|
|
||||||
sf project retrieve start --metadata ExperienceBundle:My_B2B_Store
|
|
||||||
```
|
|
||||||
5. Commit the changes:
|
|
||||||
```bash
|
|
||||||
git add force-app/main/default/digitalExperiences/
|
|
||||||
git commit -m "feat: add custom promotion banner to home page"
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Add Content Pages
|
|
||||||
|
|
||||||
Create additional non-commerce pages (About Us, FAQ, Contact):
|
|
||||||
|
|
||||||
1. In Experience Builder → Pages → New Page
|
|
||||||
2. Add content (text, images, forms)
|
|
||||||
3. Retrieve updated metadata
|
|
||||||
4. Commit changes
|
|
||||||
|
|
||||||
## Important Notes
|
|
||||||
|
|
||||||
### ⚠️ Commerce Store Data vs Storefront Metadata
|
|
||||||
|
|
||||||
**What IS source-controllable (Storefront):**
|
|
||||||
- ✅ ExperienceBundle metadata (this prompt)
|
|
||||||
- ✅ Custom LWCs
|
|
||||||
- ✅ Page layouts and content
|
|
||||||
- ✅ Navigation structure
|
|
||||||
|
|
||||||
**What is NOT source-controllable (Commerce Store):**
|
|
||||||
- ❌ WebStore records (store settings, buyer groups)
|
|
||||||
- ❌ Product catalog data
|
|
||||||
- ❌ Price books and pricing rules
|
|
||||||
- ❌ Entitlement policies
|
|
||||||
- ❌ Inventory data
|
|
||||||
- ❌ Payment/tax/shipping configurations
|
|
||||||
|
|
||||||
**To migrate Commerce Store data between orgs:**
|
|
||||||
- Use Data Loader or Salesforce Data APIs
|
|
||||||
- Or recreate via Commerce app UI
|
|
||||||
- Or use Commerce APIs for programmatic setup
|
|
||||||
|
|
||||||
### 🔄 Sync Workflow
|
|
||||||
|
|
||||||
After making changes in Experience Builder:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Always retrieve after UI changes
|
|
||||||
sf project retrieve start --metadata ExperienceBundle:My_B2B_Store
|
|
||||||
|
|
||||||
# Check what changed
|
|
||||||
git diff
|
|
||||||
|
|
||||||
# Commit meaningful changes
|
|
||||||
git add force-app/main/default/digitalExperiences/
|
|
||||||
git commit -m "chore: update homepage hero banner CTA"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### Issue: "No ExperienceBundle found"
|
|
||||||
|
|
||||||
**Cause:** Store name mismatch or store not yet created
|
|
||||||
|
|
||||||
**Fix:**
|
|
||||||
1. Verify store exists: Setup → Commerce → Stores
|
|
||||||
2. Verify Experience site exists: Setup → Digital Experiences → All Sites
|
|
||||||
3. Check exact name (case-sensitive, underscores for spaces)
|
|
||||||
4. Try: `sf org list metadata --metadata-type ExperienceBundle`
|
|
||||||
|
|
||||||
### Issue: "Deployment failed - Store not found"
|
|
||||||
|
|
||||||
**Cause:** Target org doesn't have a Commerce Store with matching name
|
|
||||||
|
|
||||||
**Fix:**
|
|
||||||
1. In target org, create Commerce Store with SAME NAME as source
|
|
||||||
2. Then deploy Experience metadata
|
|
||||||
|
|
||||||
### Issue: "Commerce components not rendering"
|
|
||||||
|
|
||||||
**Cause:** Store configuration missing or incorrect WebStore association
|
|
||||||
|
|
||||||
**Fix:**
|
|
||||||
1. Verify WebStore is active in target org
|
|
||||||
2. Check Experience is associated with correct WebStore
|
|
||||||
3. Verify buyer user has correct entitlements and permissions
|
|
||||||
|
|
||||||
## Follow-ups
|
|
||||||
|
|
||||||
After retrieving your storefront:
|
|
||||||
|
|
||||||
- [ ] Document your store name and configuration in README.md
|
|
||||||
- [ ] Create deployment scripts for other environments
|
|
||||||
- [ ] Set up CI/CD pipeline for storefront changes
|
|
||||||
- [ ] Create a catalog of custom LWCs for reusability
|
|
||||||
- [ ] Document Commerce Store setup steps for new environments
|
|
||||||
- [ ] Test complete buy flow (browse → PDP → cart → checkout)
|
|
||||||
|
|
||||||
## Additional Resources
|
|
||||||
|
|
||||||
**Salesforce CLI:**
|
|
||||||
- `sf project retrieve start --help`
|
|
||||||
- `sf org list metadata --help`
|
|
||||||
|
|
||||||
**Commerce Documentation:**
|
|
||||||
- [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore.htm)
|
|
||||||
- [Commerce Customization Guide](https://help.salesforce.com/s/articleView?id=sf.comm_digital_customize.htm)
|
|
||||||
|
|
||||||
**Experience Cloud:**
|
|
||||||
- [LWR Sites Developer Guide](https://developer.salesforce.com/docs/platform/lwr-sites/guide/overview.html)
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
# Commerce Rules
|
# Commerce Rules
|
||||||
|
|
||||||
Rules and guardrails for developing B2B Commerce and B2C Commerce solutions on Salesforce.
|
Rules and guardrails for developing B2B Commerce solutions on Salesforce.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@ -21,10 +21,12 @@ The most important concept in Commerce development is understanding the distinct
|
|||||||
| **Deployment** | Data APIs or manual recreation | Salesforce CLI metadata deploy |
|
| **Deployment** | Data APIs or manual recreation | Salesforce CLI metadata deploy |
|
||||||
| **Examples** | Pricing policies, payment settings | Product pages, cart, checkout UI |
|
| **Examples** | Pricing policies, payment settings | Product pages, cart, checkout UI |
|
||||||
|
|
||||||
|
> **See:** `commerce-b2b-store-requirements.md` for comprehensive details
|
||||||
|
|
||||||
## Available Rules
|
## Available Rules
|
||||||
|
|
||||||
### Commerce Store Creation Requirements
|
### Commerce B2B Store Creation Requirements
|
||||||
**`commerce-store-requirements.md`**
|
**`commerce-b2b-store-requirements.md`**
|
||||||
|
|
||||||
**Apply when:** Developer is creating a new Commerce storefront
|
**Apply when:** Developer is creating a new Commerce storefront
|
||||||
|
|
||||||
@ -41,17 +43,7 @@ The most important concept in Commerce development is understanding the distinct
|
|||||||
- Confusion about what can/cannot be source-controlled
|
- Confusion about what can/cannot be source-controlled
|
||||||
|
|
||||||
**Required Workflow:**
|
**Required Workflow:**
|
||||||
```
|
> See full workflow in `commerce-b2b-store-requirements.md`
|
||||||
1. Create Commerce Store (org UI)
|
|
||||||
↓
|
|
||||||
2. Store wizard creates Digital Experience
|
|
||||||
↓
|
|
||||||
3. Retrieve Experience metadata to repo
|
|
||||||
↓
|
|
||||||
4. Customize and commit
|
|
||||||
↓
|
|
||||||
5. Deploy to other orgs (after creating Store in target)
|
|
||||||
```
|
|
||||||
|
|
||||||
## When to Apply These Rules
|
## When to Apply These Rules
|
||||||
|
|
||||||
@ -59,17 +51,17 @@ The most important concept in Commerce development is understanding the distinct
|
|||||||
|
|
||||||
**User says:**
|
**User says:**
|
||||||
- "Create a B2B Commerce store"
|
- "Create a B2B Commerce store"
|
||||||
- "Build a B2C storefront"
|
- "Build a B2B storefront"
|
||||||
- "Set up Commerce on Core"
|
- "Set up Commerce on Core"
|
||||||
- "Create an LWR Commerce site"
|
- "Create an LWR Commerce site"
|
||||||
- "Build a digital storefront"
|
- "Build a digital storefront"
|
||||||
|
|
||||||
**Agent should:**
|
**Agent should:**
|
||||||
1. ✅ Cite `rules/commerce/commerce-store-requirements.md`
|
1. ✅ Follow interactive flow from `prompts/commerce/create-retrieve-b2b-storefront.md`
|
||||||
2. ✅ Explain Store vs Storefront distinction
|
2. ✅ Explain Store vs Storefront (link to rule file)
|
||||||
3. ✅ Guide user to create Store in org first
|
3. ✅ Use `sf org list metadata --metadata-type DigitalExperienceConfig` to list sites
|
||||||
4. ✅ Provide CLI commands to retrieve metadata
|
4. ✅ Get user confirmation at each step
|
||||||
5. ❌ **DO NOT** create StorefrontName.digitalExperience-meta.xml or StorefrontName.digitalExperience-meta.xml from scratch
|
5. ❌ **DO NOT** create storefront files from scratch
|
||||||
|
|
||||||
### Trigger: User asks to deploy storefront
|
### Trigger: User asks to deploy storefront
|
||||||
|
|
||||||
@ -105,7 +97,7 @@ The most important concept in Commerce development is understanding the distinct
|
|||||||
### ❌ Deploying Without Store
|
### ❌ Deploying Without Store
|
||||||
```bash
|
```bash
|
||||||
# WRONG - Will fail if Store doesn't exist in target
|
# WRONG - Will fail if Store doesn't exist in target
|
||||||
sf project deploy start --source-dir force-app/main/default/experiences/My_Store/
|
sf project deploy start --source-dir force-app/main/default/digitalExperiences/My_Store/
|
||||||
# Error: WebStore not found
|
# Error: WebStore not found
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -113,7 +105,7 @@ sf project deploy start --source-dir force-app/main/default/experiences/My_Store
|
|||||||
```bash
|
```bash
|
||||||
# 1. First create Store in target org (UI or API)
|
# 1. First create Store in target org (UI or API)
|
||||||
# 2. THEN deploy
|
# 2. THEN deploy
|
||||||
sf project deploy start --source-dir force-app/main/default/experiences/My_Store/
|
sf project deploy start --source-dir force-app/main/default/digitalExperiences/My_Store/
|
||||||
```
|
```
|
||||||
|
|
||||||
### ❌ Trying to Version Control Store Data
|
### ❌ Trying to Version Control Store Data
|
||||||
@ -127,7 +119,8 @@ sf project retrieve start --metadata WebStore
|
|||||||
```bash
|
```bash
|
||||||
# Use Data Loader, APIs, or manual recreation for Store data
|
# Use Data Loader, APIs, or manual recreation for Store data
|
||||||
# Only retrieve Experience metadata
|
# Only retrieve Experience metadata
|
||||||
sf project retrieve start --metadata ExperienceBundle:My_Store
|
sf org list metadata --metadata-type DigitalExperienceConfig
|
||||||
|
sf project retrieve start -m DigitalExperienceBundle:site/My_Store
|
||||||
```
|
```
|
||||||
|
|
||||||
## Enforcement Guidelines
|
## Enforcement Guidelines
|
||||||
@ -137,11 +130,11 @@ sf project retrieve start --metadata ExperienceBundle:My_Store
|
|||||||
When processing Commerce-related requests:
|
When processing Commerce-related requests:
|
||||||
|
|
||||||
1. **Detection Phase**
|
1. **Detection Phase**
|
||||||
- Parse user intent for Commerce keywords (store, storefront, B2B, B2C, Commerce)
|
- Parse user intent for Commerce keywords (store, storefront, B2B, Commerce)
|
||||||
- Identify if request is for creation vs modification vs deployment
|
- Identify if request is for creation vs modification vs deployment
|
||||||
|
|
||||||
2. **Rule Application**
|
2. **Rule Application**
|
||||||
- Load `commerce-store-requirements.md` into context
|
- Load `commerce-b2b-store-requirements.md` into context
|
||||||
- Cite relevant sections in response
|
- Cite relevant sections in response
|
||||||
- Enforce the correct workflow order
|
- Enforce the correct workflow order
|
||||||
|
|
||||||
@ -160,7 +153,7 @@ When processing Commerce-related requests:
|
|||||||
|
|
||||||
**Before starting any Commerce work:**
|
**Before starting any Commerce work:**
|
||||||
|
|
||||||
- [ ] Read `rules/commerce/commerce-store-requirements.md` completely
|
- [ ] Read `rules/commerce/commerce-b2b-store-requirements.md` completely
|
||||||
- [ ] Understand Store (data) vs Storefront (metadata)
|
- [ ] Understand Store (data) vs Storefront (metadata)
|
||||||
- [ ] Have org access with Commerce licenses
|
- [ ] Have org access with Commerce licenses
|
||||||
- [ ] Have Commerce Admin permissions
|
- [ ] Have Commerce Admin permissions
|
||||||
@ -231,7 +224,7 @@ When building complete Commerce solutions:
|
|||||||
|
|
||||||
Rules work with these prompts:
|
Rules work with these prompts:
|
||||||
|
|
||||||
- **`prompts/commerce/retrieve-commerce-storefront.md`** - Step-by-step retrieval workflow
|
- **`prompts/commerce/create-retrieve-b2b-storefront.md`** - Interactive 7-step retrieval workflow
|
||||||
- (Future) Create custom Commerce LWC components
|
- (Future) Create custom Commerce LWC components
|
||||||
- (Future) Commerce data seeding and migration
|
- (Future) Commerce data seeding and migration
|
||||||
- (Future) Multi-store management
|
- (Future) Multi-store management
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
---
|
---
|
||||||
name: Commerce Store Creation Requirements
|
name: Commerce B2B Store Creation Requirements
|
||||||
description: Critical workflow for creating B2B/B2C Commerce stores and storefronts - understand the distinction between Commerce Store (runtime data) and Storefront (LWR site).
|
description: Critical workflow for creating B2B Commerce stores - understand Store vs Storefront distinction
|
||||||
tags: commerce, b2b, b2c, store, storefront, lwr, experience-cloud, rules, scom
|
tags: commerce, b2b, scom, scom b2b, commerce b2b, store, storefront, lwr, experience-cloud, rules
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚠️ CRITICAL: Commerce Store vs Storefront Distinction
|
## ⚠️ CRITICAL: Commerce Store vs Storefront Distinction
|
||||||
|
|
||||||
When creating a Commerce B2B or B2C solution, you must understand the distinction between two separate but related components:
|
When creating a Commerce B2B solution, you must understand the distinction between two separate but related components:
|
||||||
|
|
||||||
### 1. Commerce Store (For Merchandisers)
|
### 1. Commerce Store (For Merchandisers)
|
||||||
**What it is:**
|
**What it is:**
|
||||||
@ -51,7 +51,7 @@ When creating a Commerce B2B or B2C solution, you must understand the distinctio
|
|||||||
|
|
||||||
## 🚫 Common Mistake: Creating Storefront Metadata from Scratch
|
## 🚫 Common Mistake: Creating Storefront Metadata from Scratch
|
||||||
|
|
||||||
**DO NOT** attempt to manually create Commerce storefront metadata files (StorefrontName.digitalExperience-meta.xml, StorefrontName.digitalExperience-meta.xml) from scratch in your repository.
|
**DO NOT** attempt to manually create Commerce storefront metadata files (StorefrontName.digitalExperience-meta.xml) from scratch in your repository.
|
||||||
|
|
||||||
**Why this fails:**
|
**Why this fails:**
|
||||||
- Commerce storefronts have complex dependencies on the Commerce Store data
|
- Commerce storefronts have complex dependencies on the Commerce Store data
|
||||||
@ -61,7 +61,28 @@ When creating a Commerce B2B or B2C solution, you must understand the distinctio
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ Required Workflow for Creating Commerce B2B/B2C Sites
|
## Agent Guidance: Interactive Flow Requirements
|
||||||
|
|
||||||
|
**When user asks to create Commerce storefront, agent MUST:**
|
||||||
|
|
||||||
|
1. Follow the interactive flow from `prompts/commerce/create-retrieve-b2b-storefront.md`
|
||||||
|
2. Explain the Store vs Storefront concept first
|
||||||
|
3. Guide user to create B2B Store in org with clear steps
|
||||||
|
4. Get explicit confirmation that Store was created
|
||||||
|
5. Run `sf org list metadata --metadata-type DigitalExperienceConfig` to list available sites
|
||||||
|
6. Let user select from the list (don't assume store name)
|
||||||
|
7. Retrieve with: `sf project retrieve start -m DigitalExperienceBundle:site/<store-name>`
|
||||||
|
8. Provide next steps with documentation links
|
||||||
|
|
||||||
|
**What agents should NEVER do:**
|
||||||
|
- Create .digitalExperience-meta.xml files from scratch
|
||||||
|
- Skip the Store creation step
|
||||||
|
- Assume store name without listing/confirming
|
||||||
|
- Deploy without verifying Store exists in target org
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Required Workflow for Creating Commerce B2B Sites
|
||||||
|
|
||||||
### Step 1: Create Commerce Store in the Org (MUST BE DONE FIRST)
|
### Step 1: Create Commerce Store in the Org (MUST BE DONE FIRST)
|
||||||
|
|
||||||
@ -71,14 +92,12 @@ When creating a Commerce B2B or B2C solution, you must understand the distinctio
|
|||||||
|
|
||||||
2. **Create New Store (via UI):**
|
2. **Create New Store (via UI):**
|
||||||
- Click "Create Store" or "Setup New Store"
|
- Click "Create Store" or "Setup New Store"
|
||||||
- Choose store type:
|
- Choose store type: **B2B Store** - For business buyers with account hierarchies, buyer groups, negotiated pricing
|
||||||
- **B2B Store** - For business buyers with account hierarchies, buyer groups, negotiated pricing
|
|
||||||
- **B2C Store** - For individual consumers with guest checkout
|
|
||||||
- Follow the store setup wizard
|
- Follow the store setup wizard
|
||||||
|
|
||||||
3. **Store Setup Wizard will create:**
|
3. **Store Setup Wizard will create:**
|
||||||
- WebStore record with unique name
|
- WebStore record with unique name
|
||||||
- Default buyer group (B2B: associated with Accounts; B2C: AllBuyers)
|
- Default buyer group (associated with Accounts)
|
||||||
- Default entitlement policies (who can see which products)
|
- Default entitlement policies (who can see which products)
|
||||||
- Default price book association
|
- Default price book association
|
||||||
- Default checkout flow configuration
|
- Default checkout flow configuration
|
||||||
@ -89,8 +108,7 @@ When creating a Commerce B2B or B2C solution, you must understand the distinctio
|
|||||||
- Tax provider (Avalara, Vertex, manual)
|
- Tax provider (Avalara, Vertex, manual)
|
||||||
- Shipping methods
|
- Shipping methods
|
||||||
- Search settings
|
- Search settings
|
||||||
- Guest checkout (B2C)
|
- Account-based features
|
||||||
- Account-based features (B2B)
|
|
||||||
|
|
||||||
5. **Verify Store Creation:**
|
5. **Verify Store Creation:**
|
||||||
- Setup → All Sites → Find your new Experience Cloud site
|
- Setup → All Sites → Find your new Experience Cloud site
|
||||||
@ -103,13 +121,11 @@ After the Commerce Store is created in the org, retrieve the generated Experienc
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# List all Digital Experiences in your org
|
# List all Digital Experiences in your org
|
||||||
sf project retrieve start --metadata DigitalExperience
|
sf org list metadata --metadata-type DigitalExperienceConfig
|
||||||
|
|
||||||
# Or retrieve specific Experience by name
|
|
||||||
sf project retrieve start --metadata DigitalExperience:My_B2B_Store
|
|
||||||
|
|
||||||
# Retrieve the complete ExperienceBundle
|
# Retrieve the complete ExperienceBundle
|
||||||
sf project retrieve start --metadata ExperienceBundle:My_B2B_Store
|
# Note: Salesforce appends a number suffix (e.g., "My B2B Store" becomes "My_B2B_Store1")
|
||||||
|
sf project retrieve start -m DigitalExperienceBundle:site/My_B2B_Store1
|
||||||
```
|
```
|
||||||
|
|
||||||
**What you'll get:**
|
**What you'll get:**
|
||||||
@ -217,7 +233,7 @@ sf project deploy start --source-dir force-app/main/default/digitalExperiences/s
|
|||||||
|
|
||||||
When deploying your storefront to a new org:
|
When deploying your storefront to a new org:
|
||||||
|
|
||||||
- [ ] Target org has Commerce licenses (B2B Commerce or B2C Commerce)
|
- [ ] Target org has Commerce licenses (B2B Commerce)
|
||||||
- [ ] Experience Cloud is enabled and domain configured
|
- [ ] Experience Cloud is enabled and domain configured
|
||||||
- [ ] Commerce Store has been created in target org (via Commerce app UI)
|
- [ ] Commerce Store has been created in target org (via Commerce app UI)
|
||||||
- [ ] WebStore name matches the Experience name in your metadata
|
- [ ] WebStore name matches the Experience name in your metadata
|
||||||
@ -239,12 +255,7 @@ When deploying your storefront to a new org:
|
|||||||
- Configure negotiated pricing and entitlement policies
|
- Configure negotiated pricing and entitlement policies
|
||||||
- Set up account hierarchies
|
- Set up account hierarchies
|
||||||
|
|
||||||
### For B2C Commerce:
|
### General Setup:
|
||||||
- Configure guest checkout settings
|
|
||||||
- Set up customer registration flows
|
|
||||||
- Configure AllBuyers entitlement policy
|
|
||||||
|
|
||||||
### For Both:
|
|
||||||
- Seed product catalog (Products, ProductCategory, ProductCatalog)
|
- Seed product catalog (Products, ProductCategory, ProductCatalog)
|
||||||
- Create price books and price book entries
|
- Create price books and price book entries
|
||||||
- Configure inventory (ProductItem, LocationInventory)
|
- Configure inventory (ProductItem, LocationInventory)
|
||||||
@ -261,7 +272,7 @@ When deploying your storefront to a new org:
|
|||||||
2. ✅ Instruct them to create the Commerce Store in their org first
|
2. ✅ Instruct them to create the Commerce Store in their org first
|
||||||
3. ✅ Provide the Salesforce CLI retrieve commands
|
3. ✅ Provide the Salesforce CLI retrieve commands
|
||||||
4. ✅ Optionally: Create custom LWCs for extending the retrieved storefront
|
4. ✅ Optionally: Create custom LWCs for extending the retrieved storefront
|
||||||
5. ❌ DO NOT create StorefrontName.digitalExperience-meta.xml or StorefrontName.digitalExperience-meta.xml from scratch
|
5. ❌ DO NOT create StorefrontName.digitalExperience-meta.xml from scratch
|
||||||
|
|
||||||
**Acceptable to create from scratch:**
|
**Acceptable to create from scratch:**
|
||||||
- Custom LWCs for storefront extensions (hero banners, promotions, custom product cards)
|
- Custom LWCs for storefront extensions (hero banners, promotions, custom product cards)
|
||||||
@ -281,7 +292,6 @@ When deploying your storefront to a new org:
|
|||||||
- Setup → Commerce → Stores
|
- Setup → Commerce → Stores
|
||||||
- Commerce app from App Launcher → Create / Select App
|
- Commerce app from App Launcher → Create / Select App
|
||||||
- Help Article: "Set Up a B2B Commerce Store"
|
- Help Article: "Set Up a B2B Commerce Store"
|
||||||
- Help Article: "Set Up a B2C Commerce Store"
|
|
||||||
|
|
||||||
**Storefront Customization:**
|
**Storefront Customization:**
|
||||||
- Experience Builder → Open your store site
|
- Experience Builder → Open your store site
|
||||||
@ -291,13 +301,17 @@ When deploying your storefront to a new org:
|
|||||||
**Metadata Retrieval:**
|
**Metadata Retrieval:**
|
||||||
```bash
|
```bash
|
||||||
# List all retrievable metadata types
|
# List all retrievable metadata types
|
||||||
sf org list metadata --metadata-type DigitalExperience
|
sf org list metadata --metadata-type DigitalExperienceConfig
|
||||||
sf org list metadata --metadata-type ExperienceBundle
|
|
||||||
|
|
||||||
# Retrieve specific experience
|
# Retrieve specific experience
|
||||||
sf project retrieve start --metadata ExperienceBundle:YourStoreName
|
sf project retrieve start -m DigitalExperienceBundle:site/YourStoreName
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Documentation:**
|
||||||
|
- [DigitalExperienceBundle Metadata](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_digitalexperiencebundle.htm)
|
||||||
|
- [DigitalExperienceBundle Site](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_digitalexperiencebundle_site.htm)
|
||||||
|
- [B2B Commerce Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.b2b_commerce_dev_guide.meta/b2b_commerce_dev_guide/)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🎓 Key Takeaway
|
## 🎓 Key Takeaway
|
||||||
Loading…
Reference in New Issue
Block a user