Passar para o conteúdo principal

Como desenvolver um tema na Loja Integrada

Crie temas personalizados usando as ferramentas de desenvolvimento da plataforma

Atualizado há mais de 2 meses

⏱️ Tempo estimado: 30-45 minutos

Pré-requisitos: Conhecimento em HTML, CSS, JavaScript e sobre Loja Integrada

Introdução

Desenvolver um tema personalizado na Loja Integrada permite criar experiências únicas para diferentes segmentos de clientes. Este processo envolve configuração de loja demo, personalização através das ferramentas da plataforma e implementação de código customizado.


01. Crie uma conta gratuita

Acesse http://lojaintegrada.com.br e crie uma conta gratuita para desenvolver seu tema.


02. Configure sua loja como se fosse realmente vender

Complete todas as configurações básicas da loja:

  • Nome da loja

  • E-mail criado exclusivamente para o tema

  • Dados da loja completos

  • Endereço de funcionamento

  • Meio de pagamento ativo

  • Forma de envio configurada

  • Categoria de produtos

🔑 URL obrigatória: Inclua a palavra "DEMO" na URL da loja de demonstração.


03. Insira produtos de teste com descrições

Adicione produtos com descrições completas para que sua loja pareça uma loja real funcionando.


04. Implante seu tema na plataforma

Edite CSS, inclua códigos HTML e JS, faça upload de imagens e personalize o visual da loja usando a ferramenta de parametrização de estilos básicos.

🔑 Importante: Seu tema deve funcionar bem independente das escolhas que cada cliente fizer, pois será vendido para muitos clientes com necessidades diferentes.


05. Conheça o ambiente da Loja Integrada

Configure os elementos básicos no painel antes de iniciar qualquer projeto: categorias, produtos, páginas, meios de pagamento e outras configurações essenciais.


Personalização do tema

Configurações básicas

Acesse Personalize sua loja no menu lateral para iniciar as personalizações estruturais.

⚠️ Importante: Configure os blocos estruturais antes de criar qualquer código personalizado para evitar conflitos futuros.

Personalização avançada

A personalização é realizada através do editor de tema, JavaScript, CSS e HTML.

🔑 Liberação de acesso: HTML e CSS são disponibilizados apenas para planos pagos ou lojas que compraram temas. Para liberar sua loja de demonstração, solicite através do Slack ou Suporte.

Editando CSS

  1. Acesse Personalizar > Editar CSS

  2. Adicione código CSS que será carregado no arquivo avancado.css

  3. O código é inserido dentro da tag <head> automaticamente

Trabalhando com JavaScript

A estrutura do layout pode ser alterada utilizando JavaScript para manipular o DOM.

  1. Acesse Personalizar > Incluir código HTML

  2. Para lojas novas: use Código no cabeçalho e Código no rodapé

  3. Para lojas com modo avançado: acesse a lista completa de blocos de código


Boas práticas de desenvolvimento

Organize suas funções

Crie uma estrutura organizada para suas funções JavaScript:

var tema = {
isMobile: function(){
if(window.innerWidth <= 800){
return true;
}
return false;
},
isTablet: function(){},
isDesktop: function(){},
setInstagram: function(){},
isLogged: function(){},
currentPage: function(){}
};

if(tema.isMobile()){

}

Verifique bibliotecas carregadas

Antes de carregar uma biblioteca, verifique se ela já não foi carregada por outro parceiro:

if($.funcaoDoScript()){
//Caso rode, script já foi carregado
}else{
//Se não foi carregado devemos adicionar a tag script via código

//criamos um objeto do tipo script
var script = document.createElement("script");

//definimos seu tipo
script.type = "text/javascript";

//adicionamos a URL dele (pode ser um CDN por exemplo)
script.src = "http://url-do-seu-script";

//inserimos a tag criada no DOM
document.body.appendChild(script);
}

Verificar elementos antes de manipular

Sempre verifique se o elemento existe antes de aplicar modificações:

if($('.classe-do-meu-objeto').length > 0){
$('.classe-do-meu-objeto').insertBefore('.classe-do-outro-objeto');
}


Elementos do sistema

⚠️ Atenção: Evite remover classes e objetos utilizados no tema padrão, como .carrinho-interno-ajax e comprar-ajax-status.

💡 Dica: Se algum elemento atrapalha o layout, use display:none via CSS em vez de removê-lo.

Chamadas AJAX internas

🔑 Limitações: Evite chamadas AJAX para a própria loja, pois consomem pageviews do plano contratado.

$.get('url-interna-da-loja', function( data ) {
//aqui para cada chamada será consumido 1 pageview extra
});

No exemplo acima é comum consumir produtos de uma página de categoria, como por exemplo utilizar /camisetas para pegar o primeiro produto de uma lista e adicionar ao menu. Caso seu projeto tenha 6 categorias no menu sempre que a página for carregada serão contabilizados 7 pageviews.

Alternativas recomendadas:

  • Para agências: Crie sistema externo e consuma via API

  • Para projetos simples: Use localStorage ou sessionStorage

// Salva os dados na sessionStorage
sessionStorage.setItem('chave', 'valor');

// Obtém os dados da sessionStorage
var data = sessionStorage.getItem('chave');

Exemplo prático com sessionStorage

//faço um each nas categorias principais do menu
$(".menu.superior .nivel-um>li").each(function(i){
var $this = $(this);
var linkCat = $(this).find('a').clone().attr('href');
if(!sessionStorage.getItem(i + '_produto')){
$.get(linkCat, function( data ) {
//seleciona o primeiro produto da lista
let primeiroProduto = $(data).find(
'.listagem .listagem-linha:first-child ul li:first-child').html();
//adiciona ele no storage
sessionStorage.setItem(i + "_produto", primeiroProduto);
});
}
});


Otimização de carregamento

Carregar apenas o necessário

Configure blocos de código para páginas específicas usando o campo Página publicação.

Condicionais por página

if($('.pagina-inicial').length > 0){
//estou na página inicial
minhaFuncaoDaHome();
}
if($('.pagina-produto').length > 0){
//estou na página de produto
minhaFuncaoDoProduto();
}

Detecção de dispositivos móveis

function isMobile(){
var device = "desktop";
if(window.innerWidth <= 1024){device = "tablet"}
if(window.innerWidth <= 800){device = "phone"}
return device;
}

if(isMobile() == "desktop"){
//seu código específico do desktop aqui
}
if(isMobile() == "tablet"){
//seu código específico do tablet aqui
}
if(isMobile() == "phone"){
//seu código específico do mobile aqui
}

Versão mais simples:

function isMobile(){
var device = false;
if(window.innerWidth <= 1024){
device = true
}
return device;
}

if(isMobile()){
//seu código específico do mobile aqui
}


Tratamento de erros

Use try/catch para evitar quebras no JavaScript:

try{
//aqui está o código que iremos tentar executar
}catch(e){
//caso gere um erro o mesmo é "ignorado" e ao invés de travar
//a ordem dos eventos ele irá gerar um log no console do navegador

//sempre adicione um texto para que fique
console.log('NomeDaAgência - Identificador do Bloco (Ex: Instagram)' + e);
}

Dessa forma fica claro para que a equipe de suporte notifique a agência responsável pelo código e o mesmo seja tratado o quanto antes sem gerar problemas para o lojista.


Plugins disponíveis por padrão

Priorize plugins já utilizados no tema padrão:

  • Fancybox - Popup com galeria de fotos

  • FlexSlider - Componente de slider

  • jQuery Cookie - Gerenciamento de cookies


Checklist técnico final

  • Requests excedentes: Evitar chamadas desnecessárias (usar sessionStorage/localStorage)

  • Carrinho interno: Manter <carrinho-interno-ajax> funcionando no checkout

  • Plugins: Verificar carregamento correto de integrações

  • Console: Eliminar erros JavaScript

  • Mobile: Testar funcionamento em dispositivos móveis

  • Layout: Verificar quebras em desktop e mobile

  • Experiência do usuário: Validar usabilidade em ambos os dispositivos

Observações importantes

⚠️ Suporte: Personalizações são de responsabilidade de quem as realizou, não da Loja Integrada.

⚠️ Atualizações: Temas podem ser atualizados e personalizações precisam ser mantidas pelo desenvolvedor.

⚠️ Base de desenvolvimento: Use apenas elementos da plataforma que não serão alterados por atualizações.

Respondeu à sua pergunta?