# 🎯 Mercado Livre - Vitrine de Afiliado (Solução Final)

## ✅ Problema Resolvido

URLs curtas de afiliado (`https://mercadolivre.com/sec/xxxxx`) podem levar para:
1. **Produto específico** → Scraping direto ✅
2. **Vitrine/Loja** → Agora suportado! ✅

## 🔗 Como Funciona Agora

### Fluxo Completo

```
1. Usuário cola: https://mercadolivre.com/sec/2Nm56Yo
       ↓
2. Sistema resolve redirect
       ↓
3. Página: "Desconto em Games" (vitrine com vários produtos)
       ↓
4. ✅ Detecta botão "Ir para produto" do primeiro item
       ↓
5. Extrai URL: /jogo-6-tacas-vidro.../p/MLB43888093#...
       ↓
6. Carrega página do produto específico
       ↓
7. Faz scraping (título, preços, imagem, frete)
       ↓
8. ✅ Retorna dados com URL CURTA ORIGINAL
   (mantém comissão de afiliado!)
```

## 📋 Exemplo Real

### Input do Usuário:
```
https://mercadolivre.com/sec/2Nm56Yo
```

### O Que o Sistema Faz:

#### 1. Detecta Vitrine
```
Página contém: "Desconto em Games | Perfil Social"
SEM <h1 class="ui-pdp-title"> (não é produto único)
✅ É vitrine de afiliado!
```

#### 2. Busca Botão "Ir para produto"
```html
<a href="/jogo-6-tacas-vidro-de-vinho-agua-laradore-diamond-325ml/p/MLB43888093#...">
    Ir para produto
</a>
```

#### 3. Carrega Página do Produto
```
https://www.mercadolivre.com.br/jogo-6-tacas-vidro.../p/MLB43888093#...
```

#### 4. Scrapa Dados
```
Título: Jogo 6 Taças Vidro De Vinho / Água - Laradore Diamond 325ml
Preço antigo: R$ 54,99
Preço atual: R$ 37,94
Desconto: 31% OFF
Cupom: 5% OFF (Compra mínima R$159)
Frete: GRÁTIS
```

#### 5. Resultado Final
```
Jogo 6 Taças Vidro De Vinho / Água - Laradore Diamond 325ml

De: R̶$̶ 54,99
Por: R$ 37,94 (31% OFF)

🎟️ Cupom disponível: 5% OFF (Compra mínima R$159)

🚚 Frete GRÁTIS
✨ Produto Novo

Compre aqui: https://mercadolivre.com/sec/2Nm56Yo
                 ↑
                 URL CURTA mantida (COMISSÃO PRESERVADA!)
```

## 🎯 Por Que Funciona?

### ✅ Mantém Comissão de Afiliado
- URL final no texto: `https://mercadolivre.com/sec/2Nm56Yo` (link curto)
- Sistema scrapa dados de: `https://www.mercadolivre.com.br/jogo-6-tacas.../p/MLB43888093`
- **Cliente clica no link curto** → Comissão garantida!

### ✅ Dados Corretos
- Scraping da página real do produto
- Título, preços, cupons, frete todos corretos
- Imagem em alta resolução

### ✅ Automático
- Usuário só precisa colar a URL curta
- Sistema detecta se é vitrine
- Busca automaticamente o primeiro produto em destaque

## 🔍 Detecção Técnica

### Regex para Botão "Ir para produto"
```php
preg_match('/href=["\']([^"\']+)["\'][^>]*>(?:[^<]*<[^>]+>)*\s*Ir para (?:o )?produto/i', $html, $matches)
```

**Captura:**
- `href="URL"` ou `href='URL'`
- Texto dentro: "Ir para produto" ou "Ir para o produto"
- Funciona mesmo com tags aninhadas

### Conversão URL Relativa → Absoluta
```php
if (strpos($productLink, 'http') !== 0) {
    $productLink = 'https://www.mercadolivre.com.br' . $productLink;
}
```

## 📊 Comparação

| Aspecto | Solução Anterior | Solução Atual |
|---------|------------------|---------------|
| **URL de vitrine** | ❌ Erro | ✅ Funciona |
| **Comissão preservada** | ❌ Perdia | ✅ Mantém |
| **Dados corretos** | ❌ Misturados | ✅ Precisos |
| **Automático** | ❌ Manual | ✅ 100% automático |
| **Requisições HTTP** | 1 | 2 (vitrine + produto) |

## 🚨 Casos de Erro

### 1. Botão "Ir para produto" Não Encontrado
```json
{
  "success": false,
  "error": "Não foi possível encontrar o produto na página de afiliado",
  "suggestion": "Tente gerar um link de afiliado específico para o produto desejado."
}
```

**Possíveis causas:**
- Vitrine vazia (sem produtos)
- HTML diferente do esperado
- Página de categoria (não de afiliado)

### 2. Produto Sem Dados Suficientes
- Se scraping falhar, retorna erro padrão
- Log detalha cada etapa para debug

## 🎨 Logs de Debug

```
=== RESOLVENDO URL CURTA ML (Nova) ===
url_curta: https://mercadolivre.com/sec/2Nm56Yo

=== URL FINAL (Nova) ===
url_final: https://www.mercadolivre.com.br/social/descontoemgames?...

=== PÁGINA DE AFILIADO COM VITRINE DETECTADA ===

=== BOTÃO "IR PARA PRODUTO" ENCONTRADO ===
link: https://www.mercadolivre.com.br/jogo-6-tacas.../p/MLB43888093

=== CARREGANDO PÁGINA DO PRODUTO ===

=== PÁGINA DO PRODUTO CARREGADA COM SUCESSO ===

=== PREÇO VÁLIDO ENCONTRADO ===
raw: 37,94
parsed: 37.94

=== PREÇO VÁLIDO ENCONTRADO ===
raw: 54,99
parsed: 54.99

=== SCRAPING DIRETO CONCLUÍDO ===
title: Jogo 6 Taças Vidro De Vinho / Água...
price: R$ 37,94
old_price: R$ 54,99
```

## 💡 Próximos Passos (Futuro)

### Melhorias Possíveis:

1. **Suporte a Múltiplos Produtos**
   - Detectar todos os produtos da vitrine
   - Permitir usuário escolher qual quer

2. **Cache de Páginas**
   - Evitar requisições repetidas
   - Acelerar resposta

3. **Detecção de Cupons Mais Robusta**
   - Capturar regras de cupom (compra mínima, etc)
   - Validar cupons ativos

4. **Suporte a Outras Plataformas**
   - Shopee (quando disponível)
   - Amazon (já funciona)

## ✅ Status Atual

| Funcionalidade | Status |
|---------------|--------|
| URL de produto específico | ✅ Funciona |
| URL de vitrine de afiliado | ✅ Funciona |
| Preserva comissão | ✅ Sim |
| Scraping de preços | ✅ Correto |
| Scraping de cupons | ✅ Detecta |
| Imagens alta resolução | ✅ Sim |
| Frete grátis | ✅ Detecta |

---

**Implementado:** 13/10/2025  
**Status:** ✅ Funcional e testado  
**Mantém comissão:** ✅ SIM (URL curta preservada)

