dist/codex/salesforce-commerce/skills/sf-einstein/SKILL.md
Implement Einstein AI for Salesforce Commerce — Einstein Recommendations (product-to-product, user-to-product, trending), predictive sort, search ranking, Einstein Search Dictionaries, and Data Cloud personalization. Use when adding AI-powered features to commerce storefronts.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins sf-einsteinInstall 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.
Fetch live docs before implementing Einstein AI features.
Recommender Types:
| Type | Description | Typical Placement | |---|---|---| | Product-to-Product | Similar or complementary items (cross-sell) | PDP | | Recently Viewed | User's browsing history | Homepage, category | | Also Bought | Products frequently purchased together | Cart, PDP | | Trending | Popular items across all users | Homepage, category | | Top Sellers | Best-selling products by category/site | Homepage, category | | Personalized | ML-driven per-user recommendations | Homepage (returning users) |
Recommender Configuration (Business Manager):
Activity Collection:
Einstein activity tracking uses a collect.js library loaded on storefront pages. It automatically captures product views, add-to-cart, purchases, and search events. Configured via Business Manager > Einstein > Activity Tracking.
Warning: The
_etmcbeacon pattern is for Marketing Cloud Einstein, not Commerce Cloud Einstein. Do not confuse the two.
Recommendation Zones:
Personalized category page sorting powered by ML.
| Aspect | Detail | |---|---| | Input | User behavior (clicks, purchases, browse history) | | Output | Per-user product ranking on category pages | | Fallback | Default sorting for new / anonymous users | | Config | Per-category toggle in Business Manager |
Search Dictionaries:
| Dictionary Type | Purpose | Example | |---|---|---| | Synonyms | Map equivalent terms | sneakers -> running shoes | | Hypernyms | Broader category terms | iPhone -> smartphone | | Compound Words | Multi-word phrases | ice cream, swimming pool |
Search Relevance Tuning:
Typeahead Suggestions:
Integration Architecture:
B2C Commerce -> Data Cloud Connector -> Unified Profile
-> Segmentation + ML Models (Einstein)
-> Personalized Recommendations / Content
-> Commerce Storefront (SFRA / PWA Kit)
Key Concepts:
Data Cloud vs Commerce Cloud Einstein:
| Aspect | Commerce Cloud Einstein | Data Cloud Personalization | |---|---|---| | Data source | Commerce activity only | Cross-cloud unified profile | | Setup | Business Manager config | Data Cloud connector + config | | Segments | Implicit (ML-driven) | Explicit (rule-based + ML) | | Best for | Product recommendations | Cross-channel personalization |
Zone Placement Strategy:
| Page | Recommended Zones | |---|---| | Homepage | Trending + personalized (returning users) | | PDP | Similar products + complementary items (cross-sell) | | Cart | Cross-sell + upsell opportunities | | Category | Predictive sort + trending in category | | Search Results | Einstein-ranked results |
// Pattern: SFRA recommendation zone
// Fetch live docs for Einstein Recommendations API
var recs = einsteinAPI.getRecommendations(zone, customer);
// Render recs in ISML template
// Pattern: PWA Kit recommendations hook
// Fetch live docs for commerce-sdk-react useRecommendations
const {data} = useRecommendations({recommenderName, products});
// Pattern: Fallback when Einstein unavailable
// Fetch live docs for CacheMgr and fallback strategies
// try Einstein -> catch -> return getTopSellers(zone)
Fetch the Einstein Recommendations API reference and Data Cloud connector docs for exact configuration parameters and SDK versions 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.