Why B2B Buyers Switch to Self-Service Ordering (and Leave PDFs Behind)
Wholesale buyers aren’t clinging to swapping PDFs and Excel sheets out of habit. Mainstream SaaS B2B platforms can’t support the custom steps, required document exchange, and exceptions that some wholesale businesses run on. Spree Commerce provides a deep B2B foundation built in, not bolted on, and you own the source code that could be further extended and customized.
Key Takeaways
Last verified: April 2026.
Who it’s for: Mid-sized B2B brands, manufacturers, and distributors whose wholesale ordering still runs on PDFs, Excel templates, and email.
The pain: They hit a wall when they try to move their wholesale ordering online, because the vanilla B2B online store assumes all wholesale businesses are the same. They are not.
The fix: Give each buyer their own catalog, their own prices, their own availability, their own freight rules, and their own approval chain inside a portal that matches how sales ops would set things up if they had infinite time.
What Spree Commerce ships: A B2B ecommerce platform with native buyer organizations, role-based access, account-specific price lists, gated catalogs, approval workflows, multi-warehouse availability, and custom shipping rules. You own the source code, so you can customize, extend and integrate to fit your very specific business model perfectly.
Why your largest wholesale buyers still email PDF orders
There’s a workflow every B2B operations team knows by heart. Your wholesale buyer opens a PDF price list in one browser tab and an Excel order template in another. They copy SKUs across, fill in quantities, and email the sheet to your sales team.
Someone keys the order into the ERP a few hours later. An invoice follows the next day. A tracking number lands in a third email a week after that. Everyone lives with it. Everyone also knows it doesn’t scale.
The reason PDF orders persist isn’t habit. Every alternative asks the buyer or the brand to give something up. A phone call takes longer than the email. A vendor-managed EDI integration takes months and a six-figure budget to stand up. A mainstream SaaS B2B platform flattens conditional catalog rules, misses account-specific pricing conditions, and forces a checkout that can’t carry the full procurement loop.
On the sales side, reps spend most of the day keying orders into the ERP instead of talking to new buyers. Recent sales productivity research found that B2B reps actively sell only about 28 percent of their time (SalesMotion, 2025). The rest goes to admin, data entry, and internal coordination.
On the buyer side, purchasing managers no longer tolerate the friction they used to. Gartner’s 2025 sales survey found that 61 percent of B2B buyers prefer a rep-free buying experience. And Forrester’s 2025 predictions project that more than half of large B2B transactions (US$1 million and up) will be processed through digital self-service channels (Forrester, 2025). This is the enterprise buyer asking to stop waiting on email.
And yet most wholesale brands cannot turn this on. The thing that keeps PDF orders alive is not buyer preference. It is platform fit.
What breaks when wholesale doesn’t fit the vanilla B2B mold
Mainstream SaaS B2B platforms cover the vanilla version of wholesale well: company accounts, a handful of price lists, net terms, an approval rule or two. Plenty of wholesale businesses fit that mold and ship on those platforms just fine. When the business doesn’t fit the mold, four familiar capabilities start forcing compromises.
The catalog isn’t just tiered, it’s conditional. Some SKUs are reserved for a specific account. Some unlock only after the buyer has purchased a paired product. Some need a compliance certificate on file. A vanilla B2B catalog assumes a shared list with a handful of visibility toggles. A business with conditional catalog rules ends up in an app stack or template-level customization that piles up maintenance debt year over year.
Prices aren’t just tiered, they have conditions layered on top. Every buyer has their own rate, and often a modifier that depends on volume, contract length, program, or the freight contract they signed last quarter. Static price lists express the first layer well. The conditional layer is where SaaS B2B runs out of fields to fill in, and your pricing team goes back to spreadsheets.
Availability isn’t a flag, it’s a schedule. “In stock” and “out of stock” don’t carry the wholesale answer. The real answer sounds more like “900 pounds for shipment from the West Coast warehouse on the 14th, if you order by Tuesday, and only if the buyer has an LTL contract with carrier X.” Mainstream SaaS B2B platforms struggle to model that level of conditional availability without custom code on top.
The PO-to-ERP loop is where workarounds pile up. Procurement pays on net terms, needs a PO that matches the invoice line for line, routes the order through an approver, and expects the result to drop into the ERP in a specific format. SaaS B2B handles the easy half of this. The hard half, per-purchaser spending limits, subsidiary rollup, aging invoices per account, and ERP format matching, is where most app-stack workarounds live.
When the platform cannot hold this many conditional rules, sales ops holds them instead. The result is email threads, spreadsheets, phone calls, and a sales rep’s memory serving as the system of record. PDF orders never die in that environment. They just move between channels.
What does a wholesale buyer’s catalog actually look like?
A wholesale catalog looks like a different store to every buyer who logs in. The buyer sees only their assigned SKUs, at their negotiated prices, with certifications attached where required. That last piece is non-negotiable for anyone selling into food, industrial, healthcare, or regulated supply chains, because documents travel with the product.
A food distributor serving private-label brands cannot show every SKU to every buyer. The grocer who bought a custom formulation does not see the competing grocer’s private-label SKU. An industrial supplier selling to mines and utilities attaches MSDS sheets and compliance docs to each product. A supplement maker ships certificates of analysis for every batch. None of this fits a flat catalog model.
Native capability for conditional catalog logic is where most mainstream SaaS B2B platforms run out of flexibility, and the app stack starts growing. Spree Commerce handles buyer-specific catalogs through Customer Segments and Price Lists, so the same catalog data renders as the right subset for each account.
Gated storefronts lock products to logged-in buyers, and login-required ordering means a competitor cannot browse the list by accident. Documents attach at the product level and travel with every order line. When your catalog logic extends past what segments and price lists cover, your team extends the platform in the source code, without fighting a SaaS black box.
The goal is not more features. The goal is that the first screen a buyer sees after login looks exactly like the relationship your sales team has already built with them.
Why isn’t wholesale availability a simple “in stock” flag?
Availability for wholesale is a schedule, not a state. The answer to “can I order this?” depends on warehouse, lot, cutoff, and the buyer’s shipping contract. Any of those factors can flip the answer from yes to no for a specific customer on a specific day.
Take the distributor who has 900 pounds of product ready to ship from the West Coast warehouse on the 14th, as long as the order is placed by Tuesday. A one-word availability flag loses every piece of that statement.
Now add a buyer on the East Coast who has an LTL freight contract with a specific carrier. That buyer wants shipment combined with next week’s replenishment. The platform either holds that context or the sales rep does, and the rep is not going to hold it forever.
A B2B ordering platform that fits the business lets you express availability by warehouse and lot, publish cutoff windows, and price shipping against the buyer’s freight preferences. Spree Commerce handles this through multi-warehouse inventory routed by region, shipping methods keyed to account attributes, and customer-specific promotions that reflect negotiated freight rules. The logic lives in the platform, which means your reps are free to spend the day selling rather than dispatching.
How does B2B procurement pay, and why does it trip up most online stores?
Procurement does not pay like a consumer, and the full procurement loop is where most B2B platforms run out of room. The buyer in the order is usually not the approver. The payment terms are net 30 or net 60, and the PO number has to match the invoice line for line when the AP team posts it.
Mainstream SaaS B2B platforms handle the basics of net terms and POs. The full loop, per-purchaser limits, parent-child org rollup, and ERP format matching, is where workarounds accumulate.
An office supplies distributor serving local government accounts has to enforce a per-purchaser spending limit. It routes orders above a threshold to a manager, then submits the approved PO into an ERP that expects a specific format.
A medical supply wholesaler running on net-60 has to age invoices by account, pause ordering when a buyer is past due, and reopen it when AP pays.
A beverage co-packer running multiple subsidiary buyers inside one parent organization has to roll up volume pricing at the parent level. It also has to keep order history separate per subsidiary.
Spree Commerce handles these patterns through Buyer Organizations, which model parent and child company hierarchies, spending limits, and role-based purchasing. Approval Workflows send a manager sign-off step into the cart before the PO is submitted. Account-specific net terms and invoice handling mean the procurement team gets the experience their ERP expects, without a custom build. The order that reaches your back office already matches the PO the buyer issued, because the platform produced both.
Why wholesale buyers switch once the portal finally fits
Buyers switch because re-ordering online is easier than emailing PDFs. That is the whole reason. Nobody at the buyer’s office wants to fill in another template if they can click into a portal that already knows their catalog, their prices, their warehouse, and their payment terms.
The research backs this up. McKinsey’s B2B Pulse survey found that 73 percent of B2B buyers are now willing to place orders over $50,000 through digital self-service channels (McKinsey, 2025). The same survey found 39 percent now spend over $500,000 per order through self-service ecommerce. B2B decision-makers use 10.2 channels in their buying journey, up from five in 2016. The direction is clear. Buyers want the portal, and they want it to work.
The friction has never been buyer willingness. The friction has always been the platform.
When a buyer logs in and sees a PDF from last month, a confusing price, or missing documents, they close the tab and email the sales rep. When they log in and see their account already set up the way it works on paper, they keep going.
Forrester’s Andy Hoar, a longtime analyst of B2B ecommerce, put it this way in a widely cited assessment of the shift:
“B2B buyers overwhelmingly prefer to research, purchase, and get support for products online, in a manner similar to how they buy for themselves as consumers.” (Forrester)
The job is not to convince the buyer. The job is to give them a portal that does not make them regret switching on the second order.
How do you build a B2B self-service portal on Spree Commerce?
The shortest path to a working B2B self-service portal on Spree Commerce is to configure the native B2B modules, connect your ERP, and launch with a pilot account before opening it to the whole channel. The platform ships the wholesale patterns you need. Your job is to mirror the relationships sales ops is already running by hand.
Start with the account model. Set up Buyer Organizations for each parent company, create child accounts for subsidiaries, and assign roles for buyers, approvers, and finance contacts. This is the spine of everything that follows, because every price, every catalog rule, and every approval step hangs off the org.
Layer on catalogs and pricing. Use Customer Segments to group accounts by tier, region, or program, then apply Price Lists for volume discounts, contract rates, and account-specific overrides. Gate products by segment so each buyer sees only their catalog on login.
Configure availability and freight. Connect your multi-warehouse inventory so the portal routes orders by region, set per-product lead times and cutoffs, and map your carrier contracts to customer-specific shipping options. When a buyer picks a date, they see an honest answer.
Add approvals and net terms. Turn on Approval Workflows for orders above a spending limit, route them to the correct manager, and configure net-30 or net-60 terms per account. The PO that drops into your ERP matches the cart the buyer approved.
Integrate the back office. The Spree Commerce REST API pushes order data into your ERP, accounting system, and warehouse management system, and pulls pricing or stock back where appropriate. Your ops team keeps the tools they already use, and the portal becomes the front door for the whole order lifecycle.
Get started with Spree Commerce for B2B
Moving wholesale off PDF orders is less about convincing buyers and more about giving them a portal that fits the business they already do with you. Every account, catalog, price list, and freight rule sales ops is holding in email can move into the platform. The PDF workflow fades on its own.
For mid-sized B2B brands with complex catalogs, account-specific pricing, custom shipping rules, and a procurement flow that depends on approvals and net terms, an open-source commerce platform with native B2B modules provides the strongest architectural fit. You start with the free Community Edition, model your buyer organizations and price lists, and turn on enterprise capabilities like advanced approval workflows when the account base demands it. Your team owns the code, the data, and the roadmap.
Pick the pilot account that complains about the PDF workflow the loudest. Mirror their setup inside the portal, open it to their purchasing team, and let adoption prove the pattern. Once the first account switches, the rest follow.
Ready to build a B2B self-service portal that buyers adopt? Get started with Spree Commerce, or explore the B2B ecommerce platform overview and the wholesale B2B ecommerce use case.
Frequently Asked Questions
What is a B2B self-service portal, and how is it different from a regular online store?
A B2B self-service portal is a login-gated ecommerce experience where each wholesale buyer sees their own catalog, their negotiated prices, their account-specific availability, and a checkout that handles purchase orders, approvals, and net terms. A regular online store assumes one flat catalog and a credit-card checkout, which does not match wholesale. Spree Commerce ships native buyer organizations, price lists, customer segments, and approval workflows inside its B2B ecommerce platform.
Why do most ecommerce platforms break for B2B ordering?
Most ecommerce platforms are built around direct-to-consumer assumptions: one catalog, one price, binary stock, and a consumer on a credit card. B2B breaks every assumption: catalogs vary by account, prices vary by contract, availability depends on warehouse and cutoff, and buyers pay on net terms after an approver signs off. Spree Commerce is built with both models on the same platform and supports account hierarchies, segmented catalogs, multi-warehouse inventory, and approval workflows out of the box.
Can Spree Commerce handle buyer organizations with parent and child accounts?
Yes. Spree Commerce ships Buyer Organizations that model parent and child company hierarchies, spending limits per purchaser, and role-based access for buyers, approvers, and finance contacts. A beverage distributor with regional subsidiaries can roll volume pricing up to the parent while keeping order history separate per subsidiary. This is a native capability of the B2B module, not a plugin or a custom build.
How do account-specific prices and catalogs work in Spree Commerce?
Account-specific pricing is handled through Price Lists applied to customer segments, and account-specific catalogs are handled through Customer Segments combined with gated storefronts. When a buyer logs in, the platform resolves their segment, applies the matching price list, and filters the catalog to the SKUs their segment is allowed to see. Spree Commerce supports volume tiers, contract rates, and per-account overrides inside a single admin UI.
Does a Spree Commerce B2B portal support net terms, purchase orders, and approval chains?
Yes. Spree Commerce supports net-30 and net-60 payment terms per account, purchase order capture at checkout, and Approval Workflows that route orders above a spending limit to a designated manager before submission. The platform generates a PO number at checkout that matches what your ERP expects, so accounts payable does not have to reconcile two versions of the same order.
Can wholesale buyers see real availability and freight options that match their contracts?
Yes. Spree Commerce handles availability through multi-warehouse inventory, with per-location stock, lead times, and cutoffs exposed to the buyer based on their shipping region. Freight options map to customer-specific shipping methods, so an LTL contract, a parcel-by-weight rule, or a flat-rate regional program can be configured per account. The buyer sees an honest date and cost before they submit the order.