# Experiência de checkout
Checkout clássico, WooCommerce Blocks e botões Express.
O plugin suporta três formas de o cliente pagar. Em todas, o pagamento corre no **popup** da
FaciPay e o estado é confirmado pelo [webhook](/pt/woocommerce/webhooks).
## Checkout clássico
No checkout, o cliente escolhe **FaciPay** e clica em **Finalizar com FaciPay**.
O WooCommerce cria a ordem com estado `pending` e método `facipay`. O id da ordem do WooCommerce
é enviado como `externalTransactionId`.
Abre o popup FaciPay (Multicaixa Express por defeito). O cliente paga.
No fecho do popup, o cliente é levado para a página **order-received**. O estado final
é definido pelo webhook.
## WooCommerce Blocks (Gutenberg)
O plugin regista o método de pagamento `facipay` para o **bloco de checkout** moderno e
funciona da mesma forma (popup + webhook), com validação de formulário integrada.
## Botões Express (produto e carrinho)
Aparece um botão FaciPay **Express** na página de produto (a seguir ao "Adicionar ao
carrinho") e no carrinho. Ao clicar:
1. É criada uma ordem temporária (meta `_facipay_order_type`).
2. O popup abre imediatamente (evita bloqueio de popups).
3. Após o pagamento, o carrinho é limpo de forma inteligente e há redireção para a página
order-received.
## URLs de retorno
Configuráveis em **Definições → Pagamentos → FaciPay**. Suportam `{order_id}` e `{order_key}`:
| Definição | Default | Quando |
|---|---|---|
| **Success URL** | `{checkout_url}?order-received=` | Pagamento concluído |
| **Pending URL** | `{checkout_url}?order-received=` | Referência EMIS pendente |
| **Cancel URL** | `{cart_url}` | Pagamento cancelado |
## Idioma
O popup segue a localização do WordPress: `en` se o site estiver em inglês, caso contrário
`pt`. O plugin é traduzido em **PT** e **EN**.
Como o plugin confirma os pagamentos.