{
    "additionalProperties": false,
    "description": "A purchase GTM server-side event.",
    "properties": {
        "affiliation": {
            "description": "A product affiliation to designate a supplying company or brick and mortar store location.",
            "maxLength": 4096,
            "type": [
                "string",
                "null"
            ]
        },
        "coupon": {
            "description": "The coupon name or code associated with the event.",
            "maxLength": 4096,
            "type": [
                "string",
                "null"
            ]
        },
        "currency": {
            "description": "Currency of the items associated with the event, in 3-letter ISO 4217 format. Is required, if value is set.",
            "maxLength": 3,
            "minLength": 3,
            "type": [
                "string",
                "null"
            ]
        },
        "items": {
            "description": "The items for the event.",
            "items": {
                "additionalProperties": false,
                "description": "An item object.",
                "properties": {
                    "affiliation": {
                        "description": "A product affiliation to designate a supplying company or brick and mortar store location",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "coupon": {
                        "description": "The coupon name or code associated with the item.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "currency": {
                        "description": "The currency, in 3-letter ISO 4217 format.",
                        "maxLength": 3,
                        "minLength": 3,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "discount": {
                        "description": "The monetary discount value associated with the item.",
                        "minimum": 0,
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "index": {
                        "description": "The index of the item in a list.",
                        "minimum": 0,
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "item_brand": {
                        "description": "The brand of the item.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_category": {
                        "description": "The category of the item.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_category2": {
                        "description": "The second category hierarchy or additional taxonomy for the item.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_category3": {
                        "description": "The third category hierarchy or additional taxonomy for the item.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_category4": {
                        "description": "The fourth category hierarchy or additional taxonomy for the item.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_category5": {
                        "description": "The fifth category hierarchy or additional taxonomy for the item.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_id": {
                        "description": "The ID of the item.",
                        "maxLength": 500,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_list_id": {
                        "description": "The ID of the list in which the item was presented to the user.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_list_name": {
                        "description": "The name of the list in which the item was presented to the user.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_name": {
                        "description": "The name of the item.",
                        "maxLength": 500,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "item_variant": {
                        "description": "The item variant or unique code or description for additional item details or options.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "location_id": {
                        "description": "The location associated with the item.",
                        "maxLength": 4096,
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "price": {
                        "description": "The monetary price of the item, in units of the specified currency parameter.",
                        "minimum": 0,
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "quantity": {
                        "description": "Item quantity.",
                        "minimum": 0,
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "type": "object"
            },
            "type": "array"
        },
        "shipping": {
            "description": "Shipping cost associated with a transaction.",
            "minimum": 0,
            "type": [
                "number",
                "null"
            ]
        },
        "tax": {
            "description": "Tax cost associated with a transaction.",
            "minimum": 0,
            "type": [
                "number",
                "null"
            ]
        },
        "transaction_id": {
            "description": "The unique identifier of a transaction.",
            "maxLength": 500,
            "type": "string"
        },
        "value": {
            "description": "The monetary value of the event.",
            "minimum": 0,
            "type": [
                "number",
                "null"
            ]
        }
    },
    "required": [
        "transaction_id",
        "items"
    ],
    "self": {
        "format": "jsonschema",
        "name": "purchase",
        "vendor": "com.google.tag-manager.server-side",
        "version": "1-0-0"
    },
    "type": "object"
}