# Como corrigir a variação de produto que não aparece no WooCommerce

A variação de produto que não aparece no WooCommerce acontece quando o produto é variável mas as opções de tamanho, cor ou modelo não surgem para o cliente escolher. Quase sempre vem de um atributo não marcado como 'Usado para variações', de variações sem preço ou estoque, ou de cache servindo uma versão antiga da página.

## O que é a variação de produto que não aparece no WooCommerce?

Um produto variável no WooCommerce é aquele que tem variações, como tamanhos ou cores, cada uma com seu próprio preço, estoque e SKU. As variações aparecem em menus suspensos na página do produto. Quando elas 'não aparecem', os menus ficam vazios, mostram apenas 'Selecione opções' sem itens, ou o botão de comprar não habilita: o WooCommerce tem o produto como variável, mas não encontra variações válidas para exibir.

## Como identificar

- O menu suspenso de tamanho ou cor aparece vazio ou só com a opção 'Escolha uma opção'.
- A mensagem 'Selecione opções' nunca habilita o botão 'Adicionar ao carrinho', mesmo escolhendo as opções.
- No editor do produto, a aba Variações está vazia ou mostra 'Nenhuma variação encontrada para esse produto'.
- As variações aparecem no admin mas não no site, ou só somem para visitantes (não para o administrador logado).

## Como prevenir

- Sempre marque 'Usado para variações' no atributo e defina preço em todas as variações antes de publicar o produto
- Exclua a página de produto do cache de objeto agressivo ou limpe o cache após editar variações
- Teste o produto variável como visitante anônimo após cada alteração de atributo, preço ou estoque

Erros relacionados

- [Como corrigir produto do WooCommerce com página em branco](https://full.services/wp-fixer/corrigir-produto-branco-woocommerce/)
- [Como corrigir estoque do WooCommerce mostrando errado](https://full.services/wp-fixer/corrigir-estoque-errado-woocommerce/)
- [Como corrigir Add to cart que não funciona no WooCommerce](https://full.services/wp-fixer/corrigir-add-to-cart-woocommerce/)

## Causa

- Atributo criado mas sem a caixa 'Usado para variações' marcada na aba Atributos do produto.
- Variações geradas mas sem preço definido: o WooCommerce esconde variação sem preço do menu do cliente.
- Variação marcada como fora de estoque ou com 'Gerenciar estoque' indicando quantidade zero, ficando oculta.
- Cache de página ou de objeto servindo uma versão antiga da página de produto, anterior à criação das variações.
- Tipo de produto salvo como 'Simples' em vez de 'Variável', ou plugin de variação (swatches/extra) conflitando com o tema.

## Como resolver

1. Confirme o tipo de produto: no editor do produto, em Dados do produto, garanta que o tipo está como 'Produto variável'. Se estiver como 'Simples', as variações nunca aparecem para o cliente.
2. Marque o atributo para variações: na aba Atributos, abra o atributo (ex.: Tamanho) e marque a caixa 'Usado para variações'. Salve antes de ir para a aba Variações.
3. Defina preço em cada variação: na aba Variações, abra cada variação e preencha o preço. Variação sem preço é omitida do menu do cliente, deixando o dropdown vazio.
4. Cheque o estoque das variações: ainda em Variações, confirme que cada uma tem estoque disponível ou que 'Gerenciar estoque' não está zerado. Variação esgotada some das opções.
5. Limpe o cache e teste como visitante: limpe o cache de página e de objeto, e abra o produto em aba anônima. Se as variações aparecem para o admin mas não para o visitante, o cache estava servindo uma versão antiga.

## Código

```php
// functions.php do tema filho — registra no log produtos variaveis
// que nao tem nenhuma variacao compravel (causa do dropdown vazio)
add_action( 'woocommerce_before_single_product', function () {
    global $product;
    if ( $product && $product->is_type( 'variable' ) ) {
        $available = $product->get_available_variations();
        if ( empty( $available ) ) {
            error_log( 'WooCommerce: produto variavel #' . $product->get_id() . ' sem variacoes compraveis (preco/estoque?)' );
        }
    }
} );
```

## Perguntas frequentes

### Criei as variações mas o menu aparece vazio. O que faltou?

Quase sempre falta marcar a caixa 'Usado para variações' no atributo, ou as variações estão sem preço. O WooCommerce só exibe no menu do cliente as variações que têm preço e atributo habilitado para variação. Revise os dois pontos no editor do produto.

### Por que o botão de comprar não habilita mesmo escolhendo as opções?

Porque a combinação escolhida não corresponde a uma variação válida, ou a variação está sem preço ou fora de estoque. Confirme que existe uma variação cadastrada para cada combinação de atributos que você oferece ao cliente.

### As variações aparecem para mim mas não para o cliente. Por quê?

Isso costuma ser cache. Como administrador você vê a página sem cache; o visitante recebe uma versão antiga, anterior à criação das variações. Limpe o cache de página e de objeto e teste em aba anônima.

### Uma variação esgotada some do menu do WooCommerce?

Sim, por padrão. Variações sem estoque ficam ocultas das opções do cliente. Se quiser que ela apareça como 'Esgotado' em vez de sumir, ajuste a configuração de estoque ou reponha o inventário daquela variação.

### Salvei o produto como simples por engano. Como corrigir?

No editor, em Dados do produto, troque o tipo de 'Produto simples' para 'Produto variável' e salve. Depois reabra as abas Atributos e Variações para confirmar que os atributos estão marcados para variações e que cada variação tem preço.

### Um plugin de swatches pode esconder as variações?

Pode. Plugins que trocam o menu por botões de cor ou tamanho podem conflitar com o tema e não renderizar as opções. Desative o plugin de swatches temporariamente: se o menu padrão do WooCommerce voltar, o conflito é com esse plugin.

**Fonte:** [WooCommerce — Variable Product](https://woocommerce.com/document/variable-product/)
