Mark Shipping Status
Your orders are stuck “In Transit” — forever. Move them forward to any Shopify fulfillment status, not just Delivered.
Why this exists
When you add tracking to a Shopify order and fulfill it, Shopify sets the status to "In Transit". For integrated carriers like UPS and FedEx, tracking updates eventually push the order through to Delivered automatically. For local couriers, regional carriers, 3PLs, and manual delivery processes — the order stays stuck in "In Transit" indefinitely. Customers get confused, your post-purchase flows stop firing, and your ops data stays stale.
| Without Mark Shipping Status | With Mark Shipping Status | |
|---|---|---|
| Order Status | Stuck "In Transit" forever | Move to any of 11 statuses instantly |
| Status options | In Transit only (carrier doesn't update) | Delivered, Delayed, Attempted Delivery, + 8 more |
| Post-purchase flows | Never trigger — order never leaves In Transit | Trigger on the right status at the right time |
| Customer visibility | "Where is my order?" support tickets | Accurate status with timestamp and notes |
Already use Mark Delivered? Mark Shipping Status is its natural extension — instead of moving stuck orders only to Delivered, you can move them to any status that reflects what actually happened in the field.
Features
All Shipping Statuses
Set any of the 11 official Shopify fulfillment event statuses: Confirmed, Label Purchased, Label Printed, Carrier Picked Up, In Transit, Out for Delivery, Attempted Delivery, Ready for Pickup, Delayed, Delivered, and Failure.
Event Date and Time
Leave the date field blank to use the current time, or enter a custom happened-at date and time. Useful for backdating carrier confirmations, batch corrections, or logging past events accurately.
Status Notes
Add context with each event: courier remarks, handoff notes, pickup location, or exception detail. Notes appear in the Shopify order timeline for your support and ops teams.
Bulk Updates
Process many fulfillments in a single pass. Set different statuses, dates, and notes per row — including mixed-status batches where some orders are Delivered and others are Delayed.
Single-Order Action
Update directly from Shopify order details using the embedded action extension. Fast execution for individual status corrections without leaving the order view.
Audit-Ready Ledger
Track every status event: what status was set, when it was set, what event date was used, and who ran the update. Full accountability for compliance and troubleshooting.
All 11 Shopify fulfillment event statuses
Mark Shipping Status supports every official Shopify FulfillmentEventStatus value.
| Display Label | API Value |
|---|---|
| Confirmed | CONFIRMED |
| Label Purchased | LABEL_PURCHASED |
| Label Printed | LABEL_PRINTED |
| Carrier Picked Up | CARRIER_PICKED_UP |
| In Transit | IN_TRANSIT |
| Out for Delivery | OUT_FOR_DELIVERY |
| Attempted Delivery | ATTEMPTED_DELIVERY |
| Ready for Pickup | READY_FOR_PICKUP |
| Delayed | DELAYED |
| Delivered | DELIVERED |
| Failure | FAILURE |
How it works
Install the app from Shopify App Store
One-click install. Approve permissions. The app embeds directly into your Shopify Admin order view and bulk dashboard.
Open order details or the bulk dashboard
Use the action extension on any individual order for a fast single update, or open the app dashboard to work across multiple fulfillments at once.
Choose status, optional event date, optional note
Select any of the 11 statuses. Leave the date field blank to use the current time, or enter a custom happened-at date. Add a note if the event needs context.
Submit — Shopify timeline and automations update
The fulfillment event is written via the official Shopify Admin API. The order timeline reflects the new status immediately. Downstream automations in Flow, Klaviyo, or other apps respond accordingly.
Who uses this
Operations Manager
Needs accurate status progression across every fulfillment — including exception states like Delayed and Attempted Delivery. Relies on correct timestamps and notes to keep ops records clean and support teams unblocked.
CX Lead
Needs the customer-visible order timeline to reflect real shipment events, not stale "In Transit" statuses. Fewer WISMO tickets when customers can see exactly where their order is.
Founder / Solo Merchant
Using a local courier or in-house delivery team. Needs fast manual control over fulfillment events without writing code, waiting for carrier sync, or hiring a developer.
Compatibility
Shopify Plans
- Shopify Basic
- Shopify Shopify
- Shopify Advanced
- Shopify Plus
Required Permissions
- Read orders: To access order and fulfillment data
- Write orders: To create fulfillment events
- Read all orders: To access orders older than 60 days
- Write fulfillments: To update fulfillment status events
Security & Trust
Official Shopify API
Uses the official Shopify Admin API only. No hacks, no workarounds, no undocumented endpoints.
Minimal Data Handling
We only access the order and fulfillment data needed to run status updates. No customer PII stored beyond Shopify's own requirements.
Event Logging
Every status update is logged with the timestamp, user, event date mode, and note. Full accountability for compliance and ops reviews.
Frequently Asked Questions
Which Shopify fulfillment statuses can I set?
All 11 official Shopify FulfillmentEventStatus values: Confirmed, Label Purchased, Label Printed, Carrier Picked Up, In Transit, Out for Delivery, Attempted Delivery, Ready for Pickup, Delayed, Delivered, and Failure.
What happens if I leave the Event Date blank?
Shopify uses the current date and time as the happenedAt value. Leave it blank for events happening right now; set a custom date if you need to backdate or record an exact carrier timestamp.
Why does Shopify show "Failed delivery" when I selected Failure?
The API value is FAILURE, but Shopify renders it in the order timeline as "Failed delivery". This is a Shopify display label — it does not affect how the status is stored or used by automations.
Can I update different statuses in one bulk run?
Yes. The bulk workflow allows per-row status, event date, and note control. You can mark some fulfillments as Delivered, others as Delayed, and others as Attempted Delivery in a single pass.
Will status updates trigger my automations?
Status updates use the official Shopify fulfillment event API, which fires the same events as native carrier updates. Whether downstream apps like Flow, Klaviyo, or Judge.me respond depends on what triggers those automations are configured to listen for.
Need better status accuracy across your fulfillment flow?
Install Mark Shipping Status and keep every shipment event up to date.