XooCode(){

Order

Order is an Intangible type for purchase confirmations and receipts. With 20 properties of its own, it covers everything in an order: orderedItem (what was bought), acceptedOffer (the offer that was accepted), orderStatus (processing, shipped, delivered), customer (who bought it), seller (who sold it), orderDelivery (shipping details), and payment information (paymentMethod, discount, paymentDueDate).

The type hierarchy is Thing → Intangible → Order. Google reads Order primarily in Gmail confirmation emails to show order tracking cards. On web pages, Order markup is less common but can feed Google Shopping's order status features. The orderStatus enum has 8 values tracking the order lifecycle from processing to delivery.

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

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

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Order
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Order",
  "orderNumber": "XOO-2026-4821",
  "orderDate": "2026-07-15T09:22:00-04:00",
  "orderStatus": "https://schema.org/OrderInTransit",
  "customer": {
    "@type": "Person",
    "name": "Erik Dahl",
    "email": "erik@example.com"
  },
  "seller": {
    "@id": "https://xoocode.com/shop/dunmore-1290",
    "@type": "LocalBusiness",
    "name": "Xoo Code Shop Dunmore"
  },
  "orderedItem": {
    "@type": "Product",
    "name": "XooTee Classic",
    "@id": "https://xoocode.com/shop/xootee-classic#product",
    "sku": "XOO-TEE-CL-NB-M"
  },
  "acceptedOffer": {
    "@type": "Offer",
    "price": "495.00",
    "priceCurrency": "DKK",
    "itemCondition": "https://schema.org/NewCondition"
  },
  "discount": "0",
  "confirmationNumber": "XOO-CONF-4821",
  "paymentMethod": "https://schema.org/CreditCard",
  "orderDelivery": {
    "@type": "ParcelDelivery",
    "trackingNumber": "DK92847561023",
    "deliveryAddress": {
      "@type": "PostalAddress",
      "addressLocality": "Copenhagen",
      "addressCountry": "DK"
    },
    "expectedArrivalFrom": "2026-07-19",
    "expectedArrivalUntil": "2026-07-22",
    "hasDeliveryMethod": "https://schema.org/ParcelService"
  }
}
</script>

orderStatus

orderStatus takes an OrderStatus enum: OrderProcessing, OrderInTransit, OrderDelivered, OrderPickupAvailable, OrderPaymentDue, OrderProblem, OrderReturned, or OrderCancelled. Gmail uses this to show the correct order card: a shipping tracker for OrderInTransit, a pickup notice for OrderPickupAvailable.

orderedItem and acceptedOffer

orderedItem takes a Product, Service, or OrderItem. acceptedOffer takes an Offer. For simple orders, orderedItem pointing to a Product is enough. For orders with specific pricing, use acceptedOffer to reference the Offer that was accepted. OrderItem wraps a product with quantity and order-specific pricing.

orderDelivery

orderDelivery takes a ParcelDelivery object with tracking number, carrier, delivery address, and expected delivery date. This is how the order connects to the shipping phase. A ParcelDelivery can contain a DeliveryEvent for status milestones.

Minimal valid version

The smallest markup that still produces a valid Order 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/Order (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Order",
  "orderNumber": "XOO-2026-4821",
  "orderStatus": "https://schema.org/OrderProcessing",
  "orderedItem": { "@type": "Product", "name": "XooTee Classic" },
  "customer": { "@type": "Person", "name": "Erik Dahl" },
  "seller": { "@type": "Organization", "name": "Xoo Code Shop Dunmore" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

Common Order 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

    orderStatus as plain text

    Wrong
    "orderStatus": "Shipped"
    Right
    "orderStatus": "https://schema.org/OrderInTransit"

    orderStatus takes an OrderStatus enum as a full schema.org URL. The 8 values are OrderProcessing, OrderInTransit, OrderDelivered, OrderPickupAvailable, OrderPaymentDue, OrderProblem, OrderReturned, OrderCancelled.

  2. 02

    Missing orderDelivery on a shipped order

    Wrong
    Order with OrderInTransit status but no orderDelivery
    Right
    "orderDelivery": { "@type": "ParcelDelivery", "trackingNumber": "...", "hasDeliveryMethod": "https://schema.org/ParcelService" }

    Once an order ships, customers need tracking information. orderDelivery with a trackingNumber is what Gmail uses to show the package tracker on the order card.

About the example data

A XooTee Classic order from the Xoo Code Shop, shipped via parcel to the customer.

Comments

Loading comments...

Leave a comment