Back to the blog

How to Manage an External 3PL Warehouse or Fulfilment Location Inside Your ERP

This detailed walkthrough will help you understand on how to manage 3PL warehouses inside your ERP system

How to Manage an External 3PL Warehouse or Fulfilment Location Inside Your ERP

How to Manage an External 3PL Warehouse or Fulfilment Location Inside Your ERP

Many ecommerce businesses use third-party logistics companies or marketplace fulfilment services such as Amazon FBA, Amazon Multi-Channel Fulfilment, Walmart Fulfillment Services, or an independent 3PL to store inventory and fulfil orders.

Although outsourcing fulfilment simplifies physical operations, it can create a difficult inventory-management problem inside the ERP.

Businesses frequently struggle to answer questions such as:

  • Who owns the inventory after it is sent to a third-party warehouse?
  • Should the shipment to a 3PL be recorded as a sale, a purchase, or an internal stock transfer?
  • When should inventory be increased at the 3PL location inside the ERP?
  • How should fulfilled orders, customer returns, damaged stock and inventory recalls be recorded?
  • What should happen when the ERP inventory does not match the quantity reported by the fulfilment provider?
  • Which inventory balance should be used when publishing availability to marketplaces and ecommerce stores?

These questions become even more important when the business uses multiple fulfilment providers, marketplaces and ERP locations.

In this article, we will explain the inventory workflow we recommend and implement for Commercium customers that operate external fulfilment locations.

Start by understanding inventory ownership

In most standard third-party fulfilment arrangements, sending inventory to a 3PL does not transfer ownership of the goods.

The 3PL stores and handles the inventory on behalf of the merchant. The merchant generally continues to own the stock until it is sold, returned to a supplier, written off, destroyed, recalled or otherwise disposed of.

Therefore, a shipment from the merchant’s warehouse to a 3PL warehouse should not normally be recorded as a customer sale.

It should be treated as a transfer between inventory locations controlled or represented inside the ERP.

The exact accounting and tax treatment can vary depending on the agreement, sales model and countries involved. Businesses should confirm the treatment with their accountant or tax adviser, particularly when inventory crosses state or national borders.

Create a separate ERP location for every external fulfilment operation

The first step is to create a warehouse or inventory location inside the ERP representing the external fulfilment facility.

For example:

  • Main Warehouse
  • Amazon FBA - US
  • Amazon FBA - UK
  • Walmart Fulfillment Services
  • East Coast 3PL
  • West Coast 3PL
  • 3PL Damaged Inventory
  • Inventory in Transit

Depending on the ERP, this may be called a warehouse, location, site, inventory organization, branch or storage location.

Although people often refer to it as a “virtual warehouse,” it represents real inventory physically stored outside the company’s own facility.

 

Creating this location allows the ERP to maintain separate inventory balances for:

  • Stock held in the company’s warehouse
  • Stock currently in transit
  • Stock received at the 3PL
  • Sellable stock
  • Reserved stock
  • Returned stock awaiting inspection
  • Damaged or unsellable stock
  • Stock being recalled

Without separate locations and inventory statuses, the ERP may show the correct total quantity but provide no reliable understanding of where the stock is physically held or whether it can be sold.

Understand every event that can change 3PL inventory

External warehouse inventory normally changes because of the following processes:

  1. Inventory is transferred to the fulfilment provider.
  2. The provider receives the shipment.
  3. A sales order is fulfilled.
  4. A customer returns an item.
  5. Returned inventory is inspected and given a disposition.
  6. Inventory is damaged, lost, expired or classified as unsellable.
  7. Inventory is recalled from the fulfilment provider.
  8. The provider finds additional units or makes an inventory correction.
  9. Inventory is moved between the provider’s own fulfilment facilities.
  10. The provider receives or processes a removal or disposal request.

Each event should have a corresponding inventory transaction inside the ERP.

Let us examine the recommended workflow for each case.

1. Sending inventory to the 3PL

When inventory leaves the company’s warehouse, create an internal transfer order from the source warehouse to an Inventory in Transit location.

For example:

Transfer from: Main Warehouse
Transfer to: Inventory in Transit – Amazon FBA
Quantity: 100 units

The transfer reduces stock at the source warehouse while showing that the company still owns the inventory.

The inventory should not immediately be added to the available balance at the 3PL location. At this point, the stock has been shipped but may not yet have been received, counted or accepted by the fulfilment provider.

Using an in-transit location prevents the ERP from making those units available for sale prematurely.

The transfer record should retain important references such as:

  • ERP transfer-order number
  • 3PL inbound-shipment reference
  • Marketplace shipment-plan reference
  • Carrier and tracking number
  • Shipped quantity
  • Shipment date
  • Expected arrival date
  • Source and destination locations

What if the 3PL receives a different quantity?

The provider may receive fewer or more units than were originally shipped.

For example, the ERP may show that 100 units were dispatched, while the 3PL confirms only 98 units.

In this situation, the ERP should record:

  • 98 units received into the 3PL location
  • 2 units remaining in transit or moved to an investigation location

The difference should not be silently removed. It should remain visible until it is resolved through a claim, recount, correction or inventory write-off.

2. Receiving inventory at the 3PL

Once the fulfilment provider confirms receipt, complete the transfer from the in-transit location to the 3PL warehouse location.

For example:

Transfer from: Inventory in Transit – Amazon FBA
Transfer to: Amazon FBA – US
Quantity received: 98 units

This transaction establishes or increases the inventory balance at the external warehouse.

The received quantity reported by the fulfilment provider should normally be treated as the operational quantity at that location, while any discrepancy remains recorded separately for investigation.

A shipment should not be considered fully complete merely because the carrier delivered it. Some fulfilment providers receive inventory over several days, and the accepted quantity can change while the shipment is being processed.

The integration should therefore support partial receipts and subsequent receipt adjustments.

3. Decreasing inventory when a sales order is fulfilled

A common integration mistake is reducing inventory as soon as an order is created.

Order creation and physical fulfilment are not the same event.

When an order is imported into the ERP, the inventory may be reserved or committed against the appropriate 3PL location. The on-hand inventory should generally be reduced only after the fulfilment provider confirms that the item has been shipped or otherwise completed.

The recommended sequence is:

  1. Import or create the sales order in the ERP.
  2. Assign the external 3PL as the fulfilment location.
  3. Reserve or commit inventory at that location.
  4. Send the fulfilment request to the 3PL when required.
  5. Receive the shipment confirmation.
  6. Create the ERP shipment or fulfilment transaction.
  7. Reduce on-hand inventory at the 3PL location.
  8. Update the order with the carrier, tracking number and fulfilment status.
  9. Post the relevant cost-of-goods transaction according to the ERP configuration.

Waiting for fulfilment confirmation prevents inventory from being permanently deducted for orders that are cancelled before shipment.

It also gives the ERP a clear record of which warehouse fulfilled each order.

 

What about marketplace-fulfilled orders?

For services such as Amazon FBA or Walmart Fulfillment Services, the marketplace may create and fulfil the order without first requesting the merchant’s ERP to release it.

In this case, Commercium can retrieve the order and fulfilment information from the marketplace and create the corresponding sales order, shipment and inventory transaction in the ERP.

For multi-channel fulfilment orders, Commercium can also connect the originating sales channel with the fulfilment service and ERP so that the order, shipment, tracking information and inventory movement remain connected.

4. Increasing inventory when a customer return is received

A customer initiating a return does not mean that the product is immediately available for resale.

The ERP should distinguish between:

  • Return requested
  • Return authorized
  • Return in transit
  • Return received
  • Return inspected
  • Returned to sellable inventory
  • Classified as damaged or unsellable
  • Refunded without physical return

When the 3PL physically receives the returned item, the inventory should initially be placed in a Returns Inspection or Quarantine status rather than directly increasing sellable stock.

After inspection, the 3PL may classify the item as:

  • Sellable
  • Damaged
  • Customer damaged
  • Carrier damaged
  • Defective
  • Expired
  • Restricted
  • Unsellable
  • Pending further inspection

Only a sellable disposition should increase the quantity available for new orders.

For example:

Returned item received: +1 Returns Inspection
Inspection completed as sellable: −1 Returns Inspection, +1 Sellable
Inspection completed as damaged: −1 Returns Inspection, +1 Damaged

This distinction is essential because treating every return as sellable can cause the ERP to publish inventory that cannot actually be fulfilled.

5. Recording damaged, lost or unsellable inventory

Inventory can become unavailable without being sold. Examples include:

  • Damage during storage or handling
  • Warehouse loss
  • Expiration
  • Product recall
  • Failed quality inspection
  • Restricted inventory
  • Missing units
  • Destroyed or disposed inventory

These events should be recorded as inventory adjustments against the external warehouse.

However, the original reason should be retained. A generic negative adjustment may correct the quantity, but it does not provide enough information for operational analysis, accounting or reimbursement claims.

Useful adjustment reason codes include:

  • Warehouse damaged
  • Carrier damaged
  • Customer damaged
  • Lost by fulfilment provider
  • Expired
  • Disposed
  • Recalled
  • Found inventory
  • Reconciliation adjustment
  • Pending investigation

Where supported, unsellable stock can first be moved from the sellable status to a damaged or quarantine location. It can then be recalled, disposed of, refurbished or written off.

This preserves visibility into inventory that the business still owns but cannot currently sell.

6. Recalling inventory from the 3PL

A recall, removal or return-to-owner request should be handled as another inventory transfer.

When the 3PL accepts the request, the units may first be reserved or moved into a Pending Removal status. Once the provider confirms dispatch, the inventory should be transferred to an in-transit location.

For example:

Transfer from: Amazon FBA – US
Transfer to: In Transit to Main Warehouse

Once the company’s warehouse receives and counts the returned inventory, the transfer can be completed:

Transfer from: In Transit to Main Warehouse
Transfer to: Main Warehouse

Any difference between the quantity dispatched by the 3PL and the quantity received by the company should be recorded and investigated.

The inventory should not be added back to the company’s available warehouse balance merely because a removal request was created. It should become available only after physical receipt and, where necessary, inspection.

7. Handling inventory adjustments reported by the 3PL

Fulfilment providers may later report that inventory was found, lost, damaged or corrected.

For example, a provider may report:

  • One previously missing unit was found.
  • Two units were damaged during handling.
  • An earlier receipt quantity was corrected.
  • Inventory was moved from sellable to unsellable.
  • The merchant received compensation for lost inventory.

These events should generate controlled adjustments in the ERP with:

  • SKU
  • Quantity
  • External location
  • Inventory status
  • Reason code
  • Effective date
  • Provider transaction ID
  • Related shipment, order or claim reference
  • Original event and correction reference

Using the provider’s transaction ID is particularly important. It helps the integration process each event only once and prevents duplicate adjustments if the same data is received again.

A financial reimbursement does not necessarily represent a physical inventory movement. The physical loss and the reimbursement may need to be recorded as separate inventory and accounting events.

8. Handling transfers between the 3PL’s internal facilities

Some fulfilment networks redistribute inventory between their own facilities.

The appropriate ERP treatment depends on the level of warehouse visibility the business needs.

Option A: Maintain one consolidated location per fulfilment network

All Amazon FBA US inventory, for example, can be represented by one ERP location.

Internal movements between Amazon fulfilment centres do not need separate ERP transfers because they do not change the consolidated quantity held within the network.

This approach is simpler and is sufficient for many businesses.

Option B: Maintain individual locations for each fulfilment centre

Businesses that need facility-level availability, compliance reporting or detailed operational control can create a separate ERP location for each external facility.

In this model, movements between fulfilment centres must also be synchronized as internal transfers.

The more detailed model provides greater visibility but requires more reliable facility-level movement data from the fulfilment provider.

Do not confuse on-hand, available and channel-available inventory

A reliable integration must distinguish between several inventory figures:

  • On-hand inventory: The total physical quantity recorded at the location.
  • Sellable inventory: The portion considered fit for sale.
  • Reserved inventory: Inventory allocated to open orders.
  • Available-to-promise inventory: Sellable inventory remaining after reservations and other commitments.
  • Unsellable inventory: Inventory physically present but not available for fulfilment.
  • Inbound inventory: Inventory shipped to the 3PL but not yet fully received.
  • Safety stock: Quantity intentionally withheld from channel availability.
  • Channel-available inventory: The quantity that may be published to a particular marketplace or store.

These balances should not be treated as interchangeable.

For example, a 3PL may physically hold 100 units, but if 10 are damaged, 15 are reserved and 5 are retained as safety stock, only 70 units may be available for new orders.

The quantity published to a sales channel may be even lower if the business applies channel-specific allocation rules.

Which system should be the inventory system of record?

There is no universal answer for every architecture.

A practical model is:

  • The 3PL is the operational source of truth for physical inventory at its warehouse.
  • The ERP remains the enterprise system of record for inventory ownership, valuation and business transactions.
  • Commercium synchronizes operational events between the 3PL, ERP and sales channels.

The ERP should not continuously overwrite the 3PL’s physical inventory balance without evidence of a corresponding movement. Similarly, the 3PL’s current balance should not replace the ERP quantity without recording why the difference occurred.

The objective is not merely to make two numbers equal. The objective is to ensure that both systems reach the same balance through traceable business transactions.

Use event-driven synchronization wherever possible

Inventory synchronization works best when every business event creates a corresponding ERP transaction.

Examples include:

  • Inbound shipment created
  • Inventory dispatched
  • Inventory received
  • Partial receipt recorded
  • Order allocated
  • Order shipped
  • Order cancelled
  • Return received
  • Return disposition updated
  • Inventory damaged
  • Inventory found
  • Removal order dispatched
  • Recalled inventory received

When real-time events or webhooks are unavailable, the integration can periodically retrieve new transactions or inventory movement reports.

Regular balance synchronization is still useful, but it should act as a reconciliation mechanism rather than replacing transactional integration.

Build a formal inventory-reconciliation process

Even a well-designed integration should perform periodic reconciliation.

The reconciliation process should compare:

  • ERP on-hand quantity
  • 3PL-reported physical quantity
  • Sellable and unsellable balances
  • Open inbound transfers
  • Pending returns
  • Pending removals
  • Unprocessed fulfilment transactions
  • Inventory adjustments
  • Recently cancelled orders

Differences should be placed into an exception queue instead of being automatically hidden through unexplained adjustments.

A useful reconciliation report should show:

  • ERP SKU
  • 3PL SKU
  • ERP quantity
  • 3PL quantity
  • Difference
  • Location
  • Inventory status
  • Last synchronized time
  • Last movement reference
  • Suspected reason
  • Resolution status

Small differences can otherwise accumulate and eventually cause overselling, incorrect replenishment decisions and inaccurate inventory valuation.

Common mistakes businesses should avoid

Recording a 3PL transfer as a sale

The fulfilment provider is storing the inventory, not buying it. The movement should normally be represented as an internal transfer unless the commercial arrangement genuinely transfers ownership.

Increasing 3PL stock as soon as inventory is shipped

The provider may receive a different quantity. Use an in-transit location and increase 3PL inventory only after receipt confirmation.

Reducing inventory when an order is created

Order creation should generally reserve stock. Physical inventory should be relieved after shipment or fulfilment confirmation.

Adding every returned item directly to sellable inventory

Returned inventory should remain in inspection or quarantine until its disposition is known.

Synchronizing only the current balance

Balance-only synchronization makes it difficult to understand why inventory changed. Synchronize transactions and then use balance comparison for reconciliation.

Combining all external inventory into one location

If multiple providers or countries are represented by a single ERP location, businesses lose visibility into where inventory is held and which operation can fulfil an order.

Ignoring provider transaction IDs

Without a unique external transaction reference, retrying an integration can create duplicate receipts, shipments or adjustments.

Publishing the complete on-hand balance to every sales channel

Inventory must account for reservations, unsellable stock, safety stock and allocations across channels.

Example of the complete inventory lifecycle

Suppose a merchant wants to send 100 units from its main warehouse to an external fulfilment provider.

  1. The ERP creates a transfer for 100 units from the Main Warehouse to Inventory in Transit.
  2. The 3PL receives 98 units.
  3. The ERP transfers 98 units from Inventory in Transit to the 3PL location.
  4. Two units remain under investigation.
  5. The 3PL ships 10 customer orders.
  6. The ERP creates the corresponding fulfilments and reduces the 3PL stock by 10.
  7. Two customers return their products.
  8. Both units are received into Returns Inspection.
  9. One unit is classified as sellable and returned to available stock.
  10. The second unit is classified as damaged and moved to unsellable inventory.
  11. A reconciliation later identifies one additional missing unit.
  12. The ERP records a provider-loss adjustment with the relevant claim reference.

At the end of the process, every quantity change has a business reason and a traceable transaction.

How Commercium helps connect external fulfilment warehouses with your ERP

Maintaining this workflow manually becomes difficult when a business processes thousands of orders across multiple marketplaces, fulfilment providers and ERP locations.

Commercium acts as a commerce orchestration layer between the ERP, sales channels and fulfilment services.

Depending on the capabilities available in the connected systems, Commercium can help businesses:

  • Create ERP warehouse transfers for inbound inventory
  • Map fulfilment providers to the correct ERP warehouse or location
  • Synchronize inbound shipment and receipt information
  • Import marketplace and ecommerce orders into the ERP
  • Assign orders to the correct fulfilment location
  • Send fulfilment requests to external providers
  • Retrieve shipment confirmations and tracking information
  • Create ERP fulfilment and shipment records
  • Synchronize customer returns and return dispositions
  • Record damaged, lost, found and unsellable inventory
  • Maintain sellable and unsellable balances separately
  • Synchronize inventory availability across sales channels
  • Apply channel allocation and safety-stock rules
  • Detect inventory discrepancies
  • Maintain external transaction references and processing logs
  • Support reconciliation and exception-management workflows

Commercium can work with ERPs such as Microsoft Dynamics 365 Business Central, Odoo and other supported business systems while connecting them with marketplaces, ecommerce platforms and fulfilment providers.

We also understand that ERP environments are rarely identical. Businesses may use custom fields, custom modules, different warehouse configurations and company-specific order workflows. Commercium can map these requirements into the integration instead of forcing every customer to follow a single rigid process.

Final takeaway

The right way to manage a third-party fulfilment warehouse inside an ERP is to treat it as a distinct inventory location and record every physical movement through a corresponding ERP transaction.

The core principles are simple:

  • Inventory sent to a 3PL usually remains owned by the merchant.
  • Use an in-transit location until the 3PL confirms receipt.
  • Reserve inventory when an order is created and reduce it when fulfilment is confirmed.
  • Do not return customer returns directly to sellable stock without inspection.
  • Record damages, losses, removals and adjustments with clear reason codes.
  • Synchronize inventory movements, not only ending balances.
  • Reconcile the ERP and 3PL regularly.
  • Preserve a complete audit trail for every adjustment.

When these principles are applied consistently, the ERP can provide an accurate view of inventory ownership, location, availability and movement—even when the stock is physically distributed across multiple external fulfilment networks.

If your business is struggling to keep an ERP synchronized with Amazon FBA, Amazon MCF, Walmart Fulfillment Services or an independent 3PL, Commercium can help you design and automate the complete inventory and order workflow.

Talk to the Commercium team to discuss your ERP, marketplaces and external fulfilment operations.

Put this into practice

Connect 200+ marketplaces with one no-code connector and keep every channel in sync.

#fba#inventory

The multichannel digest

Guides, product updates and marketplace news — delivered every Thursday. Join 12,000+ sellers.

No spam. Unsubscribe anytime. 30-day archive.