Skip to content

Endpoint - Default results ​

Devuelve los productos que el modal del SDK muestra cuando se abre sin query (el cliente todavia no ha tecleado nada). El merchant elige el modo desde Widget Studio: nada, mas buscados, destacados, recientes, aleatorios o (proximamente) mas vendidos.

Cacheado 5 minutos en Redis por (tenant, dataSource, modo, limit). El TTL se invalida cuando se reindexa el catalogo (los hits dejan de ser representativos). El modo random NO se cachea: la gracia es que cambie con cada apertura.

GET /api/v1/widget/default-results ​

Parametros ​

ParametroTipoDefaultDescripcion
modestring(requerido)Uno de: popular, best_sellers, featured, latest, random. El modo none no llega al endpoint (el SDK no llama).
limitint8Cantidad de hits (1-24). El SDK pide 4 en mobile portrait, 6 en mobile landscape, 8 en desktop.
sourcestring(primer dataSource)Slug del data source (productos, recetas, etc.).

Autenticacion ​

Mismo Bearer que /search. Scopes aceptados: public, panel_sync.

Ejemplo ​

bash
curl "https://app.mibizum.io/api/v1/widget/default-results?mode=featured&limit=8" \
  -H "Authorization: Bearer mb_pk_live_..."

Respuesta 200 ​

json
{
  "hits": [
    {
      "id": "sku-001",
      "name": "Crema hidratante",
      "price": 24.90,
      "image_url": "https://cdn.../sku-001.jpg",
      "featured": true
    }
  ],
  "mode": "featured",
  "comingSoon": false,
  "cached": true,
  "dataSource": { "slug": "productos", "displayName": "Productos", "docType": "product" }
}
CampoTipoDescripcion
hitsarrayDocumentos del indice, mismo shape que /search. Vacio si no hay datos o el modo es coming-soon.
modestringModo efectivamente servido (eco del parametro).
comingSoonbooltrue cuando el modo pedido requiere infra no enchufada todavia (hoy solo best_sellers). El SDK degrada al placeholder "Escribe para buscar".
cachedbooltrue si la respuesta viene de Redis. Informativo.
dataSourceobjectSlug + displayName + docType del catalogo consultado.

Comportamiento por modo ​

ModoComo se computaRequisitos
popularTop items por click count en SearchClick ultimos 30 dias.Tracking de clicks (el SDK ya lo manda).
best_sellers(proximamente) Top items por conversion enlazada a una busqueda.Necesita link WidgetEvent.purchase -> Search, no enchufado todavia. Devuelve comingSoon: true.
featuredDocumentos con featured = true en el indice.Cero coste, mismo flag del badge "Top".
latestSort por created_at DESC.Cero coste.
randomProbe + offset random (catalogos grandes) o shuffle local (pequenos).Cero coste. NO cacheado.

Errores ​

StatusCodigoCausa
400invalid_paramsmode no esta en el enum o limit fuera de rango.
401unauthorizedBearer ausente o invalido.
404no_data_sourceTenant sin catalogos configurados.
200 + degraded: true(degradacion graceful)El motor de busqueda fallo; devolvemos hits: [] para no romper el modal.

Settings relacionados en Widget Studio ​

El merchant configura todo esto desde el panel; el endpoint solo expone el resultado. Settings nuevos del sprint:

  • defaultResultsMode (none por defecto): que modo servir.
  • showOuterBorder (false): pinta un borde alrededor del modal en desktop.
  • outerBorderColor (#E5E7EB): color hex del borde.
  • outerBorderWidth (1): grosor 1-4 px.
  • cardFontScale (1.0): multiplicador del font-size de la tarjeta, rango 0.8 - 1.4.
  • desktopWidthMode (auto por defecto): auto = el SDK mide en el navegador del visitante el ancho real del contenedor de contenido de la web del merchant y ajusta el overlay a eso (cero config se ve bien; se adapta solo a ordenador grande vs portátil). fixed = usa desktopMaxWidthPx. Si la web es full-bleed y no hay contenedor centrado que medir, auto cae a desktopMaxWidthPx.

Todos viven en el JSON del perfil del widget (widget_config_profiles.config) y se sirven al SDK via /api/v1/config.

Documentación oficial de Mibizum.