Skip to content

Shopify–NetSuite Two-Way Sync for CPG Brands Selling DTC and Wholesale

Shopify keeps the storefront order and shopper context, NetSuite keeps the posted transaction, and a customer crosswalk stops a guest order from landing on a distributor account.

Author
Ruben Burdin · Founder & CEO
Published
Read time
5 min read
Shopify–NetSuite Two-Way Sync for CPG Brands Selling DTC and Wholesale
DATA ENGINEERING

The operating decision

Connect Shopify orders and customers to the corresponding NetSuite records with explicit ownership for channel identity, ERP posting, and product packs. CPG brands need a shared order trail without flattening wholesale terms into DTC behavior. Establish the order and line crosswalk first; then add approved write-back fields and the workflows that depend on them.

Explore the complete consumer packaged goods integration and automation hub for the systems and processes around this guide.

Summary card: Shopify NetSuite two-way sync for DTC and wholesale CPG

What this looks like in consumer packaged goods

A CPG brand sells single units online and cases to distributors. A Shopify order contains a promotional bundle, while NetSuite holds the components and a separate wholesale customer hierarchy. Finance receives a channel total, operations receives units to fulfill, and sales needs the right account context. Copying the order total into a second system does not explain which products should move or which customer owes money.

Records, ownership, and update rules

RecordOwnerOperating rule
Shopify order and lineCommerce operationsStore the original order and line IDs, ordered pack, channel currency, and revision.
NetSuite sales orderERP operationsUse a stable external reference and validate customer, item, subsidiary, and line mapping before creation.
Customer crosswalkRevenue operationsDistinguish a DTC shopper from a wholesale legal account; do not merge them by email alone.
Financial statusFinanceKeep posted invoices and payment application authoritative in NetSuite; publish only the visibility fields agreed for Shopify.
Record ownership diagram: Shopify order and line, NetSuite sales order, Customer crosswalk
Define the record owner and the rule before enabling updates.

Work through the process

  1. 01
    Choose the business grain
    Decide whether the integration represents each order line as a sellable pack or its components. Preserve the original line even when fulfillment requires an approved component breakdown. Never infer a wholesale case quantity from a similar DTC title.
  2. 02
    Map identity before values
    Create stable channel-to-ERP customer and product references. Validate known customers, new shoppers, bundles, and canceled lines independently. Record whether a field may be edited by commerce, finance, or neither.
  3. 03
    Separate receipt from fulfillment
    Move a valid order into a received state, then check finance and fulfillment rules before release. The presence of a synchronized order is not permission to allocate stock, capture payment, or mark it shipped.
  4. 04
    Reconcile the full order
    Compare line quantities, discounts, tax, shipping, and currency before accepting the ERP result. A header total may match even when a bundle was expanded incorrectly, so inspect both money and physical units.
  5. 05
    Prove one bundle order lands on one NetSuite reference
    Place a test Shopify order for a promotional bundle and follow it into NetSuite. Open the created sales order and confirm it carries a single external reference back to the Shopify order ID, then compare its lines against the storefront: component quantities, discount, tax and currency must add back to the channel total. Next, place a guest order using the email of an existing distributor. In NetSuite that order must sit against a separate shopper identity, with the conflict raised for review. Stop the rollout if the bundle creates two sales orders, if the components round to a different amount, or if the guest order attaches to the distributor account.
5-step operating sequence: Shopify NetSuite two-way sync for DTC and wholesale CPG
Follow the operating sequence; unresolved exceptions return to a responsible reviewer.

Handle the exceptions explicitly

Guest customer shares an email

Resolve the channel identity without silently attaching the order to a distributor account. Escalate conflicting legal entities.

Bundle changes after purchase

Retain the purchased bundle revision and its component evidence; do not apply today’s recipe to an older order.

Cancellation after ERP posting

Route a controlled cancellation or credit process to finance; do not delete the posted transaction through a field update.

What to verify before expanding

  • One Shopify order resolves to one approved NetSuite business reference.
  • Bundle components reconcile to the original channel quantities and amount.
  • A guest order and a distributor account sharing an email retain their separate customer identities after reconciliation.
  • An older bundle order retains its purchased components after the current storefront recipe changes.
Book a demo for consumer packaged goods integration and automation

Connect this process to the rest of your operation

Explore Stacksync two-way sync and scope the records and actions against your actual systems. Book a demo with a real shopify order and line example and the exception your team handles most often, for example guest customer shares an email.

The shared architecture guide covers record matching, ownership, and recovery across systems.

Technical references

Book a demo for consumer packaged goods integration and automation

FAQ

Frequently asked questions

Can both teams edit every field?
No. Decide field by field which system may write it and which only reads it. Shipping address edits and order notes belong to Shopify; posted invoice status and payment application belong to NetSuite and appear in Shopify as read-only context. A field nobody has claimed stays out of the sync until an owner signs off, which keeps a well-meant edit from overwriting the other team's record.
What happens when a distributor orders cases through the Shopify store?
The Shopify variant must carry an approved pack definition that names the ERP item and the units per case before the order is allowed through. NetSuite receives the line in the ERP item's unit, with the storefront pack retained on the order for reference. A variant without that definition holds its order line for product operations instead of defaulting to single units, so a case order cannot arrive at the warehouse as one bottle.
What can the sync write into Shopify, and what stays out?
The write path into Shopify is limited to fields your team names during setup, such as an ERP order reference or a fulfillment status label support can read. Payment capture, refunds, order cancellation and fulfillment creation stay with the people and tools already authorized to perform them in Shopify. A reviewer confirms a write by opening the Shopify order and seeing the ERP reference on the record, not by reading a sync log.

About the author

Ruben Burdin
Ruben Burdin
Founder & CEO

Ruben Burdin is the Founder and CEO of Stacksync, the first real-time and two-way sync for enterprise data at scale. Ruben is a Y Combinator alumni with a strong background in software engineering and business.

All posts by Ruben Burdin

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Coworkers laughing in front of a laptop in a casual office setting

You just read how it should work.
See it run on your own data.