Registrar visualizações
Avisa a plataforma que um produto foi visto, para alimentar o "quem viu também viu" e os segmentos de clientes que viram e não compraram.
Chame uma destas rotas toda vez que a página de um produto abrir. Elas não devolvem dados úteis; o valor está em alimentar duas funções da loja:
POST /products/{id}/viewguarda a visualização por sessão de navegação, anônima, e alimenta o carrossel Quem viu também viu.POST /product-viewsguarda a visualização do cliente logado, e alimenta os segmentos do CRM da loja (por exemplo "viu e não comprou").
Uma vitrine completa chama a primeira sempre, e a segunda só quando há cliente logado.
/api/v1/storefront/products/{id}/viewPúblicaRegistrar visualização por sessão
Parâmetros de caminho
iduuidobrigatórioId do produto visto. Slug não é aceito aqui.
Corpo da requisição
session_idstringobrigatórioIdentificador da sessão de navegação do visitante, escolhido por você (por exemplo um UUID guardado em
localStorage). Se o corpo não o traz, a rota usa o cookie session_id. Sem nenhum dos dois, a resposta é 400./api/v1/storefront/product-viewsClienteRegistrar visualização do cliente logado
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN de um cliente logado. Veja Tokens.Corpo da requisição
product_iduuidobrigatórioId do produto visto.
session_idstringIdentificador da sessão de navegação, o mesmo usado em
/view. Opcional.Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/storefront/products/db033935-75ea-4b6f-abbb-13d0fcd6386d/view" \
-H "Content-Type: application/json" \
-d '{"session_id":"sess-8f3a2c"}'
curl -X POST "$BASE_URL/api/v1/storefront/product-views" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"product_id":"db033935-75ea-4b6f-abbb-13d0fcd6386d","session_id":"sess-8f3a2c"}'Resposta
200Visualização por sessão registrada
json
{ "message": "View recorded" }200Visualização do cliente registrada
json
{ "message": "view recorded" }Campos da resposta
messagestringConfirmação em inglês. Não use o texto para decidir nada; basta o status 200.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | /view sem session_id no corpo e sem cookie session_id | {"error":"session_id is required"} |
| 400 | /product-views sem product_id, ou corpo que não é JSON | {"error":"product_id is required"} |
| 401 | /product-views sem token | {"error":"missing authorization header"} |
| 401 | A loja exige login para navegar e /view não tem token | {"error":"shopping_requires_login","message":"this storefront requires login to browse"} |
| 500 | /view com id que não é um UUID válido (inclui slug), ou falha ao gravar | {"error":"failed to record product view","detail":"..."} |