Como carregar um Formulário em um bloco VTEX.IO?

Alguém tem algum exemplo funcionando da integração do MasterData v1 com formulário ou alguma dica do por que o formulário não carregada de forma nenhuma?

Quando chamo a página /faleconosco, retorna o erro abaixo:

Error: Network error: Only public queries are allowed during server side rendering

​Código do erro:

"page":string"store.custom#faleconosco" "status":int422

/store/blocks/faleconosco.json

{ "store.custom#faleconosco":{ "children":["flex-layout.row#formRow"] }, "flex-layout.row#formRow": { "children": [ "flex-layout.col#formCol" ] }, "flex-layout.col#formCol": { "children": [ "form" ] }, "form": { "props": { "entity": "quotes", "schema": "faleconosco" } } }

Observação: já criei a entidade no MasterData (procedimento v1) e também gerei o schema_name "faleconosco" usando o procedimento do endpoint save schema by name.

Seu erro basicamente informa que o formulário não esta com "consulta pública" habilitada.

Recomendo dar uma olhada na documentação:

https://vtex.io/docs/recipes/templates/creating-a-native-form-for-your-store-users/

Oi @Bruno T. Araujo obrigado pelo retorno.

O ponto de partida foi esse material mesmo.

Como habilitar meu formulário para consulta pública?

Veja o Json que foi utilizado para a ação do "save schema by name":

{ "title": "Contato", "type": "object", "properties": { "email": { "type": "string", "format": "email", "title": "Email" }, "telefone": { "type": "string", "title": "Telefone" }, "descricao": { "type": "string", "title": "Descrição" }, "nomeCompleto": { "type": "string", "maxLength": 100, "title": "Nome Completo" } }, "required": [ "email", "nomeCompleto", "telefone" ], "v-security": { "publicJsonSchema": true, "allowGetAll": false, "publicRead": [ "nomeCompleto", "email", "telefone" ], "publicWrite": [ "nomeCompleto", "email", "telefone" ], "publicFilter": [ "nomeCompleto", "email", "telefone" ] } }

O que entendi é que você esta tentando chamar um form com outra identificação e não a que você cadastrou no json Schema acima.

Você esta requisitando:

"entity": "quotes",

"schema": "faleconosco"

O entity você precisa validar, mas o schema é o campo "title" que esta preenchido como "Contato" de acordo com o json informado.

"entity": GERALMENTE são dois caracteres, que você informa na criação do Schema, na documentação esta como "data_entity_name".

Ou @Bruno T. Araujo​ a verdade é que acho que já tentei de tudo. Já tentei usar a sigla da entidade QU, entidade em minúsculo quotes, tal qual está registrado Quotes.... e no schema tentei várias configurações tbem, mas até agora sem sucesso.

​​Mas, e esse lance de habilitar meu formulário para consulta pública? Como que vejo isso, por gentileza?

@Bruno T. Araujo​ deu tudo certo agora.... obrigado por toda ajuda!

{ "store.custom#faleconosco":{ "children":["flex-layout.row#formRow"] }, "flex-layout.row#formRow": { "children": [ "flex-layout.col#formCol" ] }, "flex-layout.col#formCol": { "children": [ "form" ] }, "form": { "props": { "entity": "QU", "schema": "quotes" } } }

Excelente!

@andre1, o que foi que você fez que deu certo? Eu tô com problema aqui ainda…

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.