Catalog raises $3M to build the product data layer for AI commerce. Read the announcement.
All posts
Product Data

Ecommerce ERP integration: A practical data guide

Plan an ecommerce ERP integration around field ownership, product data, variants, inventory, orders, reliable channel updates, and implementation steps.

An ecommerce ERP integration is only as reliable as the product and transaction records it moves. A connector can pass a SKU quickly while still sending the wrong variant, an old price, or on-hand stock instead of available-to-sell inventory.

Plan the integration around four questions: which data moves, which system owns each field, which connection approach fits, and how a normalized product record keeps every channel aligned.

When the missing piece is a governed product-data layer for several channels, we sit beside the ERP and storefront. We keep the normalized product record separate from orders and warehouse transactions.

What ecommerce ERP integration means

Ecommerce ERP integration connects an enterprise resource planning system with a storefront and the other systems that sell, stock, and fulfill products. It creates repeatable flows for product and commercial data moving toward commerce, orders moving into operational systems, and fulfillment signals returning to the customer-facing surfaces.

The exact direction depends on the field owner. A common pattern looks like this:

ERP, PIM, and product sources → normalized product record → storefronts and channels

Storefront → order and payment details → ERP or OMS → WMS and carriers → fulfillment status back to commerce

The connection is more than a pipe between two applications. It needs a shared identity model, field-level ownership, transformations, validation, an update cadence, and a way to retry and reconcile failures. Our guide to product data integration for ecommerce covers the broader source-to-channel workflow. This guide focuses on the ERP and commerce boundary.

What data should an ecommerce ERP integration sync?

Start with the records that make a product findable, buyable, and fulfillable. The table shows common data groups. Treat the owner and direction as an architecture decision, not as a universal ERP rule.

Data groupTypical fieldsCommon flowOwnership decision
Product identity and attributesProduct ID, SKU, GTIN, MPN, title, description, category, material, dimensions, imagesProduct source or ERP/PIM → storefront and channelsKeep a stable identifier. A PIM or catalog often owns approved content and taxonomy while the ERP owns item-master facts.
Parent and variant relationshipsParent ID, variant ID, item group, color, size, pack, bundle componentsPIM or ERP → storefront, feeds, and marketplacesModel each sellable variant explicitly. Do not make a channel infer whether two rows are options, bundles, or separate products.
Prices and offersBase price, sale price, currency, customer or market price, effective dates, tax classERP, pricing service, or storefront → commerce surfacesChoose one writer per market and offer type. A base price and a channel promotion may have different owners.
Inventory and availabilityOn-hand, reserved, available-to-sell, backorder state, location, replenishment dateWMS, OMS, inventory service, or ERP → storefront and channelsDefine whether the value means physical stock or sellable stock after reservations, safety stock, and channel rules.
Orders and paymentsOrder ID, line-item SKU and quantity, price captured, tax, discount, shipping, payment and customer referencesStorefront → OMS/ERP; status and financial outcomes returnKeep the storefront or OMS as the order-event source. Do not reconstruct an order from a later product record.
Fulfillment and returnsAllocation, pick, pack, shipment, carrier, tracking, cancellation, return, refund, and exception statusOMS/WMS/ERP → storefront and customer notificationsPreserve event timestamps and partial-shipment relationships. A shipment status is different from inventory availability.

Syncing every field in both directions creates conflicts. Define the smallest useful contract for each flow, then document what happens when a source is blank, late, duplicated, or rejected.

Product records need more than a SKU

A SKU can identify a sellable item inside one business. It does not describe the product on its own. A channel-ready record usually needs:

  • stable product, variant, and source IDs;
  • parent-child relationships and option values;
  • category and typed attributes, such as material, dimensions, ingredients, or compatibility;
  • approved titles, descriptions, and media references;
  • price with currency and effective time;
  • availability with its definition and last-updated time;
  • source, owner, approval state, and freshness metadata.

Use a GTIN, UPC, EAN, or MPN when it exists and is validated. Keep it distinct from the internal SKU. A navy medium jacket and a navy large jacket can share a parent product while carrying separate SKUs, inventory, and offers. Our ecommerce product data guide goes deeper on fields, identifiers, variants, and channel outputs.

Decide who owns each field

ERP integration with ecommerce works when every important value has one authoritative writer or an explicit reconciliation rule. A field can be copied to several systems for use. Copies should not quietly become competing sources.

These are common boundaries, with exceptions for particular stacks:

SystemUsually ownsUsually receives
ERPItem master, internal SKU, supplier and purchasing facts, cost, financial state, and sometimes base price or inventory summariesOrders, payment and tax outcomes, shipment and return outcomes, and approved item updates that the ERP governs
PIM or catalogMarket-ready title and description, taxonomy, attributes, variant content, locales, enrichment, approval state, and content provenanceSource item facts, identifiers, assets, and commercial signals needed to build a complete record
StorefrontProduct-page presentation, cart and checkout events, channel merchandising, and sometimes offer or promotion presentationProduct records, prices, availability, media, order acknowledgements, and fulfillment updates
WMSLocation-level on-hand stock, picks, packs, warehouse movements, and shipment eventsOrder lines, allocations, and product or location identifiers
OMS or inventory serviceOrder orchestration, reservation and allocation, split shipments, cancellations, returns, and available-to-sell calculationOrders from storefronts, inventory events from WMS, and item and offer data from ERP or catalog systems

Ownership can vary. For example, an ERP may calculate available-to-promise inventory, or an OMS may own all inventory reservations while the WMS owns physical counts. A storefront may own a flash-sale offer while the ERP owns the list price. Record the decision at the attribute level:

FieldOwnerReadersUpdate rule
skuERP item masterPIM, storefront, WMS, OMSImmutable after creation; map legacy IDs instead of reusing them
title and materialPIM or catalogStorefront, feeds, marketplaces, AI shopping surfacesPublish after approval; retain locale and provenance
price.usdPricing service or ERPStorefront, feeds, OMSSend with currency, market, effective time, and offer type
available_to_sellOMS or inventory serviceStorefront, channels, supportUpdate on reservation or release; reconcile with WMS and ERP
order_statusOMSStorefront, ERP, customer notificationsEmit ordered events and keep the source order ID

The goal is traceability. When a channel shows the wrong value, the team should be able to answer which source wrote it, when it changed, and which transformation ran.

For a fuller architecture view of ERP, PIM, DAM, commerce, and operational systems, see our guide to PIM integration.

Choose a connection approach

The right method depends on the number of systems, endpoint coverage, transformation depth, freshness requirements, and the team that will own failures after launch. Most mature stacks combine an initial bulk load with incremental updates.

ApproachFits whenPlan for
Native or prebuilt connectorYour ERP and storefront pair has supported objects and standard workflowsConfirm field coverage, variant behavior, price lists, inventory semantics, limits, error visibility, and release ownership.
Middleware or iPaaSSeveral systems need routing, mapping, retries, and shared monitoringCheck how much product modeling and validation you must still build. Avoid hiding business rules in opaque flows.
Direct API and webhook flowTwo systems have dependable APIs and the data contract is focusedAdd authentication, pagination, rate-limit handling, idempotency, replay, and a scheduled reconciliation. Webhooks can be missed or arrive out of order.
Scheduled file or batch exchangeA supplier, legacy ERP, or destination supports CSV, XML, JSON, or secure file transferValidate schema, encoding, delimiter, file completeness, delivery time, duplicate files, and rollback behavior.
Custom integrationNo supported connector covers a specific workflow or legacy contractBudget for version changes, tests, observability, on-call ownership, and maintenance beyond the initial build.

Do not choose a method because it promises real-time movement. First classify the data. Product copy and taxonomy may need approval and an hourly or event-based update. Price, availability, order events, and fulfillment statuses usually need a tighter cadence. Financial reconciliation may be a batch process. The right design is often a mix.

An implementation checklist

Use this sequence to keep a connection from becoming an ungoverned copy of your catalog.

1. Inventory the stack and the workflows

List every ERP, PIM, storefront, marketplace, WMS, OMS, inventory service, pricing service, feed, and analytics destination. For each one, record the objects it reads and writes, its API or file capability, its owner, and the workflow it supports.

Separate product flows from transaction flows. Product content, prices, and availability have different risk profiles from orders, payments, and returns.

2. Create an ownership matrix

Assign one writer per field or define a reconciliation rule. Include the exact meaning of terms such as inventory, available, active, discontinued, backorder, and shipped. Write down which system wins when two values have the same timestamp or arrive out of order.

3. Preserve IDs and model variants

Choose stable keys for products, variants, orders, lines, locations, and shipments. Map old IDs instead of replacing them during migration. Test parent products, single variants, bundles, multipacks, replacements, and products that are discontinued or reintroduced.

4. Define a versioned data contract

For every field, specify its type, requiredness, owner, units, allowed values, locale, currency, source timestamp, transformation, and destination mapping. Version the contract when a supplier column, API object, category, or variant rule changes.

Include quarantine behavior. A record with a missing currency, duplicate SKU, broken parent link, or invalid image should stop with a reason and an owner. It should not be published as a plausible substitute.

5. Select transport and cadence per data group

Use a bulk import for the initial catalog, then incremental updates where the source supports them. Set separate freshness targets for content, media, prices, availability, orders, and fulfillment. Add a full comparison on a schedule to catch missed events, deleted records, and drift.

6. Build safety into every flow

Keep the source payload and source version so a failed mapping can be replayed. Use idempotency keys, bounded retries, dead-letter or quarantine handling, authentication with least privilege, and logs that include the product, order, or shipment ID. A successful HTTP response only proves that a request was accepted.

7. Test the cases that break trust

Test a new variant, an updated price with a different currency, a zero-quantity or backordered item, a reserved unit, a duplicate event, a missed webhook, a split shipment, a cancellation after allocation, a partial return, and an order containing a discontinued SKU. Compare record counts and representative product pages before enabling publishing.

8. Monitor and reconcile after launch

Track source freshness, records created or updated, rejected and quarantined records, retry queues, destination acceptance, price age, availability age, order lag, and fulfillment exceptions. Give each alert a named owner. Run full reconciliation often enough to find drift before a shopper or support agent does.

Worked example: one jacket from product record to shipment

Consider a brand that sells a commuter jacket in three colors and five sizes.

The ERP creates the item family JKT-100 and the sellable variant JKT-100-NV-M. It owns the SKU, supplier reference, cost, and purchasing status. The PIM owns the approved title, material, size and color values, category, localized description, and variant image. The WMS reports 32 units physically on hand. The OMS has reserved 5 units for open orders, so it calculates 27 units available to sell.

The product flow creates a normalized record for the storefront and other channels:

{
  "product_id": "JKT-100",
  "variant_id": "JKT-100-NV-M",
  "sku": "JKT-100-NV-M",
  "attributes": {
    "color": "navy",
    "size": "M",
    "material": "recycled nylon"
  },
  "offer": {
    "price": 148.00,
    "currency": "USD",
    "availability": "in_stock",
    "available_to_sell": 27
  },
  "source_timestamps": {
    "content": "2026-10-28T09:00:00Z",
    "availability": "2026-10-28T09:02:14Z"
  }
}

The storefront uses the record to render the navy, medium option at USD 148 and to decide whether to show it as available. A marketplace feed or AI shopping output can receive its own mapped representation. All outputs retain the same variant identity and commercial meaning.

The transaction is a separate flow. When a shopper buys one unit, the storefront sends order ORD-8421 with the variant SKU, quantity, captured price, currency, tax, shipping choice, and customer reference to the OMS or ERP. The OMS reserves the unit and sends the order to the WMS. The WMS emits picked, packed, and shipped events with the shipment and tracking references. The OMS returns those statuses to the storefront, and the storefront sends the customer notifications. When the shipment leaves, the inventory flow updates the available-to-sell value.

The product record did not create the order, and the order did not rewrite the product description. Keeping those responsibilities separate makes an integration easier to test and audit.

Keep every channel consistent

Each channel needs a different representation. A storefront needs a product page and selector. A marketplace may require an item group, channel taxonomy, and identifier. A feed may need a strict file schema. An AI shopping surface needs typed product objects that let a system compare an item by its attributes, price, availability, and fit.

Those outputs can differ in shape and copy. They should agree on the facts that affect a buying decision. Start with one normalized, approved record, then use destination adapters for required fields, taxonomies, locale, and presentation.

This avoids a common failure mode: a product team updates a PIM, an operations team updates an ERP, and a channel team edits a feed copy. Each copy looks reasonable in isolation. Together they can show a different material, price, or variant relationship. Store provenance and freshness with the output so a conflict can be traced instead of debated.

Where Catalog fits

We are a product data layer alongside your ERP, PIM, storefront, WMS, and OMS. We are relevant when an ERP integration needs to produce one governed, machine-readable product record for several commerce and AI-shopping outputs.

We structure product data, keep approved records synchronized, publish product context to AI shopping surfaces, and measure what those outputs do. That gives the product team a shared layer for identifiers, attributes, variants, offers, availability, and provenance while operational systems keep their existing jobs.

We are not an ERP, warehouse allocation engine, OMS, or general-purpose replacement for every middleware workflow. Orders, reservations, payments, picks, shipments, and returns should remain in the systems designed to process them. Our product-data layer complements those transaction paths by making the product record consistent before it reaches a storefront, feed, marketplace, or parallel storefront for AI commerce.

General middleware can orchestrate broad workflows. We focus the product-data layer on the record itself: identity, attributes, variants, offers, availability, provenance, and channel outputs. Choose that boundary when product consistency and AI-shopping distribution belong in the integration brief.

Machine-readable product feed fields shown as a structured output for an AI shopping surface.

If your current ERP connection moves records but leaves conflicting product copies across channels, product data management software for ecommerce explains the product-data layer decisions to evaluate. For update cadence and drift terminology, see the data synchronization glossary.

Questions to answer before you connect the systems

What data should sync between an ERP and ecommerce storefront?

At minimum, map stable product and variant IDs, approved attributes, prices and currency, availability or available-to-sell inventory, orders, and fulfillment status. Add images, shipping and return policies, tax data, customers, payments, and returns when those records are needed by a specific workflow. Assign an owner and cadence to every field instead of enabling a two-way copy by default.

Does an ERP own all ecommerce product data?

No. An ERP often owns the item master, supplier, cost, purchasing, and financial facts. A PIM or product data layer may own approved descriptions, attributes, taxonomy, variants, and locales. A WMS or OMS may own physical or available-to-sell inventory. Define ownership for each attribute in your architecture.

Does every field need real-time synchronization?

No. Match freshness to the business risk. Orders, reservations, availability, and shipment events usually need fast updates. Product copy, media, and taxonomy can use approval-driven updates. Finance and reporting often use batches with full reconciliation. A mixed cadence is easier to operate than forcing every field into one transport pattern.

Does a product data layer replace an ERP or PIM?

No. The product data layer normalizes and distributes product records. The ERP remains responsible for the operational and financial processes it owns. A PIM can remain the workflow for market-ready content. WMS and OMS continue handling stock, allocation, fulfillment, and returns.

How do we keep variants aligned across channels?

Give every sellable variant a stable ID and SKU, retain its parent relationship, and map its own options, price, availability, media, and URL where required. Validate that each destination receives the right variant grouping. Never rely on a title or image alone to match variants.

Start your integration plan with the field ownership matrix, then decide which product records need a governed data layer. Talk with Catalog about making the product data your ERP and channels share structured, current, and ready for AI commerce.