removedInput schema / properties / customer / description
Removed value: -"Optional customer details"
addedInput schema / properties / customer / properties
Added value: +{
+ "address": {
+ "type": "string"
+ },
+ "city": {
+ "type": "string"
+ },
+ "email": {
+ "description": "Real customer email, checked before checkout creation",
+ "type": "string"
+ },
+ "name": {
+ "description": "Real customer name, checked before checkout creation",
+ "type": "string"
+ },
+ "phone": {
+ "description": "South African phone number, checked before checkout creation",
+ "type": "string"
+ }
+}
changedInput schema / properties / items / description
Previous value: -"Optional initial items (configured blinds)"New value: +"Optional configured items; all submitted prices are ignored"
addedInput schema / properties / items / items
Added value: +{
+ "properties": {
+ "colour": {
+ "description": "Exact available colour; validate with configure_product before adding",
+ "minLength": 1,
+ "type": "string"
+ },
+ "finish": {
+ "description": "Optional pricing finish for aluminium Venetians",
+ "type": "string"
+ },
+ "height_mm": {
+ "description": "Actual ordered drop in millimetres",
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "mount_type": {
+ "description": "Use inside for recess fit or outside for face fix",
+ "minLength": 1,
+ "type": "string"
+ },
+ "product_id": {
+ "description": "product_id returned by search_catalog or lookup_catalog",
+ "type": "string"
+ },
+ "product_name": {
+ "description": "Optional; server resolves the catalogue name",
+ "type": "string"
+ },
+ "quantity": {
+ "description": "Number of blinds; defaults to 1",
+ "type": "number"
+ },
+ "total_price_zar": {
+ "description": "Optional, ignored: server recalculates all totals",
+ "type": "number"
+ },
+ "unit_price_zar": {
+ "description": "Optional, ignored: server recalculates all prices",
+ "type": "number"
+ },
+ "width_mm": {
+ "description": "Actual ordered width in millimetres",
+ "exclusiveMinimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "product_id",
+ "width_mm",
+ "height_mm",
+ "colour",
+ "mount_type"
+ ],
+ "type": "object"
+}
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": true,
+ "properties": {
+ "cart_id": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "currency": {
+ "const": "ZAR",
+ "type": "string"
+ },
+ "customer": {
+ "anyOf": [
+ {
+ "additionalProperties": true,
+ "properties": {
+ "address": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "city": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "email": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "phone": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "expires_at": {
+ "type": "string"
+ },
+ "item_count": {
+ "type": "number"
+ },
+ "items": {
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "colour": {
+ "type": "string"
+ },
+ "finish": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "height_mm": {
+ "type": "number"
+ },
+ "mount_type": {
+ "type": "string"
+ },
+ "product_id": {
+ "type": "string"
+ },
+ "product_name": {
+ "type": "string"
+ },
+ "quantity": {
+ "type": "number"
+ },
+ "total_price_zar": {
+ "type": "number"
+ },
+ "unit_price_zar": {
+ "type": "number"
+ },
+ "width_mm": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "product_id",
+ "width_mm",
+ "height_mm",
+ "quantity",
+ "unit_price_zar",
+ "total_price_zar"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "total_zar": {
+ "type": "number"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "cart_id",
+ "items",
+ "item_count",
+ "total_zar",
+ "currency",
+ "customer",
+ "created_at",
+ "updated_at",
+ "expires_at"
+ ],
+ "type": "object"
+}