Widget de loja online
Integração do carrinho
Como o widget transforma uma disposição em linhas de carrinho e por que razão preço, stock e checkout continuam a ser a autoridade na sua plataforma.
O widget transforma uma disposição terminada em linhas de carrinho concretas e entrega-as à sua loja. A sua loja continua responsável por preços, descontos, stock e checkout.
Carga útil do callback
Quando o comprador clica em Adicionar ao carrinho, o widget chama onAddToCart com:
{
lines: [
{ sku: 'TILE-600-300', qty: 5, unit: 'box' },
],
layoutFingerprint: '…',
layoutToken: '…',
}
lines são os artigos a adicionar. Cada linha é um SKU do catálogo, uma quantidade numérica e uma unidade. A resposta inclui sempre uma linha de azulejos — o total de azulejos a comprar, expresso em caixas.
Os consumíveis são opcionais
Cola, betume e primário são sempre calculados e mostrados no orçamento no ecrã e no Blueprint PDF. Se também sincronizam para o carrinho é uma definição opcional, ativada para comerciantes que vendem esses artigos. Quando está ativada, essas linhas são adicionadas ao lado do azulejo:
{
lines: [
{ sku: 'TILE-600-300', qty: 5, unit: 'box' },
{ sku: 'ADHESIVE-25', qty: 12.5, unit: 'kg' },
{ sku: 'GROUT-2KG', qty: 3, unit: 'kg' },
{ sku: 'PRIMER-10L', qty: 1, unit: 'l' },
],
layoutFingerprint: '…',
layoutToken: '…',
}
Fale connosco se vende consumíveis e quer incluí-los — ativamo-lo para a sua loja durante a configuração.
layoutFingerprint é um identificador estável da disposição. layoutToken é um token assinado que pode guardar para reabrir mais tarde a disposição exata — por exemplo, para anexar o plano a uma encomenda.
Adicionar ao seu carrinho
O seu callback adiciona as linhas através da própria API da sua loja:
onAddToCart(payload) {
payload.lines.forEach((line) => {
yourStore.addToCart({
sku: line.sku,
quantity: line.qty,
unit: line.unit,
});
});
}
Para WooCommerce isso significa uma chamada cart/add-item por linha; para Shopify, uma mutação de carrinho; para uma loja personalizada, o seu próprio serviço de carrinho. O widget nunca chama a sua loja diretamente — fá-lo você, com os SKU e as quantidades que resolveu.
O preço fica na sua loja
O widget nunca envia um preço. Pode mostrar preços de tabela do seu catálogo no orçamento como contexto, mas o preço final, impostos, promoções e descontos de fidelização são todos aplicados pelo seu checkout quando as linhas são adicionadas. Isso mantém um único motor de preços e evita qualquer desvio entre o widget e o carrinho.
O stock fica na sua loja
O widget adiciona o que a disposição exige. A sua loja valida o stock desses SKU exatamente como em qualquer outro «adicionar ao carrinho». Se um SKU está baixo ou indisponível, o seu fluxo existente de encomendas pendentes e notificações aplica-se sem alterações.
Endpoint de intenção de carrinho
Para integrações headless ou no lado do servidor existe um endpoint de intenção de carrinho que devolve as mesmas linhas resolvidas. O seu servidor chama-o com a disposição e adiciona o resultado ao carrinho de sessão:
curl -X POST "https://embed.scalarcut.com/v1/tiling/cart-intent" \
-H "Authorization: Bearer $WIDGET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"catalog": "YOUR_CATALOG_SLUG",
"sku": "TILE-600-300",
"layoutFingerprint": "…",
"quantities": { "boxes": 5 }
}'
Resposta:
{
"lines": [
{ "sku": "TILE-600-300", "qty": 5, "unit": "box" }
],
"layoutFingerprint": "…",
"layoutToken": "…"
}
Com os consumíveis ativados na sua loja, o pedido pode também levar adhesiveKg, groutKg e primerL, e a resposta ganha as linhas correspondentes.
Veja a referência da API para o contrato completo do endpoint.