Wholesale & EDI

How do I set up case packs vs eaches so Shopify sells singles, wholesale orders cases, and the 3PL / retailer can scan the carton and the pallet?

Setting up case packs and eaches so DTC, wholesale, and the 3PL all scan correctly.

Last updated September 16, 2026

One SKU. Four packaging levels. One on-hand, always in eaches. Each, inner, case, and pallet are how you pack and scan. They are not four products.

One on-hand in eaches, convert at order

Shopify sells a single. The wholesale 850 sells a case. The DC receives a pallet. If you invent a CASE-SKU that Shopify can sell as quantity 1, you will oversell the singles and short the retailer. Put units-per-inner, units-per-case, and cases-per-pallet on the product. Convert at the order. A PO for 12 cases of a 12-pack is 144 eaches on the ledger. Confirm and pick in cases. Decrement in eaches. The Shopify variant is the each. A "case of 12" variant sold as qty 1 is a second product, not a pack level.

Barcodes are per pack level

Barcodes are per level, not one UPC everywhere. The unit UPC (GTIN-12) lives on the each. The carton gets a GTIN-14, printed as ITF-14 or GS1-128. That is the case identifier. It is not the unit code padded with zeros. Indicator 0 plus the GTIN-12 is still the each, written in 14 digits. Indicator 1 through 8 is a different pack. Do not print the unit UPC on the case. The 3PL will scan it, receive one, and your 144 becomes 12. Inners get their own GTIN if someone breaks the case and that inner is a trade item.

Pallets, GTIN-14, and the SSCC

A homogeneous pallet you sell or order as a trade item can carry a GTIN-14. That still is not a second SKU. The scan at the DC door is the SSCC: a GS1-128 serial unique per pallet, generated at pack, not reused next week. Pallet is a logistics unit. It is not another product you publish to Shopify.

The 856 has to carry that hierarchy. Shipment, then pallet SSCC, then carton GTIN-14, then SKU and qty in eaches and in cases. Carton GTINs and the pallet SSCC must match what the retailer scans at the DC door. An SSCC that is not on the ASN is a chargeback. Link the SSCC to the shipment, the cartons, the SKU, and the lot if you have one. The 3PL prints those labels from your pack data. A sample label from last season is how the scan fails.

Receiving and dated pack changes

Receive inbound in the UOM that arrived, then land eaches. Fifty cases become 600 eaches if the pack is 12. If the factory inner is 6 and you told the 3PL 12, every scan is wrong before the first pick. Keep one pack hierarchy on the product, the PO, and the 3PL item master. Change units-per-case only as a dated revision. Old cartons still wear the old GTIN-14. A new pack is a new GTIN-14, not an edit that pretends last month's cartons changed.

This is pack identity on one SKU. It is not a second warehouse and not a wholesale pool. The 850 UOM can be cases while Shopify ATS stays eaches.

Shopify ATS is eaches. Wholesale confirm is cases. The carton scan is GTIN-14. The pallet scan is SSCC. If those four do not describe the same pile, you do not have case pack. You have four stories about one SKU.

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 the ops lead setting pack hierarchy so Shopify, wholesale, and the 3PL scan the same SKU.
Here is: sku, unit_upc_gtin12, inner_gtin, case_gtin14, units_per_inner, units_per_case, cases_per_pallet, on_hand_eaches, shopify_uom, wholesale_uom, sscc_on_856 (y/n), 3pl_item_master_pack, carton_barcode_printed.
[paste]

Produce:
1. SKUs with a CASE-SKU or a second product instead of one SKU and four pack levels.
2. Cartons printed with the unit UPC instead of GTIN-14, or a GTIN-12 padded with zeros treated as the case code.
3. Pallets with no SSCC, or an SSCC that is not on the 856.
4. 3PL or PO pack (inner/case) that does not match the product, including an undated pack change.
One on-hand in eaches. Convert at the order. Do not invent GTIN check digits.

See it run on
your data.

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