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…