O que é o settings.txt?
settings.txt
da Nuvemshop
utiliza uma linguagem de configuração proprietária específica da plataforma. Não é uma
linguagem de programação padrão, mas sim um formato de configuração estruturado criado
pela Nuvemshop para definir as opções do painel administrativo dos temas com
características de estrutura hierárquica.
Estrutura básica:
Título da Sección
meta
icon = nombre-del-icono
advanced = false
color
name = nombre_de_la_variable
description = Descripción para el usuario
Tipos de campos disponíveis
color
Seletor de cores
font
Seleção de fontes
checkbox
Caixas de seleção
dropdown
Listas suspensas
image
Upload de imagens
gallery
Galeria de imagens
i18n_input
Campos de texto multilíngue
range_number
Controles deslizantes
textarea
Áreas de texto
css_code
Editor de CSS
text
Campo de texto simples
menu
Seleção de menus
section_order
Ordenação de seções
Propriedades básicas
name
e
description
, onde:
name
é a "chave" de acesso via Twig
description
é o "label" do input que o lojista irá customizar via painel
Exemplo:
color
name = background_color
description = Color de fondo
Recuperando o valor no Twig:
Configurando o arquivo settings.txt
Estrutura inicial
O primeiro ponto importante para iniciar a customização do arquivo settings é encontrar o local mais intuitivo para adicionar as novas customizações. Por padrão, a Nuvemshop já faz a organização por página e componentes mais amplos como Cabeçalho e Rodapé.

Sessões Principais
Podemos ver a estrutura inicial onde as sessões estão no primeiro nível de hierarquia (tab) do arquivo. Vamos chamar de "Sessões Principais" e vamos passar por cada sessão para entender os tipos disponíveis e padrões a serem seguidos.
Padrão importante
O "nome" da sessão que informamos no settings.txt será o nome exibido no painel.
Internacionalização
A Nuvemshop utiliza i18n para atender os idiomas PT, ES e EN. No exemplo, o settings está escrito em espanhol, mas no painel demo (BR) está escrito em português. Entenda como realizar as traduções do arquivo translations.txt aqui.
Seção de Cores

Configuração META
Nessa primeira etapa já podemos ver alguns padrões como o meta
, onde devemos informar logo após
a sessão principal. Seguindo a hierarquia, todo conteúdo abaixo que tenha mais um
"tab", a Nuvemshop irá interpretar que pertence à sessão principal acima.
A subseção META geralmente tem duas configurações:
ICON (text)
ADVANCED (boolean)
Apenas na sessão da página inicial temos também o DEFAULT.
Exemplo de configuração META:
meta
icon = paint-brush
advanced = false
Dica sobre ADVANCED
- Marque
advanced = false
para exibir a sessão principal na parte inicial (IMAGEN DE TU MARCA) - Marque
advanced = true
para entrar em CONFIGURACIONES AVANZADAS
Configuração de Cores
Seguindo, logo após o meta iniciam as configurações que o lojista irá customizar. Neste exemplo seguimos com três tipos de CORES: Cor de Fundo, Cor dos Textos e Cor de Destaque, todas seguindo o mesmo padrão:
color # TIPO INDICANDO QUE É UMA COR
name = background_color # CHAVE QUE SERÁ UTILIZADA NO TWIG/TPL
description = Color de fondo # LABEL DO CAMPO PARA O LOJISTA
Subtítulo
subtitle = valor
. Esse valor é
exibido
como um subtítulo no painel, neste caso sendo usado para um informativo.
Exemplo:
subtitle
subtitle = <div class='js-color-description'>Aplica a textos de descuento, envío gratis y cuotas sin interés.</div>
Elementos HTML
Um ponto importante é a utilização de alguns elementos HTML (nem tudo é permitido) nos valores atribuídos aos títulos, subtítulos e descrições. Uma dica é utilizar para deixar algum tipo de informação em evidência, ex: Atenção!
Collapse
Exemplo:
collapse
title = Botón principal
Ao utilizar o collapse, todo conteúdo abaixo dele ficará agrupado em uma nova
sidebar, que irá abrir ao ser clicada, e possui apenas um valor: o title
.

Importante sobre Collapse
Ele sempre irá agrupar o conteúdo abaixo dele (do mesmo nível de hierarquia) até encontrar um novo collapse. Ou seja, se no início da sessão você adicionar um collapse, todo conteúdo abaixo até o segundo collapse ficará agrupado.
Tipo de Letra

TITLE
O tipo TITLE, assim como SUBTITLE, tem apenas o próprio title como atributo:
title
title = Títulos
FONT
O tipo FONT tem o name e description como nos demais, e também tem o VALUES. Para facilitar o entendimento, vamos comparar o VALUES como se fosse os options de um SELECT HTML, onde temos o VALUE (valor) seguido do label após o sinal de igual (=).
Exemplo:
font
name = font_headings
title = Fuentes para títulos
description = Fuente
values
"Almarai", sans-serif = Almarai
"Archivo", sans-serif = Archivo
"Archivo Black", sans-serif = Archivo Black
Equivalente em HTML:
<label>Fonte</label>
<select name="font_headings">
<option value='"Almarai", sans-serif'>Almarai</option>
<option value='"Archivo", sans-serif'>Archivo</option>
<option value='"Archivo Black", sans-serif'>Archivo Black</option>
</select>
RANGE_NUMBER
Em seguida vem o RANGE_NUMBER, onde é formada a barra entre um valor mínimo e máximo, do tipo number (numérico). Como os demais, tem name e description seguido pelos valores min e max.
range_number
name = headings_size
description = Tamaño
min = 28
max = 48
Seção Cabeçalho
CHECKBOX
O tipo CHECKBOX é mais simples comparado ao DROPDOWN. Seguimos com os mesmos campos name e description apenas.
checkbox
name = header_colors
description = Usar estos colores para el encabezado
DROPDOWN
Já o DROPDOWN, assim como o FONTS, é um seletor de opções, também sendo um SELECT HTML, tendo name, description e o values, que seguimos a mesma regra do fonts, onde temos value = label.
dropdown
name = logo_size
description = Tamaño del logo
values
small = Chico
medium = Mediano
big = Grande

Cabeçalho em Celulares
IMAGE
Podemos ver dois componentes do tipo IMAGE: um apenas com name e description (configuração básica para funcionar) e no segundo temos mais duas configurações, WIDTH e HEIGHT. Quando informado, no painel é inserida uma tag de "sugestões" do tamanho, auxiliando o lojista no formato ideal.
Configuração básica:
image
original = logo-transparent.jpg
title = Logo alternativo (opcional)
Com dimensões sugeridas:
image
original = menu_banner_mobile.jpg
title = Cargar imagen (JPG, GIF, PNG)
width = 820
height = 175
I18N_INPUT
No tipo I18N_INPUT temos o tradicional input do tipo TEXT, porém ele leva em consideração os idiomas configurados na loja. Neste caso temos BR e AR, então são inseridos dois inputs para o lojista informar o valor para cada idioma.
Controle automático de idiomas
O controle no twig/tpl é da própria Nuvemshop. Isso significa que:
settings.menu_banner_mobile_url
vai ter o valor A se estiver sendo acessado o ambiente BR e o valor B (se
preenchido) se estiver acessando o ambiente AR.
i18n_input
name = menu_banner_mobile_url
description = Link

Página Inicial
Configuração para ordenação dinâmica
Para que isso funcione, temos que seguir alguns padrões. Dentro de META, além do icon e advanced temos o default. Esse valor é a chave do TIPO SECTION_ORDER que encontramos no final da seção principal. Essa sessão é responsável por informar os collapses que formam o drop-and-drop, e cada collapse também tem o valor BACKTO que também indica o home_order_position.
Página de inicio
meta
icon = home
advanced = true
default = home_order_position
collapse
title = Carrusel de imágenes
backto = home_order_position
...
collapse
title = Información de envíos, pagos y compra
backto = home_order_position
...
section_order
name = home_order_position
start_index = 1
sections
slider = Carrusel de imágenes
main_categories = Categorías principales
products = Productos destacados
...
GALLERY
gallery
name = banner_mobile
gallery_image = Agregar imagen
gallery_link = [Opcional] Página web a la que quieres que te lleve la imagen al hacer click
gallery_width = 820
gallery_height = 1000
gallery_more_info = true
Informações adicionais da galeria
Ao clicar em "editar", cada imagem será exibida com: Link ao clicar na imagem + Título + Descrição + Botão + Cor e tudo em i18n.
Outros tipos de campos
TEXT
Onde o text gera um INPUT HTML simples. Neste caso temos a opção de informar também o placeholder.
text
name = cart_minimum_value
description = ¿Cuál es el monto mínimo que tus clientes deben gastar?
placeholder = Ej.: 3000
TEXTAREA e CSS_CODE
Onde o textarea e css_code geram um TEXTAREA HTML. A diferença entre eles é que o css_code traz uma formatação voltada a códigos CSS, já o textarea vem no formato padrão e com capacidade de até 5 mil caracteres.
TEXTAREA:
textarea
name = about_store
description = Texto sobre la tienda
CSS_CODE:
css_code
name = css_code
description = Acá podes escribir código CSS para que se muestre en tu tienda
MENU
Já o menu, apesar de simples, é muito importante, pois ele lista as opções de menus criados para o lojista, possibilitando deixar flexível qual menu criado pelo lojista será exibido no local desejado.
menu
name = footer_menu
description = ¿Qué menú vas a mostrar al final de la página?