Shopify and NetSuite Data Mapping

Understanding NetSuite Integration Complexity

NetSuite is one of the most flexible ERP systems available. That flexibility means there are many ways to configure the same functionality. Your specific NetSuite setup determines how Shopify data should map.

This guide covers common mapping patterns, but your implementation will require analysis of your actual NetSuite configuration.

Product Data Mapping

Products are foundational. Get this wrong and everything else breaks.

NetSuite item types

NetSuite has multiple item types relevant to ecommerce:

  • Inventory items: physical products you stock
  • Non-inventory items: products you sell but do not track inventory
  • Kit items: bundles of other items
  • Matrix items: parent items with child variants
  • Assembly items: manufactured products

Shopify products and variants need to map to the appropriate NetSuite item type.

Variant handling

Shopify variants can map to NetSuite in several ways:

Matrix items: Parent item in NetSuite with child items for each variant. Matches Shopify's model conceptually.

Individual items: Each variant is a standalone NetSuite item. Simpler but loses the parent-child relationship.

Item options: Single item with options that create variants. Works for some scenarios but can complicate inventory tracking.

The right approach depends on how you manage inventory and purchasing in NetSuite.

Key field mappings

Shopify Field NetSuite Field (typical)
Product title Item name/number or Sales Description
SKU Item ID or UPC/EAN
Price Base Price or Price Level
Description Sales Description or Web Description
Variant options Matrix options or custom fields

Inventory Sync

Inventory accuracy directly impacts customer experience and operations.

Inventory source in NetSuite

NetSuite tracks inventory by location. You may have:

  • Single warehouse location
  • Multiple warehouse locations
  • Store locations
  • Third-party logistics locations

Decide which locations' inventory should be available on Shopify. Sum them, use specific locations, or apply rules.

Available vs committed

NetSuite distinguishes:

  • On Hand: physical quantity in stock
  • Available: on hand minus committed to other orders
  • On Order: expected from purchase orders

Usually sync Available quantity to Shopify. Syncing On Hand leads to overselling when orders are processing.

Sync timing

Options:

  • Real-time: NetSuite triggers update to Shopify on every inventory change. Most accurate but highest load.
  • Scheduled: Sync runs periodically (every 5 minutes, hourly). Slight lag but more manageable.
  • Event-driven: Sync after specific events like order fulfillment or receipt.

For high-velocity items, real-time or frequent scheduled sync prevents overselling.

Order Sync

Orders flowing from Shopify to NetSuite enable fulfillment and financial tracking.

Order vs sales order

Shopify orders become NetSuite sales orders. Configuration options:

  • Create immediately on order placement
  • Create on payment capture
  • Create after fraud review passes

Order field mapping

Shopify Field NetSuite Field
Order number PO Number or External ID
Line items Sales Order Lines
Customer email Customer lookup/create
Shipping address Ship To address
Billing address Bill To address
Discounts Discount items or price adjustments
Shipping Shipping item line
Tax Tax code or calculated tax

Discount handling

Shopify discounts may need translation:

  • Percentage discounts as discount lines
  • Fixed discounts as negative amount items
  • Automatic discounts embedded in line prices

Choose an approach and apply consistently.

Payment handling

Shopify captures payment. NetSuite needs to know:

  • Payment method used
  • Payment status (captured, pending)
  • Amount collected

Some integrations create customer deposits in NetSuite representing the Shopify payment.

Customer Sync

Customer data connects orders to customer records in NetSuite.

Customer matching

When an order arrives, match the customer:

  1. Search by email address
  2. If found, associate order with existing customer
  3. If not found, create new customer record

Handle edge cases:

  • Guest checkout without customer creation
  • Duplicate email addresses
  • Customer data updates (address changes)

Customer to customer or lead

NetSuite has Customers, Leads, and Prospects. Decide where Shopify customers go. Most commonly they become Customers since they have already purchased.

Fulfillment Sync

When orders ship from NetSuite, update Shopify.

Item fulfillment to Shopify

When NetSuite creates an Item Fulfillment:

  • Identify corresponding Shopify order
  • Create fulfillment in Shopify
  • Include tracking number from NetSuite

Shopify then notifies the customer and updates order status.

Partial fulfillment

If orders ship in multiple packages:

  • Each NetSuite fulfillment creates a Shopify fulfillment
  • Track which lines are fulfilled
  • Handle line quantities that split across fulfillments

Implementation Considerations

Sandbox testing

Use NetSuite sandbox and Shopify development stores for testing. Production testing with real orders is risky and messy to clean up.

Error handling

Plan for failures:

  • API timeouts
  • Validation errors (missing required fields)
  • Data mismatches (product not found)

Log errors with context. Alert on critical failures. Provide manual retry mechanisms.

Historical data

Decide whether to migrate historical Shopify orders to NetSuite. This creates accounting entries in NetSuite, which may or may not be desired.

For integration guidance, see Shopify integrations.

Working with LiftKit Digital

LiftKit Digital has deep experience with Shopify and NetSuite integrations. We analyze your specific NetSuite configuration and build mappings that work for your business.

To discuss your NetSuite integration, get in touch.