XooCode(){

OrderItem

OrderItem is the line-item node inside an Order. A single Order can have several OrderItems (one per product ordered), each with its own quantity, status, and parcel-delivery tracking.

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

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

Highlight legend:Required by GoogleRecommendedOptional
schema.org/OrderItem
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Order",
  "orderNumber": "XOO-1042",
  "orderStatus": "https://schema.org/OrderProcessing",
  "customer": { "@type": "Person", "name": "Sean Dunmore" },
  "orderedItem": [
    {
      "@type": "OrderItem",
      "orderItemNumber": "1",
      "orderQuantity": { "@type": "QuantitativeValue", "value": 2, "unitText": "tees" },
      "orderItemStatus": "https://schema.org/OrderDelivered",
      "orderedItem": { "@type": "Product", "name": "XooTee Classic", "sku": "XT-001" },
      "orderDelivery": {
        "@type": "ParcelDelivery",
        "trackingNumber": "1Z999AA10123456784",
        "carrier": { "@type": "Organization", "name": "UPS" },
        "expectedArrivalFrom": "2026-04-14T09:00-05:00",
        "expectedArrivalUntil": "2026-04-14T18:00-05:00"
      }
    },
    {
      "@type": "OrderItem",
      "orderItemNumber": "2",
      "orderQuantity": 1,
      "orderItemStatus": "https://schema.org/OrderProcessing",
      "orderedItem": { "@type": "Product", "name": "XooTee Limited Hoodie", "sku": "XT-LE-044" }
    }
  ]
}
</script>

Direct properties (5)

  • orderedItem: the Product, Service, or nested OrderItem being purchased.
  • orderQuantity: QuantitativeValue or Number; defaults to 1 if omitted.
  • orderItemNumber: line-item identifier, distinct from the outer Order's orderNumber.
  • orderItemStatus: OrderStatus enum value (OrderProcessing, OrderInTransit, OrderDelivered, OrderReturned, OrderCancelled, OrderProblem, OrderPaymentDue, OrderPickupAvailable).
  • orderDelivery: a ParcelDelivery node with carrier, tracking number, and delivery window.

When to nest vs flatten

Split into OrderItems when per-line data differs (one line delivered, one backordered; one line from one warehouse, another from a drop-shipper). When everything in the Order ships as one parcel with one status, a single Order node with orderedItem directly (no OrderItem wrapper) is simpler.

Minimal valid version

The smallest markup that still produces a valid OrderItem 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/OrderItem (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "OrderItem",
  "orderItemNumber": "1",
  "orderQuantity": 1,
  "orderedItem": { "@type": "Product", "name": "XooTee Classic" }
}
</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.

  • Order confirmation (Gmail / Google Now)primary
    Google docs

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

    Order status copied onto every OrderItem

    Wrong
    All OrderItems share the Order-level status
    Right
    Each OrderItem can carry its own orderItemStatus (OrderProcessing vs OrderDelivered)

    Partial-fulfillment orders lose visibility when every line inherits the top-level state.

  2. 02

    orderQuantity as a bare string

    Wrong
    "orderQuantity": "two"
    Right
    Number or QuantitativeValue with value: 2

    Consumers read the numeric value; strings collapse to NaN.

  3. 03

    orderItemStatus as free text

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

    OrderStatus is a closed enum; Google maps only the canonical URLs to shipping-status icons.

Also mentioned in 1 other example

OrderItem also appears in OrderStatus. See the full OrderItem schema page for every reference.

About the example data

Order XOO-1042 from the XooTee shop: two Classic tees (delivered) and one Limited Edition hoodie (still processing), each tracked as its own OrderItem.

Comments

Loading comments...

Leave a comment