Resources  /  Supply Chain

Transfer orders are second-class citizens in Dynamics 365. They should not be.


Sales and purchase orders get cancellation, freight capitalization, and dimensions. Move the same stock between your own sites and most of that disappears, which is why inter-site logistics runs on spreadsheets.

The same goods, a weaker process

Compare what Finance & Operations gives a sales order with what it gives a transfer order and the asymmetry is hard to unsee. There is no true cancellation with a reason code, so people delete lines and the history goes with them. Freight and handling cannot be capitalized onto the line, so inter-site movement quietly understates inventory cost. Financial dimensions do not flow the way finance expects.

The workarounds have a cost

Teams fill the gaps with parallel spreadsheets, sales-and-purchase-order pairs between legal entities, or manual journals to push freight into cost. Each of these works right up until someone needs to explain a variance, and none of them leaves an audit trail that survives a question six months later.

Receipts are where it hurts

Over- and under-receipt is normal in inter-site movement, and without a tolerance workflow every discrepancy becomes a phone call. With tolerances and an approval path, the routine variances clear themselves and only the genuine exceptions reach a human.

Cross-border makes it structural

Once a transfer crosses a customs boundary, documentation stops being nice to have. Treating transfer orders as first-class, with the same cancellation, costing, dimension, and documentation support as any other order, turns inter-site logistics from a patched-together process back into an ERP one.


Related product

Shuttle. Make transfer orders first-class: cancel, cost, and control inventory between your sites.

An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.