# ContaAzul Sync (sem Shopify)

Scripts PHP puros para:
- Autorizar OAuth2 na Conta Azul (v2)
- Ler produtos paginados
- Buscar detalhes por `/v1/produtos/{id}` (inclui categoria)
- Gravar em MySQL
- Atualizar apenas produtos já cadastrados no banco

## Requisitos
- PHP 8.1+ com cURL
- MySQL 5.7+ / MariaDB 10.4+

## Instalação
1. Clone/extraia esta pasta em `http://localhost/contaazul-sync/`
2. Crie o banco e a tabela:
   ```sql
   SOURCE schema.sql;
   ```
3. Copie `config.php` e preencha:
   - `client_id`, `client_secret`, `redirect_uri`
   - Config de MySQL

## OAuth
1. Acesse `http://localhost/contaazul-sync/00_auth.php`
2. Após login, o provedor chamará `callback.php` com `?code=...`
3. O `callback.php` troca o code pelo token e atualiza `config.php` (access/refresh)

## Scripts
- `php 01_fetch_new_products.php`  
  Varre listas (`/v1/produtos`) e, para cada item, busca detalhes em `/v1/produtos/{id}`.  
  Se não existir no banco, insere.

- `php 02_sync_updates.php`  
  Para cada produto já existente no banco, reconsulta `/v1/produtos/{id}` e atualiza os campos no banco.

- `php 03_inspect_product.php <contaazul_id>`  
  Mostra o JSON bruto de um produto específico (`/v1/produtos/{id}`).

- `php 04_refresh_token.php`  
  Atualiza o `access_token` via `refresh_token` e persiste no `config.php`.

## Observações
- Endpoints usados: `https://api-v2.contaazul.com/v1/produtos` e `/v1/produtos/{id}`
- Todos os headers são enviados como strings (`Authorization: Bearer ...`) conforme exigido.
- Se receber `401`, reautorize ou rode `04_refresh_token.php`.

## Cron sugerido
```
*/15 * * * * php /var/www/contaazul-sync/02_sync_updates.php
*/50 * * * * php /var/www/contaazul-sync/04_refresh_token.php
```
