# 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 %}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://partners.tray.com.br/themes/construindo-seu-template/referencias/objetos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
