Pop-up de Newsletter
Como adicionar e gerenciar o componente Pop-up de Newsletter na sua loja.
O componente Pop-up de Newsletter é um recurso para inscrição de clientes para uma newsletter da loja. Com esse componente o cliente se inscreve para uma lista de contatos para receber informações e novidades da loja. Esse componente permite que o lojista configure como os contatos recebidos podem ser utilizados, como integrações com sistemas externos, para o envio de e-mails.
Demonstração do componente
Visualize como é o componente acessando o Pop-up de Newsletter Demo. Recomendamos utilizar a versão mais atualizada do componente: (
v5
).
Implementação
Para habilitar o Pop-up de Newsletter você deve importar os arquivos JavaScript e CSS do componente no projeto. Como é um componente nativo, é possível que esses arquivos já estejam no seu template, pois é preciso incluí-los uma única vez. Confira a seguir todos os passos para habilitar e inserir o componente em uma página.
- Abra os arquivos do template da loja;
- Acesse liquids > partials > common > _popup_newsletter.liquid;
- Verifique se o arquivo contem códigos a seguir:
{% load_banners position: 'newsletter-popup' limit: 1 %}
{% for banner in loaded_banners %}
{% assign success_message = 'Obrigado!' %}
{% assign popup_description = banner.description %}
{% assign popup_extra_description = '' %}
{% if banner.description contains '<hr/>' %}
{% assign popup_description = banner.description | split: '<hr/>' | first %}
{% assign success_message = banner.description | split: '<hr/>' | last | strip_html | strip %}
{% endif %}
{% assign description_content = popup_description | split: '</p>' %}
{% assign popup_description = description_content[0] | strip_html | strip %}
{% comment %} Descrição extra {% endcomment %}
{% if description_content[1] and description_content[1] != blank %}
{% assign popup_extra_description = description_content[1] | strip_html | strip %}
{% endif %}
{% assign image_url = '' %}
{% if banner.file_url != blank %}
{% assign image_url = banner.file_url | resize: '500x' %}
{% endif %}
<script>
window.popupNewsletterSettings = {
script: "{{ 'newsletter-popup.v5.js' | component_path }}",
styles: "{{ 'newsletter-popup.v5.css' | component_path }}",
imageUrl: '{{ image_url }}',
title: '{{ banner.subtitle }}',
description: '{{ popup_description }}',
extraDescription: '{{ popup_extra_description }}',
subdomain: '{{ current_shop.subdomain }}',
success: '{{ success_message }}'
}
</script>
<div id="component-popup-newsletter-root"></div>
{% endfor %}
- Acesse assets > javascripts >components > vndaComponents.js;
- Verifique se o arquivo contém a seguinte função e configure-a de acordo com as suas necessidades:
export const NewsletterComponent = {
root: document.querySelector('#component-popup-newsletter-root'),
settings: window.popupNewsletterSettings || false,
loaded: false,
setPopupNewsletter: function () {
const { settings, root } = NewsletterComponent;
// Define propriedades do componente
let maxWidth = settings.maxWidth;
let imageUrl = settings.imageUrl;
let title = settings.title;
let description = settings.description;
let extraDescription = settings.extraDescription;
let subdomain = settings.subdomain;
let successMessage = settings.success;
// Inicia o componente
const componentNewsletterPopup = new Vnda.Component.NewsletterPopup({
maxWidth: maxWidth,
maxHeight: 500,
imageUrl: imageUrl,
imagePosition: 'left',
popupPosition: 'center',
title: title,
description: description,
extraDescription: extraDescription,
textBtnSubmit: 'Enviar',
classBtnSubmit: 'button-newsletter',
formKey: `${subdomain}-newsletter`,
hasNameField: false,
hasLastNameField: false,
hasDateOfBirthField: false,
hasPhoneField: false,
successMessage: successMessage,
delay: 500,
frequency: '7',
language: 'pt-BR',
placeholders: {
// firstName: 'Nome',
// lastName: 'Sobrenome',
// phone: 'Telefone',
email: 'Digite seu e-mail',
},
});
// Renderiza o componente e marca como carregado
componentNewsletterPopup.render(root);
NewsletterComponent.loaded = true;
},
loadPopupNewsletter: function () {
if (!NewsletterComponent.loaded) {
const { settings } = NewsletterComponent;
addAsset(settings.script, NewsletterComponent.setPopupNewsletter);
addAsset(settings.styles);
}
},
init: function () {
const { root, settings } = this;
if (!root || !settings) return;
const eventType = window.innerWidth <= 1024 ? 'scroll' : 'mousemove';
window.addEventListener(eventType, () => {
NewsletterComponent.loadPopupNewsletter();
}, { once: true });
},
};
Confira os parâmetros do componente para configurá-los como desejado.
Parâmetros do componente
Os parâmetros definem as características dos Pop-up de Newsletter. Veja na tabela abaixo os parâmetros e o que eles determinam no componente. Note que os parâmetros que possuem valores padrões estão sinalizados na coluna Default, e as opções de entrada que o parâmetro pode receber estão apresentados na coluna Tipos/Opções de entrada.
Parâmetro | Descrição | Tipos/Opções de entrada | Default | Obrigatório |
---|---|---|---|---|
maxWidth | Define a largura máxima do pop-up. | - | - | Não |
maxHeight | Define altura máxima do pop-up. | - | - | Não |
imageUrl | URL da imagem do pop-up. | - | - | Não |
imagePosition | Define a posição da imagem do pop-up, no caso de pop-up com imagem. | left ou right | right | Não |
popupPosition | Define a posição do pop-up na tela. | center ,top ,bottom ,right ,left ,right top ,left top ,right bottom ouleft bottom | center , | Não |
title | Define a label do título do pop-up. | Do tipo string | - | Não |
description | Define o primeiro parágrafo para a descrição exibida no popup | Do tipo string | - | Não |
extraDescription | Define um segundo parágrafo | Do tipo string | - | Não |
textBtnSubmit | Define a label do botão do formulário do pop-up. | Do tipo string | Enviar | Não |
formKey | Vincula o componente ao formulário criado no Admin para newsletter. Preencha essa campo com o Key do Admin. | - | - | Sim |
hasNameField | Habilitar o campo para Nome /Name no formulário. | left ou right | Não | |
hasLastNameField | Habilitar o campo para Sobrenome /Last Name no formulário. | left ou right | Não | |
hasDateOfBirthField | Habilitar o campo Data de aniversário /Birthday no formulário. | left ou right | Não | |
hasPhoneField | Habilitar o campo Telefone /Phone no formulário. | left ou right | Não | |
successMessage | Define a label (texto) de sucesso de envio do formulário. | Do tipo string | Obrigado! | Não |
classBtnSubmit | Define uma a classe extra para estilização do botão do formulário. | .btn .btn-default .btn-primary .btn-success .btn-info .btn-warning .btn-danger ou.btn-link | Não | |
delay | Define o tempo (em milissegundos) para que o pop-up abra. | Do tipo int | 500 | Não |
frequency | Define a frequência de abertura do pop-up para o usuário | once always 7 14 30 365 | always | Não |
language | Define o idioma das labels padrões do formulário. | pt-BR en | pt-BR | Não |
placeholders | Define os textos placeholders exibidos nos inputs | firstName : "texto desejado",lastName : "texto desejado",phone : "texto desejado",email : "texto desejado", | Nome Sobrenome Telefone E-mail | Não |
O campo
Exemplo de implementação
Confira foi feita a implementação do componente de popup de newsletter no Template1 acessando os arquivos:
Updated about 2 months ago