Saltar al contenido
EspañolEnglish
Todos los componentes (204)

Estado del pedido

Comercio · OrderStatus

Qué es y cuándo usarlo

Por dónde va un envío: los hitos en orden con su fecha, el de ahora marcado y lo que falta a la espera. Arriba, una frase que se lee de un vistazo, el número de seguimiento con su botón de copiar y el enlace a la web del transportista.

Cuándo usarlo

  • En «Mis pedidos» y en la página de seguimiento de un pedido.
  • El estado de cada hito (milestones) sale solo de las fechas: el último con date es el de ahora, lo de antes está hecho y lo que no tiene fecha, pendiente. detail dice dónde pasó o quién lo hizo.
  • failed en un hito que no salió bien (entrega fallida, devuelto a origen): corta la cadena y la frase de arriba deja de dar fecha para avisar de que hay que hacer algo.
  • delivery añade la fecha prevista a la frase de arriba mientras falta algo: con el último hito ya cumplido (entregado), la frase no da fecha.
  • tracking abre la línea del envío; carrier y link solo salen con él.

Cuándo no

  • Las fases de un proceso que avanza, sin fechas ni transportista (un alta, un asistente): Steps.
  • Un registro de lo que ya ha pasado, sin nada pendiente: History.

Teclado: solo se enfocan el botón de copiar el número de seguimiento y el enlace al transportista, en ese orden; lo demás se lee.

Accesibilidad: es una región con nombre (label, obligatorio) y los hitos son una lista ordenada: se sabe cuántos pasos hay y por cuál va. El de ahora lleva aria-current="step", y el estado de cada hito va escrito para el lector de pantalla («hecho», «es el paso de ahora», «pendiente», «no salió bien»), no solo en el color del punto. El enlace avisa de que se abre en otra pestaña, y al copiar el número se dice «Copiado».

Contexto: va dentro de LocaleProvider (o de AmsetProvider), que decide cómo se escriben las fechas.

Aspecto fino: variables CSS --amset-order-state-*: -brand, -brand-icon, -detail, -gap, -hito-gap, -line, -title. El tamaño mueve el circulo del hito, su icono, la linea que los une y los cuerpos de letra.

Cómo se ve

En camino. Entrega prevista: 16 oct

Correos Express: AM123456789ESVer en la web del transportista (se abre en otra pestaña)

  1. Pago confirmado (hecho)12 oct, 09:12
  2. Preparando el pedido (hecho)Almacén de Getafe12 oct, 17:40
  3. En camino (es el paso de ahora)Centro logístico de Coslada13 oct, 08:05
  4. En reparto (pendiente)
  5. Entregado (pendiente)

<OrderStatus
  label="Seguimiento del pedido 1042"
  milestones={[
    { key: 'pagado', title: 'Pago confirmado', date: '2026-10-12T09:12' },
    { key: 'enviado', title: 'En camino', date: '2026-10-13T08:05', detail: 'Centro logistico de Coslada' },
    { key: 'entregado', title: 'Entregado' },
  ]}
  delivery="2026-10-16"
  tracking="AM123456789ES"
  carrier="Correos Express"
/>

Props

Se importa con import { OrderStatus } from '@amset/ui'. Las obligatorias van marcadas.

PropTipoPara qué sirve
labelobligatoriastringQue pedido es. Obligatoria: nombra la region entera.
milestonesobligatoriareadonly OrderMilestone[]—
carrierstringQuien lo lleva: sale delante del numero. Solo con `tracking`.
classNamestringSe une a las clases de la biblioteca, no las sustituye.
deliverystringFecha prevista de entrega, `AAAA-MM-DD`. Sale en el resumen mientras el pedido no ha llegado al ultimo hito; entregado, ya no.
linkstringEnlace al seguimiento en la web del transportista. Solo con `tracking`.
size"sm" | "md" | "lg"—
trackingstringNumero de seguimiento, que se puede copiar. Es lo que abre la linea del envio: sin el no se pintan ni `carrier` ni `link`.

Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.

En el banco de pruebas

Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech: