Templates
Read your product catalog — templates, components, options, materials
Read-only catalog access, mainly for mapping itemKeys and option codes in pricing logic and CRM product mapping.
GET /templates
Published templates (drafts are excluded). Items:
{
"id": "k12…", "name": "2-panel Lift-Slide Door", "slug": "2-panel-lift-slide",
"description": "… - PVC", "productCategory": "door",
"constraints": { "minWidth": 1800, "maxWidth": 6000, "minHeight": 1900, "maxHeight": 2700 },
"materialTags": ["pvc"]
}(Material lives in description, not name.)
GET /templates/{id}
Single template, same shape.
GET /templates/{id}/catalog
The template plus everything selectable in it:
curl -H "Authorization: Bearer $WF_API_KEY" \
https://app.winfactor.app/api/v1/templates/k12…/catalog{
"template": { … },
"components": [
{ "id": "k34…", "name": "Lift-slide panel", "type": "SD",
"constraints": { "minWidth": 800, "maxWidth": 3000, "minHeight": 1900, "maxHeight": 2700 } }
],
"options": [
{ "id": "k88…", "code": "HRPP", "name": "HR++ glass", "optionGroup": "glass" }
],
"materials": [
{ "id": "k55…", "name": "Anthracite", "side": "inside" }
]
}These IDs are what pricing.calculated configurations and itemKeys reference.
| Field | Notes |
|---|---|
components[].type | Opening-type code: F fixed, TT tilt-turn, T turn, V tilt, K tilt toplight, A awning, SD sliding door, DD Dutch door, plus panel |
components[].constraints | Per-component size bounds in millimetres (template constraints bound the overall frame) |
options[].code | Stable short code — the value to key pricing/CRM mappings on |
options[].optionGroup | Grouping (glass, hardware, …) or null for ungrouped options |
materials[].side | inside, outside, or both — which face the color/material applies to. Materials are the organization-wide palette, not template-specific |