Work/Full-Stack Web

Iron Threads Team Portal

Team-order portal on a live Shopify store with coach accounts and order board

Typeclient
Statusshipped
Updated2026-09-21
Commits10
SourcePrivate

What it is

A team-order front end for a wrestling apparel store's live Shopify catalog. Coaches build a package, enter the roster once, and check out with every athlete's name, number and size attached to cart lines through the Storefront API. Supabase holds coach accounts, saved teams and rosters, order history and first-party funnel analytics behind RLS, and admins get an order board with status history and notes.

The problem

Team orders need a name, number and size per athlete, which a standard Shopify cart cannot collect cleanly.

How it works

  1. Products, prices, sizes and variants are read live from the Shopify Storefront API; cartCreate builds one line per athlete per garment with Athlete, Number, Size and Team attributes and returns a real checkoutUrl.
  2. Volume tiers map to real discount codes configured in the Shopify admin.
  3. Supabase migrations define teams, athletes, team_orders, portal_events, order_updates and a private team-designs bucket, all behind RLS with an admin allowlist.
  4. A team designer, logo and proof uploads, and an admin order board that tracks checkout-started through arrived.

Stack

ReactViteTypeScriptShopify Storefront APISupabaseVercel

Disciplines

For your business

Custom ordering portals layered on a client's existing Shopify store for bulk or team purchases.