Skip to content
codecollab.pl
§ Blog b2b and b2c in one store

B2B and retail in one store - when it works and when to split them

One store for wholesale and retail pays off when you sell the same range out of the same warehouse - you split them when it is not the price that differs but the entire way you sell

Krystian Kacik 10 min read
Contents

One store for wholesale and retail pays off when you sell the same range out of the same warehouse - you split them when it is not the price that differs but the entire way you sell. A B2B store is not a separate kind of software, it is a set of rules laid over an ordinary store: net prices, individual price lists, quantity breaks, deferred payment terms, and a login without which a trade customer sees no prices at all. As long as those rules can sit as a layer on top of your existing catalogue, one engine wins - one stock pool, one team handling it, one running cost.

Below you get the decision criteria, the places where a B2B plus B2C hybrid most often breaks, and an honest cost comparison of both options.

When one store, when two

Five things decide it: warehouse, product range, price list, order process and paperwork. If the answer is “the same” in four out of five, build one store.

What you compareOne store is enoughBetter to split
WarehouseThe same stock for both channelsSeparate warehouses, wholesale reserves from a different pool
Product rangeThe same catalogue, wholesale simply sees moreBulk packs and internal codes retail never touches
Price listA percentage discount or a pricing groupPrices negotiated per customer and per line item
OrderA cart, just with different payment methodsRequest for quote, sales rep approval, recurring orders
PaperworkAn invoice instead of a receiptProformas, delivery notes, credit limits

Most manufacturers and distributors land in the left-hand column. The right-hand column is a signal that what you need is not a store with a wholesale mode but a B2B ordering portal, with retail as a separate, simpler thing next to it.

What “B2B and B2C in one store” means technically

A B2B and B2C hybrid is a single store where the role of the logged-in user decides prices, product visibility and payment methods. There are not two product databases - there is one catalogue and a layer of rules above it.

The typical set I implement in WooCommerce:

  1. Customer groups - wholesale A, wholesale B, distributor, retail; each with its own discount or price list
  2. Net prices for logged-in businesses and gross prices for retail, consistently in the cart and at checkout
  3. Quantity breaks - bigger pack, lower unit price, calculated automatically
  4. Hiding products and categories from logged-out visitors or from the retail group
  5. Payment methods per group - bank transfer on terms only for verified companies, BLIK (the Polish instant-payment standard) and fast transfers for retail
  6. Logistics minimum - a minimum order value or quantity for wholesale
  7. Quick ordering from a list of product codes - the buyer pastes in their codes and quantities instead of clicking through product pages

Point seven is what separates a store wholesale customers actually use from one where everybody drifts back to ordering by email after a month. I wrote that up alongside the B2B portal for distributors and sales reps.

Net prices next to gross prices - where the hybrid cracks

The risk is not the price itself, it is every place the price shows up outside the product page. The product page and the cart get fixed by any solution. The trouble starts further out:

  • Category listings and search - rendered from a cache that knows nothing about the user’s role
  • Transactional emails - the order confirmation can go out with gross prices even though the cart showed net
  • Product feeds for comparison sites and ads - if they are generated from trade-customer prices, you are broadcasting your wholesale pricing
  • Search result snippets - net prices end up in the index and mislead retail buyers

That is why with a hybrid I test the store under three identities at once: guest, retail buyer, wholesale customer. The same purchase scenario, three times, from the category page all the way to the post-order email.

The second trap is caching. A hybrid store cannot save product pages in one version for everybody - otherwise the first logged-in trade customer leaves their prices there for whoever visits next. The fix is well known: separate page variants per group, or prices fetched in the background. It has to be planned into the build, not patched after a customer reports it.

Who gets wholesale prices - registration and verification

Wholesale prices are visible only to an approved account, after the NIP (the Polish VAT/tax ID) has been checked. Open “for businesses” registration with no gate ends in accounts opened by competitors and by retail shoppers who stumbled onto the form.

  1. A form with NIP, company name and contact person
  2. An automatic check of the NIP against the register - does the entity exist and is it an active VAT payer
  3. The account sits pending, catalogue visible, prices hidden
  4. Approval and assignment to a pricing group - manually or by rule
  5. A welcome email with the trading terms and payment period

I described the whole mechanism in the piece on B2B registration and customer verification. If you are not ready for online wholesale sales yet, a good first step is often a catalogue mode with no cart.

Warehouse, ERP and invoices

One store is one synchronisation point - stock comes off the same pool, so retail and wholesale cannot both sell the last unit. With two stores you either split the warehouses physically or manage reservations on the ERP side, and that is a real, recurring cost. How to connect a store to Subiekt, Comarch or enova (the ERP systems most Polish distributors run) without duplicating records, I covered separately in B2B platforms and ERP systems and in inventory synchronisation.

Invoicing has to be designed in from the start. KSeF, Poland’s mandatory e-invoicing system, is in force - from February 2026 for the largest taxpayers, from April 2026 for everyone else - so an invoice for a trade customer is not a PDF emailed over, it is a document reported to a national system. The store sends nothing to KSeF itself: it passes the order to the accounting or ERP software, and that system issues and reports it. I described the path in WooCommerce, ERP and KSeF integration.

SEO - will the wholesale side hurt retail visibility

It will not, as long as the hidden part of the store is hidden consistently. Google browses the store as a logged-out guest, so it indexes retail prices and public categories. The trouble starts with in-between states: a product is invisible, but its URL still returns an empty page with a 200 status.

  • Wholesale-only pages return a clear status for the crawler, not empty content
  • The customer portal, the wholesale cart and the code lists are excluded from indexing
  • Product structured data carries the gross retail price, the same one the customer sees

If you split them, you also have to decide on the address. Wholesale on a subdomain is neutral and simplest to maintain; wholesale in a subdirectory of the main domain demands more discipline about what is public. If existing URLs are going to move, start with moving them without losing your Google rankings: a full redirect map from the old addresses to the new ones.

Cost of both options

Cost does not end at the build. With two stores you multiply almost everything by two, and integrations can cost more than double, because you also have to keep them consistent with each other.

ItemOne hybrid storeTwo separate stores
BuildOne project plus a B2B rules layerTwo projects, only the catalogue shared
HostingOne, beefierTwo environments
Updates and maintenanceOne setTwo sets, two testing windows
ERP integrationOneTwo, plus rules for splitting stock
A change in the catalogueOnceTwice, or a replication mechanism

I run these builds as fixed-bid projects, usually 5,000-10,000 PLN net (Polish market rates), depending on the number of pricing rules and integrations. Running it after launch is ongoing technical care: Basic from 1,000, Pro from 2,000, Premium from 3,500 PLN net per month. Plugin licences and hosting I quote separately and always against current supplier price lists, because those can change mid-year - assume a stronger hosting plan than an ordinary retail store needs. A reference point for the starting cost is the breakdown of what a WooCommerce store costs, and for a full wholesale setup, the piece on what a B2B platform costs.

How to approach this in your own case

I start with a free diagnosis: I look at your current store or catalogue, at how you take wholesale orders today and at what sits in your ERP. Out of that comes one recommendation - one engine or two - plus a list of rules to build, ordered by importance.

For bigger work you get a written quote before we start: scope, stages, deadline and amount. If the retail store already runs and this is about bolting wholesale onto it, that usually falls under developing an existing store rather than a build from scratch.

FAQ

Is WooCommerce suitable for B2B selling? Yes, provided you add the rules layer: pricing groups, net prices, quantity breaks, payment on terms and company verification. WooCommerce itself is a retail engine, but open enough that wholesale lays over it without rebuilding the catalogue. The limit is complex negotiated price lists and multi-step order approvals.

How do I show net prices to businesses and gross prices to retail customers? The price is tied to the role of the logged-in user, not to the product - a wholesale buyer sees net after logging in, a guest or retail buyer sees gross. The same rule has to hold everywhere: category listings, search, cart and post-order emails. Those places outside the product page are exactly the ones that get missed.

Can wholesale buyers end up seeing retail prices, or the other way round? Not if the store consistently recognises the role and does not serve everybody the same cached version of a page. Caching is the main source of accidents here, so a hybrid gets separate variants per pricing group. After launch I check it on three accounts at once.

When do I genuinely need two separate stores? When wholesale has a different warehouse, different product codes and a different process than a cart - request for quote, sales rep approval, credit limits, recurring orders. The second sensible reason is a different brand or a different market, where mixing the messaging hurts both sides. A difference in price and in how VAT is displayed is never enough on its own.


Running a store where something does not work the way it should? I build and rebuild WooCommerce stores - from a single fix to reworking the whole sales flow. Tell me what you are dealing with and I will send back a scope and a price.

§ Quote in 24h

Your store is slowing down or looks dated, and you do not know where to start?

Describe the scope in two sentences or send a link to your store. I tell you what to fix first, and you get a fixed bid in writing within 24 hours - no "from X" pricing.

Send your scope - quote in 24h