Saltar al contenido

Caso de estudio

Una tienda sin reputación
que igual da confianza

acentta es un marketplace de dropshipping completo: 17 productos en dos rubros, buscador, carrito y un checkout de tres pasos que termina en un pedido con seguimiento. Proyecto conceptual propio, construido de punta a punta.

17productos
64páginas
100en accesibilidad
33 KBla página más pesada
Portada del sitio acentta: la home con el carrusel de campañas

01

El problema

Diseñar una tienda que nadie conoce, para que un desconocido le deje los datos de su tarjeta.

Una marca con años encima puede permitirse fricción: la gente ya sabe que el producto llega. Una tienda nueva no tiene ese crédito. Todo lo que en un sitio conocido es un detalle —un plazo vago, un costo que aparece tarde, una foto que no coincide con lo que dice el texto— en una tienda nueva es motivo suficiente para cerrar la pestaña.

En dropshipping el problema se agrava: los plazos son largos, el vendedor no tiene el producto en la mano y el comprador lo intuye. Así que el proyecto no se planteó como «hacer una tienda linda» sino como una pregunta más concreta: qué tiene que pasar en cada pantalla para que alguien que llegó hace treinta segundos decida confiar.

La respuesta que guía todo el sitio es una sola: adelantar la información incómoda. El costo del envío, el plazo real, qué pasa si no llega, cómo se devuelve. Todo lo que una tienda suele esconder hasta el último paso, acá está antes de que lo pregunten.

02

Tres decisiones difíciles

Difíciles porque en las tres la opción correcta cuesta algo. Van con su contra, porque una decisión sin costo no era una decisión.

El naranja de la marca no puede ser el naranja del botón

El color que define la identidad no llega al contraste mínimo. Se separó en dos.

El coral #FF6A3D es el color de la marca y funciona: es cálido, se distingue de cualquier competidor y se ve bien en una foto de living. El problema aparece cuando se lo usa donde importa. Con texto blanco encima da 2,9:1 de contraste, y el mínimo para texto es 4,5:1. Un botón de compra que no se lee no es un problema estético.

La salida fácil era ignorarlo: casi nadie audita el contraste de un portafolio. La salida honesta fue partir el color en dos roles. El coral quedó para lo decorativo —badges, gráficos, el acento del logo— y para lo funcional entró un naranja más oscuro, #B8431C, que da 4,9:1 y sigue siendo reconociblemente el mismo color.

La contra: El botón principal ya no es exactamente el color de la marca. En una comparación lado a lado se nota, y hubo que aceptarlo: es el precio de que se pueda leer.

Mostrar el costo y el plazo de envío antes de que los pregunten

La mala noticia se da temprano, cuando todavía no costó nada.

En dropshipping los plazos son largos y el envío casi nunca es gratis. La tentación es esconder las dos cosas hasta el último paso del checkout, cuando la persona ya invirtió tiempo y le cuesta más abandonar. Es una táctica que funciona, y por eso está tan extendida.

Acá el costo se calcula por código postal en la ficha del producto, y la fecha se muestra en lenguaje humano —«llega entre el 14 y el 20 de agosto», no «7 a 14 días hábiles»—. El umbral de envío gratis está a la vista con una barra que dice cuánto falta.

El razonamiento no es moral, es aritmético: el costo de envío sorpresa es la principal causa de abandono de carrito, y en una tienda sin reputación cada reclamo pesa el doble. Cambiar una venta de hoy por un reclamo de mañana es un mal negocio.

La contra: Alguna gente se va al ver el costo. Esa venta se pierde, y no hay forma de saber cuántas. La apuesta es que las que quedan valen más que las que se van.

Nada de urgencia inventada

Los avisos de escasez se calculan del stock. Si no hay dato, no hay aviso.

El repertorio habitual está a mano: contadores que se reinician al recargar, «quedan 2 unidades» que dicen lo mismo hace un mes, «12 personas están viendo esto». Levantan la conversión en el corto plazo y son la razón por la que mucha gente ya no le cree a ninguna tienda chica.

Acá el badge de «últimas unidades» sale de una función que suma el stock real de cada variante. Si el catálogo cambia, el badge cambia. No existe forma de escribirlo a mano: no hay ningún campo para eso. El contador de unidades vendidas sólo aparece cuando el dato existe, y el ranking de más vendidos se ordena por ventas reales — el producto que no tiene el dato simplemente no entra.

La misma regla vale para el precio tachado: es el precio al que se vendió antes, no uno inflado para que el descuento parezca más grande.

La contra: Se deja conversión sobre la mesa, y es medible: hay estudios que le ponen números. La contra es real y la decisión igual se sostiene, porque el daño a la confianza cuesta más que la venta ganada y dura más tiempo.

03

El sistema

Nada se decide dos veces. Un color, una medida y una regla viven en un solo lugar y el resto del sitio los consulta.

El color, la tipografía, el espaciado y los radios son variables de CSS. Cambiar el fondo del sitio entero fue editar una línea. Cuando el alto del logo tenía que igualar al del buscador, no se sincronizaron dos números: se creó uno solo que usan los dos.

Lo mismo con las reglas de negocio. Si un producto está agotado, si le quedan últimas unidades, cuánto se ahorra y si supera el umbral de envío gratis de $ 100.000 son funciones que viven junto a los tipos de datos. Ninguna vista las reimplementa, así que ninguna puede contradecir a otra.

El catálogo se valida al construir el sitio: si un producto sale sin precio, sin foto o con un descuento imposible, la compilación falla y dice cuál. Con 17 productos y dieciocho campos cada uno, ese aviso es la diferencia entre encontrar el error ahora o descubrirlo en producción.

La prueba de que el sistema escala

El sitio nació con 8 productos de decoración. Sumar el segundo rubro —5 productos de electrónica para el hogar, con cinco categorías nuevas— no cambió una sola línea de las plantillas. La página de categoría pasó de cuatro rutas a nueve leyendo otra lista. La ficha, la grilla, los filtros y el carrito son exactamente los mismos.

Ver el sistema de diseño completo

04

Alternativas descartadas

Casi todas eran defendibles. Lo que las descartó fue el tamaño real de este proyecto, no una preferencia.

  • React con renderizado en el servidor Astro estático

    Un catálogo que no cambia entre visitas no necesita un servidor pensando en cada pedido. Astro entrega HTML terminado y manda al navegador sólo el JavaScript del carrito y los filtros. La consecuencia se mide: 0 ms de bloqueo del hilo principal en las cuatro pantallas.

  • Un servicio de búsqueda externo Índice en el navegador, 18 KB

    Con 36 productos, contratar un servicio significaba una dependencia, una clave y una ida y vuelta a la red para resolver algo que entra en el HTML. Las sugerencias aparecen mientras se escribe, sin una sola petición. Está anotado dónde deja de servir: a partir de unos cientos de productos, el peso del índice manda.

  • Filtrar en el servidor Filtrar en el navegador sobre HTML completo

    El listado llega con los 36 productos renderizados, así que el buscador de Google los indexa todos y filtrar no cuesta un viaje. El mismo límite que la búsqueda, y por la misma razón.

  • Modal al agregar al carrito Panel lateral con barra de envío gratis

    Un modal interrumpe y obliga a decidir «seguir o pagar». El panel lateral confirma que se agregó, muestra cuánto falta para el envío gratis y se cierra solo con Escape, sin bloquear el catálogo que la persona estaba mirando.

  • Registro obligatorio antes de pagar Compra como invitado

    Es de los mayores destructores de conversión que existen, y este sitio no necesita cuentas para entregar un pedido. Se piden los datos que hacen falta para facturar y avisar, y cada campo dice para qué se pide.

05

Resultados verificables

Todos salen de una medición que se repite con un comando. No hay métricas de negocio: este proyecto no tuvo clientes, y una conversión inventada no prueba nada.

  • 100 Accesibilidad Lighthouse, en 3 de 4 pantallas
  • 100 Buenas prácticas Lighthouse, en las 4
  • 0 ms Bloqueo del hilo TBT en las 4 pantallas
  • 0 Infracciones de axe sobre las 64 páginas
  • 32/32 Contraste combinaciones reales, fórmula WCAG
  • 33 KB Peso de la página más grande comprimida, meta < 300 KB
  • completo Circuito de compra con teclado verificado paso por paso
  • 2,1 – 4,4 s LCP móvil meta < 2 s · fotos provisorias de terceros

Lo que todavía no llega a la meta

El tiempo hasta la imagen más grande está entre 2,1 y 4,4 segundos, contra una meta de 2. La causa está identificada y no es el código: las fotos son provisorias y las sirve un tercero. Antes de pedir el primer byte hay que resolver un DNS y negociar un TLS contra otro dominio. Se agregó conexión anticipada, que ayuda, pero el techo lo pone la decisión de usar placeholders.

Con fotos propias, optimizadas y servidas desde el mismo dominio, este número baja solo. Prefiero dejarlo escrito así antes que mostrar una captura de otra pantalla y llamarlo resultado.

06

Qué haría distinto

Cuatro cosas, y las cuatro se aprendieron rompiendo algo.

  1. Las fotos propias, desde el primer día

    Es lo único que impide llegar a la meta de velocidad. Las imágenes son placeholders servidos por un tercero: antes de pedir el primer byte hay que negociar una conexión con otro dominio. Ninguna optimización del código compensa eso. Empezar por las fotos habría cambiado el número final.

  2. Definir antes qué vive en el sistema y qué en la página

    Astro aísla el CSS por archivo. Tres errores distintos salieron de lo mismo: estilos escritos dentro de una página que otra página necesitaba, y reglas que no alcanzaban a los elementos creados por JavaScript. Ninguno era difícil de arreglar; todos fueron difíciles de encontrar.

  3. Auditar la salida compilada, no el código

    Dos de los errores más caros sólo existían después del compilador: el minificador borraba una propiedad del efecto de vidrio, y el generador de la vista previa partía un guion al medio. Mirando el código fuente los dos eran invisibles. Todas las pruebas de este proyecto corren sobre lo que recibe el navegador.

  4. Escribir las pruebas mientras se construye

    Aparecieron cuando algo ya se había roto dos veces. Cada una encontró después un defecto que yo no estaba buscando — el orden de encabezados, el voseo que sobrevivió al barrido, el desborde de diecinueve píxeles en móvil. Escritas antes, habrían atajado los tres.

¿Trabajamos juntos?

Si estás por encarar una tienda, una landing o un producto donde la confianza decide la venta, escribime. Puedo mostrarte el resto del proyecto: el sistema de diseño con todos sus estados, el código comentado decisión por decisión, y la auditoría completa con lo que salió bien y lo que no.

Proyecto conceptual propio. No hay cliente real, no se procesan pagos y no se guarda ningún dato.