Skip to content

M8: Stripe billing + tier metering — $99 / $299 / Scale, usage hooks for image + video + SKU count #10

Description

@ninan-versioning

Milestone 8 — Billing & Metering

Vertical: enterprise
Revenue-Signal: acquisition
Customer-Type: smb-brand|mid-market|enterprise

What

Wire Stripe billing for $99 / $299 / Scale tiers, with usage metering hooks for image runs, video runs, and SKU count. Replaces the loose "licensing hooks" line in M4 with a shippable subscription product.

Scope

  • Stripe products: shoploop_starter_99, shoploop_growth_299, shoploop_scale_custom
  • Usage meters: image_runs, video_runs, active_skus (Stripe Usage-Based Billing API)
  • Shopify Billing API parity: for App Store installs, billing flows via Shopify (merchant convenience); for direct accounts, Stripe
  • Tier gates wired to M7 cost guardrails — over-tier requests get upsell modal, not silent failure
  • Cancellation flow: data export triggered (see M9), then billing termination
  • Annual plan: 20% discount, locked feature scope

Why

No billing = no business. App Store listing (M6 in shoploop-shopify) cannot ship without configured pricing. Decision Gate is "ships in ≤2 weeks solo" — Stripe + Shopify Billing API is genuinely a 1-week solo build.

Acceptance criteria

  • Three Stripe products live with usage meters configured
  • Test merchant subscribes, gets over-cap upsell, downgrades, cancels
  • Shopify Billing API parity verified for App Store install path
  • Revenue dashboard surfaces MRR + tier mix in admin

Affected repos

shoploop (primary), shoploop-shopify (Shopify Billing API), shoploop-core (meter event emitter)

Cost

Stripe fees only — 2.9% + $0.30 per transaction. No fixed cost.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions