You just launched your Shopify B2B store. Your ERP system contains five years of order history. Your largest customer logs into the new customer portal and asks, "Where are my previous orders?"

This is the ad-hoc order import scenario. You need to bring existing ERP orders into Shopify without disrupting current operations, affecting inventory, or confusing customers.

This guide focuses on importing historical orders from your ERP into Shopify as a one-time or occasional task. We'll cover the fastest paths to success, critical pitfalls to avoid, and when to consider moving from ad-hoc imports to automated integration.

When You Need to Import Orders from ERP

Most B2B manufacturers face this in these scenarios:

  • New Shopify implementation: Customers expect previous purchase history, sales team needs context, unified reporting required
  • Adding B2B customer portal: Customer self-service, reorder functionality, complete order visibility
  • Multi-channel consolidation: Phone/EDI/web orders spread across systems, need single view
  • Platform migration: Moving from legacy e-commerce, preserving years of order history

The common thread: you need historical ERP orders in Shopify, but you're not ready for full real-time integration.

Ad-Hoc Import vs. Continuous Integration

This guide focuses on ad-hoc imports (one-time or occasional historical order imports).

Ad-Hoc Order Import

When you're doing ad-hoc import:

  • Loading historical orders after launching Shopify
  • Importing batch of offline orders quarterly/monthly
  • One-time migration from legacy system
  • Backfilling customer order history

Key characteristics: Manual batch process, orders imported as fulfilled, no payment processing, no inventory impact, focus on data accuracy.

Continuous Integration (Future State)

When to upgrade: Phone/EDI orders happen daily, sales team needs same-day visibility, manual imports become weekly or more frequent.

Important: Shopify provides native ERP integrations for Acumatica, Business Central, NetSuite, Fulfil, Syndigo PIM, and Akeneo PIM. If your ERP is on this list, use the official connector instead of custom development.

The transition point: Running manual imports more than once per month means it's time for automated integration.

Choosing Your Import Method

For ad-hoc historical imports, you have two practical options.

Method 1: CSV Import via Matrixify (Recommended for Most Teams)

Use Matrixify to import orders from CSV files.

How it works:

  • Export orders from ERP to CSV format
  • Install Matrixify from Shopify App Store
  • Download Matrixify's order import template
  • Map your ERP data to Matrixify's CSV format
  • Upload CSV through Matrixify interface
  • Review import report for errors

Why Matrixify: Shopify has no native CSV order import. Matrixify handles large datasets, provides detailed error reporting, and works for non-technical teams.

Advantages:

  • No development required
  • Handles thousands of orders
  • Built-in validation and error reporting
  • Simple interface
  • One-time payment ($10-40)
  • Imports orders, customers, products together

Best for: One-time historical import, platform migrations, non-technical teams, testing import structure.

Critical: Preventing inventory impact:

  1. Download Matrixify's order template
  2. Set Fulfillment Status to fulfilled
  3. Set Financial Status to paid
  4. Test with 5-10 sample orders first
  5. Verify inventory unchanged after test

Pro tip: Import in this order:

  1. Customers first
  2. Products second
  3. Orders last

Method 2: n8n Workflow Automation (For Technical Teams)

Use n8n to automate order imports with visual workflows.

How it works:

  • Install n8n (cloud or self-hosted)
  • Build workflow using n8n's Shopify integration
  • Connect to ERP data source
  • Transform ERP data to Shopify format
  • Call Shopify Admin API to create orders
  • Handle errors and notifications

Advantages:

  • Visual workflow builder (less coding than custom API)
  • Complex data transformations
  • Schedule periodic imports
  • Free/open-source option
  • One-time setup, no per-transaction costs

Best for: Periodic imports (monthly/quarterly), teams wanting automation without full custom development, testing before building custom integration.

When to use n8n vs. Matrixify:

  • Use n8n: Need automation, data transformation, or periodic imports
  • Use Matrixify: Prefer simple CSV upload without technical setup

Limitations: Requires technical understanding, self-hosted needs server infrastructure, initial setup time.

Method 3: Third-Party ERP Integration Apps

Install ERP-specific apps from Shopify App Store.

Best for: Standard ERPs (Business Central, NetSuite, Acumatica), teams without development resources, supported solutions.

Check for: "Import as fulfilled" settings, historical order mode, inventory skip options.

Best Practices for Order Import

1. Tag Imported Orders

Always tag orders for filtering and identification.

Recommended tags: source:ERP, channel:Phone, imported:2025-01-15, erp-order-id:12345

Implementation:

  • Matrixify: Include Tags column with comma-separated tags
  • n8n: Add tags when calling Shopify API
  • Third-party apps: Look for tag settings

2. Store ERP Data in Notes or Tags

Preserve ERP-specific data: order number, customer account number, sales rep, original order date, payment terms, special instructions.

Implementation:

  • Matrixify: Use Note column for ERP IDs
  • n8n: Store in order notes or customAttributes
  • Third-party apps: Check for custom field support

3. Prevent Inventory Impact (Critical)

Historical orders are already fulfilled. If you don't prevent inventory deduction, Shopify will deduct quantities again.

For Matrixify:

  • Set Fulfillment Status to fulfilled
  • Set Financial Status to paid
  • Test with sample orders first

For n8n:

  • Set inventoryBehaviour: BYPASS in API call
  • Or set fulfillmentStatus: FULFILLED and financialStatus: PAID

For third-party apps: Look for "Import as fulfilled" or "Skip inventory updates" settings.

Alternative: Temporarily disable inventory tracking on products, import, then re-enable and verify levels unchanged.

4. Disable Customer Notifications

Customers already received confirmations. Don't send duplicates.

Implementation:

  • Matrixify: Notifications disabled by default for bulk imports
  • n8n: Set sendReceipt: false and sendFulfillmentReceipt: false
  • Third-party apps: Look for "Disable notifications" setting

5. Map Order Status Correctly

Map Order Status Correctly from ERP to Shopify

Implementation:

  • Matrixify: Map to Financial Status and Fulfillment Status columns
  • n8n: Transform ERP status codes in workflow
  • Third-party apps: Configure status mapping

6. Handle Customer Matching

Match orders to correct Shopify customers by email address (most common), ERP ID (B2B), or phone number (fallback).

Implementation:

  • Matrixify: Include Email column matching Shopify customers
  • n8n: Add customer lookup step in workflow
  • Third-party apps: Configure customer matching rules

Edge cases: Customer exists in ERP but not Shopify (import customers first), multiple customers with same email (use ERP ID), guest orders (create without customer).

7. Preserve Original Order Dates

Shopify's createdAt field uses import time and can't be overridden.

Workaround:

  • Matrixify: Add original date to Note column
  • n8n: Include in customAttributes or order notes
  • Document that Shopify reports use import date

8. Prevent Duplicate Imports

Strategies:

  1. Include ERP order ID in tags or order name
  2. Maintain spreadsheet of imported ERP IDs
  3. Export existing Shopify orders and compare before import

Implementation:

  • Matrixify: Add ERP ID to Name or Tags, review before import
  • n8n: Build duplicate check into workflow
  • Third-party apps: Check for built-in duplicate detection

9. Import in Batches

Split large volumes into batches of 100-500 orders. Easier to fix errors, less risk of timeouts, better progress visibility.

Implementation:

  • Matrixify: Split CSV files (500-1000 orders each)
  • n8n: Configure batches with delays
  • Third-party apps: Monitor progress (apps handle batching)

10. Log Errors and Track Status

What to log: Success/failure for each order, ERP to Shopify ID mapping, error messages, batch times, totals.

Implementation:

  • Matrixify: Save import reports
  • n8n: Use execution logs or logging nodes
  • Third-party apps: Download import logs

Best practice: Create spreadsheet tracking each batch (ID, date, count, success rate). Keep logs for 1 year.

Step-by-Step Implementation

Phase 1: Planning

  1. Define scope: Historical date range, order types to include/exclude, required fields
  2. Analyze data: Export sample orders, map ERP to Shopify fields, identify data for notes/tags
  3. Choose method: Matrixify (CSV), n8n (automation), or third-party app
  4. Extract orders: Create ERP query, filter by date/status, export to CSV
  5. Prepare data: Map fields to template, handle currency conversion, add tracking tags

Phase 2: Testing

  1. Import prerequisites: Ensure customers and products exist in Shopify first
  2. Set up test: Use staging store, prepare 10-20 test orders, document inventory levels
  3. Test import: Import small dataset, verify field mapping, check customer associations
  4. Verify in Shopify: Review orders, confirm tags/notes, verify inventory unchanged
  5. Validate integrity: Compare totals, verify prices, check calculations

Phase 3: Production

  1. Execute import: Start with oldest orders, import in batches (one month at a time), review reports after each batch
  2. Reconcile: Compare order counts (ERP vs Shopify), spot-check samples, verify customer portal, save all logs

Phase 4: Transition (Optional)

  1. Evaluate automation need: Assess import frequency, customer expectations, operational burden
  2. Implement sync: For n8n, schedule workflow; for third-party apps, configure ongoing sync

Common Challenges and Solutions

Challenge 1: Slow Performance

Problem: Thousands of orders take too long or timeout.

Solutions: Split into smaller batches (500-1000 per file), import during off-peak hours, optimize workflows, be patient (large imports take hours).

Challenge 2: Payment Data Mismatch

Problem: ERP payment data doesn't match Shopify structure.

Solutions: Import orders without transactions (financial status = PAID), store payment details in notes, focus on order history not payment processing.

Challenge 3: SKU Mismatch

Problem: ERP SKUs don't match Shopify variants.

Solutions: Create SKU mapping spreadsheet, update Shopify SKUs to match ERP exactly, create missing products first, test with samples.

Challenge 4: Address Validation Failures

Problem: ERP addresses fail Shopify validation.

Solutions: Validate and clean addresses before import, provide default values for missing fields, flag problematic addresses for manual review.

Challenge 5: Tax Calculation Differences

Problem: Shopify recalculates taxes differently.

Solutions: Import exact prices from ERP (include tax if needed), use historical orders as-is, document that imported orders use ERP calculations.

Challenge 6: Multi-Currency Orders

Problem: ERP contains multiple currencies.

Solutions: Import in original currency, ensure Shopify supports multiple currencies (Markets), use Currency column (Matrixify) or set in API call (n8n).

Integration with Other Systems

Customer Synchronization

Import customers before orders using Matrixify, n8n, or third-party app. Ensure emails match between systems. See How to Configure B2B Customer Synchronization Between Business Central and Shopify.

Product Synchronization

Sync ERP products/SKUs to Shopify, create variant mapping, maintain SKU consistency before importing orders.

Inventory Coordination

Set import orders to BYPASS inventory if ERP manages inventory. Monitor discrepancies after import. See Shopify ERP Integration Guide.

Tools and Resources

Import tools:

ERP integration apps:

When to Graduate to Automated Integration

Signs You've Outgrown Ad-Hoc Imports

Frequency indicators: Importing more than once per month, customers asking about recent orders, sales team checking both systems, importing same-day orders.

Business pain: Customer portal feels stale, reports don't reflect current sales, support tickets about "missing orders", manual process takes hours.

Volume signals: More than 1,000 orders per batch, multiple channels creating daily orders, growing B2B customer base expecting self-service.

Building Continuous Integration

Option 1: Third-Party Integration Platform (Fastest)

Use existing integration for your ERP. For Business Central, use native connector or third-party apps. For Acumatica, follow connector setup guide. For others, search Shopify App Store.

Pros: Faster implementation, vendor support, pre-built error handling.

Cons: Monthly cost, limited customization, vendor dependent.

Option 2: n8n Workflow Automation (Flexible)

Build automated sync using n8n:

  1. Set up n8n instance
  2. Create ERP webhook trigger (when order created)
  3. Transform data (map ERP to Shopify)
  4. Call Shopify Orders API
  5. Add error handling (retry, notifications)
  6. Schedule reconciliation (catch missed orders)

Pros: Highly customizable, no monthly app fees, full control.

Cons: Requires technical resources, you maintain it, initial setup effort.

See when to use n8n vs Shopify Flow.

Maintaining Integration

Daily: Check sync status, review error logs, verify order counts match.

Weekly: Spot-check orders, update field mappings, address accumulated errors.

Monthly: Run full count comparison, audit completeness, update documentation.

Track metrics: Sync success rate (>99% target), average sync delay, error rate by type, customer complaints (zero target).

Conclusion: Start Simple, Grow Smart

Most B2B manufacturers should start with ad-hoc order imports. Matrixify provides the fastest path for non-technical teams. n8n offers powerful automation for technical teams wanting visual workflows.

Both approaches are accessible, low-risk, and don't require ongoing technical resources for one-time historical imports.

Key steps for successful ad-hoc imports:

  1. Export orders from ERP in small batches
  2. Test with 10-20 orders first
  3. Verify inventory unchanged after import
  4. Set orders to fulfilled status to prevent inventory impact
  5. Tag imported orders for identification
  6. Disable customer notifications
  7. Validate data accuracy before full import

The transition from ad-hoc to automated integration is natural and should be driven by business need, not technology trends. Start simple, validate the business value, then invest in automation when manual processes become painful.