Shopify Plus B2B ERP Integration: Catalogs, Price Lists & Company Accounts

Shopify Plus B2B ERP Integration: Catalogs, Price Lists & Company Accounts

Shopify Plus B2B ERP Integration: Catalogs, Price Lists & Company Accounts

Written by
Selo A.

Why B2B on Shopify Plus Requires ERP Integration

Shopify Plus introduced native B2B features that let merchants sell wholesale directly through their storefront — company accounts, custom catalogs, negotiated price lists, and net payment terms. For merchants already running B2B operations through an ERP like SAP, NetSuite, or Microsoft Dynamics, this creates an integration challenge: how do you keep Shopify's B2B data model synchronized with the ERP that manages your customer relationships, pricing agreements, and credit terms?

Without integration, your sales team ends up maintaining two parallel systems. Price changes negotiated in the ERP don't flow to Shopify. New wholesale customers onboarded in the ERP have no corresponding company account in Shopify. Payment terms agreed upon during contract negotiations don't automatically apply to online orders. The result is operational friction, pricing errors, and a B2B buying experience that feels disconnected from your established relationships.

Understanding Shopify's B2B Data Model

Before building an integration, you need to understand how Shopify Plus structures B2B data. The hierarchy starts with Companies — these represent your wholesale customers and contain metadata like company name, tax ID, and contact information. Each company has one or more Company Locations, which represent shipping and billing addresses. This maps naturally to the customer/ship-to hierarchy in most ERPs.

Companies are linked to Catalogs, which control what products a company can see and purchase. A catalog contains a Price List that defines company-specific pricing — percentage discounts, fixed prices, or volume-based tiers. Catalogs also support quantity rules (minimum order quantities, case-pack requirements) and product visibility controls. This is where the integration gets interesting, because ERP pricing logic is often far more complex than what Shopify's catalog model natively supports.

Payment Terms and Credit Management

Shopify Plus supports payment terms at the company level — Net 30, Net 60, or custom terms. When a B2B customer places an order with net terms, Shopify creates the order without requiring immediate payment and tracks the due date. The challenge is that credit limits and payment term eligibility are typically managed in the ERP. Your integration needs to sync approved terms from the ERP to Shopify, and ideally enforce credit limits before the order is accepted.

Syncing Companies and Locations from ERP to Shopify

The first integration touchpoint is customer data. Your ERP's customer master contains the definitive list of wholesale accounts, their shipping addresses, tax exemption status, and sales rep assignments. This data needs to flow into Shopify's company model.

Use the companyCreate and companyLocationCreate GraphQL mutations to provision new companies in Shopify. Map ERP customer fields to Shopify company fields: customer name → company name, tax registration number → tax ID, primary contact → company contact. For each ship-to address in the ERP, create a corresponding company location in Shopify.

The critical detail is maintaining a cross-reference between ERP customer IDs and Shopify company IDs. Store this mapping in both systems — as a metafield on the Shopify company and as a custom field in the ERP. Every subsequent sync operation depends on this mapping to route updates to the correct records.

Handling Customer Updates

Customer data changes frequently — new addresses, updated tax status, contact changes, merged accounts. Build your sync as an incremental update process, not a full replacement. Query the ERP for customers modified since the last sync, then apply changes to the corresponding Shopify companies using companyUpdate mutations. Handle deletions carefully: when a wholesale account is deactivated in the ERP, revoke their catalog access in Shopify rather than deleting the company (preserving order history).

Catalog and Price List Synchronization

Price list sync is where most B2B integrations get complex. ERPs support pricing structures that don't map one-to-one to Shopify's catalog model — matrix pricing, tiered discounts based on annual volume, promotional pricing with date ranges, and customer-group pricing that applies to dozens of accounts simultaneously.

Building the Price List Pipeline

Start by identifying your ERP's pricing hierarchy. Most ERPs resolve a price through a waterfall: customer-specific price → customer-group price → product-group discount → base price. Shopify's catalog model supports fixed prices and percentage adjustments per product per company. Your integration needs to flatten the ERP's pricing logic into concrete prices for each product-company combination.

This means running the ERP's pricing engine for each product-customer pair and writing the resolved price to Shopify's price list. Use the priceListFixedPricesAdd mutation to bulk-load prices. For large catalogs (10,000+ SKUs across hundreds of customers), batch these operations and run them during off-peak hours to avoid API rate limits.

Quantity Rules and Minimum Orders

B2B orders often require minimum quantities, case-pack increments, or maximum order limits. Shopify catalogs support quantity rules at the product-variant level. Sync these from your ERP's item master — if a product ships in cases of 12, set the minimum quantity to 12 and the increment to 12 in the Shopify catalog. This prevents customers from placing orders that your warehouse can't fulfill.

Payment Terms Automation

Payment terms in the ERP reflect credit decisions — a new customer might start with prepayment requirements, graduate to Net 30 after establishing a track record, and eventually earn Net 60. This lifecycle is managed by your credit team in the ERP, and the approved terms need to flow to Shopify automatically.

Use the companyLocationAssignPaymentTerms mutation to set terms per company location. Map ERP payment term codes to Shopify's payment term templates. When the credit team updates terms in the ERP (promoting a customer from Net 30 to Net 60, or restricting a customer to prepayment after a missed payment), the integration should update Shopify within minutes.

Credit Limit Enforcement

Shopify Plus doesn't natively enforce credit limits — if a customer has Net 30 terms, they can place unlimited orders regardless of their outstanding balance. To enforce credit limits, you need middleware that checks the customer's open AR balance in the ERP before allowing the order to proceed. This can be implemented as a Shopify Function that calls your integration layer during checkout, or as a post-order validation that puts orders on hold when credit limits are exceeded.

Order Flow for B2B Transactions

When a B2B customer places an order on Shopify with net payment terms, the order flows differently than a standard consumer order. There's no payment capture at checkout — instead, Shopify records the order with a "pending" financial status and associates the payment terms. Your ERP needs to receive this order with the correct payment terms so it can generate an invoice with the right due date.

Map the Shopify order to an ERP sales order, preserving the company reference, ship-to location, negotiated prices, and payment terms. The ERP then manages the invoicing and collections workflow. When payment is received, update the Shopify order's financial status to "paid" to keep both systems in sync.

How Galantis Connect Handles B2B Synchronization

Galantis Connect provides purpose-built connectors for Shopify's B2B APIs. The visual field mapping interface lets you map ERP customer fields to Shopify company fields without writing code — drag your ERP's "CreditTerms" field to Shopify's payment terms, map "CustomerGroup" to catalog assignment, and route "ShipToAddress" to company locations.

The rule engine handles the pricing complexity that makes B2B integration difficult. Define rules like "if customer_group = 'Gold', apply 15% discount to catalog" or "if annual_volume > $500K, assign Tier 1 price list." These rules execute during each sync cycle, ensuring Shopify's catalogs always reflect the latest ERP pricing logic.

For credit management, Galantis Connect's pre-order validation checks the customer's AR balance in your ERP before the order is confirmed in Shopify. If the order would exceed the customer's credit limit, it's flagged for review rather than automatically accepted. Combined with run-level logs that show exactly which prices, terms, and catalog assignments were synced for each customer, you get full visibility into your B2B data pipeline.

Getting Started with B2B ERP Integration

Start with company and location sync — this is the foundation everything else builds on. Get your customer master flowing from the ERP to Shopify, verify the mapping is correct, then layer on catalog assignments and price lists. Payment terms should come last, after you've validated that orders flow correctly between systems.

Ready to connect your ERP's B2B operations to Shopify Plus? Galantis Connect gives you visual mapping, intelligent pricing rules, and credit-limit enforcement for wholesale channels. See how it works at galantis.io.

Written by
Selo A.

Unified tools. Unmatched power.

Unified tools. Unmatched power.

Sync your marketplace, ERP, shipping, and finance tools — no more manual updates or errors.

100% free, no strings attached.

Unified tools. Unmatched power.

Sync your marketplace, ERP, shipping, and finance tools — no more manual updates or errors.

100% free, no strings attached.

Sign up and stay updated

Sign up and stay updated

English

© DigiFist 2026. All rights reserved.

Built by DigiFist • Leading Shopify Premier Partner powering 5,000+ Merchants • 3 Global Offices