Tenho procurado uma maneira de fazer com que os clientes entrem em contato comigo quando tiverem dúvidas sobre o produto. Não é necessário nenhum APP, nem API ou assinatura. O formulário de contato incluirá o título do produto, o SKU do produto, o nome do cliente, o e-mail do cliente e, claro, a mensagem.
Utilizei EmailJS para realizar o envio de email utilizando a conta Gmail. Portanto, é necessária uma conta do Gmail. EmailJS tem 200 emails grátis/mês. Consulte preços do Emailjs.
Isso é compatível com temas do Shopify, como Debut, Supply e Simple . Ainda não experimentei outros temas.
Verifique nosso formulário de contato GRATUITO atualizado do Shopify .
Pré-requisito:
- Conta do Gmail
- Conta EmailJS
Você não precisa de nenhuma experiência em codificação para concluir isso. Basta seguir 8 etapas simples abaixo.
Para iniciar:
1. Primeiro, precisamos do ID do serviço, ID do modelo e ID do usuário do EmailJS. Siga este link para configurar seu EmailJS.
2. Vá para Shopify -> Loja Online -> Temas -> Ações -> então Editar Código.
3. Crie um snippet e nomeie-o como "product-modal-contact-form", na pasta Snippet
4. Cole o CÓDIGO abaixo.
< button id = "contact-modal-button" class = "btn" > Dúvidas sobre o produto ? < / botão > < tipo de script = "texto/javascript" src = "https://cdn.jsdelivr.net/npm/emailjs-com@2/dist/email.min.js " > </script> < tipo de script = "texto/javascript" > emailjs. init ( 'usuário_XXXXXXXX' ) < / roteiro > < 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" > < h1 > Entre em contato com Made4uo < / h1 > < id do formulário = "formulário" > < div classe = "campo" > < label for = "ContactFormTitle" class = "label--hidden" > { { produto. título } } < / rótulo > < input type = "text" id = "ContactFormTitle" name = "ContactFormTitle" value = " {{ product.title }} " readonly = "readonly" > < / div > < div classe = "campo" > < rótulo para = "ContactFormSKU" class = "rótulo--oculto" > { { produto. selecionado_ou_primeira_variável_disponível . sku } } < / label > < input type = "text" id = "ContactFormSKU" name = "ContactFormSKU" value = " {{ product.selected_or_first_available_variant.sku }} " readonly = "readonly" > < / div > < div classe = "campo" > < label for = "ContactFormName" > Nome < / label > < input type = "texto" nome = "ContactFormName" id = "ContactFormName" > < / div > < div classe = "campo" > < label for = "ContactFormEmail" > E-mail < / label > < tipo de entrada = "email" nome = "ContactFormEmail" id = "ContactFormEmail" > < / div > < div classe = "campo" > < textarea rows = "5" id = "ContactFormMessage" name = "ContactFormMessage" >< / textarea > < / div > < input type = "enviar" id = "botão" valor = "Enviar e-mail" > < / formulário > < / div > < / div > < / div > <roteiro> _ const parambtn = documento. getElementById ( 'botão' ) ; documento. getElementById ( 'formulário' ) . addEventListener ( 'enviar' , função ( evento ) { evento. preventDefault ( ) ; parâmetro. valor = 'Enviando...' ; const serviceID = 'default_service' ; const templateID = 'template_XXXXX' ; emailjs. sendForm ( serviceID, templateID, this ) . então ( ( ) => { parâmetro. valor = 'Enviar e-mail' ; alert ( 'Enviado!' ) ; ocultarOverlay ( ) ; ocultaModal ( ) ; } , ( errar ) => { parâmetro. valor = 'Enviar e-mail' ; alerta ( JSON.stringify ( err ) ) ; } ) ; } ) ; const showOverlay = ( ) => documento. querySelector ( "#modal-contact-dark-overlay" ) . estilo . exibir = "bloco" ; const showModal = ( ) => documento. querySelector ( "#contact-modal-container" ) . estilo . exibir = "bloco" ; const hideOverlay = ( ) => documento. querySelector ( "#modal-contact-dark-overlay" ) . estilo . exibir = "nenhum" ; const hideModal = ( ) => documento. querySelector ( "#contact-modal-container" ) . estilo . exibir = "nenhum" ; //Abre a janela modal documento. querySelector ( "#contact-modal-button" ) . onclick = função ( ) { showOverlay ( ) ; mostrarModal ( ) ; } //Feche a janela modal clicando no X documento. getElementById ( "contato-modal-exit" ) . onclick = função ( ) { ocultarOverlay ( ) ; ocultaModal ( ) ; } //Feche a janela modal clicando fora da caixa janela. onclick = função ( evento ) { if ( evento. alvo === documento. querySelector ( '#contact-modal-container' ) ) { ocultarOverlay ( ) ; ocultaModal ( ) ; } } < / roteiro > <estilo> _ #ContactFormMessage { largura : 100 % ; } . campo { margem inferior : 10px ; } . entrada de campo { exibição : bloco ; largura mínima : 100 % ; altura da linha : 1 ; tamanho da fonte : 14px ; } #modal-contact-dark-overlay { Mostrar nenhum ; posição : fixa ; 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,0 ) } para { cor de fundo : rgba ( 0 , 0 , 0 , 0,7 ) } } #contato-modal-contêiner { Mostrar nenhum ; posição : fixa ; topo : 0 ; esquerda : 0 ; largura : 100 % ; altura : 100 % ; índice z : 9999999 ; } #contato-modal { posição : relativa ; margem : 0 automático ; cor de fundo : branco ; largura : 30 % ; 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 ) ; transformar : traduzir ( 0 % , -25 % ) ; superior : 10 % ; } @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 { topo : 10 % ; } para { superior : 25 % } } #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 > |
5. Você precisa alterar o código destacado e editar os itens em negrito para o nome da sua loja e clicar em SALVAR.
6. Vá para a pasta Section e abra o arquivo product-template-liquid. Encontre o código abaixo, geralmente na linha 242.
| {% endform %} |
7. Após o código acima, cole o código abaixo.
| {% render 'product-modal-contact-form' %} |
8. Seu código deve ser semelhante ao abaixo

Você pode experimentá-lo agora em seu site. Você pode ver a cota disponível na parte superior do painel EmailJS. Por favor, não hesite em entrar em contato comigo se tiver dúvidas.
Atualização 29/09/21. Corrigir o problema de tamanho do botão e o botão do PayPal exibido ao abrir o formulário
5 comentários
Hi @Terry Marie,
You should see the z-index property in the step#4 code
How do I increase the z-index property for my popup in my styles? I have other icons/boxes overlapping the questions popup box. That is what Emailjs support suggested I try. Any feedback? Thank you!
Hello testing :)
Hi. I’m sorry if your facing this issue. This is how you delete it.
1. In your online store. Go to themes.
2. Go to the theme you have emailJS.
3. Click Actions, then edit code
4. At the right side of your screen, you will see the theme folders. Find the product-template-liquid.
5. Open the folder. Then in your keyboard. Click Ctrl f at the same time, so the search input will come out. In the search box, paste this code {% render ‘product-modal-contact-form’ }.
6. Find the { render ‘product-modal-contact-form’ %} and delete it, then click SAVE
7. In your Theme folders. Find the Snippet folder.
8. Open the file, product-modal-contact-form
9. At the right corner, click the delete file button. That’s it
How do i delete EmailJS from my website?? I no longer want to use it but I have NO IDEA how to delete it… can you please please help me? Like a step by step guide, which is as easy as this guide :) Thank you!!