> For the complete documentation index, see [llms.txt](https://partners.tray.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://partners.tray.com.br/themes/construindo-seu-template/referencias/objetos.md).

# Objetos

Objetos são estruturas de dados utilizadas para facilitar a manipulação de determinadas informações da plataforma Tray.

### Todos Objetos Disponíveis <a href="#ir-para-objetos-disponiveis" id="ir-para-objetos-disponiveis"></a>

| [**banner**](/themes/construindo-seu-template/referencias/objetos/banner.md)                  | [**products**](/themes/construindo-seu-template/referencias/objetos/products.md)               |
| --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| [**breadcrumb**](/themes/construindo-seu-template/referencias/objetos/breadcrumb.md)          | [**productFeatured**](/themes/construindo-seu-template/referencias/objetos/productfeatured.md) |
| [**category**](/themes/construindo-seu-template/referencias/objetos/category.md)              | [**seals**](/themes/construindo-seu-template/referencias/objetos/seals.md)                     |
| [**categories**](/themes/construindo-seu-template/referencias/objetos/categories.md)          | [**search**](/themes/construindo-seu-template/referencias/objetos/search.md)                   |
| [**filters**](/themes/construindo-seu-template/referencias/objetos/filters.md)                | [**settings**](/themes/construindo-seu-template/referencias/objetos/settings.md)               |
| [**filter\_options**](/themes/construindo-seu-template/referencias/objetos/filter_options.md) | [**store**](/themes/construindo-seu-template/referencias/objetos/store.md)                     |
| [**links**](/themes/construindo-seu-template/referencias/objetos/links.md)                    | [**tags**](/themes/construindo-seu-template/referencias/objetos/tags.md)                       |
| [**pages**](/themes/construindo-seu-template/referencias/objetos/pages.md)                    | [**tray**](/themes/construindo-seu-template/referencias/objetos/tray.md)                       |
| [**paginate**](/themes/construindo-seu-template/referencias/objetos/paginate.md)              | [**themePath**](/themes/construindo-seu-template/referencias/objetos/themepath.md)             |
| [**payamentMethods**](/themes/construindo-seu-template/referencias/objetos/paymentmethods.md) | [**utils**](/themes/construindo-seu-template/referencias/objetos/utils.md)                     |
| [**product**](/themes/construindo-seu-template/referencias/objetos/product.md)                |                                                                                                |

## Manipulando Objetos

Podemos manipular objetos de diversas maneiras de acordo com a necessidade como:

* Exibir seus atributos na tela
* Utilizar laços de repetição
* Fazer validações

Alguns objetos trazem informações em um array. Por isso, para utilizá-las é necessário passar a posição que o elemento desejado se encontra dentro do array ou utilizar um loop para percorrer todos elementos e tratá-los como for preciso.

### Tratando Objetos Array com índice

O objeto **`products`** por exemplo, sempre retornará um array de dados, por isso para exibir apenas um produto com este objeto é preciso passar seu índice entre colchetes "**`[ ]`**".

Desta forma, para exibir uma posição do vetor de `products` e de `categories` temos:

```twig
{{ products[0].id}}
```

```twig
{{ categories[0].name}}
```

### Tratando Objetos Array com laço de repetição

Podemos também exibir todos os produtos ou todas as categorias utilizando um laço `for`.

```twig
{% for product in products %}
    {{ product.name }}
{% endfor %}
```

```twig
{% for category in categories %}
    {{ category.name }}
{% endfor %}
```

### Tratando Objetos Array com condicional

Ou podemos exibir na tela somente os que tiverem o atributo igual a determinado valor, para isso podemos fazer uma comparação na exibição de produto utilizando o `if` como o código abaixo.

```twig
 {% for product in products %}
    {% if product.id == '2' %}
       {{ product.id }}
    {% endif %}
 {% endfor %}
```

Com o `if` também podemos verificar se o objeto em questão, no caso do exemplo abaixo é verificado para cada item do objeto `categories` se contém uma imagem, caso tenha ela é exibida na tela.

```twig
{% for category in categories %}
   {% if category.images %}                     
   <img src="{{ category.images[0] }}" alt="{{ category.name }}">            
   {% endif %}      
{% endfor %}
```
