Skip to content
Back to skills

022 Pre C8b9ae3d

ASecurity

Pre-built data model for Salesforce B2B Commerce using `flowchart LR` format with color coding and relationship indicators.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
businesspythongobashnode

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 022-pre_c8b9ae3d --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 022 Pre C8b9ae3d?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 022 Pre C8b9ae3d
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-022-pre-c8b9ae3d/badge)](https://www.skillsdirectory.com/skills/tools-only-022-pre-c8b9ae3d)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# B2B Commerce Data Model Template

Pre-built data model for Salesforce B2B Commerce using `flowchart LR` format with color coding and relationship indicators.

## Objects Included

| Object | Type | Description |
|--------|------|-------------|
| WebStore | STD | Online storefront |
| WebCart | STD | Shopping cart |
| CartItem | STD | Cart products |
| BuyerGroup | STD | Customer groups |
| BuyerAccount | STD | B2B customers |
| ProductCatalog | STD | Product catalog |
| CommerceEntitlementPolicy | STD | Access policies |
| CartCheckoutSession | STD | Checkout process |

---

## Query Org Metadata (Recommended)

Enrich diagram with live org data:

```bash
python3 ~/.claude/plugins/marketplaces/sf-skills/sf-diagram-mermaid/scripts/query-org-metadata.py \
    --objects WebStore,WebCart,CartItem,BuyerGroup,BuyerAccount \
    --target-org myorg
```

---

## Mermaid Template (Preferred)

Left-to-right flowchart with color coding.

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    %% ═══════════════════════════════════════════════════════════════
    %% B2B COMMERCE DATA MODEL
    %% LEGEND: LK = Lookup (-->), MD = Master-Detail (==>)
    %% Colors: Blue = Standard, Orange = Custom, Green = External
    %% ═══════════════════════════════════════════════════════════════

    %% Store Structure
    WebStore["WebStore<br/>(count)"]
    ProductCatalog["ProductCatalog<br/>(count)"]
    Product2["Product2<br/>(count)"]

    %% Buyer Structure
    BuyerGroup["BuyerGroup<br/>(count)"]
    BuyerAccount["BuyerAccount<br/>(count)"]
    BuyerGroupMember["BuyerGroupMember<br/>(count)"]
    Account["Account<br/>(count)"]

    %% Cart Structure
    WebCart["WebCart<br/>(count)"]
    CartItem["CartItem<br/>(count)"]
    CartCheckout["CartCheckoutSession<br/>(count)"]

    %% Entitlements
    CEPolicy["CommerceEntitlementPolicy<br/>(count)"]
    CEProduct["CommerceEntitlementProduct<br/>(count)"]
    CEBuyerGroup["CommerceEntitlementBuyerGroup<br/>(count)"]

    %% Store to Products
    WebStore -->|"LK"| ProductCatalog
    ProductCatalog ==>|"MD"| Product2

    %% Buyer Structure
    BuyerGroup ==>|"MD"| BuyerGroupMember
    Account -->|"LK"| BuyerAccount
    WebStore -->|"LK"| BuyerAccount
    BuyerAccount -->|"LK"| BuyerGroupMember

    %% Cart
    WebStore -->|"LK"| WebCart
    Account -->|"LK"| WebCart
    WebCart ==>|"MD"| CartItem
    Product2 -->|"LK"| CartItem
    WebCart -->|"LK"| CartCheckout

    %% Entitlements
    CEPolicy ==>|"MD"| CEProduct
    CEPolicy ==>|"MD"| CEBuyerGroup
    Product2 -->|"LK"| CEProduct
    BuyerGroup -->|"LK"| CEBuyerGroup

    %% Standard Objects - Sky Blue
    style WebStore fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style ProductCatalog fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Product2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style BuyerGroup fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style BuyerAccount fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style BuyerGroupMember fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Account fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style WebCart fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style CartItem fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style CartCheckout fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style CEPolicy fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style CEProduct fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style CEBuyerGroup fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## Key Concepts

### B2B Commerce Flow
```
WebStore → ProductCatalog → Product2
    ↓           ↓
BuyerAccount → WebCart → CartItem → Order
    ↓
BuyerGroup → Entitlements (What they can see/buy)
```

### Buyer vs Account
| Object | Purpose |
|--------|---------|
| Account | Standard CRM account |
| BuyerAccount | Commerce-enabled account |
| BuyerGroup | Pricing/entitlement grouping |

### Entitlement Model
```
CommerceEntitlementPolicy
    ├── CommerceEntitlementProduct (What products)
    └── CommerceEntitlementBuyerGroup (Who can see)
```

Controls which products each BuyerGroup can view and purchase.

### Cart States
| Status | Description |
|--------|-------------|
| Active | Current shopping cart |
| Checkout | In checkout process |
| Closed | Converted to Order |
| Abandoned | Inactive cart |

---

## Simplified Version (Core Objects Only)

For presentations focusing on core commerce flow:

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    WebStore["WebStore"]
    BuyerAccount["BuyerAccount"]
    WebCart["WebCart"]
    Order["Order"]

    WebStore -->|"hosts"| BuyerAccount
    BuyerAccount -->|"LK"| WebCart
    WebCart -.->|"converts"| Order

    style WebStore fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style BuyerAccount fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style WebCart fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Order fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## Pricing Model

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    BuyerGroup["BuyerGroup"]
    Pricebook2["Pricebook2"]
    PBE["PricebookEntry"]
    Product2["Product2"]
    WebStorePB["WebStorePricebook"]
    WebStore["WebStore"]

    BuyerGroup -->|"LK"| Pricebook2
    Pricebook2 ==>|"MD"| PBE
    Product2 -->|"LK"| PBE
    WebStore ==>|"MD"| WebStorePB
    Pricebook2 -->|"LK"| WebStorePB

    style BuyerGroup fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Pricebook2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style PBE fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Product2 fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style WebStorePB fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style WebStore fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## Cart to Order Conversion

```mermaid
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
    WebCart["WebCart"]
    CartItem["CartItem"]
    CartCheckout["CartCheckoutSession"]
    Order["Order"]
    OrderItem["OrderItem"]
    OrderSummary["OrderSummary"]

    WebCart ==>|"MD"| CartItem
    WebCart -->|"LK"| CartCheckout
    CartCheckout -.->|"creates"| Order
    Order ==>|"MD"| OrderItem
    Order -->|"LK"| OrderSummary

    style WebCart fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style CartItem fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style CartCheckout fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style Order fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style OrderItem fill:#bae6fd,stroke:#0369a1,color:#1f2937
    style OrderSummary fill:#bae6fd,stroke:#0369a1,color:#1f2937
```

---

## ASCII Fallback

```
┌─────────────────────────────────────────────────────────────────────────────┐
│  B2B COMMERCE DATA MODEL (L→R)                                               │
│  Legend: LK = Lookup (-->), MD = Master-Detail (==>)                        │
└─────────────────────────────────────────────────────────────────────────────┘

                           STORE & PRODUCTS
┌──────────────┐         ┌──────────────────┐         ┌──────────────┐
│   WEBSTORE   │── LK ──>│ PRODUCT_CATALOG  │═══ MD ═>│   PRODUCT2   │
│   (count)    │         │     (count)      │         │   (count)    │
└──────┬───────┘         └──────────────────┘         └──────────────┘
       │
       │                       BUYERS
       │
       │ LK              ┌──────────────────┐         ┌──────────────┐
       └────────────────>│  BUYER_ACCOUNT   │◄── LK ──│   ACCOUNT    │
                         │     (count)      │         │   (count)    │
                         └────────┬─────────┘         └──────────────┘
                                  │
                                  │ LK
                                  ▼
                         ┌──────────────────┐
                         │ BUYER_GROUP_     │◄══ MD ══┌──────────────┐
                         │ MEMBER (count)   │         │ BUYER_GROUP  │
                         └──────────────────┘         │   (count)    │
                                                      └──────────────┘

                               CART
┌──────────────┐         ┌──────────────────┐         ┌──────────────┐
│   WEBSTORE   │── LK ──>│     WEBCART      │═══ MD ═>│  CART_ITEM   │
│              │         │     (count)      │         │   (count)    │
└──────────────┘         └────────┬─────────┘         └──────────────┘
                                  │
                                  │ LK
                                  ▼
                         ┌──────────────────┐ converts ┌──────────────┐
                         │CART_CHECKOUT_    │·········>│    ORDER     │
                         │SESSION (count)   │          │   (count)    │
                         └──────────────────┘          └──────────────┘
```

---

## Key Relationships Summary

| Parent | Child | Type | Behavior |
|--------|-------|------|----------|
| WebStore | ProductCatalog | LK | Store products |
| WebStore | BuyerAccount | LK | Store customers |
| WebStore | WebCart | LK | Shopping carts |
| ProductCatalog | Product2 | MD | Catalog products |
| BuyerGroup | BuyerGroupMember | MD | Group members |
| Account | BuyerAccount | LK | Commerce enablement |
| WebCart | CartItem | MD | Cart products |
| WebCart | CartCheckoutSession | LK | Checkout |
| CommerceEntitlementPolicy | CommerceEntitlementProduct | MD | Product access |
| CommerceEntitlementPolicy | CommerceEntitlementBuyerGroup | MD | Group access |

---

## Limits & Considerations

| Limit | Value |
|-------|-------|
| Products per store | Unlimited (LDV) |
| Buyer accounts per store | Unlimited |
| Cart items per cart | 500 |
| Active carts per buyer | 1 |
| Price books per buyer group | Multiple |
| Entitlement policies | Unlimited |

---

## B2B vs B2C Commerce

| Feature | B2B Commerce | B2C Commerce |
|---------|--------------|--------------|
| Customer | Business (Account) | Consumer (Contact) |
| Pricing | Contract/negotiated | List price |
| Catalog | Entitlement-based | Public |
| Checkout | Quote/approval | Immediate |
| Platform | LWR/Aura | LWR/Headless |

---

## Best Practices

1. **Use `flowchart LR`** - Left-to-right flow for readability
2. **Keep objects simple** - Name + record count only
3. **Replace `(count)` placeholders** - With actual counts from query
4. **Add LDV indicator** - For objects >2M records: `LDV[~4M]`
5. **Color code object types** - Blue=Standard, Orange=Custom, Green=External

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.