All Startup Ideas

Guided B2B Wholesale Setup for Shopify

A guided wizard that configures native Shopify B2B on Basic, Grow, and Advanced — companies, catalogs, terms, and theme checks — without Plus.

On April 2, 2026 Shopify moved company profiles, catalogs, volume pricing, net terms, vaulted cards, and ACH off Plus and onto Basic, Grow, and Advanced. A DTC founder on a $39/month plan can sell wholesale without writing a $2,300/month check. The door opened. The map did not. One wrong toggle shows wholesale prices to retail buyers or breaks the live storefront they cannot afford to experiment on. Documentation reads like a developer manual, so the feature sits unlocked and untouched.

Built for Small Business Owners, Solo Founders, Non-Technical.

Shopify’s own B2B materials put global B2B ecommerce at $19.34 trillion in 2024, headed for $47.5 trillion by 2030.

The pond you are fishing is smaller and timed: Shopify reported B2B GMV on the platform grew 96% year over year in 2025, and two-thirds of B2B buyers abandon if their preferred payment terms are missing.

Suggested stack: Shopify app (Remix + Polaris), Admin GraphQL API, Postgres (Supabase or Neon), Theme app extension + Liquid, Claude (scan report only), Stripe + Shopify Billing + Vercel. Weekend scope: about 8 hours.

The Problem

On April 2, 2026 Shopify moved company profiles, catalogs, volume pricing, net terms, vaulted cards, and ACH off Plus and onto Basic, Grow, and Advanced. A DTC founder on a…

The Solution

A Shopify embedded app that configures native B2B — not a second wholesale portal. Scan products, variants, tags, theme, and catalogs, then walk five decisions: who sees…

Market Research

Shopify’s own B2B materials put global B2B ecommerce at $19.34 trillion in 2024, headed for $47.5 trillion by 2030. The pond you are fishing is smaller and timed: Shopify reported…

Competitive Landscape

Shopify native B2B — Company profiles, catalogs, Markets, volume pricing, payment terms on Basic/Grow/Advanced with no separate B2B fee. Zero extra stack. Weakness is the setup…

Business Model

Free ($0) — Readiness scan: six break points, 5-minute Loom, no writes to the store. Bio link in every thread you answer.

Recommended Tech Stack

Shopify app (Remix + Polaris) — Official template for OAuth, session tokens, Admin UI extensions. Five-step flow stays inside the admin.

AI Prompts to Build This

Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.

  1. 1. Project Setup

    Build the weekend MVP of "Catalog Clerk": scan a Shopify store for the six things that break native B2B wholesale, take five decisions in a wizard and produce a dry-run plan and a store-specific runbook. It changes nothing in the store.
    
    Stack: Next.js (App Router), TypeScript, Tailwind, Supabase (Postgres, Row Level Security, Auth with email magic link), the Shopify Admin GraphQL API with a custom app access token for one development store. The scan and the plan are plain code. Deploy on Vercel.
    
    Tables (Row Level Security on, each user reads only their own rows):
    - shops(id, user_id, shop_domain, access_token_encrypted)
    - scans(id, shop_id, break_points jsonb, score, created_at)
    - configs(id, shop_id, catalog_count, payment_terms, approval_mode, visibility, created_at)  catalog_count is 1 to 3
    - plans(id, shop_id, config_id, steps jsonb, snapshot jsonb, runbook_md, created_at)
    
    Screens: /login, /shop (connect the store), /scan (the six checks), /wizard (five questions), /plan (the dry-run steps and the runbook).
    Env vars (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), TOKEN_ENCRYPTION_KEY.
    
    Do not build: billing, audit or sprint products, any mutation of the store, a rewind, a theme extension or customer-account extension, a model, nightly scans.
    Done when: npm run dev starts, you can sign in, and the four tables exist with Row Level Security on.
  2. 2. Core Feature

    Build the one feature that proves Catalog Clerk: a scan and a plan precise enough that applying it by hand is safe.
    1. Connect a development store with a custom app token that has read access to products, customers, themes, markets and the B2B objects. Encrypt the token.
    2. GET /api/scan reads products, variants, customer tags, the published theme, markets, companies, catalogs and price lists through the Admin GraphQL API, and scores six break points from the API's current schema: new customer accounts emailing access codes, a missing company registration form, a volume-pricing block that is missing or limited to a higher plan, catalogs not assigned through markets, payment terms not set, and retail theme templates that could show wholesale prices. Save a scan with each break point's evidence. Do not change anything.
    3. The wizard asks five questions: hybrid or wholesale only, how many catalogs (1 to 3 unless the plan allows more), net terms or card on file, whether retail stays public and how companies are approved. Save a config.
    4. Build a dry-run plan from the scan and the config: an ordered list of the objects to create (companies, catalogs, price lists, market assignments, payment terms), each with the exact names and values and what it replaces. Save it with a snapshot of the current state.
    5. Generate a runbook in markdown from the plan with the store's real object names: how to add a SKU to a catalog, how to create a seasonal price list within the catalog limit, how to approve a company and how to check that retail prices did not change.
    Rules: never send a mutation to the store. Say plainly that applying the plan is done by hand in the Shopify admin this weekend. Show the Shopify limits you relied on and link to them.
    Empty state: before connecting a store, show the connect form and the six checks that will be run.
    Done when: a scan of a development store lists the six checks with evidence, the wizard rejects a fourth catalog on a plan that does not allow it, the plan lists every object with names and values, and the runbook uses names from the scan.
  3. 3. Landing Page

    Build a one-page landing site for Catalog Clerk, setup help for Shopify's built-in wholesale features.
    Hero: "Shopify opened B2B to every plan. We help you finish the setup." Sub: "Companies, catalogs, payment terms and the checks that keep retail prices private, scanned and planned before you touch a setting." One button: Join the waitlist.
    Sections: three break points that stop wholesale from working, how it works in five steps (connect, scan, answer five questions, review the plan, follow the runbook), and an FAQ on the catalog limit, theme compatibility and why this is not another wholesale app (it plans native objects).
    Waitlist: store the email in a waitlist table in Supabase. No other service.
    Style: Geist, an off-white background, near-black type, one lavender accent, no people.
    Done when: the page renders on a phone and a submitted email appears in the waitlist table.
  4. 4. Branding Package

    Use a design or image tool for this one. A coding agent cannot draw a logo.
    Brand for Catalog Clerk: a wordmark and an icon that suggest a clipboard with a tick beside a catalog page.
    Colors: off-white, near-black and one lavender. Type: Geist, with Geist Mono for object names.
    Deliverables: wordmark, icon, three check states (passing, needs attention, blocked) that differ by shape as well as color, a runbook page style, and one launch graphic.
    Done when: each deliverable is saved in one folder and the check states are distinguishable without color.
Guided B2B Wholesale Setup for Shopify | Weekend MVP