HowNOT2 sells climbing and rigging gear to individual climbers and, increasingly, to wholesale buyers — gyms, guide services, and dealers. But wholesale lived entirely outside the storefront. Pricing was quoted by hand, invoices were built by hand, and someone had to remember who still owed money. That works at three accounts. It does not work at thirty.
The obvious fix was a third-party wholesale app. I didn't want one — another subscription, another integration to maintain, and a second checkout experience for buyers to learn. Shopify had shipped native B2B. I built on that instead.
What I built
Company accounts on native Shopify B2B. Companies, locations, and buyer profiles configured so wholesale customers log in and order on the same storefront retail customers use. No separate portal, no app subscription, no second system to keep in sync.
Conditional theme logic. I modified the Liquid theme so wholesale pricing, terms, and B2B-only content render only for logged-in B2B buyers. Retail shoppers never see it; wholesale buyers never have to hunt for it.
Automatic company-level discounting. Wholesale pricing applies at the company level at checkout — no discount codes to distribute, no manual adjustments, and nothing that can leak to retail customers.
Invoicing and collections automation. A Shopify Flow–driven process that generates invoices on B2B order types and drives the follow-up, replacing a hand-tracked receivables list.
What changed
Ten wholesale accounts came onto the system, including a large rope-access retailer that was a significant win for the store.
Month-end went from more than ten hours of manual invoicing and payment chasing to one or two hours of auditing what the system had already done. That second number is the one I care about: the goal was never to make the process invisible, it was to make it checkable by someone who isn't me.
Wholesale accounts now order on the same storefront as retail, with pricing and invoicing automated. Month-end reconciliation went from 10+ hours to under two.