⏱️ 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
Acesse Personalizar > Editar CSS
Adicione código CSS que será carregado no arquivo avancado.css
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.
Acesse Personalizar > Incluir código HTML
Para lojas novas: use Código no cabeçalho e Código no rodapé
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
localStorageousessionStorage
// 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.
