> ## Documentation Index
> Fetch the complete documentation index at: https://docs-loja.usecorvex.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Mapa de dados → schema.data

> Onde cada objeto de dados pode ser declarado, injetado e passado entre camadas do tema.

Referência de **onde cada dado da loja** pode ser usado e como declarar dependências com `schema.data` em `defineSection()`.

```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
import { defineSection, SECTION_DATA_KEYS } from '@corvex/theme-sdk';

export const schema = defineSection({
  name: 'Avaliações',
  enabledOn: ['product'],
  data: [SECTION_DATA_KEYS.reviews, SECTION_DATA_KEYS.product],
});
```

## Tabela de escopo

| Objeto / recurso | `schema.data` | Na section | No block | No snippet | No layout | Contexto |
| - | - | - | - | - | - | - |
| Contexto global (`shop`, `routes`, `page`, `seo`, …) | — (globais) | ✅ | ✅ | ✅ | Sempre | Contexto da página |
| Instância (`section`, `block`) | — | ✅ | só se passar props | — | Instância atual | — |
| `products` | `["products"]` | ✅ | ❌ → passar `product` no loop | ❌ | Listagens | Home, busca |
| `product` | `["product"]` | ✅ | ❌ → passar `product` | ❌ | PDP | `/products/:handle` |
| `collection` | `["collection"]` | ✅ | ❌ → passar | ❌ | Página de coleção | `/collections/:handle` |
| `collections` | `["collections"]` | ✅ | ❌ → passar | ❌ | — | Query |
| `categories` | `["categories"]` | ✅ | ❌ → passar | ❌ | Catálogo | Query |
| `cart` | `["cart"]` | ✅ | ❌ → passar `cart` | ❌ | `useCorvexCart` | `/cart` |
| Menus | — (field `menu`) | ✅ | ❌ | ❌ | `useStorefrontMenus` | API de menus |
| `blog` / `article` | `["blog"]`, `["article"]` | ✅ | ❌ | ❌ | Templates blog | Rotas de blog |
| `discount_ranges` | `["discount_ranges"]` | ✅ | ❌ → passar | ❌ | Header, carrinho | Query pública |
| `payment_discounts` | `["payment_discounts"]` | ✅ | ❌ → passar | ❌ | PDP, carrinho | Query pública |
| `coupons` | `["coupons"]` | ✅ | ❌ → passar | ❌ | Carrinho | Query pública |
| `search` | `["search"]` | ✅ | ❌ → passar | ❌ | Página de busca | `/search` |
| `recommendations` | `["recommendations"]` | ✅ | ❌ → passar | ❌ | PDP | Produto no contexto |
| `reviews` | `["reviews"]` + `["product"]` | ✅ | ❌ → passar | ❌ | PDP | Listagem de reviews |
| `reviews_summary` | `["reviews_summary"]` | ✅ | ❌ → passar | ✅\* | Layout / hero PDP | Resumo de reviews |

\* Snippets e layout recebem props explícitas — não fazem fetch direto.

## Regras

1. **Section** declara `data` e implementa `defineSectionData` quando necessário.
2. **Block** recebe dados da section pai (`product`, `review`, …).
3. **Snippet** recebe props no import — sem fetch.
4. **Layout** pode receber dados globais via props ou contexto.

## Exemplo — recomendações na PDP

```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
export const schema = defineSection({
  name: 'Você também pode gostar',
  enabledOn: ['product'],
  data: ['recommendations', 'product'],
});

export const data = defineSectionData(async ({ storefront, page, settings }) => ({
  recommendations: await storefront.recommendations.list({
    product: page.product,
    first: settings.limit ?? 4,
    intent: 'related',
  }),
}));
```

Se `recommendations.meta.count === 0`, não renderize a section.

## Exemplo — avaliações na PDP

```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
export const schema = defineSection({
  name: 'Avaliações do produto',
  enabledOn: ['product'],
  data: ['reviews', 'product'],
});

export const data = defineSectionData(async ({ storefront, page }) => {
  const result = await storefront.reviews.list({
    product: page.product,
    first: 10,
    sort: 'recent',
  });

  return { reviews: result.reviews };
});
```

## Chaves do SDK

```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
import { SECTION_DATA_KEYS } from '@corvex/theme-sdk';

SECTION_DATA_KEYS.reviews           // 'reviews'
SECTION_DATA_KEYS.reviews_summary   // 'reviews_summary'
SECTION_DATA_KEYS.recommendations   // 'recommendations'
SECTION_DATA_KEYS.products          // 'products'
```

Veja também [Regras de escopo](https://docs-loja.usecorvex.com.br/data/scope-rules.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.