· DataEase · Tutorials · 3 min read
Bulk Unfulfill Orders
Reverting fulfilled items back to Unfulfilled manually can be extremely time-consuming. DataEase makes it easy: export your orders, prepare unfulfill actions with optional restock settings, and import them back to Shopify—all with validation.
🎯 Goal
Revert fulfilled items back to Unfulfilled in bulk—optionally restocking inventory and choosing a location—using CSV/Excel and DataEase.
📋 Step-by-Step Instructions
1. Export Orders (Optional, to Target Correctly)
In DataEase, go to New Export → Orders. Include at least:
idname(order number)financialStatusfulfillmentStatus- Line items (
variantId/SKUand quantities) for reference
Use filters (date range, Fulfilled/Partially fulfilled) to select orders you plan to unfulfill.
2. Prepare the Unfulfill File
Open the exported file in Excel or Google Sheets. Choose one of the patterns:
A. Unfulfill the Entire Order
- Add a row with the order
idand setaction= UNFULFILL - (Optional)
restock= TRUE/FALSE — return items to inventory - (Optional)
restockLocation— where to restock (if omitted, the app will use the original fulfillment location when possible)
B. Partial Unfulfill (Line-Level)
- Add the order main line with
topRow= TRUE (you can keepcommand= UPDATE) and setaction= UNFULFILL - For each item to revert, add a line row with
topRow= FALSE anditemCommand= UNFULFILL, then provide:variantId(preferred) orvariantSKUunfulfillQuantity(units to revert)- (Optional)
restock= TRUE/FALSE andrestockLocation
When done, save the file as .xlsx or .csv.
3. Import & Validate
- In DataEase, start New Import → Orders
- Upload your edited file
- Map columns
- Run Validation
Fix issues flagged in Validation Status (e.g., non-editable/locked order, missing identifiers, invalid quantities).
4. Run the Import and Verify
After validation passes, click Run Import to unfulfill the orders in Shopify.
Once complete, download the result file and spot-check in Shopify Admin: fulfillment status should reflect the change (items moved back to Unfulfilled), and inventory adjusted if you enabled restock.
📝 Important Notes
- Eligibility: Some fulfillments can’t be canceled (e.g., already delivered/locked). Validation will flag these
- Inventory: Set
restock=TRUEto return items to available inventory. UserestockLocationto direct stock to a specific location - Quantities: You can partially unfulfill a line—make sure
unfulfillQuantity≤ fulfilled quantity - Identifiers: Use
variantIdfor the most reliable match; use SKU only if unique - Field naming: In some templates this action may appear as
CANCEL_FULFILLMENT. If your export shows that value, use it instead ofUNFULFILL
💡 Minimal CSV Examples
Unfulfill an entire order (and restock to the original location):
id,action,restock
gid://shopify/Order/123,UNFULFILL,TRUE
Unfulfill specific lines with quantities (choose a restock location):
id,topRow,command,action,itemCommand,variantId,unfulfillQuantity,restock,restockLocation
gid://shopify/Order/456,TRUE,UPDATE,UNFULFILL,,,,,
gid://shopify/Order/456,FALSE,,UNFULFILL,gid://shopify/ProductVariant/111,2,TRUE,"Warehouse A"
gid://shopify/Order/456,FALSE,,UNFULFILL,gid://shopify/ProductVariant/222,1,TRUE,"Warehouse A"
Unfulfill by SKU (no restock):
id,topRow,command,action,itemCommand,variantSKU,unfulfillQuantity,restock
gid://shopify/Order/789,TRUE,UPDATE,UNFULFILL,,,,,
gid://shopify/Order/789,FALSE,,UNFULFILL,SKU-RED-M,1,FALSE
🎉 That’s it!
Your orders are now unfulfilled in bulk.
If you run into any issues or have questions, feel free to contact our support team.