sitecore · Schema

Sitecore OrderCloud Order

Schema representing an order in the Sitecore OrderCloud commerce platform. Orders capture the full lifecycle of a purchase transaction from creation through fulfillment, including line items, payment, shipping, and promotions.

Properties

Name Type Description
ID string The unique identifier of the order, either system-generated or provided at creation
FromUser object The user who created or owns the order
FromUserID string The identifier of the user who placed the order
BillingAddressID string The identifier of the billing address for this order
BillingAddress object The billing address details for this order
ShippingAddressID string The identifier of the shipping address for this order
Comments string Free-form comments attached to the order by the buyer or administrator
LineItemCount integer The total number of distinct line items in this order
Status string The current workflow status of the order
DateCreated string The ISO 8601 timestamp when the order was first created
DateSubmitted string The ISO 8601 timestamp when the order was submitted for fulfillment
DateApproved string The ISO 8601 timestamp when the order was approved (for orders requiring approval)
DateDeclined string The ISO 8601 timestamp when the order was declined by an approver
DateCanceled string The ISO 8601 timestamp when the order was canceled
DateCompleted string The ISO 8601 timestamp when the order was fulfilled and marked complete
Subtotal number The order subtotal calculated from line item prices before promotions, shipping, and tax
ShippingCost number The total shipping cost applied to the order
TaxCost number The total tax amount calculated for the order
PromotionDiscount number The total discount amount subtracted from the order by applied promotions
Total number The final order total after adding shipping, tax, and subtracting promotions
IsSubmitted boolean Whether the order has been submitted for fulfillment
xp object Extended properties for storing custom order-level attributes not covered by the standard schema
View JSON Schema on GitHub

JSON Schema

sitecore-ordercloud-order-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://sitecore.com/schemas/ordercloud/order.json",
  "title": "Sitecore OrderCloud Order",
  "description": "Schema representing an order in the Sitecore OrderCloud commerce platform. Orders capture the full lifecycle of a purchase transaction from creation through fulfillment, including line items, payment, shipping, and promotions.",
  "type": "object",
  "properties": {
    "ID": {
      "type": "string",
      "description": "The unique identifier of the order, either system-generated or provided at creation"
    },
    "FromUser": {
      "$ref": "#/$defs/UserReference",
      "description": "The user who created or owns the order"
    },
    "FromUserID": {
      "type": "string",
      "description": "The identifier of the user who placed the order"
    },
    "BillingAddressID": {
      "type": "string",
      "description": "The identifier of the billing address for this order"
    },
    "BillingAddress": {
      "$ref": "#/$defs/Address",
      "description": "The billing address details for this order"
    },
    "ShippingAddressID": {
      "type": "string",
      "description": "The identifier of the shipping address for this order"
    },
    "Comments": {
      "type": "string",
      "description": "Free-form comments attached to the order by the buyer or administrator",
      "maxLength": 2000
    },
    "LineItemCount": {
      "type": "integer",
      "description": "The total number of distinct line items in this order",
      "minimum": 0
    },
    "Status": {
      "type": "string",
      "description": "The current workflow status of the order",
      "enum": [
        "Unsubmitted",
        "Open",
        "AwaitingApproval",
        "Declined",
        "Completed",
        "Canceled"
      ]
    },
    "DateCreated": {
      "type": "string",
      "description": "The ISO 8601 timestamp when the order was first created",
      "format": "date-time"
    },
    "DateSubmitted": {
      "type": "string",
      "description": "The ISO 8601 timestamp when the order was submitted for fulfillment",
      "format": "date-time"
    },
    "DateApproved": {
      "type": "string",
      "description": "The ISO 8601 timestamp when the order was approved (for orders requiring approval)",
      "format": "date-time"
    },
    "DateDeclined": {
      "type": "string",
      "description": "The ISO 8601 timestamp when the order was declined by an approver",
      "format": "date-time"
    },
    "DateCanceled": {
      "type": "string",
      "description": "The ISO 8601 timestamp when the order was canceled",
      "format": "date-time"
    },
    "DateCompleted": {
      "type": "string",
      "description": "The ISO 8601 timestamp when the order was fulfilled and marked complete",
      "format": "date-time"
    },
    "Subtotal": {
      "type": "number",
      "description": "The order subtotal calculated from line item prices before promotions, shipping, and tax",
      "format": "double",
      "minimum": 0
    },
    "ShippingCost": {
      "type": "number",
      "description": "The total shipping cost applied to the order",
      "format": "double",
      "minimum": 0
    },
    "TaxCost": {
      "type": "number",
      "description": "The total tax amount calculated for the order",
      "format": "double",
      "minimum": 0
    },
    "PromotionDiscount": {
      "type": "number",
      "description": "The total discount amount subtracted from the order by applied promotions",
      "format": "double",
      "minimum": 0
    },
    "Total": {
      "type": "number",
      "description": "The final order total after adding shipping, tax, and subtracting promotions",
      "format": "double",
      "minimum": 0
    },
    "IsSubmitted": {
      "type": "boolean",
      "description": "Whether the order has been submitted for fulfillment"
    },
    "xp": {
      "type": "object",
      "description": "Extended properties for storing custom order-level attributes not covered by the standard schema",
      "additionalProperties": true
    }
  },
  "$defs": {
    "LineItem": {
      "type": "object",
      "description": "A product line item within an OrderCloud order",
      "required": ["ProductID", "Quantity"],
      "properties": {
        "ID": {
          "type": "string",
          "description": "The unique identifier of this line item within the order"
        },
        "ProductID": {
          "type": "string",
          "description": "The identifier of the product being purchased in this line item"
        },
        "Quantity": {
          "type": "integer",
          "description": "The number of units being purchased for this product",
          "minimum": 1
        },
        "DateAdded": {
          "type": "string",
          "description": "The ISO 8601 timestamp when this line item was added to the order",
          "format": "date-time"
        },
        "QuantityShipped": {
          "type": "integer",
          "description": "The number of units that have been shipped for this line item",
          "minimum": 0
        },
        "UnitPrice": {
          "type": "number",
          "description": "The price per unit for this product at the time of ordering",
          "format": "double",
          "minimum": 0
        },
        "PromotionDiscount": {
          "type": "number",
          "description": "The promotional discount applied to this specific line item",
          "format": "double",
          "minimum": 0
        },
        "LineTotal": {
          "type": "number",
          "description": "The total price for this line item (unit price multiplied by quantity, minus discounts)",
          "format": "double",
          "minimum": 0
        },
        "LineSubtotal": {
          "type": "number",
          "description": "The subtotal for this line item before promotions and discounts",
          "format": "double",
          "minimum": 0
        },
        "ShippingAddressID": {
          "type": "string",
          "description": "The shipping address identifier for this specific line item, overrides the order-level address"
        },
        "Product": {
          "$ref": "#/$defs/LineItemProduct",
          "description": "Snapshot of product details at the time the line item was added"
        },
        "Specs": {
          "type": "array",
          "description": "Spec option selections that identify the specific product variant",
          "items": {
            "$ref": "#/$defs/LineItemSpec"
          }
        },
        "xp": {
          "type": "object",
          "description": "Extended properties for custom line item attributes",
          "additionalProperties": true
        }
      }
    },
    "LineItemProduct": {
      "type": "object",
      "description": "A snapshot of product information captured at the time a line item was added",
      "properties": {
        "ID": {
          "type": "string",
          "description": "The product identifier"
        },
        "Name": {
          "type": "string",
          "description": "The product display name"
        },
        "Description": {
          "type": "string",
          "description": "The product description"
        },
        "QuantityMultiplier": {
          "type": "integer",
          "description": "The minimum purchase quantity increment"
        },
        "ShipWeight": {
          "type": "number",
          "description": "The shipping weight of the product",
          "format": "double"
        },
        "xp": {
          "type": "object",
          "description": "Extended properties for custom product attributes",
          "additionalProperties": true
        }
      }
    },
    "LineItemSpec": {
      "type": "object",
      "description": "A spec option selection defining which product variant is in the line item",
      "properties": {
        "SpecID": {
          "type": "string",
          "description": "The identifier of the spec (e.g., Color, Size)"
        },
        "OptionID": {
          "type": "string",
          "description": "The identifier of the selected spec option value"
        },
        "Value": {
          "type": "string",
          "description": "The display value of the selected spec option"
        }
      }
    },
    "Payment": {
      "type": "object",
      "description": "A payment record associated with an order",
      "properties": {
        "ID": {
          "type": "string",
          "description": "The unique identifier of this payment"
        },
        "Type": {
          "type": "string",
          "description": "The type of payment instrument used",
          "enum": ["PurchaseOrder", "CreditCard", "SpendingAccount"]
        },
        "CreditCardID": {
          "type": "string",
          "description": "The identifier of the credit card used (for CreditCard type payments)"
        },
        "SpendingAccountID": {
          "type": "string",
          "description": "The identifier of the spending account used"
        },
        "Description": {
          "type": "string",
          "description": "A description of this payment"
        },
        "Amount": {
          "type": "number",
          "description": "The payment amount in the order currency",
          "format": "double",
          "minimum": 0
        },
        "Accepted": {
          "type": "boolean",
          "description": "Whether the payment has been accepted"
        },
        "xp": {
          "type": "object",
          "description": "Extended properties for custom payment attributes",
          "additionalProperties": true
        }
      }
    },
    "Address": {
      "type": "object",
      "description": "A shipping or billing address for an order",
      "properties": {
        "ID": {
          "type": "string",
          "description": "The unique identifier of the address record"
        },
        "FirstName": {
          "type": "string",
          "description": "The recipient's first name at this address"
        },
        "LastName": {
          "type": "string",
          "description": "The recipient's last name at this address"
        },
        "Company": {
          "type": "string",
          "description": "The company name at this address"
        },
        "Street1": {
          "type": "string",
          "description": "The primary street address line"
        },
        "Street2": {
          "type": "string",
          "description": "The secondary street address line (suite, apartment, etc.)"
        },
        "City": {
          "type": "string",
          "description": "The city name"
        },
        "State": {
          "type": "string",
          "description": "The state, province, or region code"
        },
        "Zip": {
          "type": "string",
          "description": "The postal or ZIP code"
        },
        "Country": {
          "type": "string",
          "description": "The ISO 3166-1 alpha-2 country code",
          "pattern": "^[A-Z]{2}$",
          "example": "US"
        },
        "Phone": {
          "type": "string",
          "description": "The phone number at this address"
        },
        "xp": {
          "type": "object",
          "description": "Extended properties for custom address attributes",
          "additionalProperties": true
        }
      }
    },
    "UserReference": {
      "type": "object",
      "description": "A reference to the user who placed or owns the order",
      "properties": {
        "ID": {
          "type": "string",
          "description": "The unique identifier of the user"
        },
        "FirstName": {
          "type": "string",
          "description": "The user's first name"
        },
        "LastName": {
          "type": "string",
          "description": "The user's last name"
        },
        "Username": {
          "type": "string",
          "description": "The user's login username"
        },
        "Email": {
          "type": "string",
          "description": "The user's email address",
          "format": "email"
        }
      }
    }
  }
}