Wholesale & EDI

EDI to big-box retail: 3PL vs your own warehouse

How the EDI document flow to big-box retailers works whether a 3PL or you run the warehouse.

Last updated September 16, 2026

The document chain does not change when you hand picking to a 3PL. An 850 creates the order. Confirming it sends an 855. Marking the shipment done sends the 856 ASN. Posting the invoice sends the 810. Those events are set per trading partner, not per sales channel.

The warehouse operator is what changes.

How the warehouse operator changes things

An operated warehouse can absorb messy retailer fields. A 3PL cannot. The 940 warehouse shipping order cannot be built until the 850 is in, because pack size, store or cross-dock breakdowns (SDQ), and the ship-to (N1*ST, often the DC, not the store) have to pass through for packing. Transport to the 3PL has to be chosen explicitly (AS2, VAN, or 3PL-hosted SFTP). The 3PL then returns a 945.

Handling short-ships and units of measure

If they short-ship, split and cancel. A 100-case 850 goes out as a 940. The 945 comes back 80. Shipped lines move to a done shipment. The 20 stay assigned. Cancel the 20 so only one 810 goes, for 80 cases. Leave the 20 open and you invoice twice, or you invoice 100 for 80 on the dock. Keep units of measure consistent: if the PO is case packs, the 856 and 810 must be case packs.

Who owns ASN timing and feed cadence

ASN timing is owned by whoever closes the shipment. In a 3PL model that is their confirmation coming back, not your "send to 3PL" click. Done means transmitted, not that the 3PL processed it. A 3PL outage becomes a retailer rejection. 850s are near real time. The 846 inventory feed is a schedule, often every 8 hours, sometimes hourly. Confirm the cadence with the retailer before you change it.

Labels, chargebacks, and go-live testing

Labels are the usual go-live bottleneck. SSCC and GS1-128 carton labels have to match the retailer's spec. Switching 3PLs on a live program is a retest: sandbox PO, 940 to the new warehouse, 945 back with a real carrier and SCAC, outbound 856 and 810 checked, labels recertified with the retailer or VAN, then cut over. Chargebacks usually come from routing-guide fields that sample BOLs omit: third-party bill-to, exact TMS ID, master BOL, unabbreviated carrier. Confirm which system printed the BOL before you "fix" mapping. Check ISA15 T versus P before treating a rejection as live. A test 856 missing a V1 segment is not a production failure.

A UPC missing from the product codes will fail the 850. Add the code, then reprocess the document. Do not hand-key the order and hope the 855 matches. Before go-live, turn the routing guide into a warehouse SOP.

Run this with AI

Connect Claude or ChatGPT to your Fulfil data with the Fulfil MCP, then run this prompt on your own numbers.

You are an ops lead preparing a DTC brand to ship EDI orders to a big-box retailer.
Here is the retailer's routing guide, plus: po_cases, 945_cases, uom, isa15, scac, bol_source (erp/3pl), upc_on_product (y/n).
[paste]

Produce:
1. A warehouse SOP covering receiving, pick/pack, carton labels, BOL, and carrier.
2. An EDI document checklist (850, 855, 856, 810, 846, 940/945) and who must send each: brand, 3PL, or retailer.
3. Blockers if we use a 3PL versus an operated warehouse: SSCC certification, SFTP or AS2, SCAC, short-ships, retailer-assigned freight.
4. Short-ships that need the unshipped lines cancelled so only one 810 goes.
Flag anything a sample BOL would miss, and any ISA15=T rejection treated as live.

See it run on
your data.

Fulfil runs inventory, fulfillment, purchasing, and accounting for scaling DTC brands in one system.