REST API v1.0 · Pública

KiaiAPI — Catálogo Público de Productos

Documentación técnica de los endpoints públicos de consulta de productos y variantes autorizadas.

Ruta Base /KiaiAPI/
Formato de Respuesta application/json; charset=utf-8
Métodos Permitidos GET, OPTIONS (CORS *)
Campos Públicos de Variante sku, title, subtitle, pricelist
GET /KiaiAPI/get_public_catalog.php Catálogo Público Completo

Devuelve la lista completa de productos activos y publicados (status = 'active' y published = 1), anidando dentro de cada producto únicamente sus variantes públicas y visibles (published = 1 y visible = 1).

Ejemplo de Petición (cURL)

curl -X GET "https://TU_DOMINIO/KiaiAPI/get_public_catalog.php"

Respuesta Exitosa (200 OK)

{
  "status": "success",
  "count": 55,
  "data": [
    {
      "id": 1,
      "shopifyid": 7238684475471,
      "title": "Daedo KATA 1158 Karategi COMPETITION PRO BUNKAI",
      "bodyhtml": "<p>Descripción del producto...</p>",
      "vendor": "Daedo",
      "producttype": "KarateGi",
      "status": "active",
      "published": 1,
      "variants": [
        {
          "sku": "1158-160",
          "title": "Daedo KATA 1158 160 cm",
          "subtitle": "160 cm",
          "pricelist": 3450.0
        }
      ]
    }
  ]
}

        
GET /KiaiAPI/get_product_by_sku.php Consulta de Producto por SKU (Con y Sin Variantes)

Busca una variante pública por su código sku y devuelve la información del producto padre autorizado, los datos del SKU coincidente (matched_sku) y, opcionalmente, todas las variantes públicas asociadas al producto.

Parámetros Query (GET)

Parámetro Tipo Por Defecto Descripción
sku Requerido string — Código exacto del SKU de la variante a consultar.
variants Opcional boolean | int 1 (true) Usa 1 o true para incluir el arreglo variants con todas las variantes públicas del producto.
Usa 0 o false para devolver el producto sin el listado de variantes.

Ejemplos de Petición (cURL)

# 1. Consultar producto por SKU incluyendo todas sus variantes
curl -X GET "https://TU_DOMINIO/KiaiAPI/get_product_by_sku.php?sku=UM%2016000&variants=1"

# 2. Consultar producto por SKU SIN listado de variantes
curl -X GET "https://TU_DOMINIO/KiaiAPI/get_product_by_sku.php?sku=UM%2016000&variants=0"

Respuesta Exitosa — Con Variantes (variants=1)

{
  "status": "success",
  "data": {
    "id": 842,
    "title": "Piso Tatami Rojo/azul 25 mm",
    "vendor": "Unimat",
    "status": "active",
    "published": 1,
    "matched_sku": {
      "sku": "UM 16000",
      "title": "Piso Tatami Rojo/Azul 25mm 1x1",
      "subtitle": "Rojo/Azul 1x1x25",
      "pricelist": 600.0
    },
    "variants": [
      {
        "sku": "UM 16000",
        "title": "Piso Tatami Rojo/Azul 25mm 1x1",
        "subtitle": "Rojo/Azul 1x1x25",
        "pricelist": 600.0
      }
    ]
  }
}

Respuesta Exitosa — Sin Variantes (variants=0)

{
  "status": "success",
  "data": {
    "id": 842,
    "title": "Piso Tatami Rojo/azul 25 mm",
    "vendor": "Unimat",
    "status": "active",
    "published": 1,
    "matched_sku": {
      "sku": "UM 16000",
      "title": "Piso Tatami Rojo/Azul 25mm 1x1",
      "subtitle": "Rojo/Azul 1x1x25",
      "pricelist": 600.0
    }
  }
}

        
Códigos de Respuesta HTTP y Manejo de Errores
Código HTTP Significado Payload de Ejemplo
200 OK Consulta procesada correctamente. {"status": "success", "data": ...}
204 No Content Respuesta a petición CORS preflight (OPTIONS). (Sin cuerpo)
400 Bad Request Parámetro obligatorio ausente o vacío (ej. falta sku). {"status": "error", "message": "El parámetro \"sku\" es obligatorio."}
404 Not Found El SKU o producto no existe o no está autorizado públicamente. {"status": "error", "message": "Producto o SKU no encontrado o no disponible públicamente."}
405 Method Not Allowed Se utilizó un método distinto a GET (ej. POST, DELETE). {"status": "error", "message": "Método no permitido. Solo se aceptan peticiones GET."}
500 Internal Server Error Fallo de conexión o excepción interna (detalles ocultos por seguridad). {"status": "error", "message": "Error interno del servidor"}