← Back to Work

Wholesale Roast: A B2B Wholesale Shopify Theme

A self-directed Shopify 2.0 build exploring B2B commerce: wholesale-gated pricing, a trade-only catalog, and a real application-to-approval flow for coffee roasters selling to cafés and restaurants.

Shopify 2.0B2B CommerceLiquidAccess Control
Wholesale Roast homepage hero with wholesale positioning and product photography

The Challenge

Most Shopify themes are built for one audience: one price, one catalog, one checkout flow. A real wholesale coffee roaster needs two — a public storefront for retail buyers and a trade experience for approved hospitality accounts, with different pricing and different catalog visibility — without maintaining two separate codebases or requiring a Shopify Plus B2B plan.

The Solution (Access & Code)

  • Tag-Based Price Gating: Every price display checks the logged-in customer's tags at render time — approved wholesale accounts see trade pricing everywhere, from product cards to the product page, with zero extra apps.
  • Opt-In Collection Gating: A single theme setting lets the merchant mark specific collections as wholesale-only. Non-approved visitors see a locked state with a path to apply, and gated links quietly disappear from navigation instead of leading to a dead end.
  • Safe Quick Add: Product cards ship with an inline quick-add that never guesses: single-variant products add instantly, multi-variant products open an inline option picker first, so a customer never silently gets the wrong grind or size.

The Key Build: The Application-to-Approval Flow

The hardest part wasn't the pricing logic — it was the handoff. A prospective buyer applies through a native Shopify contact form, no third-party app, which emails the merchant the applicant's business details, tagged separately from general inquiries so it's never missed.

From there, approval is a deliberate, human decision: the merchant tags the customer's account directly in Shopify admin. The moment that tag is added, the exact same storefront — same URLs, same product pages — starts showing trade pricing and unlocking gated collections for that one account. No dashboard to build, no app subscription, no webhook plumbing.

The Trade Experience

Product page showing a locked wholesale pricing note for a non-approved visitor
Wholesale-Gated Product Page
Trade catalog collection grid with quick-add buttons
The Trade Catalog
Wholesale application form collecting business details for approval
Wholesale Application Form

What Shipped

38 Theme Files

A complete, installable Shopify 2.0 theme — home, product, collection, cart, and the full wholesale flow, not a partial demo.

0 Theme Check Errors

Validated end-to-end with Shopify's own CLI linter before ever touching a live store.

2 Pricing Tiers, 1 Theme

Retail and wholesale customers share the exact same storefront and codebase — no duplicate theme, no Shopify Plus requirement.

Ready to build a high-converting, custom Shopify theme?

Start Your Project