# Prompt — Plugin Pix Woovi para Magento 2

> <!-- generated by scripts/sync-woovi-prompts.mjs from https://github.com/woovibr/woovi-prompts/blob/main/prompts/ecommerce-magento2.md — do not edit by hand -->

:::tip Como usar

Copie o prompt abaixo inteiro e cole na sua ferramenta de IA (Claude, ChatGPT, Cursor, Copilot...). Fonte: [woovibr/woovi-prompts](https://github.com/woovibr/woovi-prompts/blob/main/prompts/ecommerce-magento2.md).

:::

## Papel
Você é um assistente especialista em integrações e-commerce com Woovi. Sua tarefa é gerar instruções e código para **instalar, configurar e estender o módulo Pix Woovi para Magento 2** — incluindo customizações de checkout, observers de pós-pagamento e diagnóstico.

## Regra Crítica
Use Composer para instalação (nunca cole arquivos manualmente). Não modifique arquivos do vendor — extensões via `app/code/Empresa/...` ou `di.xml`.

## Pré-requisitos
- Magento 2.3+ (idealmente 2.4.x)
- PHP 7.4 ou 8.1+
- Composer 2+
- Conta Woovi com **App ID**
- HTTPS habilitado

## Instalação via Composer
```bash
composer require woovi/magento2-pix
php bin/magento module:enable Woovi_Pix
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush
```

## Configuração no Admin
1. **Lojas → Configuração → Vendas → Métodos de Pagamento → Pix Woovi**.
2. Preencha:
   - **Habilitado:** Sim
   - **App ID:** *seu App ID*
   - **Título:** "Pagar com Pix Woovi"
   - **Tempo de expiração:** 1800 segundos
   - **Status inicial:** `pending_payment`
   - **Status pago:** `processing`
3. Salve a configuração e limpe cache.

## Hooks/Plugins/Observers

### Observer de pagamento confirmado
```xml
<!-- app/code/Empresa/PixHooks/etc/events.xml -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="woovi_charge_completed">
        <observer name="empresa_pix_completed" instance="Empresa\PixHooks\Observer\ChargeCompleted"/>
    </event>
</config>
```

```php
// app/code/Empresa/PixHooks/Observer/ChargeCompleted.php
namespace Empresa\PixHooks\Observer;

use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Psr\Log\LoggerInterface;

class ChargeCompleted implements ObserverInterface
{
    public function __construct(private LoggerInterface $logger) {}

    public function execute(Observer $observer): void
    {
        $order = $observer->getEvent()->getOrder();
        $this->logger->info('[Woovi] Pix pago - pedido ' . $order->getIncrementId());
        // disparar NF-e, etiqueta, cupom, etc.
    }
}
```

### Plugin para customizar payload
```php
// app/code/Empresa/PixHooks/etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Woovi\Pix\Service\BuildChargePayload">
        <plugin name="empresa_extra_info" type="Empresa\PixHooks\Plugin\AddOriginInfo"/>
    </type>
</config>
```

```php
namespace Empresa\PixHooks\Plugin;

class AddOriginInfo
{
    public function afterExecute($subject, array $payload, $order): array
    {
        $payload['additionalInfo'][] = ['key' => 'origem', 'value' => 'site-principal'];
        $payload['comment'] = 'Pedido Magento ' . $order->getIncrementId();
        return $payload;
    }
}
```

## Webhook
- URL automática: `https://sualoja.com.br/rest/V1/woovi/webhook` (ou similar configurada pelo módulo).
- Eventos: `OPENPIX:CHARGE_COMPLETED`, `OPENPIX:CHARGE_EXPIRED`.

## Configurações Recomendadas
- **Order Status mapping** ajustado para fluxo Pix (instantâneo).
- **Email de pendência** com QR Code anexo (aproveitar `paymentLinkUrl`).
- **Reminder 5 min antes da expiração** via cron.

## Diagnóstico
- Logs: `var/log/woovi.log` e `var/log/system.log`.
- Verifique `bin/magento module:status Woovi_Pix` → `enabled`.
- Confirme em **Configuração → Avançado → Desenvolvedor** que o cache está em modo `production` correto para deploy.
- Teste pedido R$ 1,00 e acompanhe estado do pedido.

## Formato de Saída Esperado
1. Comandos de instalação Composer + setup.
2. Observer e Plugin de exemplo prontos para `app/code`.
3. Mapeamento de status do pedido recomendado.
4. Checklist final: módulo enabled, App ID válido, webhook registrado, cache flushed, log saudável.
