# Orders

Registra lo que se compró a través de Stripe Checkout.

### Sintaxis

```
$ vela enable orders
```

Añade pedidos sobre los [pagos](/es/docs/enable/payments) con Stripe y el [carrito](/es/docs/enable/ecommerce), en un proyecto con backend: lo que un comprador pagó, escrito por el webhook de Stripe para que la app pueda actuar sobre ello. Crea dos colecciones:

```
orders
order_lines
```

Un pedido es una Checkout Session, con el id de la sesión como clave, así que un evento reenviado o reproducido actualiza la fila que ya creó. Su estado es el `payment_status` de Stripe (`paid`, `unpaid`, `no_payment_required`); un pago que se liquida después del Checkout (un débito bancario) se registra `unpaid` y se actualiza cuando se completa o falla. Las líneas son los propios line items de Stripe, tal como los valoró: nombre, importe unitario, cantidad, total.

### Qué añade

- `src/routes/webhooks/stripe/handlers/checkout/` - Manejadores para `checkout.session.completed` y los dos eventos `async_payment`, enrutados desde `dispatch.ts`, así que corren dentro del [workflow](/es/docs/workflows) `stripe-event` con sus reintentos.
- `/checkout/success` muestra ahora las líneas del pedido una vez que el webhook lo ha registrado, y el resumen de Stripe hasta entonces.

Con la [autenticación](/es/docs/enable/auth) activa, el pedido guarda el cliente de Stripe y el usuario del comprador, los compradores con sesión ven sus pedidos en `/orders` y `/orders/[id]`, y un elemento Pedidos se une al menú de usuario. Con las [notificaciones](/es/docs/enable/notifications) activas, un pedido pagado deja una a su comprador. Los invitados tienen el recibo de Stripe.

### Probar en local

Reenvía los eventos de Stripe a tu servidor de desarrollo y completa una compra con una [tarjeta de prueba](https://docs.stripe.com/testing):

```
$ stripe listen --forward-to localhost:5173/webhooks/stripe
```

### Otros proveedores

Shopify guarda sus propios pedidos; enlaza a las páginas de cuenta de cliente de la tienda. Los pedidos de WhatsApp son envíos del formulario alojado `order` y viven en el panel de VelaStack. `vela enable orders` es para Stripe.