# ae.artforprinting.print — UCP extension (2026-08-25)

Art for Printing is a print and packaging manufacturer in Abu Dhabi. Most of what it sells is a
**specification**, not a SKU. This extension adds the fields that `dev.ucp.shopping.checkout`
does not have for that. It is a stopgap until the `dev.ucp.print` vertical is published; that
vertical has been announced and is due in Q4 2026. Schema: `/ucp/print-extension.schema.json`.

## How ordering works here

1. **Discover and price.** Use the MCP tools at `/api/mcp`: `search_products`, `get_product`
   (the configurator fields), `configured_quote` and `price_quote`.
2. **Create a checkout.** Use `POST /api/ucp/v1/checkout-sessions` or the MCP tool
   `create_checkout`, with a `UCP-Agent: profile="…"` header.
   - A list product is `{"item":{"id":"<slug>"},"quantity":N}`.
   - A configured product also needs `"configuration":{"values":{…}}`. Any missing field comes
     back in `messages[]` with a JSONPath.
3. **Hand over to the buyer.** When every line is priced, `status` is `requires_escalation`.
   Give the buyer the `continue_url`. On that page the buyer reviews the order, adds any missing
   contact details, confirms and pays. This shop takes no payment from the agent's side
   (`payment_handlers` is empty).
4. **Follow the order.** Use `GET /api/ucp/v1/checkout-sessions/{id}` or `get_checkout`. Once
   the buyer has ordered, `status` becomes `completed` and `order.id` appears.
5. **Track to delivery.** Use `GET /api/ucp/v1/orders/{order.id}` or `get_order`. Events are
   appended as the order moves through: received, paid, confirmed for production, ready,
   delivered.

## Things to know

- **Amounts** are integers in fils (AED minor units). VAT (5%) and delivery are separate totals.
- **The checkout id is the checkout itself** (sealed, encrypted, 72 h). An update returns a new id.
- **Artwork** is sent after ordering. A person checks it before production starts.
- **Sticker sheets, company stamps and NCR books** are configured on their product pages. The
  checkout returns `configure_on_merchant_page` with the link.
- **Order ids** combine the order number with a tracking code, so an order number on its own
  opens nothing.
