Skip to main content
Vulpy Commerce uses Payload CMS for editorial content, media, and site structure. This page lists the collections and globals that ship with Vulpy, explains how Medusa remains the source of truth for product and category identity, and points to the Payload docs for extending the schema.
Ask Fox to draft schema changes. Fox writes the collection config, runs the dev migration in your checkout, and shows you the diff.Try prompts like:
  • “Add a status field to contact-submissions.”
  • “Draft a new reviews collection.”
  • “Regenerate Payload types after my last change.”

Collections

Globals

Sync rules with Medusa

Medusa remains the source of truth for product and category identity. In productContent and categoryContent, these fields are read-only in Payload:
  • title
  • handle
  • medusaCategoryId
Editorial fields, including blocks, h1, and seo, are writable in Payload and render in the storefront. This separation lets merchandisers edit content without changing catalog data.

Extending the schema

You can add fields to existing collections or create new collections and globals via Payload configuration. For guidance, see the Payload docs: Access control functions gate who can read and write each collection. Configure them to match your team roles.

Environment behavior

Set CMS_STRICT=1 to make storefront Payload failures rethrow in production instead of rendering an empty shell. Without this flag, the storefront silently skips missing or failed CMS content. See Environment variables.
Seed defaults live in apps/storefront/src/lib/cms/defaults.ts and are only used in non-production environments when Payload is empty.

Storefront blocks

Register new Payload blocks and map them to React components in the storefront.

Content management

Learn how editorial content flows from Payload into the storefront.