2026-05-12
Public API + CLI + MCP, cart, subscriptions, buyer trust
- →TypeScript SDK: @anyshop/sdk — typed client, zero runtime deps. new Anyshop({apiKey}).orders.list({status:"paid"}).
- →CLI: @anyshop/cli — npx @anyshop/cli orders list, products create, audit, etc. Zero runtime deps.
- →MCP server: @anyshop/mcp — drop into Claude Desktop to manage your store conversationally. 10 tools mapped to the REST API.
- →HWID license binding: /api/v1/license_keys/[id]/bind + verify endpoint with bind_on_first_use flag.
- →Stripe Payment Links: dashboard button + API endpoint for reusable / one-time checkout URLs.
- →Mark fulfilled button for paid orders that need manual fulfillment.
- →Multi-line cart on the storefront: add multiple products, single Stripe Checkout Session with all line_items.
- →Buyer trust: shop landing shows ★ rating + N orders fulfilled + member-since + buyer-protection badge. Buyers leave reviews from the receipt; sellers see them on /dashboard/feedback. "Report a problem" complaint flow surfaces in /admin/complaints platform-wide.
- →REST API v1: /api/whoami, /api/v1/orders, /api/v1/orders/[id], /api/v1/products (GET + POST). Bearer-token auth via SHA-256 hashed API keys.
- →Stripe Subscriptions: subscription-type products checkout in mode:subscription, renewals create orders via invoice.paid, buyers manage billing via Stripe Portal.
- →Embed checkout: <script src=embed.js> with AnyShop.open({shopSlug,productSlug}) — modal iframe with auto top-level breakout on Stripe redirect.
- →Webhook deliveries log + per-delivery detail + replay button.
- →Discord and Slack incoming-webhook URLs auto-formatted as embeds.
- →License key bulk import (10k per paste, deduped against existing).
- →Order detail: delivered keys per line, audit timeline, webhook log, refund-with-Stripe action.
- →Refund button calls real Stripe Refunds API; charge.refunded webhook keeps bookkeeping idempotent.
- →Email receipts via Resend (graceful no-op without RESEND_API_KEY).
- →Storefront product search, embed-mode layout, "Email me my orders" lookup flow.
- →Seller analytics page with daily revenue + order sparklines.
- →Edit product + duplicate product actions.
- →CSV export for orders and customers.
- →Stale-pending order cleanup cron (every 15 min).
- →Stripe Connect routing: when the seller has connected, sessions create on their account with a 1% application_fee_amount (or fee_percent for subscriptions).
- →Dashboard setup-health warnings: STRIPE_SECRET_KEY missing, STRIPE_WEBHOOK_SECRET missing (the silent-failure one), RESEND_API_KEY missing.
- →Low license-key stock alert on the dashboard home.
- →Test mode pill in the top bar when running on Stripe test keys.