type: object
description: |
    A Shopify order — passthrough from the Shopify Admin REST API. We don't
    re-validate the payload; the shape is whatever Shopify returns. This schema
    captures the most-used fields for documentation; consult the
    [Shopify Order resource](https://shopify.dev/docs/api/admin-rest/latest/resources/order)
    for the full spec.

    See `api/src/Shopify.ts` (`ShopifySchemas.ShopifyOrder`) for the cached
    Bigscreen-side mirror.
required: [id, name, email, financial_status]
properties:
    id:
        type: integer
        format: int64
        description: Shopify's numeric order id.
    name:
        type: string
        description: "Human-readable order name (e.g. `#1234`)."
    email: { type: string, format: email }
    contact_email: { type: string, format: email }
    customer:
        type: object
        additionalProperties: true
        description: Shopify customer payload — see Shopify's spec for the full shape.
    financial_status:
        type: string
        description: "`paid`, `pending`, `partially_paid`, `refunded`, `voided`, etc."
    fulfillment_status:
        type: [string, "null"]
        description: "`fulfilled`, `partial`, `unfulfilled`, or null."
    created_at: { type: string, format: date-time }
    updated_at: { type: string, format: date-time }
    processed_at: { type: string, format: date-time }
    cancelled_at: { type: [string, "null"], format: date-time }
    closed_at: { type: [string, "null"], format: date-time }
    currency: { type: string, example: "USD" }
    presentment_currency: { type: string }
    subtotal_price: { type: string }
    total_price: { type: string }
    total_tax: { type: string }
    total_discounts: { type: string }
    total_weight: { type: number }
    test:
        type: boolean
        description: True for test orders. Required for the `DELETE /admin/shop/shopify_order/{shopifyOrderId}` path.
    tags: { type: string, description: Comma-separated tag list. }
    note: { type: [string, "null"] }
    line_items:
        type: array
        items:
            type: object
            additionalProperties: true
            description: Shopify line item — see Shopify's spec.
    fulfillments:
        type: array
        items:
            type: object
            additionalProperties: true
    shipping_address:
        type: object
        additionalProperties: true
    billing_address:
        type: object
        additionalProperties: true
    refunds:
        type: array
        items:
            type: object
            additionalProperties: true
    discount_codes:
        type: array
        items:
            type: object
            additionalProperties: true
    payment_gateway_names:
        type: array
        items: { type: string }
    order_number: { type: integer }
    number: { type: integer }
    token: { type: string }
    cart_token: { type: string }
    checkout_token: { type: string }
    admin_graphql_api_id: { type: string }
    order_status_url: { type: string, format: uri }
additionalProperties: true
example:
    id: 6107853586649
    name: "#10042"
    email: "customer@example.com"
    financial_status: "paid"
    fulfillment_status: "unfulfilled"
    created_at: "2026-04-08T17:42:11.000Z"
    updated_at: "2026-04-08T17:42:11.000Z"
    processed_at: "2026-04-08T17:42:11.000Z"
    currency: "USD"
    presentment_currency: "USD"
    subtotal_price: "1199.00"
    total_price: "1199.00"
    total_tax: "0.00"
    total_discounts: "0.00"
    total_weight: 1200
    test: false
    tags: "beyond,custom-cushion"
    note: null
    line_items: []
    fulfillments: []
    customer: { id: 7421003628825, email: "customer@example.com" }
    order_number: 10042
    number: 42
    admin_graphql_api_id: "gid://shopify/Order/6107853586649"
