Os templates servem para definir padrões (modelos) de páginas a fim de manter a padronização do site e evitar trabalho desnecessário. Um template geralmente define a área do site que é idêntica em todas as páginas, como logotipo, menus, rodapés, endereço, etc.
Utilizando um template, a inclusão de um novo item no menu afeta apenas um arquivo, evitando a alteração de todas as páginas do site. Isso evita também que alguns erros passem despercebidos, já que é difícil de detectar uma alteração incorreta em páginas pouco acessadas ou páginas que foram "esquecidas" no momento da alteração.
Existem duas formas de utilização de templates. Utilizando o engine de templates do jCom, cada página é "montada" dentro do modelo dinamicamente, quando cada cliente navega pela loja virtual. Utilizando uma ferramenta como o Dreamweaver, os templates e páginas são combinados previamente e as páginas resultantes são armazenadas de forma completa pelo servidor jCom.
Nesta seção, abordaremos a primeira opção, recomendada para quem trabalha diretamente o código HTML. Se você prefere utilizar o Dreamweaver, consulte a seção "usando o Dreamweaver".
O template padrão do jCom está em /templates/default.htm. Os templates são arquivos HTML comuns que residem dentro do diretorio /templates.
Um template possui um "esqueleto" do layout e estrutura das páginas, e a variável $content indica onde o conteúdo de cada página será inserido:
<html>
<body>
<div style="background-color:#aaf"> ## fundo azul
Aqui vai o menu. Abaixo vai o conteúdo de cada página:
</div>
<div style="background-color:#afa> ## fundo verde
<!-- Abaixo será inserido o conteúdo de cada página -->
$content
</div>
</body>
</html>
Considere a página-exemplo abaixo. Note que este arquivo não contém as tags HTML de cabeçalho, como <HTML> ou <BODY>; Estas tags e o restante do layout estão contidas no arquivo de template.
<strong>Este é o meu conteúdo em negrito!</strong>
A página resultante será assim:
O template do site padrão, apesar de mais complexo, segue o mesmo princípio do template e da página acima. Lembre-se que a página resultante para o cliente da loja será sempre a união entre o template e o arquivo de página.
A página é sempre processada antes do template. Desta forma, dentro da página é possível definir variáveis ou executar comandos que serão apresentados no template, como o título da página ou a quantidade de itens da cesta de compras.
É possível especificar um template diferente em páginas específicas, conforme o exemplo:
$page.setTemplate("capa.vm")
Esta é a capa do site, então usamos um template diferente das demais.
Não há limites para a quantidade de páginas ou templates que podem ser criados. Também é possível utilizar os comandos #include e #parse do Velocity para separar um template ou página em vários arquivos, para organizar páginas muito complexas ou reutilizar partes de páginas. Para mais informações sobre estes comandos, verifique o manual completo do Velocity.

