Integração com o Instagram
Como integrar sua loja com o Instagram
Você pode integrar a vitrine da loja com o Instagram para que os posts fiquem visíveis na vitrine. Com a integração, uma seção carrossel com as imagens, descrições e links dos posts do Instagram ficam visíveis na vitrine da loja.
Entre em contato com a equipe Vnda antes de configurar essa integração. A integração com o Instagram é feita após o lançamento da loja, e a equipe Vnda auxiliará você nessa integração.
Para realizar a integração, inclua o código a seguir nos arquivos do seu projeto. Normalmente nomeamos esse arquivo com instagram.liquid
.
{% assign html_instagram_posts = blank %}
{%- comment -%}
A tag load_posts busca os posts do instagram, passando como parâmetro from: "instagram".
Não é necessário informar o token do Instagram nem o usuário no front-end.
O retorno da tag é a variável loaded_posts que contém um array de objetos com as informações dos posts.
exemplo de retorno:
[
{
"title": "Descrição do post no Instagram",
"image": "urldaimagem",
"timestamp": "2022-10-23T12:18:14+0000",
"url": "urldopost",
"permalink": "permalinkdopost"
},
{
"title": "Descrição do post no Instagram",
"image": "urldaimagem",
"timestamp": "2022-10-23T12:18:14+0000",
"url": "urldopost",
"permalink": "permalinkdopost"
}
]
{%- endcomment -%}
{% load_posts from: 'instagram' %}
{%- comment -%}
Construção da estrutura HTML caso o load_posts retorne posts. Essa estrutura pode ser customizada de acordo com a necessidade do cliente.
{%- endcomment -%}
{% capture html_instagram_posts %}
{% assign count_posts = 0 %}
{% for post in loaded_posts %}
{% if count_posts < 12 %}
{% unless post.image contains '.mp4' %}
{% unless post.permalink == null %}
<div class="swiper-slide">
<a aria-label="Ir para {{ post.title }}" href="{{ post.permalink }}" rel="external" target="_blank">
<div class="image -square">
{% comment %}
não utilizar o filtro | resize nessas imagens. como é uma integração com o Instagram, as imagens estão armazenadas lá, e não conseguimos manipular o tamanho.
{% endcomment %}
<img class="swiper-lazy" data-src="{{ post.image }}" alt="{{ post.title }}"/>
<div class="skeleton"></div>
</div>
</a>
</div>
{% assign count_posts = count_posts | plus: 1 %}
{% endunless %}
{% endunless %}
{% endif %}
{% endfor %}
{% endcapture %}
{%- comment -%}
Construção da estrutura HTML para alterações no ambiente staging (if environment == 'staging').
Essa estrutura pode ser customizada de acordo com a necessidade do cliente.
Sempre que a estrutura com placeholders for alterada, deve-se alterar a estrutura dinâmica para que ela seja aplicada quando for realizado o deploy para production
{%- endcomment -%}
{% comment %} Placeholder para staging {% endcomment %}
{% if environment == 'staging' %}
{% capture html_instagram_posts %}
{% for i in (1..12) %}
<div class="swiper-slide">
<a aria-label="Post placeholder {{ forloop.index }}" href="#" rel="external" target="_blank">
<div class="image -square">
<img alt="Instagram Post" class="swiper-lazy" data-src="https://picsum.photos/600"/>
<div class="skeleton"></div>
</div>
</a>
</div>
{% endfor %}
{% endcapture %}
{% endif %}
{%- comment -%}
Estrutura final e estrutura dos posts
Nesse exemplo a estrutura de slider utilizamos o Swiper, mas pode ser implementada qualquer outra estrutura HTML.
{%- endcomment -%}
{% if html_instagram_posts != blank %}
<section class="section instagram container">
{% load_banners position: 'home-instagram-titulo' limit: 1 %}
{% for banner in loaded_banners %}
<div class="content">
{% if banner.url != blank %}
<a aria-label="Ir para o instagram da loja" href="{{ banner.url }}" target="_blank">
{% endif %}
<h2 class="title">{{ banner.subtitle }}</h2>
{% if banner.url != blank %}
</a>
{% endif %}
<p class="description">
{{ banner.description | strip_html }}
</p>
</div>
{% endfor %}
<div class="swiper" data-instagram-swiper>
<div class="swiper-wrapper">
{{ html_instagram_posts }}
</div>
<div class="swiper-pagination"></div>
</div>
</section>
{% endif %}
A integração com o Instagram funciona apenas no ambiente de produção. Assim, para o desenvolvimento no ambiente teste, utilizamos placeholders para simular o retorno da integração.
Inclua o arquivo no seu projeto e entre em contato com o time de Vnda.
Se sua loja foi criada a partir de um template de loja, é possível que os arquivos da sua loja já possua o arquivo liquid da integração com o Instagram. Confira na raiz do diretório liquid se há o arquivo
instagram.liquid
.
Updated about 1 year ago