Skip to content
Esta página fue generada y traducida con asistencia de IA. Si encuentra alguna imprecisión, no dude en ayudar a mejorarla. Editar en GitHub

Gestión de Productos ​

Los productos son la unidad organizativa de nivel superior en Fenfa. Cada producto representa una única aplicación y puede contener múltiples variantes de plataforma (iOS, Android, macOS, Windows, Linux). Un producto tiene su propia página de descarga pública, icono y URL con slug.

Conceptos ​

mermaid
graph TD
    PRODUCT["Producto<br/>nombre · slug · icono · descripción"]
    VAR1["Variante: iOS<br/>com.example.app · ipa · arm64"]
    VAR2["Variante: Android<br/>com.example.app · apk"]
    VAR3["Variante: macOS<br/>dmg · arm64"]
    REL1["Versión v1.0.0"]
    REL2["Versión v1.1.0"]
    REL3["Versión v1.0.0"]

    PRODUCT --> VAR1
    PRODUCT --> VAR2
    PRODUCT --> VAR3
    VAR1 --> REL1
    VAR1 --> REL2
    VAR2 --> REL3
  • Producto: La aplicación lógica. Tiene un slug único que se convierte en la URL de la página de descarga (/products/:slug).
  • Variante: Un objetivo de build específico de plataforma bajo un producto. Ver Variantes de Plataforma.
  • Versión: Un build específico subido bajo una variante. Ver Gestión de Versiones.

Crear un Producto ​

Via Panel de Administración ​

  1. Navega a Productos en la barra lateral.
  2. Haz clic en Crear Producto.
  3. Rellena los campos:
CampoRequeridoDescripción
NombreSíNombre de visualización (ej. "MyApp")
SlugSíIdentificador URL (ej. "myapp"). Debe ser único.
DescripciónNoBreve descripción de la app mostrada en la página de descarga
IconoNoIcono de la app (subido como archivo de imagen)
  1. Haz clic en Guardar.

Via API ​

bash
curl -X POST http://localhost:8000/admin/api/products \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MyApp",
    "slug": "myapp",
    "description": "A cross-platform mobile app"
  }'

Listar Productos ​

Via Panel de Administración ​

La página de Productos en el panel de administración muestra todos los productos con su número de variantes y descargas totales.

Via API ​

bash
curl http://localhost:8000/admin/api/products \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN"

Respuesta:

json
{
  "ok": true,
  "data": [
    {
      "id": "prd_abc123",
      "name": "MyApp",
      "slug": "myapp",
      "description": "A cross-platform mobile app",
      "published": true,
      "created_at": "2025-01-15T10:30:00Z"
    }
  ]
}

Actualizar un Producto ​

bash
curl -X PUT http://localhost:8000/admin/api/products/prd_abc123 \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MyApp Pro",
    "description": "Updated description"
  }'

Eliminar un Producto ​

Eliminación en Cascada

Eliminar un producto elimina permanentemente todas sus variantes, versiones y archivos subidos.

bash
curl -X DELETE http://localhost:8000/admin/api/products/prd_abc123 \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN"

Publicar y Despublicar ​

Los productos pueden publicarse o despublicarse. Los productos despublicados devuelven un 404 en su página de descarga pública.

bash
# Unpublish
curl -X PUT http://localhost:8000/admin/api/apps/prd_abc123/unpublish \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN"

# Publish
curl -X PUT http://localhost:8000/admin/api/apps/prd_abc123/publish \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN"

Página de Descarga Pública ​

Cada producto publicado tiene una página de descarga pública en:

https://your-domain.com/products/:slug

La página incluye:

  • Icono, nombre y descripción de la app
  • Botones de descarga específicos de plataforma (detectados automáticamente según el dispositivo del visitante)
  • Código QR para escanear desde móvil
  • Historial de versiones con números de versión y changelogs
  • Enlaces itms-services:// de iOS para instalación OTA

Formato de ID ​

Los IDs de producto usan el prefijo prd_ seguido de una cadena aleatoria (ej. prd_abc123). Los IDs se generan automáticamente y no pueden modificarse.

Siguientes Pasos ​

Released under the Apache-2.0 License.