Como adicionar o formulário de contato do Shopify a uma página de produto do Shopify

Shopify contact form image

Compatibilidade: Todos os temas GRATUITOS do Shopify 2.0 SOMENTE . Funciona da versão inferior até a versão 12

No mundo dinâmico das compras online, fornecer um excelente atendimento ao cliente é a chave para o sucesso. Adicionar um formulário de contato diretamente às páginas de produtos do Shopify pode melhorar significativamente a experiência de compra, permitindo que os clientes entrem em contato facilmente com perguntas ou comentários. Este guia orientará você nas etapas simples para integrar um formulário de contato à página de produto do Shopify, melhorando o envolvimento do cliente e potencialmente aumentando as vendas.

Por que adicionar um formulário de contato do Shopify à página do seu produto? Integrar um formulário de contato na página do seu produto oferece vários benefícios:

  • Comunicação direta : os clientes podem fazer perguntas ou compartilhar preocupações imediatamente, diretamente na página do produto.
  • Maior envolvimento : um formulário de contato convida à interação, mantendo os clientes engajados em seu site.
  • Maior confiança : fornecer uma linha direta de comunicação aumenta a confiança em sua marca.

Melhores práticas para formulários de contato:

  • Mantenha a simplicidade : não sobrecarregue os clientes com muitos campos.
  • Frase de chamariz clara : use uma linguagem envolvente para o botão de envio, como "Pergunta sobre este produto?".
  • Design responsivo : certifique-se de que seu formulário tenha uma boa aparência em computadores e dispositivos móveis.

O formulário fica assim na página do produto

Formulário de contato do Shopify na imagem da página do produto

Para iniciar:

1. Vá para loja Admin Shopify > Temas > Ações > Editar código

2. Na pasta Snippet, clique em "Adicionar um novo snippet" e nomeie-o como "shopify-contact-form".

3. Abra o snippet recém-criado e coloque o código abaixo. Certifique-se de SALVAR.

 <estilo> _
 #ContactFormMessage {
 largura : 100 %;
 }
 . campo {
 margem inferior : 10px ;
 }
 . entrada de campo {
 exibição : bloco ;
 min - largura : 100 %; 
altura da linha : 1 ;
 tamanho da fonte : 14px ;
 }
 #modal-contact-dark-overlay {
 Mostrar nenhum ;
 posição : fixa ;
 índice z : 1 ;
 topo : 0 ;
 esquerda : 0 ; 
largura : 100 %;
 altura : 100 %;
 cor de fundo : rgba ( 0 , 0 , 0 , 0,7 ) ;
 estouro : automático ;
 nome da animação : animateopacidade ; 
animação - duração : 0,5s ;
 }
 @keyframes animateopacidade {
 de {
 cor de fundo : rgba ( 0 , 0 , 0 , 0 ) ;
 }
 para { 
cor de fundo : rgba ( 0 , 0 , 0 , 0,7 ) ;
 }
 }
 #contato-modal-contêiner {
 Mostrar nenhum ;
 posição : fixa ;
 superior : 50 %; 
esquerda : 50 %;
 largura : 100 %;
 altura : 100svh ;
 índice z : 100 ;
 transformar : traduzir ( -50 % , -50 % ) ; 
alinhar - conteúdo : centro ;
 alinhar - itens : centro ;
 justificar - conteúdo : centro ;
 }
 #contato-modal {
 posição : relativa ;
 cor de fundo : branco ;
 margem : 2rem ;
 largura : 100 %; 
largura máxima : 400px ;
 altura : automático ;
 preenchimento : 20px 40px 50px 40px ;
 caixa - sombra : -1px 3px 18px 0px rgba ( 128 , 128 , 128 , 1 ) ; 
animação : drop - in 0,5s cúbico - bezier ( 0,175 , 0,885 , 0,32 , 1,275 ) ;
 }
 @media ( largura máxima : 1200px ) {
 #contato-modal {
 largura : 40 %;
 } 
}
 @media ( largura máxima : 770px ) {
 #contato-modal {
 largura : 85 %;
 superior : 10 %;
 preenchimento : 20 % 5 % 5 % 10 %;
 }
 } 
@keyframes drop - in {
 de {
 Os 100 melhores % ;
 }
 para {
 topo : 0 %;
 }
 }
 #contato-modal-exit {
 posição : absoluta ;
 direita : 20px ;
 borda : nenhuma ;
 plano de fundo : nenhum ; 
tamanho da fonte : 18px ;
 }
 . ocultar - modal - conteúdo {
 Mostrar nenhum ;
 }
 #botão-modal de contato {
 posição : relativa ;
 exibição : bloco ;
 largura : 100 %;
 }
 entrada #ContactFormTitle { 
fundo - cor : #f5f5f5;
 estilo da fonte : itálico ;
 }
 insira #ContactFormSKU {
 fundo - cor : #f5f5f5;
 estilo da fonte : itálico ;
 }
 entrada #ContactFormTitle: foco {
 esboço : nenhum ;
 }
 entrada #ContactFormSKU: foco { 
esboço : nenhum ;
 }
 </ estilo >
 < shopify - contato - formulário >
 < button class = "shopify-contact-form-btn btn button" > Dúvida sobre este produto? </ botão > 
< div id = "modal-contact-dark-overlay" </ div >
 < div id = "contato-modal-container" >
 < div id = "contato-modal" >
 < botão id = "contato-modal-exit" >& #x2715;</button> 
< p id = "mensagem de sucesso modal" </ p >
 < div id = "contato-modal-form-content" >
 < h2 class = "h2" > Contato { { loja. nome } } </ h2 > 
{ %- formulário 'contato' , id : 'ContactForm' , classe : contact_form_class -% }
 < input type = "oculto" nome = "contato[página do produto]" valor = " {{ product.title }} - {{ product.url }} " > 
{ %- se formulário. postado_com sucesso ? -% }
 < h2 class = "form-status form-status-list form__message" tabindex = "-1" foco automático >
 { % renderizar 'sucesso do ícone' % } 
{ { 'templates.contact.form.post_success' | } }
 </ h2 >
 { %- formato elsif. erros -% }
 < div class = "form__message" > 
< h2 class = "form-status caption-large text-body" role = "alert" tabindex = "-1" foco automático >
 { % renderizar 'erro de ícone' % }
 { { 'templates.contact.form.error_heading' | } } 
</ h2 >
 </div> _ _
 < ul class = "form-status-list caption-large" role = "list" >
 <li> _
 <a href = "#ContactForm-email" class = "link" > _ _ _ _ _ _ 
{ { forma. erros . campos_traduzidos . e-mail | capitalizar } }
 { { forma. erros . mensagens . e-mail } }
 </a> _
 </ li >
 </ul> _ 
{ %- fim se -% }
 < div class = "contato__campos" >
 < div classe = "campo" >
 < entrada
 classe = "campo__input"
 preenchimento automático = "nome" 
tipo = "texto"
 id = "Nome do ContactForm"
 nome = "contato[ {{ 'templates.contact.form.name' | t }} ]"
 value = " {% if form.name %} {{ form.name }} {% elsif customer %} {{ customer.name }} {% endif %} "
 placeholder = " {{ 'templates.contact.form.name' | t }} "
 > 
< label class = "field__label" for = "ContactForm-name" > { { 'templates.contact.form.name' | t } } </ rótulo >
 </div> _ _ 
< div class = "campo campo com erro" >
 < entrada
 preenchimento automático = "e-mail"
 tipo = "e-mail"
 id = "ContactForm-e-mail"
 classe = "campo__input"
 nome = "contato[e-mail]"
 verificação ortográfica = "falso" 
autocapitalizar = "desligado"
 valor = " {% if form.email %} {{ form.email }} {% elsif customer %} {{ customer.email }} {% endif %} "
 aria - obrigatório = "verdadeiro"
 { % se formulário. erros contém 'e-mail' % } 
aria - inválido = "verdadeiro"
 aria - descrito por = "ContactForm-email-error"
 { % fim se % }
 placeholder = " {{ 'templates.contact.form.email' | t }} "
 > 
< label class = "field__label" for = "ContactForm-email" >
 { { - 'templates.contact.form.email' | } }
 < span aria - hidden = "true" >*</ span ></ label 
>
 { %- se formulário. erros contém 'e-mail' -% }
 < classe pequena = "contact__field-error" id = "ContactForm-email-error" > 
< span class = "visualmente oculto" > { { 'accessibility.error' | t } } </ span >
 < span class = "form__message" > 
{ %- renderizar 'erro de ícone' -% }
 { { - forma. erros . campos_traduzidos . e-mail | capitalizar } }
 { { forma. erros . mensagens . e-mail - } } 
</span> _
 </ pequeno >
 { %- fim se -% }
 </div> _ _
 </div> _ _
 < div classe = "campo" >
 < entrada 
tipo = "tel"
 id = "ContactForm-telefone"
 classe = "campo__input"
 preenchimento automático = "tel"
 nome = "contato[ {{ 'templates.contact.form.phone' | t }} ]"
 padrão = "[0-9\-]*" 
valor = " {% if form.phone %} {{ form.phone }} {% elsif customer %} {{ customer.phone }} {% endif %} "
 placeholder = " {{ 'templates.contact.form.phone' | t }} "
 > 
< label class = "field__label" for = "ContactForm-phone" > { { 'templates.contact.form.phone' | t } } </ rótulo >
 </div> _ _ 
< div classe = "campo" >
 < área de texto
 linhas = "10"
 id = "ContactForm-corpo"
 class = "campo de área de texto__input"
 nome = "contato[ {{ 'templates.contact.form.comment' | t }} ]"
 placeholder = " {{ 'templates.contact.form.comment' | t }} " 
>
 { { - forma. corpo - } }
 </ área de texto >
 < label class = "form__label field__label" for = "ContactForm-body" > Mensagem </ label > 
</div> _ _
 < div class = "contato__button" >
 < button type = "submit" class = "button" > Enviar e-mail </ button >
 </div> _ _ 
{ %- formulário final -% }
 </div> _ _
 </div> _ _
 </div> _ _
 </ shopify - contato - formulário >
 <roteiro> _
 classe ShopifyContactForm estende HTMLElement { 
construtor ( ) {
 super ( ) ;
 esse . botão = isto . querySelector ( '.shopify-contact-form-btn' ) 
esse . closeButton = isto . querySelector ( '#contact-modal-exit' ) ;

 janela. addEventListener ( " clique " , isto.windowClicked.bind ( este ) ) 
esse . botão fechar . addEventListener ( ' clique ' , isto.closeModal.bind ( isto ) ) 
esse . botão . addEventListener ( 'clique' , este . botãoClicked . vincular ( isto ) )
 }

 botãoClicado ( ) { 
esse . querySelector ( "#modal-contact-dark-overlay" ) . estilo . exibir = "bloco" ;
 esse . querySelector ( "#contact-modal-container" ) . estilo . exibir = "flexível" ;
 }
 
fecharModal ( ) {
 esse . querySelector ( "#modal-contact-dark-overlay" ) . estilo . exibir = "nenhum" ; 
esse . querySelector ( "#contact-modal-container" ) . estilo . exibir = "nenhum" ;
 }

 janelaClicada ( ) { 
if ( evento. alvo === documento. querySelector ( '#contact-modal-container' ) ) {
 esse . fecharModal ( )
 }
 }
 }
 
elementos personalizados. define ( 'shopify-contact-form' , ShopifyContactForm ) ;
 </roteiro> _

4. Vamos abrir o editor de temas. Na página Admin, vá para temas e clique em “Personalizar”.

5. Vá para o modelo do seu produto e adicione um bloco chamado “Líquido personalizado”.

6. Coloque o código abaixo na área de texto fornecida e salve.

{% render "shopify-contact-form" % }

É isso (",)

0 comentários

Deixe um comentário