dist/codex/salesforce-commerce/skills/sf-b2b-experience/SKILL.md
Build B2B Commerce storefronts with Experience Builder — LWR templates, page types (Home, Product, Category, Cart, Checkout), standard and custom components, theme layouts, navigation, SEO configuration, and site publishing. Use when assembling B2B/D2C storefronts.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins sf-b2b-experienceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Build B2B Commerce storefronts using Salesforce Experience Builder (formerly Community Builder).
Fetch live docs BEFORE writing code:
Web-search the latest:
Web-fetch official sources:
developer.salesforce.com/docs/commerce/salesforce-commerce/guide/experience-builder.htmlhelp.salesforce.com/s/articleView?id=sf.b2b_comm_lightning_storefront_setup.htmdeveloper.salesforce.com/docs/platform/lwc/guide/lwr-get-started.htmlVerify current LWR template structure, standard component catalog, page types, buyer group configuration, and SEO metadata options.
| Feature | LWR (Modern) | Aura (Legacy) | |---------|--------------|---------------| | Performance | Faster, optimized rendering | Slower, heavier framework | | Standards | Web standards (ES modules, Shadow DOM) | Proprietary component model | | Components | LWC only | Aura + LWC | | SEO | Better server-side rendering | Limited | | PWA support | Progressive Web App capable | No | | Future | Active development | Maintenance mode |
Always use LWR templates for new B2B Commerce storefronts.
| Page Type | Purpose | Key Components | |-----------|---------|---------------| | Home | Landing page | Hero banner, featured products, category nav, search | | Product Detail (PDP) | Single product view | Gallery, pricing, inventory, add-to-cart, variations | | Product List (PLP) | Category/search results | Product grid, filters, sorting, pagination, breadcrumbs | | Cart | Shopping cart | Line items, quantities, pricing summary, promo codes | | Checkout | Multi-step purchase flow | Shipping, delivery, payment, review, submit | | Order Confirmation | Post-purchase | Order number, details, shipping, continue shopping | | Search Results | Query results | Product matches, filters, sorting, suggestions | | Account Management | Customer self-service | Order history, addresses, payment methods, profile |
Theme Configuration
├── Company Settings (logo, favicon)
├── Color Palette (primary, secondary, text, bg)
├── Typography (headings, body, font families)
└── Custom CSS (advanced overrides)
Layout components: Header (logo, nav, search, cart, account), Footer (links, contact, social), Sidebar (filters, category tree), Grid System (responsive columns).
Responsive breakpoints: Desktop (1024px+), Tablet (768-1023px), Mobile (<768px). Component visibility can be configured per device type.
Buyer groups are collections of accounts that share product catalog visibility, pricing rules, entitlement policies, and payment terms.
| Concept | Description | |---------|-------------| | Product entitlements | Which products each buyer group can see | | Pricing rules | Group-specific pricing (negotiated, volume, contract) | | Payment terms | Net 30, Net 60, credit limits per group | | Guest browsing | Limited catalog, list prices only, no checkout (configurable) |
Use cases: VIP customers, regional buyers, partner tiers (Gold/Silver/Bronze), contract-based pricing.
| Element | Configuration |
|---------|--------------|
| Page title | <title> tag, 50-60 chars, set per page |
| Meta description | Search snippet, 150-160 chars |
| URL slug | User-friendly path (no random IDs) |
| Open Graph tags | Social media sharing metadata |
| Canonical URL | Prevent duplicate content |
| Structured data | Schema.org (Product, Breadcrumb, Organization) |
| Sitemap | Automatic XML generation; submit to Search Console |
Experience Builder supports conditional component visibility:
Custom LWC components are exposed to Experience Builder via js-meta.xml (see sf-b2b-lwc skill for development details):
isExposed: true and target lightningCommunity__Page / lightningCommunity__Default| Stage | Description | |-------|-------------| | Draft | Build pages, add components, configure settings (not visible to visitors) | | Preview | Preview as different user types (guest, authenticated, buyer groups) | | Publish | One-click publish; changes go live immediately; version history for rollback | | Activate/Deactivate | Control site availability; set maintenance page when deactivated |
Fetch Experience Builder docs, LWR template guide, and B2B Commerce setup documentation for exact page configuration, component catalog, and buyer group setup before implementing.
development
Build with Spree's headless Next.js storefront — the official `spree/storefront` repo (Next.js 16 App Router with Server Actions and Turbopack, React 19 Server Components, Tailwind CSS 4, TypeScript 5, `@spree/sdk`, Sentry), server-only auth (httpOnly JWT cookies + publishable key), MeiliSearch faceted catalog, one-page checkout with Apple/Google Pay/Klarna/Affirm/SEPA, multi-region market routing, GA4 + JSON-LD SEO, and Vercel/Docker deployment. Use when forking or customizing the storefront, or evaluating headless adoption.
tools
Build Spree extensions as Rails engines — gem scaffolding, `bin/rails g spree:extension`, mounting routes/migrations/assets, the modern `prepend` decorator pattern (`*_decorator.rb` with `self.prepended(base)`), generators (`spree:model_decorator`, `spree:controller_decorator`), the four customization surfaces in preference order (Events > Webhooks > Dependencies > Decorators), Spree::Dependencies for swapping service objects, gem release/versioning, and the deprecated Deface engine. Use when building a reusable Spree extension or adding non-trivial customization to an app.
development
Build with Spree's event bus and Webhooks 2.0 — `Spree::Events` publication, `Spree::Subscriber` DSL with `subscribes_to` and `on`, wildcard matching, lifecycle events (`{model}.created/.updated/.deleted` via `publishes_lifecycle_events`), the canonical event catalog (order.*, payment.*, shipment.*, product.*), Webhooks 2.0 endpoints, HMAC-SHA256 signing (`X-Spree-Webhook-Signature`), exponential-backoff retries, and Sidekiq job orchestration. Use when wiring event-driven business logic, building webhook consumers, or replacing ActiveSupport callback chains.
tools
Cross-cutting Spree development patterns — the customization preference hierarchy (Events > Webhooks > Dependencies > Decorators), `Spree::Dependencies` service-object swapping, the `_decorator.rb` + `prepend` + `self.prepended` idiom, idempotent subscribers and webhook receivers, multi-store scoping discipline, prefixed IDs, calculator polymorphism (shipping/promotion/tax share the base), service-object composition with `dry-monads` or simple results, why to avoid `class_eval` reopening and Deface, and Spree-on-Rails idioms (Hotwire/Turbo Stimulus, ActiveStorage, Action Cable, Sidekiq). Use when designing the architecture of a Spree extension or solving cross-cutting concerns.