Import orders from the ERP

Hello, I am new to Shopify and want to understand the best way to achieve this.

We need to integrate (import) orders from an ERP into Shopify Plus. Not all the sales are done on the website (Shopify), and many of these have other sales channels but integrated into the ERP. So, we want to consolidate the client orders into Shopify to see them in the order history. It’s a common use case in the B2B.

We were researching, and it seems an option is creating draft orders for the ones from the ERP, but it seems there will be performance issues. Also, when completing it, the inventory is affected. Another option seems to be with order APIs. Could you please provide some guidance on the best way to achieve this?

Thank you.

Polo

Hi @polo.jimenez

Great question — this is indeed a common B2B scenario, and you’re right to think carefully about the approach.

First, what ERP are you currently using? The answer will influence your best path forward, as some ERPs have more mature Shopify integrations than others.

Here are a few approaches to consider:

1. Native ERP Integrations (Recommended starting point)

Shopify Plus now offers direct integrations with several major ERPs. These native integrations handle order sync, inventory, and customer data bidirectionally: Shopify B2B External Integrations Guide

2. If your customers send orders via PDF/email

If part of your workflow involves customers submitting orders outside Shopify (common in B2B), you might also find LevelOps PDF to Order useful — it automates order entry from PDF purchase orders directly into Shopify.

Let us know what ERP you’re working with and we can point you toward more specific guidance!

Thank you, Maxi.

Our customer uses QAD ERP. They generate a TXT file with the orders, and that file is uploaded into a blob storage for the integration.

We started using a custom object to store external orders in Shopify. Is that a best practice?

Best regards,

Polo Jiménez

Hey @polo.jimenez!

Just a bit of advice from an ERP integration Specialist.

Shopify Order API is a REST solution that any HTTP client can send and receive requests using an API secret generated from creating a custom app or a private app. If your ERP is locally run a console app can make these requests in a timed interval. For cloud ERP a custom app can be used to create orders from a batch txt file.

If you plan on doing this on your own a dev shop is a good place to start. A Shopify order also includes transaction and mapping the two systems can be a challenge.

At Achieve Applabs we help business accomplish a true ERP integration using out of the box solutions.

To bring ERP orders into Shopify Plus and show them in your order history, the best practice is usually to build a proper integration using Shopify’s APIs (like the Orders API or the B2B import endpoints) or a middleware platform so ERP orders are created as real Shopify orders with proper customer links and statuses — this avoids performance issues and inventory side‑effects of draft orders, ensures accurate reporting, and gives you scalable, reliable syncing between your systems.

Hi @polo.jimenez

When it comes to the performance of the Shopify API, you can consider using the Bulk Operations API, which enables batch import of order data.

For existing orders, we’ve found that Shopify does not support directly adding or editing tax lines via order edits.
OrderAdjustment is refund-only, and there is no orderEditAddTaxLine mutation available.

Because of this limitation, when the ERP-calculated tax differs from the Shopify-calculated tax, our current approach is:

• Open an Order Edit session to update line items and shipping as needed
• Add a custom order line item (e.g., “Tax (ERP)”) with the ERP tax amount so that:
– the order total matches ERP exactly
– the adjustment is visible and auditable

This works technically, but the tax is displayed as a standard line item rather than appearing in Shopify’s native Tax section.

Questions:

  1. Is there any supported way to update tax amounts on existing Shopify orders after creation?

  2. For B2B ERP integrations where ERP tax must be authoritative, is adding a custom order line (e.g., “Tax (ERP)”) considered a best or recommended approach?

  3. If not, is there a better supported pattern for reflecting ERP tax on existing orders?