From dynamic forms to production BOM, CPQ.core covers the entire configuration and pricing cycle for complex products.
Create complete product configurators without writing HTML or JavaScript. Define fields, validations and conditional logic in the schema.
Number, slider, dropdown, radio, visual swatch, checkbox, text, date, quantity and hidden.
Fields and groups that appear or disappear based on the user's configuration.
Options that change the form structure reload it automatically.
Sections, tabs, accordion or inline. The layout can even be chosen by the user.
form {
dynamic: "fields"
layout: "tabs"
groups {
dimensoes: { label: $"group_dimensoes", order: 1 }
acabamentos: {
label: $"group_acabamentos"
visible_when: tipo_produto != "standard"
}
}
fields {
largura: {
type: number
label: $"label_largura"
unit: "mm"
min: 400, max: 2400
}
cor: {
type: swatch
label: $"label_cor"
options: ["branco", "cinza", "preto"]
}
vidro_duplo: {
type: checkbox
label: $"label_vidro_duplo"
visible_when: tipo_produto == "premium"
}
}
}
Automatically get any information derived from the configuration: price, bill of materials, production times, weights, volumes and any other data you define as output.
All outputs update with every configuration change, without reloading the page.
Define groups like "production", "shipping", "quality" — each with the fields you need: m², linear metres, times, weights, units.
Price tables by quantity with automatic linear interpolation between ranges.
EUR, USD, GBP, BRL with separators, decimals and symbol position per locale.
// Tabelas de preço e materiais
table precos_vidro {
1: 85.00 // até 1m²
3: 72.00 // até 3m²
6: 65.00 // até 6m²
}
// Cálculos
let area = largura * altura / 1000000
let preco_m2 = interpolate(precos_vidro, area)
let perimetro = (largura + altura) * 2 / 1000
add price: area * preco_m2
multiply price by 1.23 // IVA
// BOM para produção
output {
production {
vidro_m2: round(area, 2)
perfil_m: round(perimetro, 1)
kit_ferragens: 1
parafusos: ceil(perimetro * 5)
}
}
All configuration and pricing logic in a readable schema. No conventional programming, no code deployment.
Map materials to prices, colours to references, quantities to discounts.
If/else for complex business rules: surcharges, promotions, restrictions.
Define complex calculations once, use across multiple products.
Include common tables and functions across products with cpq://system/...
include "cpq://system/base_caixilharia"
@config {
let margem = 1.15
let iva = 0.23
}
func preco_perfil(metros, tipo) {
let base = lookup(tabela_perfis, tipo)
let custo = metros * base.preco_m
return custo * @config.margem
}
let custo_perfil = preco_perfil(perimetro, tipo_perfil)
let custo_vidro = area * preco_m2_vidro
add price: custo_perfil + custo_vidro
multiply price by (1 + @config.iva)
error_if area > 6 : $"err_area_max" { max: 6 }
warn_if area > 4 : $"warn_area_grande"
Prevent impossible orders and speak each customer's language.
Rules that prevent impossible-to-produce configurations. The user sees a clear message with the values in question.
Non-blocking alerts for special situations: high quantities, unusual dimensions, affected lead times.
Labels, errors, select options — all translatable. Support for PT, EN, ES, FR, DE and other languages.
Value interpolation in messages: "Area 15m² exceeds maximum of 10m²" generated automatically.
Translations at system, tenant and product level. Each level can override the previous one for full customisation.
Automatic currency formatting with correct symbol, separators and decimals for each market.
Ready-made plugins with feature parity. Install, configure and start selling configurable products.
All 10 field types supported on each platform, with the same behaviour.
Price updated on every change, natively integrated with the shopping cart.
Configuration saved in the order. BOM available for each item at checkout.
Adapt the configurator to the store's visual identity. Additional customisation via CSS.
Clean, modern design
Professional, dark tones
Bold, orange accent
Bigger fonts, accessibility
More fields, less space
Borderless, minimalist
Complete panel for managing products and documented API for custom integrations.
Code editor with autocomplete, real-time validation and section navigation.
Test configurations and see prices before publishing. Errors with direct link to schema line.
Admin, editor and viewer. Data isolated by tenant with dedicated API Keys.
OpenAPI specification, quick start guide and interactive documentation portal.
// Fluxo tĂpico de integração via API
// 1. Obter formulário do produto
GET /v1/products/janela-aluminio/form
?tenant_id=demo&lang=pt-PT
// 2. Utilizador preenche configuração
// (formulário renderizado pelo frontend)
// 3. Calcular preço e BOM
POST /v1/calculate
{
"product_id": "janela-aluminio",
"configuration": {
"largura": 1200,
"altura": 1000,
"vidro": "temperado"
},
"quantity": 5,
"output_groups": ["*"]
}
// Resposta: preço + BOM + warnings
Create a free account and test CPQ.core with demo products.