Skip to main content
Glama

Server Details

Browse, price, configure and order custom-made blinds for South African windows. Instant ZAR pricing, cart, checkout and payment via Yoco or Ozow EFT. No authentication required.

Ownership verified
Status
Healthy
Uptime
99.4% over 59 days
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL

TDQS

A4/5.0

Scored across 26 tools

Disambiguation2/5

Several product-discovery tools overlap heavily: search_products and lookup_catalog both filter by blind type, colour, and dimensions, while search_catalog also handles product discovery. The differences are subtle enough that an agent could easily select the wrong tool.

Naming Consistency5/5

All tool names use a consistent snake_case verb_noun pattern (create_cart, update_checkout, get_price, cancel_checkout, configure_product, etc.). The only minor variation is using search versus lookup for similar actions, but the overall convention is uniform and predictable.

Tool Count3/5

26 tools is on the heavy side for a blinds-shop MCP, and the count is inflated by redundant search/filter tools and legacy auth-required tools. That said, the breadth is somewhat justified by the full e-commerce lifecycle—discovery, pricing, cart, checkout, orders, and post-sale support.

Completeness4/5

The server covers the full customer journey from product discovery through to order tracking and support handoffs, with no critical dead ends in core workflows. Minor gaps exist, such as no order cancellation or return flow after payment and no inventory/list tool for past carts or checkouts, but agents can work around these.

Available Tools

26 tools
cancel_cartInspect

Permanently delete a cart by cart_id. Use when the customer abandons the session or wants to start over. Has no effect on any checkout or paid order already created from this cart. Irreversible — create a new cart to restart.

ParametersJSON Schema
NameRequiredDescriptionDefault
cart_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
cart_idYes
cancelledYes
cancel_checkoutInspect

Abort an unpaid checkout and release its checkout_id. Use if the customer changes their mind after create_checkout but before completing payment. Has no effect on orders already confirmed by webhook. To restart, create a new cart and checkout from scratch.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
checkout_idYes
check_colour_stockInspect

Verify whether a specific colour is available before configure_product. Returns in_stock boolean, expected_restock_date if out of stock, and up to 5 alternative in-stock colours ordered by similarity. Call this when a customer requests a named colour or when you want to prevent a configure_product failure due to an out-of-stock selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYes
colour_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundNo
messageNo
in_stockYes
product_idNo
swatch_urlNo
colour_nameNo
expected_restockNo
matching_coloursNo
available_coloursNo
exact_colour_matchNo
alternative_coloursNo
requires_exact_colour_selectionNo
complete_checkoutInspect

Generate a Yoco card or Ozow instant-EFT payment link; this does NOT complete payment. Rejects cancelled checkouts and rechecks stock and totals first. An atomic claim prevents competing gateway calls. Returns payment_url or null plus status and message; cloud callers may be held. Retain a successful URL: repeat calls return payment_pending with no URL. Gateway failures raise an error, send no payment-link email and require team review rather than an automatic retry. Poll get_order with customer_email for payment status.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYes
payment_methodNoOverrides any value set in create_checkout/update_checkout

Output Schema

ParametersJSON Schema
NameRequiredDescription
ap2No
itemsNo
statusYes
messageYes
currencyNo
customerNo
next_stepNo
total_zarNo
created_atNo
item_countNo
checkout_idYes
payment_urlYes
payment_methodNo
payment_statusNo
provider_referenceNo
configure_productInspect

Lock in a full blind specification: product, dimensions, colour, and mount type (inside recess or outside face-fix). Validates that the colour exists and is in stock, then prices the blind. Returns a configuration summary to pass directly into create_cart. Call check_colour_stock first if availability is uncertain.

ParametersJSON Schema
NameRequiredDescriptionDefault
colourYesColour name (must match available colours)
finishNoOptional finish for aluminium venetians
provinceNoOptional. Customer's South African province or city. Garden Route locations get Duncan's direct contact; other locations get the online shop contact.
quantityNoNumber of blinds (default 1)
width_mmYesWidth in millimetres
height_mmYesHeight/drop in millimetres
mount_typeYesUse inside (recess) or outside (face-fix); handler requires a nonempty value
product_idYesproduct_id from search_catalog or lookup_catalog

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
messageNo
successYes
contact_nameNo
configurationNo
contact_phoneNo
contact_requiredNo
create_cartInspect

Start the open UCP purchase flow — no auth needed. Creates a cart session and returns a cart_id (24-hour TTL). Optionally seed with pre-configured blind items and customer details. Next step: update_cart to add items, then create_checkout → complete_checkout to mint the payment link.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsNoOptional configured items; all submitted prices are ignored
customerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
cart_idYes
currencyYes
customerYes
total_zarYes
created_atYes
expires_atYes
item_countYes
updated_atYes
create_checkoutInspect

Phase 1 of 2 in the purchase flow. Convert a cart (or inline items + customer) into a checkout. Customer name, email, and phone are required. Returns checkout_id. No payment link is minted yet — call complete_checkout for that. Use update_checkout to correct customer details before finalising.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsNo
cart_idNoEither cart_id or items required
customerNo
payment_methodNoDefault 'yoco'

Output Schema

ParametersJSON Schema
NameRequiredDescription
ap2No
itemsNo
statusYes
messageNo
currencyYes
customerNo
next_stepNo
total_zarYes
created_atNo
item_countNo
checkout_idYes
payment_urlNo
payment_methodNo
payment_statusNo
provider_referenceNo
create_orderInspect

Legacy auth-required tool — prefer the open UCP flow (create_cart → create_checkout → complete_checkout) which needs no credentials. Use create_order only if you hold a Bearer token and want a single-call path to a payment link. All item prices are re-verified server-side against the live pricing engine — agent-supplied prices are ignored. Returns a Yoco or Ozow payment_url.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of configured blind items
customer_cityNoDelivery city
customer_nameYesCustomer full name
customer_emailYesCustomer email address
customer_phoneYesCustomer phone number
payment_methodNoYoco card or Ozow instant EFTyoco
customer_addressNoDelivery address

Output Schema

ParametersJSON Schema
NameRequiredDescription
contactYes
messageYes
successYes
currencyYes
order_idYes
total_zarYes
item_countYes
payment_urlYes
get_ar_visualizer_urlInspect

Surface the AR measurement tool or product visualizer when a customer wants to measure their window or preview a blind in their room. The AR tool uses a phone camera and an A4 page as a reference scale to measure window dimensions. The visualizer renders the selected blind in a customer-uploaded room photo. Set mode to 'measure', 'visualize', or 'both'. Optionally pre-select a product_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoWhich tool to surface. Default: both.
product_idNoOptional. Pre-select a product in the visualizer (e.g. roller-blockout, venetian-25mm-aluwood).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
ar_measurement_urlNo
ar_measurement_noteNo
product_visualizer_urlNo
product_visualizer_noteNo
get_cartInspect

Retrieve live cart state by cart_id: full item list, calculated totals in ZAR, and any customer details stored so far. Call after update_cart to confirm changes are correct before proceeding to create_checkout. Cart expires after 24 hours of inactivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
cart_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
cart_idYes
currencyYes
customerYes
total_zarYes
created_atYes
expires_atYes
item_countYes
updated_atYes
get_checkoutInspect

Read checkout by checkout_id. Returns persisted order status, payment_status, payment_method, items, customer, total_zar and currency. Initial order status is started, not pending. This tool does not return a previously generated payment_url: retain the complete_checkout response in caller context.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
ap2No
itemsNo
statusYes
messageNo
currencyYes
customerNo
next_stepNo
total_zarYes
created_atNo
item_countNo
checkout_idYes
payment_urlNo
payment_methodNo
payment_statusNo
provider_referenceNo
get_delivery_estimateInspect

Explain the production lead time for a new order. Production takes 5–7 working days, excluding transit times and outside peak seasons. Returns dispatch_date, production_days, and a plain-language summary safe to share with the customer. Never quote a final delivery date. Call this when a customer asks 'when will it arrive?' to give an honest production timeline.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_dateNoISO date string of the order placement date (e.g. '2026-05-18'). Defaults to today.

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
importantYes
order_dateYes
expedited_availableYes
delivery_after_dispatchYes
estimated_dispatch_dateYes
production_working_daysYes
get_orderInspect

Retrieve a confirmed order's status, items, and payment details by order_id. customer_email is required as soft-auth and must exactly match the order record — prevents arbitrary order lookups. Returns payment status (paid | pending | failed), production status, and dispatch date once available.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYes
customer_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
statusNo
currencyNo
customerNo
order_idYes
total_zarNo
created_atNo
payment_methodNo
payment_statusNo
get_payment_methodsInspect

List available payment processors and their capabilities. Returns Yoco (card, immediate) and Ozow (instant EFT via South African bank account). Call when the customer asks 'how can I pay?' or before presenting options. The result informs the payment_method field in create_checkout and complete_checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_total_zarNoOptional. For future per-handler limit filtering.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
handlersYes
default_currencyYes
get_priceInspect

Get an exact ZAR price using product_id from search_catalog or lookup_catalog, width_mm and height_mm. Prices include VAT and delivery. Colour selects the bamboo price tier where applicable. A price is not a stock reservation: validate the exact colour and mount with configure_product before creating a cart. Failure can return success:false or a JSON-RPC validation error.

ParametersJSON Schema
NameRequiredDescriptionDefault
colourNoOptional bamboo colour for colour-specific tier pricing
finishNoOptional finish for aluminium products: Plain, Brushed, Woodgrain
provinceNoOptional. Customer's South African province or city. Garden Route locations get Duncan's direct contact; other locations get the online shop contact.
quantityNoNumber of blinds (default 1)
width_mmYesWidth in millimetres (e.g. 1200)
height_mmYesHeight/drop in millimetres (e.g. 1500)
product_idYesproduct_id from search_catalog or lookup_catalog (e.g. roller-blockout)

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
finishNo
messageNo
successYes
currencyNo
quantityNo
whatsappNo
width_mmNo
height_mmNo
lead_timeNo
product_idNo
contact_nameNo
vat_includedNo
contact_phoneNo
unit_price_zarNo
total_price_zarNo
contact_requiredNo
effective_width_mmNo
effective_height_mmNo
measurement_review_requiredNo
get_productInspect

Fetch complete details for one product by id (e.g. roller-blockout, venetian-25mm-aluwood). Returns all available colours with in-stock status, materials, features, and maximum supported dimensions. Use before configure_product to confirm a colour exists and is in stock before committing.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
productYes
get_product_recommendationInspect

Translate a customer's primary concern into a product recommendation. primary_concern must be one of: blockout, heat, glare, moisture, privacy, security, automation. Optionally narrow by room (bedroom, lounge, etc.), location, budget, and aesthetic. Returns a recommended product_id with rationale — pass it to get_price or configure_product next. Security concern routes to brochure MCP (Garden Route customers only).

ParametersJSON Schema
NameRequiredDescriptionDefault
roomNo
locationNo
aestheticNo
max_budget_zarNo
primary_concernYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesNo
handoffNo
recommendationsYes
get_whatsapp_handoffInspect

Generate a pre-filled WhatsApp deep link to hand the customer off to the right contact. Garden Route locations (Knysna, Plett, George, Sedgefield, etc.) route to Duncan Kane (+27795235407) for free in-home consultation; all other South African locations route to the online shop line (+27760228410). Use when the customer prefers human assistance or when self-serve checkout isn't appropriate.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoOptional additional message to prefill
locationNoCity/suburb. Drives Duncan vs shop routing.
customer_nameNo
product_contextNoe.g. 'roller blockout for bedroom'

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonYes
recipientYes
whatsapp_urlYes
recipient_phoneYes
lookup_catalogInspect

Preferred structured discovery. Filter by category, partial colour name or required supported width/drop in mm. Returns results containing product_id, name, category and product_url, plus total. Width/drop filters check separate maximums, not every combination; confirm the exact pair with get_price.

ParametersJSON Schema
NameRequiredDescriptionDefault
colourNo
categoryNoroller | venetian | honeycomb | vertical | outdoor
max_width_mmNo
max_height_mmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
resultsYes
request_price_matchInspect

Submit a price match claim when the customer has found the same blind cheaper elsewhere. Custom Blinds matches verified South African retailer prices for identical product, dimensions, and specs. Returns a pre-filled WhatsApp link to the claims team. Not applicable to: Blinds Direct (same supplier), clearance or flash-sale prices, or out-of-stock items. Requires product_id and competitor_price_zar at minimum.

ParametersJSON Schema
NameRequiredDescriptionDefault
width_mmNoWindow width in mm
height_mmNoWindow height/drop in mm
product_idYesProduct the customer wants to match (e.g. roller-blockout)
customer_nameNoCustomer name
competitor_urlNoURL to competitor product page or quote
competitor_nameNoName of the competitor (e.g. 'Blind Empire')
customer_whatsappNoCustomer WhatsApp number for follow-up
competitor_price_zarYesCompetitor's price in ZAR (incl. VAT)

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
messageYes
successYes
exclusionsYes
whatsapp_urlYes
claim_summaryYes
request_swatchInspect

Register up to 5 colour swatches to be dispatched with the customer's order. Swatches ship at order placement only — they are NOT sent as a standalone postal sample before purchase. Capped at 5 codes per order. If the customer asks for swatches before ordering, explain they ship with the blind and guide them to place their order first.

ParametersJSON Schema
NameRequiredDescriptionDefault
suburbNoOptional delivery suburb
swatch_codesNoOptional specific colour codes; no count limit enforced by this handler
customer_nameYes
customer_emailYes
customer_phoneYesUsed as WhatsApp number
product_interestYese.g. 'Roller Blockout' or 'Honeycomb'

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
messageYes
request_idYes
swatch_countYes
estimated_delivery_daysYes
search_catalogInspect

Preferred free-text discovery. Returns results containing product_id, name, category, description, product_url and colour_count_in_stock, plus total and currency. For structured filters use lookup_catalog. Pass product_id to get_product or get_price.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFree-text query, e.g. 'blockout' or 'venetian'

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
resultsYes
currencyYes
search_productsInspect

Legacy discovery, retained for backward compatibility. Prefer search_catalog / lookup_catalog, then get_product. Filters by blind type, colour or maximum dimensions. Returns products with id (not product_id), name, description, features and in-stock colour count. Pass that id as product_id to get_price or configure_product.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoBlind category to filter by: roller, venetian, honeycomb, vertical, outdoor
colourNoColour name to search for (partial match)
provinceNoOptional. Customer's South African province or city. Garden Route locations get Duncan's direct contact; other locations get the online shop contact.
max_width_mmNoMaximum width in millimetres the product supports
max_height_mmNoMaximum height/drop in millimetres the product supports

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
totalYes
productsYes
contact_nameNo
contact_phoneNo
submit_enquiryInspect

Legacy auth-required tool — prefer the open UCP flow (create_cart → create_checkout → complete_checkout) for credentialless checkout. Use submit_enquiry only when the customer wants a sales team follow-up by email rather than paying online. Requires Bearer token. Pass a configure_product output plus customer name, email, and phone. Team responds within 24 hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesRequired enquiry message; at least 10 characters after trimming
customer_nameYesCustomer full name
customer_emailYesCustomer email address
customer_phoneYesCustomer phone number
product_configYesProduct configuration from configure_product

Output Schema

ParametersJSON Schema
NameRequiredDescription
contactYes
messageYes
successYes
enquiry_idYes
update_cartInspect

Modify an open cart before checkout. op: 'add' appends items, 'remove' drops items by 0-based index, 'set' replaces the full item list, 'clear' empties the cart. Merges customer details (name, email, phone) via the customer field. Call get_cart afterwards to confirm. Cannot modify a cart that already has a checkout in progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
opNoset
itemsNo
cart_idYes
indicesNoItem indices to remove (0-based) when op='remove'
customerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
cart_idYes
currencyYes
customerYes
total_zarYes
created_atYes
expires_atYes
item_countYes
updated_atYes
update_checkoutInspect

Update customer details or payment_method only before payment-link generation. Paid, cancelled and payment-in-progress checkouts are rejected. Concurrent state changes are detected; retrieve the latest status before retrying.

ParametersJSON Schema
NameRequiredDescriptionDefault
customerNo
checkout_idYes
payment_methodNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ap2No
itemsNo
statusYes
messageNo
currencyYes
customerNo
next_stepNo
total_zarYes
created_atNo
item_countNo
checkout_idYes
payment_urlNo
payment_methodNo
payment_statusNo
provider_referenceNo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 26 tool updates
    • Changedcancel_cart1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "cancelled": {
        +      "type": "boolean"
        +    },
        +    "cart_id": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "cancelled",
        +    "cart_id"
        +  ],
        +  "type": "object"
        +}
    • Changedcancel_checkout1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "checkout_id": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "checkout_id",
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedcheck_colour_stock1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "alternative_colours": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "colour_name": {
        +            "type": "string"
        +          },
        +          "in_stock": {
        +            "type": "boolean"
        +          },
        +          "swatch_url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "colour_name",
        +          "in_stock"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "available_colours": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "colour_name": {
        +      "type": "string"
        +    },
        +    "exact_colour_match": {
        +      "type": "boolean"
        +    },
        +    "expected_restock": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "found": {
        +      "type": "boolean"
        +    },
        +    "in_stock": {
        +      "type": "boolean"
        +    },
        +    "matching_colours": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "colour_name": {
        +            "type": "string"
        +          },
        +          "in_stock": {
        +            "type": "boolean"
        +          },
        +          "swatch_url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "colour_name",
        +          "in_stock"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "product_id": {
        +      "type": "string"
        +    },
        +    "requires_exact_colour_selection": {
        +      "type": "boolean"
        +    },
        +    "swatch_url": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "in_stock"
        +  ],
        +  "type": "object"
        +}
    • Changedcomplete_checkout1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "allOf": [
        +    {
        +      "if": {
        +        "properties": {
        +          "payment_url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "payment_url"
        +        ]
        +      },
        +      "then": {
        +        "required": [
        +          "total_zar",
        +          "currency",
        +          "payment_method"
        +        ]
        +      }
        +    }
        +  ],
        +  "properties": {
        +    "ap2": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "merchant_authorization": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "merchant_authorization"
        +      ],
        +      "type": "object"
        +    },
        +    "checkout_id": {
        +      "type": "string"
        +    },
        +    "created_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "customer": {
        +      "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"
        +    },
        +    "item_count": {
        +      "type": "number"
        +    },
        +    "items": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "colour": {
        +                "type": "string"
        +              },
        +              "finish": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "height": {
        +                "type": "number"
        +              },
        +              "mountType": {
        +                "type": "string"
        +              },
        +              "price": {
        +                "type": "number"
        +              },
        +              "productId": {
        +                "type": "string"
        +              },
        +              "productName": {
        +                "type": "string"
        +              },
        +              "quantity": {
        +                "type": "number"
        +              },
        +              "total": {
        +                "type": "number"
        +              },
        +              "width": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "next_step": {
        +      "type": "string"
        +    },
        +    "payment_method": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "provider_reference": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "total_zar": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "checkout_id",
        +    "status",
        +    "payment_url",
        +    "message"
        +  ],
        +  "type": "object"
        +}
    • Changedconfigure_product5 fields changed
      • changedInput schema / properties / mount_type / description
        Previous value: -"Mount type: inside (recess) or outside (face-fix)"New value: +"Use inside (recess) or outside (face-fix); handler requires a nonempty value"
      • removedInput schema / properties / mount_type / enum
        Removed value: -[
        -  "inside",
        -  "outside"
        -]
      • addedInput schema / properties / mount_type / minLength
        Added value: +1
      • changedInput schema / properties / product_id / description
        Previous value: -"Product ID from search_products"New value: +"product_id from search_catalog or lookup_catalog"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "oneOf": [
        +    {
        +      "properties": {
        +        "success": {
        +          "const": true
        +        }
        +      },
        +      "required": [
        +        "configuration"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "success": {
        +          "const": false
        +        }
        +      },
        +      "required": [
        +        "message"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "configuration": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "category": {
        +          "type": "string"
        +        },
        +        "colour": {
        +          "type": "string"
        +        },
        +        "colour_hex": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "contact_name": {
        +          "type": "string"
        +        },
        +        "contact_phone": {
        +          "type": "string"
        +        },
        +        "contact_required": {
        +          "type": "boolean"
        +        },
        +        "currency": {
        +          "const": "ZAR",
        +          "type": "string"
        +        },
        +        "effective_height_mm": {
        +          "type": "number"
        +        },
        +        "effective_width_mm": {
        +          "type": "number"
        +        },
        +        "finish": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "height_mm": {
        +          "type": "number"
        +        },
        +        "lead_time": {
        +          "type": "string"
        +        },
        +        "material": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "measurement_review_required": {
        +          "type": "boolean"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "mount_type": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "product_id": {
        +          "type": "string"
        +        },
        +        "product_name": {
        +          "type": "string"
        +        },
        +        "product_url": {
        +          "type": "string"
        +        },
        +        "quantity": {
        +          "type": "number"
        +        },
        +        "success": {
        +          "type": "boolean"
        +        },
        +        "total_price_zar": {
        +          "type": "number"
        +        },
        +        "unit_price_zar": {
        +          "type": "number"
        +        },
        +        "vat_included": {
        +          "type": "boolean"
        +        },
        +        "whatsapp": {
        +          "type": "string"
        +        },
        +        "width_mm": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "product_id",
        +        "width_mm",
        +        "height_mm",
        +        "colour",
        +        "mount_type",
        +        "quantity",
        +        "unit_price_zar",
        +        "total_price_zar",
        +        "currency",
        +        "vat_included"
        +      ],
        +      "type": "object"
        +    },
        +    "contact_name": {
        +      "type": "string"
        +    },
        +    "contact_phone": {
        +      "type": "string"
        +    },
        +    "contact_required": {
        +      "type": "boolean"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "success": {
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "success"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_cart5 fields changed
      • 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"
        +}
    • Changedcreate_checkout8 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "cart_id"
        +    ]
        +  },
        +  {
        +    "properties": {
        +      "customer": {
        +        "required": [
        +          "name",
        +          "email",
        +          "phone"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "items",
        +      "customer"
        +    ]
        +  }
        +]
      • addedInput schema / properties / customer / properties / email / description
        Added value: +"Real customer email, checked before checkout creation"
      • addedInput schema / properties / customer / properties / name / description
        Added value: +"Real customer name, checked before checkout creation"
      • addedInput schema / properties / customer / properties / phone / description
        Added value: +"South African phone number, checked before checkout creation"
      • removedInput schema / properties / customer / required
        Removed value: -[
        -  "name",
        -  "email",
        -  "phone"
        -]
      • 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"
        +}
      • addedInput schema / properties / items / minItems
        Added value: +1
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "ap2": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "merchant_authorization": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "merchant_authorization"
        +      ],
        +      "type": "object"
        +    },
        +    "checkout_id": {
        +      "type": "string"
        +    },
        +    "created_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "customer": {
        +      "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"
        +    },
        +    "item_count": {
        +      "type": "number"
        +    },
        +    "items": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "colour": {
        +                "type": "string"
        +              },
        +              "finish": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "height": {
        +                "type": "number"
        +              },
        +              "mountType": {
        +                "type": "string"
        +              },
        +              "price": {
        +                "type": "number"
        +              },
        +              "productId": {
        +                "type": "string"
        +              },
        +              "productName": {
        +                "type": "string"
        +              },
        +              "quantity": {
        +                "type": "number"
        +              },
        +              "total": {
        +                "type": "number"
        +              },
        +              "width": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "next_step": {
        +      "type": "string"
        +    },
        +    "payment_method": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "provider_reference": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "total_zar": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "checkout_id",
        +    "status",
        +    "total_zar",
        +    "currency"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_order4 fields changed
      • changedInput schema / properties / items / items / required
        Previous value: -[
        -  "product_id",
        -  "width_mm",
        -  "height_mm",
        -  "colour",
        -  "mount_type",
        -  "unit_price_zar",
        -  "total_price_zar"
        -]New value: +[
        +  "product_id",
        +  "width_mm",
        +  "height_mm",
        +  "colour",
        +  "mount_type"
        +]
      • addedInput schema / properties / items / minItems
        Added value: +1
      • addedInput schema / properties / payment_method
        Added value: +{
        +  "default": "yoco",
        +  "description": "Yoco card or Ozow instant EFT",
        +  "enum": [
        +    "yoco",
        +    "ozow"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "contact": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "contact_name": {
        +          "type": "string"
        +        },
        +        "contact_phone": {
        +          "type": "string"
        +        },
        +        "email": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "whatsapp": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [],
        +      "type": "object"
        +    },
        +    "currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "item_count": {
        +      "type": "number"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "order_id": {
        +      "type": "string"
        +    },
        +    "payment_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "success": {
        +      "type": "boolean"
        +    },
        +    "total_zar": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "success",
        +    "order_id",
        +    "total_zar",
        +    "currency",
        +    "item_count",
        +    "payment_url",
        +    "message",
        +    "contact"
        +  ],
        +  "type": "object"
        +}
    • Changedget_ar_visualizer_url1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "ar_measurement_note": {
        +      "type": "string"
        +    },
        +    "ar_measurement_url": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "product_visualizer_note": {
        +      "type": "string"
        +    },
        +    "product_visualizer_url": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "note"
        +  ],
        +  "type": "object"
        +}
    • Changedget_cart1 field changed
      • 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"
        +}
    • Changedget_checkout1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "ap2": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "merchant_authorization": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "merchant_authorization"
        +      ],
        +      "type": "object"
        +    },
        +    "checkout_id": {
        +      "type": "string"
        +    },
        +    "created_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "customer": {
        +      "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"
        +    },
        +    "item_count": {
        +      "type": "number"
        +    },
        +    "items": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "colour": {
        +                "type": "string"
        +              },
        +              "finish": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "height": {
        +                "type": "number"
        +              },
        +              "mountType": {
        +                "type": "string"
        +              },
        +              "price": {
        +                "type": "number"
        +              },
        +              "productId": {
        +                "type": "string"
        +              },
        +              "productName": {
        +                "type": "string"
        +              },
        +              "quantity": {
        +                "type": "number"
        +              },
        +              "total": {
        +                "type": "number"
        +              },
        +              "width": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "next_step": {
        +      "type": "string"
        +    },
        +    "payment_method": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "provider_reference": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "total_zar": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "checkout_id",
        +    "status",
        +    "total_zar",
        +    "currency"
        +  ],
        +  "type": "object"
        +}
    • Changedget_delivery_estimate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "delivery_after_dispatch": {
        +      "type": "string"
        +    },
        +    "estimated_dispatch_date": {
        +      "type": "string"
        +    },
        +    "expedited_available": {
        +      "type": "boolean"
        +    },
        +    "important": {
        +      "type": "string"
        +    },
        +    "order_date": {
        +      "type": "string"
        +    },
        +    "production_working_days": {
        +      "type": "number"
        +    },
        +    "summary": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "order_date",
        +    "production_working_days",
        +    "estimated_dispatch_date",
        +    "delivery_after_dispatch",
        +    "expedited_available",
        +    "summary",
        +    "important"
        +  ],
        +  "type": "object"
        +}
    • Changedget_order1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "created_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "customer": {
        +      "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"
        +    },
        +    "items": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "colour": {
        +                "type": "string"
        +              },
        +              "finish": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "height": {
        +                "type": "number"
        +              },
        +              "mountType": {
        +                "type": "string"
        +              },
        +              "price": {
        +                "type": "number"
        +              },
        +              "productId": {
        +                "type": "string"
        +              },
        +              "productName": {
        +                "type": "string"
        +              },
        +              "quantity": {
        +                "type": "number"
        +              },
        +              "total": {
        +                "type": "number"
        +              },
        +              "width": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "order_id": {
        +      "type": "string"
        +    },
        +    "payment_method": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "total_zar": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "order_id"
        +  ],
        +  "type": "object"
        +}
    • Changedget_payment_methods1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "default_currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "handlers": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "display_name": {
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "methods": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "redirect": {
        +            "type": "boolean"
        +          },
        +          "supports_3ds": {
        +            "type": "boolean"
        +          },
        +          "supports_banks": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "webhook_verified": {
        +            "type": "boolean"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "display_name",
        +          "methods",
        +          "redirect",
        +          "webhook_verified"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "default_currency",
        +    "handlers",
        +    "note"
        +  ],
        +  "type": "object"
        +}
    • Changedget_price3 fields changed
      • addedInput schema / properties / colour
        Added value: +{
        +  "description": "Optional bamboo colour for colour-specific tier pricing",
        +  "type": "string"
        +}
      • changedInput schema / properties / product_id / description
        Previous value: -"Product ID from search_products (e.g. roller-blockout, venetian-25mm-aluminium)"New value: +"product_id from search_catalog or lookup_catalog (e.g. roller-blockout)"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "oneOf": [
        +    {
        +      "properties": {
        +        "success": {
        +          "const": true
        +        }
        +      },
        +      "required": [
        +        "product_id",
        +        "width_mm",
        +        "height_mm",
        +        "quantity",
        +        "unit_price_zar",
        +        "total_price_zar",
        +        "currency",
        +        "vat_included"
        +      ]
        +    },
        +    {
        +      "properties": {
        +        "success": {
        +          "const": false
        +        }
        +      },
        +      "required": [
        +        "message"
        +      ]
        +    }
        +  ],
        +  "properties": {
        +    "contact_name": {
        +      "type": "string"
        +    },
        +    "contact_phone": {
        +      "type": "string"
        +    },
        +    "contact_required": {
        +      "type": "boolean"
        +    },
        +    "currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "effective_height_mm": {
        +      "type": "number"
        +    },
        +    "effective_width_mm": {
        +      "type": "number"
        +    },
        +    "finish": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "height_mm": {
        +      "type": "number"
        +    },
        +    "lead_time": {
        +      "type": "string"
        +    },
        +    "measurement_review_required": {
        +      "type": "boolean"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "product_id": {
        +      "type": "string"
        +    },
        +    "quantity": {
        +      "type": "number"
        +    },
        +    "success": {
        +      "type": "boolean"
        +    },
        +    "total_price_zar": {
        +      "type": "number"
        +    },
        +    "unit_price_zar": {
        +      "type": "number"
        +    },
        +    "vat_included": {
        +      "type": "boolean"
        +    },
        +    "whatsapp": {
        +      "type": "string"
        +    },
        +    "width_mm": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "success"
        +  ],
        +  "type": "object"
        +}
    • Changedget_product1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "product": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "category": {
        +          "type": "string"
        +        },
        +        "colour_count_in_stock": {
        +          "type": "number"
        +        },
        +        "colours": {
        +          "items": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "expected_restock": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "finish": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "hex": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "in_stock": {
        +                "type": "boolean"
        +              },
        +              "material": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "description": {
        +          "type": "string"
        +        },
        +        "features": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "installation_type": {
        +          "type": "string"
        +        },
        +        "materials": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "max_height_mm": {
        +          "type": "number"
        +        },
        +        "max_width_mm": {
        +          "type": "number"
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "product_id": {
        +          "type": "string"
        +        },
        +        "product_url": {
        +          "type": "string"
        +        },
        +        "schema_url": {
        +          "type": "string"
        +        },
        +        "size_limits": {
        +          "additionalProperties": true,
        +          "properties": {
        +            "availability_rule": {
        +              "type": "string"
        +            },
        +            "combination_dependent": {
        +              "type": "boolean"
        +            },
        +            "max_height_mm": {
        +              "type": "number"
        +            },
        +            "max_width_mm": {
        +              "type": "number"
        +            },
        +            "measurement_note": {
        +              "type": "string"
        +            },
        +            "minimum_charge_height_mm": {
        +              "type": "number"
        +            },
        +            "minimum_charge_width_mm": {
        +              "type": "number"
        +            },
        +            "product_id": {
        +              "type": "string"
        +            },
        +            "unit": {
        +              "const": "mm",
        +              "type": "string"
        +            },
        +            "validation_note": {
        +              "type": "string"
        +            },
        +            "width_drop_frontier": {
        +              "items": {
        +                "additionalProperties": true,
        +                "properties": {
        +                  "max_drop_mm": {
        +                    "type": "number"
        +                  },
        +                  "width_band_max_mm": {
        +                    "type": "number"
        +                  }
        +                },
        +                "required": [
        +                  "width_band_max_mm",
        +                  "max_drop_mm"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            }
        +          },
        +          "required": [
        +            "product_id",
        +            "unit",
        +            "max_width_mm",
        +            "max_height_mm",
        +            "minimum_charge_width_mm",
        +            "minimum_charge_height_mm",
        +            "combination_dependent",
        +            "availability_rule",
        +            "width_drop_frontier",
        +            "measurement_note",
        +            "validation_note"
        +          ],
        +          "type": "object"
        +        },
        +        "suitable_for": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "product_id",
        +        "name",
        +        "category",
        +        "colours",
        +        "product_url"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "product"
        +  ],
        +  "type": "object"
        +}
    • Changedget_product_recommendation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "handoff": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "product_family": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "url",
        +        "product_family",
        +        "reason"
        +      ],
        +      "type": "object"
        +    },
        +    "notes": {
        +      "type": "string"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "currency": {
        +            "const": "ZAR",
        +            "type": "string"
        +          },
        +          "product_id": {
        +            "type": "string"
        +          },
        +          "product_name": {
        +            "type": "string"
        +          },
        +          "reason": {
        +            "type": "string"
        +          },
        +          "shop_url": {
        +            "type": "string"
        +          },
        +          "starting_price_zar_for_1m_x_1m": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "product_id",
        +          "product_name",
        +          "reason",
        +          "starting_price_zar_for_1m_x_1m",
        +          "currency",
        +          "shop_url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "recommendations"
        +  ],
        +  "type": "object"
        +}
    • Changedget_whatsapp_handoff1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "reason": {
        +      "type": "string"
        +    },
        +    "recipient": {
        +      "type": "string"
        +    },
        +    "recipient_phone": {
        +      "type": "string"
        +    },
        +    "whatsapp_url": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "whatsapp_url",
        +    "recipient",
        +    "recipient_phone",
        +    "reason"
        +  ],
        +  "type": "object"
        +}
    • Changedlookup_catalog1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "results": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "category": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "product_id": {
        +            "type": "string"
        +          },
        +          "product_url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "product_id",
        +          "name",
        +          "category",
        +          "product_url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "results",
        +    "total"
        +  ],
        +  "type": "object"
        +}
    • Changedrequest_price_match1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "claim_summary": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "competitor": {
        +          "type": "string"
        +        },
        +        "competitor_price_zar": {
        +          "type": "string"
        +        },
        +        "dimensions": {
        +          "type": "string"
        +        },
        +        "product_id": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "product_id",
        +        "dimensions",
        +        "competitor",
        +        "competitor_price_zar"
        +      ],
        +      "type": "object"
        +    },
        +    "exclusions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "success": {
        +      "type": "boolean"
        +    },
        +    "whatsapp_url": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "success",
        +    "claim_summary",
        +    "whatsapp_url",
        +    "message",
        +    "exclusions",
        +    "note"
        +  ],
        +  "type": "object"
        +}
    • Changedrequest_swatch2 fields changed
      • changedInput schema / properties / swatch_codes / description
        Previous value: -"Optional specific colour codes (max 5)"New value: +"Optional specific colour codes; no count limit enforced by this handler"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "estimated_delivery_days": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "max": {
        +          "type": "number"
        +        },
        +        "min": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "min",
        +        "max"
        +      ],
        +      "type": "object"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "request_id": {
        +      "type": "number"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "swatch_count": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "request_id",
        +    "status",
        +    "estimated_delivery_days",
        +    "swatch_count",
        +    "message"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_catalog1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "results": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "category": {
        +            "type": "string"
        +          },
        +          "colour_count_in_stock": {
        +            "type": "number"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "product_id": {
        +            "type": "string"
        +          },
        +          "product_url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "product_id",
        +          "name",
        +          "category",
        +          "description",
        +          "product_url",
        +          "colour_count_in_stock"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "results",
        +    "total",
        +    "currency"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_products1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "contact_name": {
        +      "type": "string"
        +    },
        +    "contact_phone": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "products": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "category": {
        +            "type": "string"
        +          },
        +          "colour_count": {
        +            "type": "number"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "features": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "installation_type": {
        +            "type": "string"
        +          },
        +          "materials": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "product_url": {
        +            "type": "string"
        +          },
        +          "suitable_for": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "category",
        +          "product_url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "products",
        +    "total"
        +  ],
        +  "type": "object"
        +}
    • Changedsubmit_enquiry4 fields changed
      • changedInput schema / properties / message / description
        Previous value: -"Additional message or questions from the customer"New value: +"Required enquiry message; at least 10 characters after trimming"
      • addedInput schema / properties / message / minLength
        Added value: +10
      • changedInput schema / required
        Previous value: -[
        -  "product_config",
        -  "customer_name",
        -  "customer_email",
        -  "customer_phone"
        -]New value: +[
        +  "product_config",
        +  "customer_name",
        +  "customer_email",
        +  "customer_phone",
        +  "message"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "contact": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "contact_name": {
        +          "type": "string"
        +        },
        +        "contact_phone": {
        +          "type": "string"
        +        },
        +        "email": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "whatsapp": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [],
        +      "type": "object"
        +    },
        +    "enquiry_id": {
        +      "type": "string"
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "success": {
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "success",
        +    "enquiry_id",
        +    "message",
        +    "contact"
        +  ],
        +  "type": "object"
        +}
    • Changedupdate_cart4 fields changed
      • 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"
        +  }
        +}
      • 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"
        +}
      • addedInput schema / properties / op / default
        Added value: +"set"
      • 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"
        +}
    • Changedupdate_checkout2 fields changed
      • 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"
        +  }
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "ap2": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "merchant_authorization": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "merchant_authorization"
        +      ],
        +      "type": "object"
        +    },
        +    "checkout_id": {
        +      "type": "string"
        +    },
        +    "created_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "currency": {
        +      "const": "ZAR",
        +      "type": "string"
        +    },
        +    "customer": {
        +      "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"
        +    },
        +    "item_count": {
        +      "type": "number"
        +    },
        +    "items": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "additionalProperties": true,
        +            "properties": {
        +              "colour": {
        +                "type": "string"
        +              },
        +              "finish": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "height": {
        +                "type": "number"
        +              },
        +              "mountType": {
        +                "type": "string"
        +              },
        +              "price": {
        +                "type": "number"
        +              },
        +              "productId": {
        +                "type": "string"
        +              },
        +              "productName": {
        +                "type": "string"
        +              },
        +              "quantity": {
        +                "type": "number"
        +              },
        +              "total": {
        +                "type": "number"
        +              },
        +              "width": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "message": {
        +      "type": "string"
        +    },
        +    "next_step": {
        +      "type": "string"
        +    },
        +    "payment_method": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "payment_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "provider_reference": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "total_zar": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "checkout_id",
        +    "status",
        +    "total_zar",
        +    "currency"
        +  ],
        +  "type": "object"
        +}
  2. 26 tool updates
    • First observedcancel_cart
    • First observedcancel_checkout
    • First observedcheck_colour_stock
    • First observedcomplete_checkout
    • First observedconfigure_product
    • First observedcreate_cart
    • First observedcreate_checkout
    • First observedcreate_order
    • First observedget_ar_visualizer_url
    • First observedget_cart
    • First observedget_checkout
    • First observedget_delivery_estimate
    • First observedget_order
    • First observedget_payment_methods
    • First observedget_price
    • First observedget_product
    • First observedget_product_recommendation
    • First observedget_whatsapp_handoff
    • First observedlookup_catalog
    • First observedrequest_price_match
    • First observedrequest_swatch
    • First observedsearch_catalog
    • First observedsearch_products
    • First observedsubmit_enquiry
    • First observedupdate_cart
    • First observedupdate_checkout

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources