B2B commerce

Shopify B2B Option Pricing

Corporate gift buyers, uniform managers, and merchandise coordinators are the highest-LTV segment for a personalization store — a single corporate account often outspends 200 D2C customers in a year. Shopify B2B (Plus feature) lets you serve them with customer-specific catalogs, wholesale option tiers, net-30 terms, and PO invoicing. Here is the complete setup and the four gotchas that break B2B personalization.

Last updated: August 23, 2026~12 min readBy the Print It My Way team

What Shopify B2B gives you (and doesn't)

Shopify B2B is a native Shopify Plus feature (included at the $2,300/month plan). It gives you customer companies (a container for buyers), price lists (per-company catalog + per-variant price), payment terms (net-15/30/60), quantity rules, checkout-to-draft-order conversion, and B2B-only login gates. What it does not do out of the box: apply price lists to personalization option fees, handle per-buyer approval workflows, or route PO uploads. Those need an app layer.

The four B2B option-pricing patterns

1. Flat wholesale discount on option fees

Simplest. Corporate customer sees option fees discounted 25% across the board. Setup: apply a Shopify B2B price list to the company, then override option fees via Cart Transform that reads the customer's company ID and applies a discount.

// Cart Transform: apply B2B option discount
export function run(input) {
  const companyId = input.cart.buyerIdentity?.company?.id;
  if (!companyId) return { operations: [] };

  const B2B_OPTION_DISCOUNTS = {
    "gid://shopify/Company/1001": 0.25, // Acme Corp
    "gid://shopify/Company/1002": 0.30, // Beta Inc
  };
  const pct = B2B_OPTION_DISCOUNTS[companyId] || 0;
  if (pct === 0) return { operations: [] };

  const operations = input.cart.lines
    .filter(l => l.attribute?.value === "personalized")
    .map(l => ({
      update: {
        cartLineId: l.id,
        price: { adjustment: { fixedPricePerUnit: {
          amount: (l.cost.amountPerQuantity.amount * (1 - pct)).toFixed(2)
        }}}
      }
    }));
  return { operations };
}

2. Volume-tier wholesale (auto-scaling)

Corporate customer sees the same tier structure as D2C but starting at a lower entry threshold. D2C tier starts at 10 units; B2B starts at 5. This rewards existing wholesale relationships without requiring a full custom-catalog setup.

3. Quote-request only (RFQ)

Very-large-quantity corporate buyers see the product with a "Request a quote" button instead of an add-to-cart. Form captures: quantity, personalization spec, deadline, PO number. Merchant responds with a draft order the buyer approves and pays.

4. Per-account custom catalog

Enterprise customer sees only the products they've pre-approved. Personalization options may be limited to the company's approved brand assets (logo files uploaded ahead of time). Setup via Shopify B2B price list + app-level catalog gating.

Payment terms integration

Net-30 terms are table stakes for corporate. Shopify B2B natively supports net-15/30/60/90 with automatic invoicing. Your Cart Transform rules need to be aware that a B2B checkout may not process payment immediately — capture the personalization spec into a draft order that flows to production only after PO approval.

Production timing: a common mistake is sending files to POD as soon as the B2B order lands. If the customer is on net-30 terms and hasn't approved the artwork proof, that print job is committed cost. Add an "approved for production" flag on the order that gates the fulfillment webhook.

Company-specific price list mechanics

Shopify B2B price lists are variant-level, not product-level. You upload a CSV mapping each variant to a per-unit price, per currency. For personalization stores, this means creating one variant per personalization SKU that a corporate account will order (usually 5-15 variants per company). Option fees are separate — they live in your Cart Transform layer, not in the price list.

PO number capture and invoicing

Corporate accounting demands PO numbers on every order. Shopify B2B's checkout includes a native PO field, and it flows into the order object as po_number. Include it in your fulfillment webhook to POD partners so the packing slip carries the PO. For invoicing, Shopify B2B generates a PDF invoice automatically at checkout; you don't need Xero / QuickBooks integration for basic net-30 unless you're doing multi-line reconciliation.

Approval workflows

Large corporate accounts have "buyer" and "approver" roles. A designer places an order (personalization spec + qty), the finance approver sees it in an approval queue, and only after they click approve does it proceed to checkout. Shopify B2B doesn't do this natively — you need an app like Order Panda or a custom checkout extension for enterprise-grade approval.

Custom logo upload — per-account brand assets

The pattern that separates casual corporate orders from enterprise accounts: pre-uploaded brand assets. The customer uploads their logo once, and every subsequent order pulls that logo into the personalization automatically. Store logos in Shopify metafields on the Company object, and reference them in your photo upload option as a "use company logo" checkbox.

Frequently asked questions

Does Shopify B2B support custom option pricing?

Natively, no — B2B price lists cover variant prices only, not option fees. Use a Cart Transform Function or a B2B-aware app to apply per-company discounts to your personalization option fees.

What Shopify plan do I need for B2B option pricing?

Shopify Plus ($2,300/month) for native B2B features. Non-Plus stores can approximate B2B pricing with customer tags + Cart Transform-capable app rules, but without native company profiles, payment terms, or PO invoicing.

How do I set net-30 terms for personalization orders?

Shopify B2B → Companies → assign payment terms per company. Net-15, 30, 60, 90 are native. Configure your fulfillment webhook to hold production until an "approved for production" order flag is set — otherwise you print before the customer has approved artwork.

Can B2B customers see a different personalization catalog?

Yes with a B2B-aware theme + Cart Transform app. Common setup: retail customers see 5 personalization options, B2B customers see 3 pre-approved options limited to their brand assets. Gate via the buyer's company.id.

How do I handle PO numbers on B2B personalization orders?

Shopify B2B checkout captures a PO number natively into order.po_number. Include it in your POD fulfillment webhook so the packing slip carries it — critical for corporate receiving departments.

Best app for Shopify B2B personalization?

Print It My Way for the option-fee side (Cart Transform, per-company discounts, pre-uploaded logos), plus Order Panda or ShipSaver for approval workflows and PO invoicing on top.

How do I offer wholesale discount only on personalization, not base price?

Cart Transform Function filtered by l.attribute.value === "personalized" — apply the discount to those line items only. Base variant price comes from the B2B price list; option fees adjust via Cart Transform. This preserves your Google Shopping feed pricing while giving corporate accounts a real personalization discount.

Can I require approval before a B2B personalization order enters production?

Yes — either via a native Shopify B2B approval workflow (Plus + app like Order Panda) or a fulfillment webhook that checks for an "approved for production" flag on the order metafield. This is critical for made-to-order personalization where reprints on rejected artwork are the biggest B2B loss driver.

Related reading

Try it free on Shopify

Print It My Way's permanent Free plan includes B2B-aware Cart Transform rules, per-company option pricing, and pre-uploaded brand asset support.

Install Print It My Way