# Shop

Status: Shipped

Fanful's shop is designed as one part of the fan relationship, not a separate retail island. The current stack supports active products, Stripe-hosted checkout, inventory checks, purchase records, and admin commerce visibility.

## What is usable now

- /shop reads active, in-stock products from D1 and only appears publicly when the feature flag and product state make that honest.
- /api/checkout validates store items before creating a Stripe-hosted Checkout Session when Stripe credentials are configured.
- Paid Stripe events update purchase rows and decrement inventory when a purchase moves to paid.
- /admin#commerce shows shop controls, inventory, download metadata, purchase counts, gross revenue, and recent purchase rows.
- Native surfaces can read shop catalog data through shared mobile support contracts without wrapping the public shop page.

## Fan value

- Fans can buy from the same owned destination where they listen, join, book, subscribe, or follow updates.
- Checkout can be Stripe-hosted while the site keeps fan and purchase context in Fanful.
- Product availability is explicit, so an empty or out-of-stock shop does not need to be advertised.

## Creator value

- Creators can treat product sales as part of fan operations rather than a separate storefront database.
- Purchases can later connect to email audiences, memberships, downloads, support, and analytics.
- The platform fee policy can be explained alongside plan pricing before Stripe or other payment-processing fees.

## Evidence in the current stack

- Stripe checkout shape: docs/features/payments.md documents /api/checkout, Stripe-hosted Checkout Sessions, purchase rows, webhooks, and account/admin purchase visibility.
- Shop visibility: The payments notes document that the public shop is feature-flagged and hidden from navigation unless an active in-stock product exists.
- Admin commerce: docs/features/payments.md and the existing admin commerce screenshot cover inventory, download metadata, purchase counts, and revenue summaries.

## Boundaries

- Fanful should not claim Shopify-scale retail app ecosystem depth.
- Multi-artist payouts and application fees need Stripe Connect Accounts v2 before Fanful routes money for many creators.
- Stripe credentials are required for live card checkout; without them, the app must keep using honest preview/fallback states.

## Pricing notes

- Fanful takes a platform fee on fan payments processed through the platform, before Stripe or other payment-processing fees.
- Shop sales can create media/download storage and request costs when products include digital fulfillment.

## Related pages

- [All features](/features): Return to the Fanful feature catalog.
- [Pricing](/pricing): Review the platform fee and plan limits.
- [Laurel shop](/shop): Open the production shop surface when products are active.
- [Markdown feature catalog](/features.md)
- [HTML feature page](/features/shop)
