Orders

ProDepende de: paymentsDepends: ecommerceDepende de: backend

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

Sintaxis

$ vela enable orders

Añade pedidos sobre los pagos con Stripe y el carrito, 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 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 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 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:

$ 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.