Saltar al contenido

Tienda en línea · negocio propio · en producción

La tienda que construimos para nuestra propia operación: pago con tarjeta u OXXO y aviso por Telegram en cada pedido

InovaTienda es nuestra tienda en línea de productos médicos y dentales, con unos 3,932 productos. Cobra con tarjeta o en OXXO, descuenta inventario solo cuando el pago se confirma y avisa por Telegram una sola vez por pedido. En línea en tiendainova.com.

Cliente
InovaTienda (negocio propio de riel)
Industria
Comercio electrónico de insumos médicos y dentales · México

Negocio propio: sistema que construimos para nuestra propia operación

~3,932
Productos en catálogo
6
Categorías
Tarjeta y OXXO
Formas de pago
2
Funciones de servidor

El problema

Vender un catálogo grande a compradores que pagan de formas distintas, y operar la tienda sin que alguien esté mirando la pantalla todo el día.

  • Cobrar con tarjeta y en efectivo: una parte de los compradores paga en OXXO y ese pago llega horas o días después. El sistema tiene que esperar el depósito sin descontar inventario antes de tiempo, y cerrar el pedido si el comprobante vence.
  • Descontar el inventario solo cuando el dinero llegó, una sola vez, aunque el proveedor de pagos avise dos veces.
  • Enterarse de cada pedido pagado sin abrir un panel: un aviso al teléfono con lo que se vendió.
  • Que nadie pague menos de lo que vale: el precio que se cobra tiene que salir de la base de datos, no de la pantalla.
  • Operar el catálogo sin desarrollador: alta de productos, corrección de precios de cientos de renglones, pedidos, alertas de existencia.

Antes

  • Cómo se tomaban y cobraban los pedidos antes de la tienda: pendiente de documentar; no se estima.

Qué construimos

FaseQué quedó funcionando
CatálogoSeis categorías, buscador, comparador, lista de deseos y carrito. Los cambios de precio o inventario se reflejan sin recargar. La fórmula del total es idéntica en carrito, pago, base, cobro y aviso.
Cupones y descuento a estudiantesEl cupón se aplica en pantalla y se vuelve a validar en el servidor antes de cobrar. Descuento a estudiantes verificados (5 %) con vigencia anual, aprobado desde el panel; no se acumula con cupones.
Pago con Stripe: tarjeta u OXXOEl servidor recalcula el carrito contra la base, aplica el descuento, crea el pedido y abre el pago. Con OXXO el pedido queda pendiente hasta que Stripe confirma el depósito; si el comprobante vence, se marca como fallido.
Después del pagoUna función de servidor recibe la confirmación, marca el pedido, descuenta el inventario mediante una función de base de datos y envía el aviso por Telegram una sola vez, con reintento.
Panel de administraciónProductos, pedidos, inventario y alertas de existencia. Edición masiva por Excel. El rol de administrador vive en la base de datos, no en el navegador.
Revisión de seguridadEl despliegue publicaba archivos SQL y documentación interna como estáticos; se cerró con una lista de exclusión. Lo decimos porque es lo que se encuentra revisando, no construyendo.

Ajustes después de la entrega

  • Lo que este proyecto no tiene, dicho como tal: no tiene pruebas automatizadas ni fases documentadas como el ERP DG; se construyó de forma incremental para nuestra operación. Es la diferencia entre lo que hacemos para nosotros y lo que entregamos a un cliente.

Cómo se desarrolló

  1. 01

    Catálogo primero

    Los productos se cargaron en la base y también quedaron embebidos en la página como respaldo, para que el catálogo se vea aunque la base no responda.

  2. 02

    Pago en modo de prueba

    Hasta que el flujo completo (carrito → pago → confirmación → inventario → Telegram) funcionó de punta a punta con tarjeta y con OXXO, incluidos el comprobante vencido y el reintento del aviso.

  3. 03

    Panel de administración

    Con las operaciones que se hacían a mano: alta y edición de productos, edición masiva por Excel, pedidos, inventario y alertas.

  4. 04

    Revisión de seguridad

    Dos correcciones: precios revalidados en el servidor y exclusión de archivos internos del despliegue. 128 commits entre el 3 de junio y el 29 de julio de 2026.

Tecnología

JavaScript sin framework en el navegador (una sola página con la tienda y el panel); Supabase (PostgreSQL con permisos por fila y funciones para inventario, pedidos y verificación de estudiantes); Stripe Checkout con tarjeta y OXXO; Telegram Bot API; dos funciones serverless en Vercel.

Cifras verificadas

Productos en catálogo
~3,932
Categorías
6
Formas de pago
Tarjeta y OXXO
Funciones de servidor
2
Descuento a estudiantes verificados
5 %
Historia
128 commits
Dominio
tiendainova.com

Métricas de negocio: son nuestras, existen en la base de datos y se publicarán cuando decidamos qué se comparte. No se estiman.

Qué cambió

Cobra con tarjeta y en OXXO sin intervención

Incluido el caso en que el comprobante de OXXO vence sin pago.

El inventario se descuenta con el pago confirmado

Una sola vez por pedido, aunque el proveedor avise dos veces.

Cada pedido pagado llega al teléfono

Un aviso por Telegram que no se duplica.

Nadie paga menos que el precio de la base

Aunque manipule el carrito en el navegador.

El catálogo se opera sin desarrollador

Alta de productos, corrección masiva desde Excel, pedidos, inventario y alertas.

Descuento a estudiantes con verificación

Aprobado o rechazado desde el panel, sin acumularse con cupones.

¿Vendes por WhatsApp y cobras por transferencia a mano?

Pedidos que se pierden, pagos que hay que confirmar uno por uno, inventario que se descuenta cuando alguien se acuerda. Cuéntanos cómo lo llevan hoy.