Mark Shipping Status

Your orders are stuck “In Transit” — forever. Move them forward to any Shopify fulfillment status, not just Delivered.

Unstick orders from “In Transit” to any of 11 statuses
Optional custom event date/time (happenedAt)
Notes + full audit trail per event

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 StatusWith Mark Shipping Status
Order StatusStuck "In Transit" foreverMove to any of 11 statuses instantly
Status optionsIn Transit only (carrier doesn't update)Delivered, Delayed, Attempted Delivery, + 8 more
Post-purchase flowsNever trigger — order never leaves In TransitTrigger on the right status at the right time
Customer visibility"Where is my order?" support ticketsAccurate 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 LabelAPI Value
ConfirmedCONFIRMED
Label PurchasedLABEL_PURCHASED
Label PrintedLABEL_PRINTED
Carrier Picked UpCARRIER_PICKED_UP
In TransitIN_TRANSIT
Out for DeliveryOUT_FOR_DELIVERY
Attempted DeliveryATTEMPTED_DELIVERY
Ready for PickupREADY_FOR_PICKUP
DelayedDELAYED
DeliveredDELIVERED
FailureFAILURE

How it works

1

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.

2

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.

3

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.

4

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.