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.
Most B2B manufacturers face this in these scenarios:
The common thread: you need historical ERP orders in Shopify, but you're not ready for full real-time integration.
This guide focuses on ad-hoc imports (one-time or occasional historical order imports).
When you're doing ad-hoc import:
Key characteristics: Manual batch process, orders imported as fulfilled, no payment processing, no inventory impact, focus on data accuracy.
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.
For ad-hoc historical imports, you have two practical options.
Use Matrixify to import orders from CSV files.
How it works:
Why Matrixify: Shopify has no native CSV order import. Matrixify handles large datasets, provides detailed error reporting, and works for non-technical teams.
Advantages:
Best for: One-time historical import, platform migrations, non-technical teams, testing import structure.
Critical: Preventing inventory impact:
Pro tip: Import in this order:
Use n8n to automate order imports with visual workflows.
How it works:
Advantages:
Best for: Periodic imports (monthly/quarterly), teams wanting automation without full custom development, testing before building custom integration.
When to use n8n vs. Matrixify:
Limitations: Requires technical understanding, self-hosted needs server infrastructure, initial setup time.
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.
Always tag orders for filtering and identification.
Recommended tags: source:ERP, channel:Phone, imported:2025-01-15, erp-order-id:12345
Implementation:
Preserve ERP-specific data: order number, customer account number, sales rep, original order date, payment terms, special instructions.
Implementation:
Historical orders are already fulfilled. If you don't prevent inventory deduction, Shopify will deduct quantities again.
For Matrixify:
For n8n:
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.
Customers already received confirmations. Don't send duplicates.
Implementation:
%20-%20Map%20Order%20Status%20Correctly.jpg)
Implementation:
Match orders to correct Shopify customers by email address (most common), ERP ID (B2B), or phone number (fallback).
Implementation:
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).
Shopify's createdAt field uses import time and can't be overridden.
Workaround:
Strategies:
Implementation:
Split large volumes into batches of 100-500 orders. Easier to fix errors, less risk of timeouts, better progress visibility.
Implementation:
What to log: Success/failure for each order, ERP to Shopify ID mapping, error messages, batch times, totals.
Implementation:
Best practice: Create spreadsheet tracking each batch (ID, date, count, success rate). Keep logs for 1 year.
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).
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.
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.
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.
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.
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).
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.
Sync ERP products/SKUs to Shopify, create variant mapping, maintain SKU consistency before importing orders.
Set import orders to BYPASS inventory if ERP manages inventory. Monitor discrepancies after import. See Shopify ERP Integration Guide.
Import tools:
ERP integration apps:
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.
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.
Build automated sync using n8n:
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.
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).
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:
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.