labskai / shopmade-shop
Products, cart, guest checkout with optional Stripe, and orders for Shopmade.
v0.1.0
2026-10-28 23:02 UTC
Requires
- php: ^8.4
- ext-intl: *
- laravel/framework: ^13.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-28 23:10:07 UTC
README
A small shop for Shopmade core: products, a public storefront with cart and guest checkout, optional Stripe Checkout, and staff order handling. MIT licensed.
What it adds
- Storefront at
/shop: product grid, product page, cart, checkout, thank-you page and a private order link for the buyer, plus a confirmation email. It renders inside the public site's own layout (theme tokens, header, footer), so it matches the site. Shop pages arenoindex. - Staff: Products and Orders in the sidebar (Sales group). Mark orders paid, fulfilled or cancelled. Writes follow each tool's
manage_roles(admins). - Dashboard: new orders and paid orders waiting to be fulfilled.
- Customer page: the customer's orders, when an order was linked to one.
- MCP:
products_listandorders_list(read-only).
Install
composer require labskai/shopmade-shop php artisan migrate npm run build
Stripe (optional)
Without keys, checkout saves the order for pay-later and staff mark it paid. To take card payments:
STRIPE_KEY=pk_live_... STRIPE_SECRET=sk_live_... STRIPE_WEBHOOK_SECRET=whsec_... # endpoint: https://your-site/stripe/webhook, events checkout.session.completed, checkout.session.async_payment_succeeded and checkout.session.expired (releases the stock of an abandoned checkout) STRIPE_CURRENCY=usd
With STRIPE_WEBHOOK_SECRET set, webhooks must carry a valid Stripe-Signature. Without it, each event is confirmed by looking the session up at Stripe before an order is marked paid.
Tests
cd ../shopmade-core composer config repositories.shop '{"type":"path","url":"../shopmade-shop"}' composer require "labskai/shopmade-shop:*@dev" vendor/bin/pest vendor/labskai/shopmade-shop/tests