3PL Inventory Reconciliation: Align WMS, ERP and Ecommerce Stock

Shabahat, Ocean Port Link sourcing expert
Shabahat Ali
September 14, 2026
Inventory controller comparing SKU, location, status and cutoff fields across 3PL WMS, ERP and ecommerce reconciliation records.
Table of Contents

Reconcile the same SKU, location, status and cutoff

Do not compare three headline stock totals until they describe the same SKU, unit of measure, location scope, operational status and point in time. Export each raw value, preserve its source label, map it through a versioned bridge, then investigate only the remaining like-for-like variance.

For an Australian importer using a third-party logistics warehouse, the three systems often answer different questions:

  • the 3PL warehouse management system (WMS) records warehouse movements and operational states;
  • the enterprise resource planning system (ERP) may hold purchasing, inventory and order transactions under its own dimensions; and
  • the ecommerce platform may publish a quantity available for new orders after applying its configured reservations, holds, location mappings or buffers.

Different numbers are not automatically errors; they may refer to different states or timestamps. Explain the bridge, isolate the remaining variance and prove the next matched result.

This is an operational reconciliation. It does not decide who owns stock in transit, when inventory belongs in an accounting period, what it is worth, or how it should appear in financial statements.

Define what each system quantity means before comparing it

Start with the raw field names and definitions from each configured system. Avoid labels such as true stock or book stock: they hide whether the quantity is physical, available, reserved, inbound, quarantined or already attached to an order.

Shopify's current inventory-state documentation illustrates why definitions matter. In that platform, on hand consists of available, committed and unavailable quantities. Incoming inventory is separate, and available excludes committed, unavailable and incoming quantities. A 3PL or ERP can use different names for similar or different concepts.

Amazon's FBA Inventory API provides another first-party example: it reports fulfillable, inbound, reserved, unfulfillable and researching quantities at marketplace level. None of those labels should be assumed to match a 3PL WMS field without a documented mapping.

For every source quantity, record:

  • system and report or endpoint;
  • raw field and its configured definition;
  • SKU, variant, batch or other dimensions carried by the record;
  • location or marketplace scope;
  • unit of measure;
  • event or status included and excluded;
  • extraction timestamp and time zone; and
  • whether the value is raw or calculated.

This creates a source dictionary. Assign authority by object, not one global source of truth.

Lock product, unit and location keys

A quantity cannot reconcile if its keys do not. Build a cross-reference that preserves each source value and maps it to one canonical operational identity.

Key Minimum control Common exception to investigate
Product Canonical SKU/variant plus each system's item code Dash, suffix, case-pack or discontinued-code mismatch
Unit Base unit and documented pack conversion WMS cartons compared with ERP or channel units
Location 3PL facility/bin scope, ERP site and ecommerce location/marketplace One system aggregates facilities that another separates
Granularity Batch, expiry, serial, condition or inventory-status dimensions WMS tracks an attribute that ERP or channel does not
Version Mapping version and effective timestamp Old integration map remains active after a SKU or pack change

Use the approved product and packaging-level identity from the SKU, GTIN and barcode setup process. A marketplace listing ID, supplier model number and internal SKU may all refer to the same sellable unit, but that equivalence must be controlled rather than guessed.

Bundles and kits need an explicit component rule. Reconcile listing reservations to component-level warehouse effects without fabricating one-to-one SKU matches.

Oracle Warehouse Management's current inventory discrepancy guidance shows a product-specific approach to granularity differences. Its discrepancy rules can ignore selected batch, expiry or inventory attributes when WMS and ERP track them differently, consolidate quantities by SKU, and record the rule used. For a portable process, the lesson is to declare the comparison grain—not to discard an attribute merely because it complicates the match.

Build a versioned status bridge

After identity aligns, map raw statuses into operational comparison categories. Keep each source field beside its mapped state, owner, rule version and effective date.

Operational category Question it answers Mapping caution
Gross operational quantity What quantity does this system record within the selected location scope before availability deductions? It is not proof of physical count or accounting ownership
Held or unavailable What quantity is prevented from ordinary release or sale by a named status? Quality, damage, investigation and policy holds need separate authorities
Committed or reserved What quantity is attached to an order, allocation or reservation under this system's rule? Hard, soft, picked and marketplace reservations may occur at different stages
Available for new orders What quantity can the relevant channel offer after its declared deductions? Buffers and location publication rules can make it lower than warehouse availability
Incoming or expected What quantity is not yet in the selected available state? A PO, transfer or shipment is not a received, released unit

Microsoft's current Inventory Visibility configuration explicitly maps dimensions from multiple data sources, retains physical measures by source and builds calculated measures from added or subtracted ERP, POS and ecommerce quantities. That supports keeping source measures and the calculation rule visible. It does not supply a universal formula for an Australian importer.

Do not use the bridge to release quarantined goods. When the source record says stock is held for incoming inspection or another quality decision, preserve that state and route the release through the incoming quality inspection process.

Take matched snapshots and preserve the movement window

Set a reconciliation ID, cutoff timestamp and time zone before extracting data. Each source export should record its own start and completion time, report version and location scope.

If authorised operations permit a short controlled pause for export, the snapshots can share a tighter cutoff. If activity continues, record the movement window. List receipts, picks, shipments, cancellations, returns, transfers, holds and manual adjustments posted after the earliest extract and before the latest. Those movements may explain a difference without any incorrect balance.

Oracle's reconciliation guidance uses a run number to associate WMS and ERP inventory summaries in the same comparison. A system-neutral reconciliation should achieve the same traceability with its own snapshot ID and source timestamps.

Do not copy a universal cadence. Record the chosen frequency and known latency.

When an inbound receipt is still open, link the 3PL pre-alert and ASN and the warehouse receiving discrepancy report. Those records can explain why one system shows expected, received, held or available units at different stages.

Compare inventory in layers

One net variance can conceal offsetting problems. Compare in a fixed sequence and retain every layer.

Test identity and scope first

List records missing from any system before adding quantities. Investigate unmapped SKUs, duplicate listings, disabled locations, wrong pack conversions and batches aggregated at different levels. A zero caused by a missing map is not the same as zero stock.

Compare gross operational quantity before availability

Once the keys and cutoff align, compare the closest operational gross quantities available in the WMS and ERP:

Operational quantity variance = mapped system B quantity - mapped system A quantity

Name both source fields. A zero variance means those two mapped values match for that extract. It does not prove the warehouse shelf count, accounting balance or inventory ownership.

If gross quantities differ, work through events since the last matched snapshot: receiving, putaway, transfers, picks, shipments, adjustments, returns and status movements. Look for a missing, duplicated, rejected or out-of-order event before posting a manual correction.

Rebuild ecommerce availability from declared rules

Next compare holds and reservations, then derive the expected channel quantity using the current approved mapping. A typical organisation might start from a WMS releasable quantity, subtract order commitments and a channel buffer, and publish the result to one ecommerce location. Another may use an ERP calculated measure. The formula must reflect the actual configured design.

Record:

  • source quantity and timestamp;
  • included and excluded statuses;
  • reservations and allocations;
  • channel/location mapping;
  • buffer or cap and its owner;
  • formula version;
  • last successful publish event; and
  • observed ecommerce quantity and timestamp.

If the formula is wrong, correct the controlled rule. If the rule is right but the channel received an old value, investigate the integration event. Do not adjust the storefront number repeatedly while leaving its source defect unresolved.

Classify the variance before correcting anything

Use neutral reason classes so the team asks for the right evidence:

  • Identity: unmapped, duplicated or changed SKU, variant, listing or location.
  • Unit or granularity: carton/unit conversion, bundle component, batch, serial, condition or aggregation mismatch.
  • Timing: extracts cover different cutoffs or a valid transaction sits inside the movement window.
  • Status: one system did not receive or map a hold, release, reservation, pick or return state.
  • Transaction: missing, duplicate, rejected or out-of-sequence receipt, shipment, transfer, return or adjustment.
  • Publication rule: incorrect buffer, cap, location aggregation or available-to-sell formula.
  • Interface: failed job, stale cursor, skipped record, authentication error or unprocessed message.
  • Evidence: system values cannot be resolved without a receipt record, quality disposition, order history or physical verification.

An exception record should include reconciliation ID, canonical keys, source values, variance layer, suspected reason, evidence links, owner, next action, due date, blocked decision and closure test. Mark the reason unconfirmed until evidence supports it.

Do not use unexplained tolerances to hide small discrepancies. If the organisation allows a threshold for investigation or automated correction, record who approved it, which data objects it covers and what evidence still remains available.

Give each object one correction authority

The safest operating principle is not “one system owns everything”. It is “one authorised path changes each object”. Create an authority matrix for the actual integration.

  • Product master owner corrects SKU, pack and location mappings.
  • 3PL warehouse owner corrects a warehouse movement only against source evidence and the agreed WMS process.
  • Quality owner releases or continues a hold through the authorised disposition process.
  • Order owner corrects a reservation or order state against the customer-order record.
  • Integration owner replays or repairs a failed message without duplicating a completed event.
  • Ecommerce owner changes the publication rule or location mapping through controlled configuration.

Keep the event ID, correction record, approver and before/after values. This remains operational evidence, not a financial-reporting conclusion.

Close the exception only when the underlying mapping, event or rule is corrected and a new matched extract shows the expected state. An email saying “fixed”, a manual equalising entry or three totals that happen to match is not enough.

Worked example: matching gross stock hides an availability error

This example is hypothetical and does not represent an OPL customer, 3PL, system configuration or financial record.

At 17:00 AEST on 15 September, an Australian importer compares SKU AU-431 at its Melbourne 3PL. All quantities are individual units. The approved ecommerce rule publishes WMS available-for-new-orders less a 50-unit channel buffer.

For this hypothetical bridge, quality hold and committed or picked are mutually exclusive categories: no unit appears in both rows. That condition matters because overlapping status buckets cannot be added to explain a variance.

Layer WMS snapshot ERP and ecommerce snapshot Reconciliation result
Gross operational quantity 1,000 ERP: 1,000 Matched; no gross system variance
Quality hold 40 ERP: 0 ERP status/interface exception of 40
Committed or picked 60 ERP: 20 Reservation/pick timing exception of 40
Available for new orders 900 ERP calculation: 980 ERP exceeds WMS-derived state by 80
Ecommerce published Expected: 850 after buffer Observed: 930 Channel shows an 80-unit overstatement against the approved rule

The gross WMS and ERP quantities match, so forcing both totals to another number would not address the problem. The 80-unit availability difference consists of a 40-unit quality status absent from the ERP view and 40 picked units not yet reflected in its reservation state. The ecommerce result is consistent with the stale ERP calculation: 980 - 50 = 930.

The importer should first verify the quality disposition and the pick/order events. If the evidence confirms both WMS states, the authorised owners correct or replay the missing status and reservation events. After processing, the expected ERP operational availability is 900, and the approved channel rule would publish 850. A fresh matched extract must prove those results before closure.

This example does not prove 1,000 physical units are present. If transaction evidence cannot explain the values or the next extract remains inconsistent, route the SKU to controlled physical verification rather than assuming the WMS is correct.

Route physical and accounting questions to separate controls

System reconciliation and physical verification support each other, but they are not the same job. Use the ABC inventory and cycle-count plan when the evidence requires a physical count, count approval or physical-to-system variance investigation. EVG-173 should preserve the reconciliation snapshot and link the resulting count record; it should not design the count or approve an adjustment.

Likewise, do not use this operational bridge to decide whether stock in production or transit is owned by the importer, belongs in a reporting period, or should appear in an inventory account. Those questions remain outside scope and may require accounting, contract and tax evidence plus qualified review. Held EVG-149 is not an available shortcut.

Once the operational quantity is reconciled, downstream planning can use the live weeks-of-supply method. Keep the calculation timestamp linked so a later stock-runway result is not built from a stale reconciliation.

Launch a bounded reconciliation cycle

Start with one 3PL facility, one ecommerce location and a manageable SKU family:

  1. name the reconciliation ID, cutoff, time zone and extraction window;
  2. export raw WMS, ERP and ecommerce records without overwriting source labels;
  3. map product, unit, location and granularity keys through the current controlled version;
  4. map raw statuses into declared operational categories;
  5. test identity coverage, gross quantity, holds, reservations and published availability in sequence;
  6. account for transactions inside the movement window;
  7. create neutral exceptions with evidence, owner and closure test;
  8. correct the owning event, mapping or rule through one authorised path; and
  9. rerun matched extracts and preserve the before/after evidence.

The finished reconciliation should explain—not merely erase—the difference. Each quantity remains attributable to its source, every mapping is visible, every correction has an owner, and physical or accounting questions are routed to the separate control qualified to answer them.

Sources