Skip to main content
Geneva, Switzerland Call our support
English

E-commerce setup overview

End-to-end commerce checklist.

How Struxa commerce works

Core commerce sells published content entries from a configured product content type via Stripe Checkout. Products are entries with price fields—not a separate product table.

Prerequisites

  • Run composer migrate (includes commerce and digital grant tables)
  • Stripe account with test and live API keys
  • Permission manage_commerce for admin setup

Setup checklist

  1. Product content type — Import Product store blueprint from Tools → Blueprints, or create a type manually with commerce field conventions.
  2. Commerce → Commerce settings
    • Enable commerce
    • Set product content type slug (default product)
    • Set currency (gbp, usd, …)
    • Optional: order notification email, customer confirmation emails, inventory tracking
    • Optional: flat tax, shipping, allowed countries
    • Add Stripe secret, publishable, and webhook signing keys
  3. Commerce → Coupons — Create discount codes for cart checkout.
  4. Stripe Dashboard — Webhook endpoint https://your-site/commerce/stripe/webhook
    • Events: checkout.session.completed, checkout.session.expired
  5. Create products — Published entries with price_cents, purchasable on, stock if tracking enabled.
  6. Verify storefront/shop, product singles, cart, test checkout with Stripe test card.

Storefront routes

RoutePurpose
/shopProduct catalog grid
/commerce/cartSession cart
/commerce/checkoutBuy now (POST, single item)
/commerce/cart/checkoutMulti-item cart checkout (POST)

Architecture overview

Key services: ProductResolver, CartService, StripeCheckoutService, OrderFulfillmentService, DigitalFulfillmentService. See developer docs in docs/commerce.md.

Troubleshooting

  • Shop empty — Commerce disabled, wrong product type slug, or no published purchasable entries.
  • Buy button missingpurchasable off or out of stock when inventory tracking enabled.