feat(@sanity/sfcc): initial release of Salesforce Commerce Cloud plugin#794
feat(@sanity/sfcc): initial release of Salesforce Commerce Cloud plugin#794thebiggianthead merged 3 commits intomainfrom
Conversation
thebiggianthead
commented
Apr 1, 2026
- Added SFCC plugin for integrating Salesforce Commerce Cloud with Sanity, including document types for products and categories.
- Implemented schema building blocks, desk structure, and UI components for managing SFCC-synced data.
- Created test Studio workspace.
- Added SFCC plugin for integrating Salesforce Commerce Cloud with Sanity, including document types for products and categories. - Implemented schema building blocks, desk structure, and UI components for managing SFCC-synced data. - Created example workspace for usage.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 12f2775 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Preview this PR with pkg.pr.new
|
…fier to support both 4.x and 5.x
There was a problem hiding this comment.
Pull request overview
Introduces a new @sanity/sfcc plugin workspace that adds Studio tooling for working with Salesforce Commerce Cloud–synced product and category documents in this monorepo, plus a test-studio workspace to exercise the integration.
Changes:
- Added
@sanity/sfccplugin package with schema building blocks, desk structure helpers, UI components, and a delete action override. - Added Vitest coverage for package exports and preview
preparelogic. - Wired an SFCC example workspace into
dev/test-studioand updated monorepo configs (lockfile, knip, CODEOWNERS, changeset).
Reviewed changes
Copilot reviewed 25 out of 26 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Adds the new workspace and its resolved dependencies to the monorepo lockfile. |
| plugins/@sanity/sfcc/vitest.config.ts | Vitest config for the new plugin workspace. |
| plugins/@sanity/sfcc/tsconfig.json | Typecheck configuration for the plugin workspace. |
| plugins/@sanity/sfcc/tsconfig.build.json | Build TS config for the plugin package output. |
| plugins/@sanity/sfcc/src/structure/productStructure.ts | Desk structure list item for products, including variant grouping. |
| plugins/@sanity/sfcc/src/structure/index.ts | defineStructure helper + structure exports. |
| plugins/@sanity/sfcc/src/structure/categoryStructure.ts | Desk structure list item for categories. |
| plugins/@sanity/sfcc/src/schemas/product.tsx | Product store field definition + preview config. |
| plugins/@sanity/sfcc/src/schemas/product.test.ts | Tests for product preview prepare. |
| plugins/@sanity/sfcc/src/schemas/category.tsx | Category store field definition + preview config. |
| plugins/@sanity/sfcc/src/schemas/category.test.ts | Tests for category preview prepare. |
| plugins/@sanity/sfcc/src/index.ts | Main plugin entry: exports, sfccRenderMembers, and sfccPlugin definition. |
| plugins/@sanity/sfcc/src/index.test.ts | Tests package exports + plugin behavior (actions/options). |
| plugins/@sanity/sfcc/src/documentActions/sfccDelete.tsx | Custom delete action wrapper to enforce SFCC guardrails. |
| plugins/@sanity/sfcc/src/constants.ts | Defines API version used by Sanity client. |
| plugins/@sanity/sfcc/src/components/SfccOfflineBanner.tsx | Render-members decoration that warns when documents are offline. |
| plugins/@sanity/sfcc/src/components/SfccDocumentStatus.tsx | Preview media component with image + status overlay. |
| plugins/@sanity/sfcc/README.md | Usage/setup documentation for the new plugin. |
| plugins/@sanity/sfcc/package.json | New published package metadata and dependency declarations. |
| plugins/@sanity/sfcc/package.config.ts | @sanity/pkg-utils build config for the package. |
| knip.jsonc | Adds knip project entry for the new workspace. |
| dev/test-studio/src/sfcc/index.tsx | Example plugin configuration for test studio usage. |
| dev/test-studio/sanity.config.ts | Registers a new “Salesforce Commerce Cloud” workspace in test studio. |
| dev/test-studio/package.json | Adds @sanity/sfcc to test-studio dependencies. |
| .github/CODEOWNERS | Adds code ownership for the new plugin directory. |
| .changeset/curvy-dragons-open.md | Declares release intent for the new package. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pedrobonamin
left a comment
There was a problem hiding this comment.
Looks good to me! Thank you for adding this @thebiggianthead let us know any pain point and how we can make it better.
I've seen you added the trusted publishing and the package exists in npm, so it should be good to go.
I've checked the categories and products and it's empty, would it be possible to populate it so we get a working example in the test studio? It will help us fix any issues when doing maintenance to the plugin
|
Yeah I'll add some test data soon. I tested the plugin preview from pkg.pr.new on a Studio with data in – but need to do some pokery with data for this one (the plugin purposefully stops new documents being created from the Studio) and this was the quicker way! TY! |