Campos do perfil
Definição dos campos extras da loja e valores preenchidos pelo cliente.
Cada loja decide que informações pede no cadastro além do básico: inscrição estadual, ramo de atividade, aceite de newsletter, anexos de documentos. Essas perguntas são os campos do perfil. Para montar o formulário, leia a definição dos campos (pública); para preencher e salvar, use os valores do cliente.
/api/v1/storefront/profile/fieldsPúblicaLista a definição dos campos do perfil
Parâmetros de consulta
profile_typestringuservendoruser. Sem o filtro vêm também campos do cadastro de sellers (vendor).sectionstringCBSVC contato, B cobrança/empresa, S entrega, V seller.curl "$BASE_URL/api/v1/storefront/profile/fields?profile_type=user§ion=B"{
"fields": [
{
"id": "44d6dba9-1e7e-4106-8124-8f3066b2cc48",
"field_name": "cnpj",
"field_type": "I",
"section": "B",
"profile_type": "user",
"registration_scope": "pj",
"required": false,
"position": 1,
"is_enabled": true,
"label": "CNPJ",
"label_en": "CNPJ (Business Tax ID)",
"placeholder": "00.000.000/0000-00",
"description": "Cadastro Nacional de Pessoa Juridica - preencha se a compra for para empresa.",
"default_value": "",
"validation": "cnpj",
"is_system": false,
"is_mandatory": false
}
],
"total": 1
}Campos da resposta
fieldsarraySó campos ativos (is_enabled), por seção e posição. Não use cache longo: a loja pode ligar ou exigir um campo a qualquer momento e a resposta não é guardada em cache.
iduuidPUT .../field-values.field_namestringcpf, cnpj, company_name, state_registration, whatsapp...). Também serve de chave.field_typestringITCSRHDPOAYWFI texto, T área de texto, C caixa de seleção, S lista, R opção única, H título, D data, P telefone, O/A/Y/W país/estado/cidade/bairro, F arquivo.sectionstringCBSVregistration_scopestringallpfpjnoneall, pf (só pessoa física), pj (só pessoa jurídica) ou none (só no perfil, fora do cadastro).requiredbooleantrue quando é obrigatório.labelstringlabel_en em inglês. placeholder, description (e as versões _en) completam.validationstringcpf, cnpj, email, cep, phone ou uma expressão regular. Pode faltar.optionsarray[{ "value", "label" }].is_systembooleantrue em campo padrão da plataforma (nome, e-mail, CPF). Campos de sistema que gravam em colunas da conta (column_binding) atualizam o perfil.totalinteger| Status | Quando | Corpo |
|---|---|---|
| 500 | Falha ao ler | {"error":"failed to list profile fields","detail":"..."} |
/api/v1/storefront/profile/field-valuesClienteLê os valores dos campos do cliente
curl "$BASE_URL/api/v1/storefront/profile/field-values" \
-H "Authorization: Bearer $TOKEN"{
"values": [
{ "id": "", "user_id": "264a70c1-9c69-458d-ac73-838543f87da2", "field_id": "78cb20dd-2da3-4327-8f0a-b262523b647c", "field_name": "cpf", "value": "12345678909" },
{ "id": "a75c80a2-5933-4366-80f3-1d2c0b8e6f21", "user_id": "264a70c1-9c69-458d-ac73-838543f87da2", "field_id": "e7ba7b58-88f1-4b4d-9cac-0a651aa25d1a", "field_name": "whatsapp", "value": "11999990000" }
],
"total": 2
}Campos da resposta
valuesarrayid vazio. value é sempre texto.totalinteger| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, ou token inválido ou expirado | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 500 | Falha ao ler | {"error":"failed to get field values","detail":"..."} |
/api/v1/storefront/profile/field-valuesClienteGrava os valores dos campos do cliente
Grava vários valores de uma vez. Cada chave de values é o id ou o field_name do campo; cada valor é um texto. Campos de sistema ligados a colunas da conta (como phone) atualizam a conta. Os campos que não vierem não mudam.
Corpo da requisição
valuesobjectobrigatório{ "<id ou nome do campo>": "valor" }.current_passwordstringcurl -X PUT "$BASE_URL/api/v1/storefront/profile/field-values" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"values": {
"whatsapp": "11999990000",
"state_registration": "123456789"
}
}'{ "message": "field values updated" }| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON; campo que não existe ou não é editável pelo cliente; documento de outra conta | {"error":"field_not_editable","fields":["nope"]} / {"error":"document_not_owned"} |
| 401 | Sem token, ou token inválido ou expirado | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | Senha de confirmação ausente ou errada, quando a loja exige | {"error":"current_password_required"} / {"error":"current_password_invalid"} |
| 404 | Usuário não encontrado | {"error":"user not found"} |
| 500 | Falha ao gravar | {"error":"failed to save field values","detail":"..."} |