The multi-region B2B stack
Multi-region B2B on Shopify is the intersection of three features: (1) Shopify B2B (Plus feature) — company profiles, per-company price lists, payment terms; (2) Shopify Markets — per-market currency, tax, publishing rules; and (3) Shopify Catalogs (Plus) — per-catalog product/variant assignment. The clean architecture uses one company profile per corporate parent, with subsidiary locations mapped to markets, and a per-market catalog assigned to each subsidiary's location.
Company / location / catalog architecture
Company: "Acme Corp Global" (parent buyer profile)
├─ Location: Acme US HQ (New York, NY)
│ ├─ Market: United States
│ └─ Catalog: "Acme US SKUs" (35 approved products, USD pricing)
├─ Location: Acme Europe (Munich, DE)
│ ├─ Market: European Union
│ └─ Catalog: "Acme EU SKUs" (28 approved products, EUR pricing, EU-warehouse fulfillment)
├─ Location: Acme Japan (Tokyo, JP)
│ ├─ Market: Japan
│ └─ Catalog: "Acme JP SKUs" (12 approved products, JPY pricing)
└─ Location: Acme LATAM (São Paulo, BR)
├─ Market: Brazil
└─ Catalog: "Acme BR SKUs" (8 approved products, BRL pricing)
Per-region price lists
Each catalog carries its own price list. Acme US buys the "Corporate Polo" at $22/unit; Acme EU buys the same underlying SKU at €24/unit (VAT-inclusive); Acme JP buys it at ¥3,200. These are wholesale prices, negotiated per region — Shopify B2B doesn't auto-FX-convert wholesale prices; you upload them via CSV per catalog per currency.
Per-region personalization options
A US location's Acme polo has "employee name + department" as required personalization. The Japan location's polo has "employee name (kanji) + department (kanji)" and requires a different font pack. The EU location's polo has "employee name" only (Germany has stricter workplace-labeling regulations). Print It My Way stores per-location option requirements as metafields on the company location, and the storefront reads the buyer's location to render the correct option set.
// Storefront: fetch buyer's company location + options
{% if customer.company.location %}
{% assign region_options = customer.company.location.metafields.brand.required_options %}
<div id="options-container" data-region-options="{{ region_options | escape }}">
<!-- Populated by JS based on region -->
</div>
{% endif %}
Per-region brand assets (pre-uploaded logos)
Global brands have a US logo, an EU logo (often with slight legal-mark differences), a Japan logo, and a Latin America logo. Store each in a metafield on the corresponding company location. When a buyer configures a personalization option that includes "use company logo," the storefront pulls the correct regional logo automatically.
Fulfillment routing per region
US catalog orders route to your US POD partner (Printful NC or Gelato US). EU catalog orders route to Printful Latvia or Gelato Germany. JP catalog orders route to Gelato Japan (the only major POD with local JP printing). Route via a fulfillment webhook that reads the order's fulfillment location metafield and picks the correct POD partner.
Approval workflows per region
Large corporate accounts want a regional approver. Buyer in Tokyo places order → Japan approver signs off → order goes to production. Shopify B2B doesn't do this natively — you need an app (Order Panda, Zenfluff, or a custom checkout extension) that adds a "hold for approval" step to B2B checkouts and notifies the assigned approver.
Currency-aware Cart Transform
// Cart Transform: apply per-region personalization pricing
const REGION_OPTION_FEES = {
us: { engraving: 3.00, rush: 8.00 },
eu: { engraving: 3.60, rush: 9.60 }, // VAT-inclusive
jp: { engraving: 450, rush: 1200 },
br: { engraving: 15, rush: 40 },
};
export function run(input) {
const marketHandle = input.cart.buyerIdentity?.market?.handle;
const region = MARKET_TO_REGION[marketHandle] || 'us';
const fees = REGION_OPTION_FEES[region];
// Apply fees to option line items
return { operations: buildOperations(input.cart.lines, fees) };
}
Consolidated global invoicing
Enterprise customers often want a single quarterly invoice covering all subsidiaries, not 15 separate country invoices. Shopify B2B invoices are per-location by default. For consolidated invoicing, export order data from all locations per quarter and generate a combined invoice via Shopify's order export API + your accounting tool (Xero, NetSuite, SAP).
Frequently asked questions
What is a Shopify B2B multi-region catalog?
A B2B setup where one company profile serves multiple subsidiary locations across countries, with per-region product catalogs, price lists, personalization options, and fulfillment routing. Requires Shopify Plus for native support (Shopify B2B feature + Catalogs).
Do I need Shopify Plus for multi-region B2B?
For native multi-region B2B (company locations + catalogs + payment terms), yes — Shopify Plus. Non-Plus stores can approximate the model with customer tags + Cart Transform + client-side catalog filtering, but without company profiles, PO invoicing, or approval workflows.
How do I set per-region wholesale prices?
Create one catalog per region, assign products/variants to each catalog, upload a price list per catalog in the region's currency via CSV. Shopify B2B does not auto-FX-convert wholesale prices — you set exact per-currency prices.
Can each region require different personalization options?
Yes — store per-location required options as metafields on the company location, and render the correct option set in the storefront based on the buyer's location. Print It My Way handles this integration natively.
How do I route B2B orders to region-specific POD partners?
Attach a fulfillment_location metafield to each catalog or order. A fulfillment webhook reads it and dispatches to the correct POD (Printful US for US, Printful EU for EU, Gelato Japan for JP). Print It My Way includes this routing.
Can I pre-upload company logos per region?
Yes — store per-location logos as file metafields on the company location. When a buyer selects "use company logo" as a personalization option, the storefront pulls the correct regional logo automatically.
How do consolidated global B2B invoices work?
Shopify B2B issues per-location invoices by default. For consolidated invoicing (one invoice covering all regions per quarter), export orders per location via the Admin API and generate a combined invoice in your accounting system (Xero, NetSuite, SAP).
Best Shopify app for multi-region B2B personalization?
Print It My Way for the option-fee + brand-asset side (per-region logos, per-region option requirements). Order Panda or a custom checkout extension for approval workflows and PO invoicing.
Related reading
- B2B option pricing — single-region B2B setup
- Per-market variants — region-specific SKUs
- EU tax VAT options — VAT for EU B2B
- Shipping per-region variants — fulfillment routing
Try it free on Shopify
Print It My Way's permanent Free plan supports multi-region B2B — per-location option rules, per-region logo assets, and market-aware Cart Transform pricing.
Install Print It My Way