> ## 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.

# cache

> Utilitários para leitura e escrita de dados no localStorage com TTL configurável.

Mixin que fornece métodos para cachear dados no `localStorage` com tempo de expiração baseado na configuração `window.Yampi.cache.js`. Evita requisições desnecessárias à API para dados que mudam com pouca frequência.

## Uso

```js theme={"system"}
import cacheMixin from '@/mixins/cache';

export default {
    mixins: [cacheMixin],
    methods: {
        async loadData(productId) {
            const cached = this.getLocalStorageCache({ itemId: productId, itemAlias: 'product' });
            if (cached) return cached;

            const data = await fetchProduct(productId);
            this.setLocalStorageCache({ itemId: productId, itemAlias: 'product', data });
            return data;
        },
    },
};
```

## Métodos

| Método                    | Parâmetros                    | Descrição                                                                               |
| :------------------------ | :---------------------------- | :-------------------------------------------------------------------------------------- |
| `setLocalStorageCache`    | `{ itemId, data, itemAlias }` | Salva `data` no localStorage com TTL em minutos (`window.Yampi.cache.js`, padrão `10`). |
| `getLocalStorageCache`    | `{ itemId, itemAlias }`       | Retorna o dado cacheado ou `null` se expirado ou inexistente.                           |
| `removeLocalStorageCache` | `{ itemId, itemAlias }`       | Remove o item do localStorage.                                                          |
| `getLocalStorageCacheKey` | `{ itemId, itemAlias }`       | Retorna a chave usada no localStorage (`{itemAlias}_{itemId}`).                         |
