Recomendaciones desde el servidor
Úsalo cuando tu servidor necesite la talla de quien compra: una tienda headless, páginas de producto renderizadas en el servidor, una talla mostrada en un email de carrito o tu propia lógica de recomendación.
Cómo funciona
Sección titulada «Cómo funciona»-
En el navegador, TryYourSize.js pide a nuestro origen un handle de recomendación para la persona compradora con sesión iniciada.
const tys = TryYourSize("pk_live_…");const h = await tys.recommendationHandle(); // { handle, expiresAt } | nullnullsignifica que quien compra no ha iniciado sesión en TryYourSize en este sitio, aún no tiene cuerpo o está en tu grupo de control A/B.expiresAtes una fecha y hora ISO una hora por delante. En React, llámalo en el cliente desdeuseTryYourSize(). -
Tu página envía
h.handlea tu propio servidor, como cualquier otro valor (un campo de formulario, un fetch a tu API). -
Tu servidor llama a
POST /v1/recommendationscon una clave secreta (o una clave restringida confit_checks:read) y hasta 25 productos. -
La respuesta es una entrada por producto, en el orden solicitado: tallas con tus etiquetas, nunca medidas.
import TryYourSize from "@tryyoursize/node";const tys = new TryYourSize(process.env.TYS_SECRET_KEY!);
const { mode, data } = await tys.recommendations.create({ handle: req.body.tysHandle, products: ["CREW-TSHIRT", "STRAIGHT-JEANS"],});for (const r of data) { if (r.status === "ready") console.log(r.product, r.size); // "CREW-TSHIRT", "Medium"}import tryyoursizetys = tryyoursize.TryYourSize(os.environ["TYS_SECRET_KEY"])
res = tys.recommendations.create( handle=request.form["tys_handle"], products=["CREW-TSHIRT", "STRAIGHT-JEANS"],)for r in res["data"]: if r["status"] == "ready": print(r["product"], r["size"])curl https://api.tryyoursize.com/v1/recommendations \ -H "Authorization: Bearer $TYS_SECRET_KEY" \ -H "TYS-Version: 2026-10-25" \ -H "Content-Type: application/json" \ -d '{"handle":"tys_rh_…","products":["CREW-TSHIRT","STRAIGHT-JEANS"]}'La respuesta
Sección titulada «La respuesta»{ "mode": "live", "data": [ { "product": "CREW-TSHIRT", "status": "ready", "size": "Medium", "studio_size": "M", "wearable_sizes": ["Medium", "Large"] }, { "product": "STRAIGHT-JEANS", "status": "unavailable", "size": null, "studio_size": null, "wearable_sizes": [] } ]}| Campo | |
|---|---|
status |
ready (hay talla), computing (se está ejecutando una simulación que inició quien compra: vuelve a preguntar más tarde), none (simulado, ninguna talla se puede llevar), unavailable (no hay prenda publicada, aún no se ha simulado en este cuerpo o al plan no le quedan pruebas de tallaje). No existe signed_out: un handle siempre pertenece a una persona compradora con sesión iniciada. |
size |
La talla recomendada con tu etiqueta (el mapa de tallas del producto), o null. |
studio_size |
La misma talla tal como se introdujo en Studio, o null. |
wearable_sizes |
Tallas que se pueden llevar en este cuerpo, con tus etiquetas. |
method |
Una etiqueta orientativa y genérica de cómo se obtuvo la talla. No bases ninguna lógica en sus valores. |
tryon_id |
La prueba virtual que produjo la talla, cuando la hay. Devuélvelo con los pedidos para la atribución. |
- Nunca inicia una simulación. Igual que al ver una página, solo responde con una talla que ya está disponible (muchas prendas responden en menos de un segundo) y, si no, el estado es
unavailablehasta que quien compra pida la prueba virtual en nuestra ventana. - Una talla entregada cuenta como una prueba de tallaje, exactamente igual que en el navegador (una vez por persona compradora y producto cada 30 días, solo en modo real).
- La API de servidor nunca acepta ni devuelve medidas en bruto.
El handle
Sección titulada «El handle»- Empieza por
tys_rh_y ocupa hasta 4 KB. Trátalo como opaco. - Está cifrado y sellado para una tienda, un modo y una persona compradora. Ni tu página ni tu servidor pueden leer nada de él; nunca contiene el email de quien compra.
- Caduca al cabo de 1 hora. A partir de entonces la API responde
401con el códigohandle_expired: pide uno nuevo al navegador. - Se rechaza con
401handle_invalidcuando quien compra elimina su cuenta o desconecta tu tienda, y cuando se emitió para otra tienda. - Su modo debe coincidir con el de tu clave: un handle de prueba con una clave real (o al revés) devuelve
403handle_mode_mismatch.
¿Te ha resultado útil esta página?
Gracias. Leemos todas las respuestas.