Skip to content

Sell a B2B-only version of a product

Applies toShopify

Steps for

The b2b-only tag hides a whole product from retail shoppers. That works when a product is only ever sold to trade customers. When you sell the same item to both, in a different pack size or format for trade, the trade version needs its own product, with its own SKUs, so it can be tagged and priced on its own.

Pick the right route

Not every B2B-only product needs a duplicate. Choose by what you want to do:

You want toDo this
Show a whole existing product to B2B customers onlyNo duplicate: tag the product b2b-only, then check steps 5 and 6 below. See Make a product B2B-only or B2C-only
Sell a B2B version of a retail product, such as a case of 12 alongside single bottlesFollow every step on this page
Show a range to one customer group only, such as VIP trade customersNo duplicate: hide it from the other groups with the sparklayer.settings metafield. See Catalogs per customer group

Before you start

Create the B2B-only version

Duplicate the original product

In your Shopify admin, open the original product at Products (opens in your Shopify admin in a new tab), then click More actions > Duplicate. Name the copy after the original plus its pack size or format, such as "Olive Oil, Case of 12", and copy the images. Set its status to Draft.

More detail

Keep it as a draft until it's tagged b2b-only in step 3. A product that goes live untagged shows to everyone, retail shoppers included.

Give every variant a new SKU

Open each variant of the copy and replace its SKU, so none is left the same as the original's. A simple pattern is the original SKU plus a suffix: OIL-500 becomes OIL-500-CASE12. Then, under Search engine listing, remove -copy from the URL handle.

More detail

SparkLayer matches prices to products by SKU, so every variant needs a SKU of its own. If the copy shares a SKU with the original, the trade price lands on the wrong product or doesn't show at all. See Do I need product SKUs when uploading pricing?

Tag it b2b-only and make it active

Add the tag b2b-only in the product's Tags field. Change its status to Active and click Save.

Should B2B customers still see the retail version too? If not, tag the original b2c-only, so they only see the trade version.

Price it for your B2B customers

Do this once the product is Active: SparkLayer only syncs active products, so it can't price a draft. How depends on your price list:

Price listWhat to do
Automatic (for example 30% off your Shopify prices)Nothing to add: it prices every product, including the new one. Check the price looks right
Manual (exact prices)Add a price for each new SKU, with the Price editor or a CSV upload, in every price list your B2B customer groups use

Then check the new SKUs' prices at SparkLayer Wholesale,Pricing,Price editor (in your Shopify admin).

Check B2B Catalogs is on your live theme

Open B2B Catalogs in your Shopify admin, and check your live theme shows as Enabled. Without it, the b2b-only tag does nothing: it's the most common reason a product still shows to retail shoppers.

More detail

If B2B Catalogs isn't installed yet, install it from the Shopify App Store (opens in a new tab) and enable it on an unpublished copy of your theme first, to check it. See Install and enable B2B Catalogs.

Test it as three kinds of visitor

Check the product as each of these. All three must pass.

Test asSees the product?What you should see
A signed-out visitor, in a private browser windowNoIt's missing from collections and search. Its URL shows the access denied page
A signed-in retail customerNoThe same as a signed-out visitor
A signed-in B2B customerYesIt's in collections and search, at the trade price from their price list

Common mistakes

Good to know

  • Collection pages can show gaps. A hidden product can still take a place in a collection grid, and count towards product and filter totals. Keeping B2B-only products in their own collections avoids it. See Collection grids, search and filter counts.
  • Hiding doesn't empty carts. A product already in someone's cart stays there, and add-to-cart links still work. See Hidden products in a cart.

Next steps

Was this page helpful?

Last updated