A CentralCart possui a tag customizada load que permite carregar dados dinâmicos diretamente nos templates. Os dados carregados ficam disponíveis como variáveis na página.
Sintaxe
<% load nome_da_entidade argumento: valor, outro_argumento: valor %>
Após o carregamento, os dados ficam disponíveis na variável com o mesmo nome da entidade. Por exemplo, <% load posts %> cria a variável posts.
Entidades disponíveis
affiliate
Carrega os dados do programa de afiliados do cliente autenticado.
<% load affiliate %>
<% if affiliate %>
<p>Código: <%= affiliate.code %></p>
<p>Comissão: <%= affiliate.commission %>%</p>
<% endif %>
affiliate_settings
Carrega o status e configurações do programa de afiliados da loja.
<% load affiliate_settings %>
<% if affiliate_settings.active %>
<a href="/affiliate">Programa de Afiliados</a>
<% endif %>
orders
Carrega os pedidos do cliente autenticado com paginação e filtros.
Parâmetros:
| Parâmetro | Tipo | Padrão | Descrição |
|---|
page | number | 1 | Número da página |
limit | number | 20 | Itens por página |
detailed | boolean | false | Incluir dados detalhados (pacotes com meta, entregas, anotações, variáveis) |
status | string | — | Filtro por status, separado por vírgula (ex: "APPROVED,PENDING") |
<% load orders page: 1, limit: 10, detailed: true %>
<% if orders.data.size > 0 %>
<% for order in orders.data %>
<div class="order">
<span>Pedido #<%= order.internal_id %></span>
<span>Status: <%= order.status %></span>
<span>Total: <%= order.price | format_price %></span>
</div>
<% endfor %>
<!-- Paginação -->
<p>Página <%= orders.meta.current_page %> de <%= orders.meta.last_page %></p>
<% else %>
<p>Nenhum pedido encontrado.</p>
<% endif %>
Filtro por status:
<!-- Apenas pedidos aprovados e pendentes -->
<% load orders status: "APPROVED,PENDING", limit: 5 %>
A tag orders requer que o cliente esteja autenticado. Se não estiver logado, nenhum dado será carregado.
checkout_fields
Carrega as variáveis customizadas configuradas para o checkout da loja.
<% load checkout_fields %>
<% for field in checkout_fields %>
<div class="field">
<label><%= field.name %></label>
<input type="text" name="<%= field.identifier %>" />
</div>
<% endfor %>
packages
Carrega os pacotes (produtos) da loja com filtros e paginação.
<% load packages page: 1, limit: 12 %>
<div class="products">
<% for package in packages.data %>
<a href="/package/<%= package.slug %>" class="product-card">
<img src="<%= package.image %>" alt="<%= package.name %>" />
<h3><%= package.name %></h3>
<span><%= package.pricing.price | format_price %></span>
</a>
<% endfor %>
</div>
posts
Carrega os posts do blog da loja com paginação.
Parâmetros:
| Parâmetro | Tipo | Padrão | Descrição |
|---|
page | number | 1 | Número da página |
limit | number | 20 | Posts por página |
<% load posts page: 1, limit: 6 %>
<div class="blog">
<% for post in posts.data %>
<article>
<h2><a href="/post/<%= post.slug %>"><%= post.title %></a></h2>
<p><%= post.description %></p>
</article>
<% endfor %>
<p>Página <%= posts.meta.current_page %> de <%= posts.meta.last_page %></p>
</div>
post
Carrega um post específico do blog por ID ou slug.
Parâmetros:
| Parâmetro | Tipo | Descrição |
|---|
id | number | ID do post |
slug | string | Slug do post |
Pelo menos um dos parâmetros (id ou slug) deve ser informado.
<% load post slug: "como-comprar" %>
<% if post %>
<article>
<h1><%= post.title %></h1>
<div><%= post.content %></div>
</article>
<% endif %>
Carrega um widget específico e seus dados. Os dados variam conforme o tipo do widget.
Parâmetro obrigatório:
| Parâmetro | Tipo | Descrição |
|---|
type | string | Tipo do widget (case-insensitive) |
Tipos disponíveis:
PRODUCT_HIGHLIGHT
Destaque de produto. Retorna os dados completos do pacote configurado.
<% load widget type: "PRODUCT_HIGHLIGHT" %>
<% if widget.package_highlight %>
<div class="highlight">
<img src="<%= widget.package_highlight.image %>" />
<h2><%= widget.package_highlight.name %></h2>
<span><%= widget.package_highlight.price | format_price %></span>
</div>
<% endif %>
MONTH_GOAL
Meta mensal de faturamento.
<% load widget type: "MONTH_GOAL" %>
<% if widget.month_goal %>
<div class="goal">
<p>Meta: <%= widget.month_goal.goal | format_price %></p>
<p>Atual: <%= widget.month_goal.current | format_price %></p>
<div class="bar" style="width: <%= widget.month_goal.percentage %>%"></div>
</div>
<% endif %>
TOP_DONATORS
Ranking dos 5 maiores compradores do mês.
<% load widget type: "TOP_DONATORS" %>
<% if widget.top_donators %>
<ol>
<% for donator in widget.top_donators.data %>
<li>
<span><%= donator.name %></span>
<% if widget.top_donators.show_amount %>
<span><%= donator.amount | format_price %></span>
<% endif %>
</li>
<% endfor %>
</ol>
<% endif %>
CONNECTION_BOARD
Quadro de conexão (ex: IP de servidor de jogo).
<% load widget type: "CONNECTION_BOARD" %>
<% if widget.connection_board %>
<div class="connect">
<p>Conecte-se: <code><%= widget.connection_board.address %></code></p>
</div>
<% endif %>
DISCORD
Widget de Discord. Retorna o ID do servidor para integração.
<% load widget type: "DISCORD" %>
<% if widget.discord %>
<iframe
src="https://discord.com/widget?id=<%= widget.discord.server_id %>&theme=dark"
width="350"
height="500"
frameborder="0"
></iframe>
<% endif %>
Se você tiver qualquer dúvida, entre em contato com a nossa equipe de suporte
em nosso WhatsApp
e Discord.