Home Projects Portfolio Dashboard Export PDF Log in

Escalando la Experiencia del Usuario: Mejoras en TuTiendaWeb

La Evolución de la Experiencia de Usuario

En el proyecto TuTiendaWeb, hemos estado trabajando intensamente en mejorar tanto la adquisición de nuevos usuarios como la robustez del carrito de compras. Nuestro objetivo era transformar un flujo de registro complejo en una experiencia fluida mediante un asistente paso a paso, y asegurar la integridad de los datos en nuestras operaciones de venta.

El Nuevo Onboarding: De la Complejidad a la Simplicidad

Implementamos un asistente (wizard) de 10 pasos utilizando Framer Motion para gestionar las transiciones y Zod para la validación de esquemas. La clave fue asegurar que el estado del formulario sea consistente y evitar redirecciones prematuras durante la creación de la tienda.

// Ejemplo simplificado de validación de paso en el wizard
const onboardingSchema = z.object({
  storeName: z.string().min(3),
  whatsappPrefix: z.string().default('+54'),
  step: z.number().int().min(0).max(9),
});

export const checkSlugAvailabilityAction = async (slug: string) => {
  // Validación de disponibilidad del identificador de tienda
  const isAvailable = await db.checkUnique(slug);
  return { available: isAvailable };
};

Este enfoque permitió que el usuario avance de forma controlada, validando el identificador de la tienda en tiempo real sin permitir estados inconsistentes que pudieran romper la experiencia.

Optimizando el Carrito y la Integridad de Datos

Detectamos problemas con IDs deterministas que causaban colisiones al editar productos con configuraciones personalizadas. Nuestra solución fue pasar a un sistema de identificadores aleatorios y separar la lógica de precios base de los modificadores (extras).

// Refactorización de la lógica del carrito
const addItemToCart = (item: CartItem) => {
  const newItem = {
    ...item,
    id: generateRandomId(), // Evitar colisiones
    totalPrice: item.basePrice + calculateExtras(item.selectedTopics),
  };
  updateCartState(prev => [...prev, newItem]);
};

Al desacoplar el precio base de los extras y utilizar identificadores únicos, eliminamos los errores de cálculo que ocurrían al modificar opciones en productos ya añadidos.

Conclusión y Próximos Pasos

La transición hacia componentes modulares con Shadcn UI y el uso de Zustand para la gestión de estado global han mejorado drásticamente la mantenibilidad de TuTiendaWeb.

Takeaway: Al enfrentar flujos complejos, prioriza la validación mediante esquemas estrictos (Zod) y asegúrate de que los identificadores de tus entidades sean inmutables y únicos desde su creación para evitar efectos secundarios en el estado de la aplicación.


Generated with Gitvlg.com

Escalando la Experiencia del Usuario: Mejoras en TuTiendaWeb
MAXIMILIANO EXEQUIEL ARAMAYO LAZO

MAXIMILIANO EXEQUIEL ARAMAYO LAZO

Author

Share: