# Shopify ERP Product Import: Mapping Inventory System Exports

> ERP product exports don't match Shopify field names. Map Stock Code, Sales Price, and Product Group from your inventory system to Shopify at import time.

- Published: 2026-09-16
- Author: Importier Team
- Category: Import Guides / File Imports
- Canonical: https://www.importier.app/blog/shopify-erp-product-import

---

A sporting goods retailer managing 800 products in a Cin7 inventory system runs a weekly update: export from Cin7, re-import to Shopify. Updated prices, new arrivals, discontinued lines. The export has 24 columns and none of them match Shopify's field names. "Stock Code" is not "SKU". "Sales Price Ex-Tax" is not "Variant Price". "Product Group" is not "Product Type". The first import takes 45 minutes to remap manually. Every subsequent week, the same 45 minutes again.

That is the shopify erp product import problem: inventory management systems were designed for warehouses and accounting departments, not for commerce storefronts. Getting ERP exports into Shopify without manual remapping every cycle requires understanding the field name disagreements and saving the translation once.

## Why ERP Exports Don't Match Shopify Field Names

ERP systems like Cin7, Unleashed, DEAR Inventory, Lightspeed, and NetSuite are built around stock control and accounting. Their product records store what warehouses need: bin locations, supplier codes, GL codes, and reorder points. Shopify's product model is built around selling: titles, descriptions, images, and channels.

Field names almost never match, because each system chose its own terminology independently. An ERP export and a Shopify import profile speak different languages even when describing the same product.

Common naming mismatches between ERP exports and Shopify fields:

**Stock Code vs SKU:** ERP systems call the internal product identifier the "Stock Code" or "Item Code". Shopify calls it the "SKU" (Stock Keeping Unit). According to [Shopify's product CSV format documentation](https://help.shopify.com/en/manual/products/import-export/using-csv), the standard column header is "Variant SKU", not "Stock Code", "Item Code", or "Part Number". Neither system recognises the other's column name without a manual mapping.

**Product Group vs Product Type:** ERP systems organise products into "Product Groups" or "Item Groups" for stock category reporting. Shopify uses "Product Type" for the same field. The values often differ too: an ERP Product Group might be "PWR-TOOLS" where Shopify Product Type would be "Power Tools".

**Cost Price vs Cost Per Item:** Both refer to the merchant's unit cost for margin reporting. Named "Cost Price" in most ERP systems and "Cost Per Item" in Shopify's CSV format. The mapping is direct, but the column header mismatch means the import wizard won't recognise it without being told.

**Bin, GL Code, HS Code:** These fields appear in most ERP exports and have no Shopify equivalent. Bin location and GL code are operational and accounting data that belong in the ERP. HS code can be stored as a product metafield for international merchants but has no native Shopify CSV column.

<Callout label="The field to watch">
Most ERP exports include a "Status" or "Active" column. An ERP product can be "Active" in the warehouse while discontinued for retail. Mapping it to Shopify's product status without checking values first can publish discontinued lines to the storefront. Review ERP status values before mapping, or leave the field unmapped and control publication status in the Shopify admin.
</Callout>

![Procurement analyst at a desk with two printed A4 forms side by side, the left showing an ERP stock record with highlighted fields labelled Stock Code, Product Group, and Cost Price, and the right showing a Shopify product admin form with matching fields labelled Variant SKU, Product Type, and Cost Per Item, with handwritten arrows connecting each pair](/blog/shopify-erp-product-import/01.jpg)

## The Tax Decision for ERP Price Exports

The two-price problem requires a deliberate decision before mapping. An ERP export that includes both "Sales Price Ex-Tax" and "Sales Price Inc-Tax" for the same product creates a decision point at every import cycle.

The correct column to map to Shopify's Variant Price depends on the merchant's Shopify tax configuration. According to [Shopify's tax documentation](https://help.shopify.com/en/manual/taxes/setup), merchants specify whether product prices are entered inclusive or exclusive of tax in store settings. In most Australian Shopify stores, prices are entered exclusive of tax and Shopify adds GST at checkout, so the Ex-Tax price is the correct Variant Price. Stores that display tax-inclusive prices should use the Inc-Tax column instead.

Using the wrong column across 800 products creates checkout price discrepancies that do not surface until a customer notices the cart total differs from the displayed price. Confirm the tax setting in Shopify's admin under Settings > Taxes and Duties before choosing which ERP price column to map.

The Cost Price column maps to Shopify's Cost Per Item (Variant Cost) field regardless of the tax decision. This field is not customer-facing; it drives margin calculations in Shopify's Analytics reports.

![Finance manager at a workstation examining a printed product pricing spreadsheet with two adjacent columns highlighted in contrasting colours, one for tax-exclusive prices and one for tax-inclusive prices, with a tax rate reference card and calculator on the desk beside the spreadsheet](/blog/shopify-erp-product-import/02.jpg)

<Divider label="From ERP export to Shopify import profile" />

## Setting Up the Shopify ERP Product Import Profile

Importier's column mapping step handles ERP field translation in a single configuration pass. The auto-mapping recognises common ERP header names where possible, and the remaining columns map manually. Once set, the entire configuration saves to a named import profile.

<Steps items="Upload the ERP export CSV or Excel file in Importier's import wizard. The column auto-mapping recognises common ERP headers like Supplier and Cost Price and pre-fills them. Review every auto-mapped field before accepting | Map the remaining columns manually: Stock Code to Variant SKU, Product Group to Product Type, Sales Price Ex-Tax (or Inc-Tax, per your tax configuration) to Variant Price. Set Bin, GL Code, and any purely operational columns to Skip | For HS Code and other ERP fields that need to flow to Shopify as metafields, map each to a Custom Metafield with the appropriate namespace and key. Customs merchants commonly use a customs namespace with an hs_code key | Save the completed column mapping as a named import profile. Name it specifically: 'Cin7 Weekly Product Export' or 'Unleashed Stock Update' so it remains identifiable when multiple ERP profiles exist | On the next export cycle, open the saved profile, upload the new file, and the column mapping pre-fills automatically. File upload and a quick review is all that remains" />

The import profile saves permanently to the account. For merchants running weekly or monthly ERP export cycles, the saved profile reduces remapping time from 45 minutes to under 2 minutes.

![Data migration specialist at a dual-monitor workstation with an import column mapping configuration screen visible on one monitor showing source ERP column names on the left connected by arrows to Shopify destination field names on the right, with a printed ERP export field reference guide open flat on the desk](/blog/shopify-erp-product-import/03.jpg)

## Update-Existing Mode for Recurring ERP Exports

The import profile handles field translation, but recurring imports create a second problem: ERP price updates can overwrite Shopify-specific content added since the original import. When products come in from an ERP export, titles and descriptions arrive in supplier format. After import, those get rewritten as customer-facing copy. If the next ERP sync runs in full-overwrite mode, those improvements are replaced.

Importier's update-existing mode solves this by matching on SKU (mapped from Stock Code) and updating only the fields in the active profile. A price-update profile mapping only Variant Price, Compare At Price, and Cost Per Item leaves titles, descriptions, tags, and images untouched. Save a full import profile for initial product creation and a separate price-update profile for recurring cycles. The two-profile approach is covered in the [shopify-wholesale-pricing-sheet-import](/blog/shopify-wholesale-pricing-sheet-import) and [shopify-supplier-data-standardisation](/blog/shopify-supplier-data-standardisation) workflows.

<PullQuote>The ERP field most merchants overlook is Cost Price. It maps to Shopify's Cost Per Item and drives every margin calculation in Shopify Analytics. Skip it in the import profile and the margin reports have no data.</PullQuote>

<Compare withoutTitle="Without a saved ERP import profile" withTitle="With a saved ERP import profile" withoutItems="Remap 24 ERP columns to Shopify fields manually on every export cycle: 45 minutes per import | Risk of mapping errors each cycle: wrong price column, wrong tax basis, operational columns mapped to product fields | No record of which decisions were made: the next person to run the import starts from scratch" withItems="Upload the new file and select the saved profile: column mapping pre-fills in under 2 minutes | Mapping decisions are recorded: correct price column, correct tax basis, operational columns set to Skip | New team members run the same import with the same settings without needing to understand the field translation" />

<TipBox />

## Key Takeaways

- **ERP exports use different field names than Shopify expects.** Stock Code, Product Group, Sales Price Ex-Tax, and Cost Price are the most common ERP columns that need manual mapping to their Shopify equivalents (Variant SKU, Product Type, Variant Price, Cost Per Item).
- **The two-price problem requires a tax configuration decision.** Most ERP exports include both Ex-Tax and Inc-Tax price columns. The correct one to map to Variant Price depends on whether the Shopify store uses tax-exclusive or tax-inclusive pricing; confirm this in store settings before mapping.
- **ERP operational fields (Bin, GL Code, Reorder Point) have no Shopify equivalent.** Set these to Skip in the column mapping. HS Code can map to a custom metafield for merchants who need customs data in Shopify.
- **Save two import profiles per ERP system.** A full import profile for initial product creation and a price-update profile for recurring cycles. The price-update profile maps only price fields, leaving descriptions, titles, and tags untouched.
- **Update-existing mode matches on SKU (mapped from Stock Code) and updates only the mapped fields.** It protects descriptions, titles, and tags from ERP overwrite on recurring sync cycles.

Import your inventory system export and save the column mapping as a reusable profile at [importier.app](https://importier.app).
