shopifyfulfillmenteducationmark-shipping-status

All 11 Shopify Fulfillment Event Statuses Explained (When to Use Each)

GIC Team
GIC Team
5 min read

All 11 Shopify Fulfillment Event Statuses — and When to Use Each

When you add tracking to a Shopify order and fulfill it, Shopify sets the fulfillment status to "In Transit". For merchants using integrated carriers like UPS or FedEx, tracking updates eventually push the order forward — through Out for Delivery, and finally to Delivered — automatically.

For everyone else — local couriers, regional carriers, 3PLs, manual delivery operations — the order stays stuck in "In Transit" indefinitely.

Mark Shipping Status gives you the ability to move those orders forward to any of the 11 official Shopify FulfillmentEventStatus values. Here is what each one means, when to use it, and how they typically sequence in real-world logistics.


The Full Status Table

Display LabelAPI ValueWhen it applies
ConfirmedCONFIRMEDOrder is accepted and shipment is planned
Label PurchasedLABEL_PURCHASEDShipping label has been bought
Label PrintedLABEL_PRINTEDLabel has been printed and attached
Carrier Picked UpCARRIER_PICKED_UPCarrier has collected the package
In TransitIN_TRANSITPackage is moving through the carrier network
Out for DeliveryOUT_FOR_DELIVERYPackage is on the final delivery vehicle
Attempted DeliveryATTEMPTED_DELIVERYDelivery was tried but not completed
Ready for PickupREADY_FOR_PICKUPPackage is available at a pickup point
DelayedDELAYEDDelivery is taking longer than expected
DeliveredDELIVEREDPackage reached the customer
FailureFAILUREDelivery failed permanently

Status-by-Status Breakdown

Confirmed

The order is accepted and a shipment is being planned. Use this as the first event after fulfillment is created, before a label is generated. Useful for 3PLs and custom workflows that have a confirmation step distinct from label generation.

Label Purchased

A shipping label has been bought. Use this from carrier APIs that report label purchase as a distinct event from printing or handoff. Less common in manual workflows.

Label Printed

The physical label has been printed and is ready to attach. Some warehouses distinguish this step from label purchase, especially in high-volume pick-and-pack operations.

Carrier Picked Up

The carrier collected the package from your facility. This is the moment the shipment leaves your hands. Use it for any operation where carrier handoff is a discrete, recordable moment.

In Transit

The package is actively moving through the carrier network — scanned at a sorting facility, in a delivery truck, crossing regional checkpoints. This is the most common intermediate status.

Out for Delivery

The package is on a delivery vehicle heading to the customer today. This is a meaningful customer-facing signal: customers expect their package that day when they see this status.

Attempted Delivery

A delivery was tried but the customer was not available, the address was inaccessible, or there was no safe delivery location. Always pair this status with a note explaining the reason and the redelivery plan.

Ready for Pickup

The package has arrived at a pickup point (locker, post office, third-party pickup location) and is waiting for the customer to collect it. Use this for BOPIS, locker delivery, and click-and-collect workflows.

Delayed

Something has slowed the shipment — weather, carrier backlog, customs hold. Use this proactively. Customers who see Delayed before they ask "where is my order?" are less likely to contact support.

Delivered

The package reached the customer. This is the status that closes the fulfillment loop, triggers post-purchase automations (review requests, loyalty points), and marks the order as operationally complete.

Failure

The delivery failed permanently. Note: Shopify may display this as "Failed delivery" in the order timeline — the underlying API value is FAILURE. Always pair a Failure event with a note explaining what happened. See our guide on Failure vs Failed Delivery in Shopify.


Typical Sequencing Patterns

These are common (not required) progressions:

Standard carrier shipment: Confirmed → Label Purchased → Carrier Picked Up → In Transit → Out for Delivery → Delivered

Local delivery exception: Carrier Picked Up → In Transit → Out for Delivery → Attempted Delivery → Delivered (next day)

Delayed shipment: In Transit → Delayed → In Transit → Out for Delivery → Delivered

Click and collect / locker pickup: In Transit → Ready for Pickup → Delivered

Note: Shopify does not enforce any sequence rules. You can set any status at any point.


Common Mistakes

Only using Delivered: The most common issue. Teams skip all intermediate states and jump straight to Delivered. This misses the ops and CX value of accurate in-transit visibility.

Not using Attempted Delivery: When a delivery attempt fails, marking the order as still In Transit leaves customers without the context they need. Use Attempted Delivery and add a note.

Setting Failure without a note: Failure is the most consequential status. Without a note, your support and ops teams have no context for what happened or what to do next.

Ignoring Delayed: Delayed is one of the most proactive statuses available. Using it before a customer notices a delay significantly reduces WISMO ticket volume.


Ready to set any of these statuses from Shopify? See how Mark Shipping Status makes all 11 available for single orders and bulk updates.

For questions about specific statuses, visit the Mark Shipping Status FAQ.