XooCode(){

OrderStatus

OrderStatus is a schema.org Enumeration for the current lifecycle state of an Order or one of its OrderItem entries. It is the value of Order.orderStatus and OrderItem.orderItemStatus.

It has 8 members:

  • OrderPaymentDue: order placed, awaiting payment.
  • OrderProcessing: payment captured, fulfilment in progress.
  • OrderInTransit: shipped, on its way to the customer.
  • OrderPickupAvailable: ready for customer pickup.
  • OrderDelivered: delivered to the customer.
  • OrderReturned: returned by the customer.
  • OrderCancelled: cancelled before delivery.
  • OrderProblem: in an error state requiring resolution.

Full example of schema.org/OrderStatus json-ld markup

The markup is verified as valid with Rich Results Test from Google.

schema.org/OrderStatus
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Order",
  "orderNumber": "XOO-2026-00412",
  "orderStatus": "https://schema.org/OrderInTransit",
  "orderDate": "2026-04-12",
  "customer": { "@type": "Person", "name": "Jane Xoo" },
  "merchant": { "@type": "Organization", "name": "Xoo Code Shop" },
  "orderedItem": [
    { "@type": "OrderItem", "orderItemStatus": "https://schema.org/OrderInTransit", "orderQuantity": 1, "orderedItem": { "@type": "Product", "name": "XooTee Classic" } },
    { "@type": "OrderItem", "orderItemStatus": "https://schema.org/OrderPickupAvailable", "orderQuantity": 2, "orderedItem": { "@type": "Product", "name": "XooMug" } }
  ]
}
</script>

Gmail schema

OrderStatus is central to Gmail's schema.org for markup — the "your order has shipped" inbox experience reads Order + orderStatus to display the right tracker state. Keep orderStatus accurate across the lifecycle; stale statuses degrade the inbox tracker.

Minimal valid version

The smallest markup that still produces a valid OrderStatus entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/OrderStatus (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Order",
  "orderNumber": "XOO-2026-00412",
  "orderStatus": "https://schema.org/OrderInTransit"
}
</script>

Google rich results this unlocks

OrderStatus is a structural type. It does not produce a rich result on its own.

Its value comes from combining it with a primary type whose markup earns a rich result (Article, Product, Event, and so on). OrderStatus becomes the trunk that the primary type branches off viamainEntityorbreadcrumb. Include it on every page as the backbone of your markup.

Common OrderStatus mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Stale orderStatus

    Wrong
    orderStatus left on OrderProcessing after delivery
    Right
    Update orderStatus through each transition

    Gmail's order tracker becomes wrong the moment the status falls behind real-world state.

  2. 02

    Mixed order-level and item-level statuses ignored

    Wrong
    Order.orderStatus only, no OrderItem statuses
    Right
    Populate both; OrderItem.orderItemStatus can diverge from the overall order

    Split shipments and partial-ready pickups need per-item status.

About the example data

A Xoo Code Shop order progressing from payment to delivery.

Comments

Loading comments...

Leave a comment