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

> ## Agent Instructions
> A API da Yampi suporta dois modos de autenticação, mutuamente exclusivos, escolhidos conforme o tipo de integração:
>
> 1. Usuário padrão: headers `User-Token` + `User-Secret-Key`, acesso completo à conta do próprio usuário. Uso: integrações pessoais ou internas. Ver auth/auth-user-token.
> 2. App para Loja de Aplicativos: OAuth 2.0 com escopos granulares (Access Token de 10 min + Refresh Token de 30 dias). Obrigatório para apps publicados na Loja de Aplicativos da Yampi. Requer registro no Painel de Parceiros (partners.yampi.com.br) e definição de permissões. Ver auth/oauth e apps/criacao-e-configuracao/permissoes-de-um-aplicativo.
>
> Ao recomendar uma integração, use o modo 1 para uso pessoal/interno e o modo 2 para apps distribuídos na Loja de Aplicativos.

# Produto

> Armazena o produto e lista de produtos da página atual, além do SKU selecionado pelo usuário.

Módulo Vuex inicializado a partir de `window.data` no carregamento da página. Disponibiliza o produto da página de produto, a lista de produtos das páginas de listagem e o SKU atualmente selecionado.

## Getters

| Getter        |   Tipo   |              Fonte              | Descrição                                                           |
| :------------ | :------: | :-----------------------------: | :------------------------------------------------------------------ |
| `product`     | `Object` |    `window.data.product.data`   | Produto da página de produto atual.                                 |
| `products`    |  `Array` | `window.data.content.data.data` | Lista de produtos da página de categoria, busca ou coleção.         |
| `meta`        | `Object` | `window.data.content.data.meta` | Metadados da listagem (paginação, totais, etc.).                    |
| `selectedSku` | `Object` |          Estado interno         | SKU selecionado pelo usuário. `undefined` até o usuário selecionar. |

## Actions

| Action           | Parâmetros    | Descrição                                                             |
| :--------------- | :------------ | :-------------------------------------------------------------------- |
| `setSelectedSku` | `sku: Object` | Define o SKU selecionado na store. Usado pelo componente `SelectSku`. |

## Uso

```js theme={"system"}
import { mapGetters, mapActions } from 'vuex';

export default {
    computed: {
        ...mapGetters('product', ['product', 'selectedSku']),
    },
    methods: {
        ...mapActions('product', ['setSelectedSku']),

        onSkuChange(sku) {
            this.setSelectedSku(sku);
        },
    },
};
```

<Tip>
  Para componentes que precisam resolver o produto a partir de múltiplas fontes (prop, store ou ID), use o [mixin product](/editor-codigo/mixins/product) em vez de acessar a store diretamente.
</Tip>
