Obtener la configuración de necesidades por producto

Este endpoint devuelve la configuración de necesidades definida para el producto indicado en la URL.

GET /api/v1/businesses/{businessId}/products/{productId}/needs-config

Si los datos incluidos en la URL son correctos, la respuesta contendrá la configuración de necesidades del producto, incluyendo las temporadas (seasons), las propuestas activas (proposals) y el listado de tipos de días (dayTypes) y tareas (locations que se pueden referenciar al definir la configuración por API.

Ejemplo de respuesta

{
    "productId": "0001-GENERAL",
    "productName": "GENERAL",
    "seasons": [
        {
            "id": "2026-GEN",
            "name": "General",
            "fromMonthDay": "01-01",
            "toMonthDay": "12-31",
            "addressable": true,
            "proposals": [
                        {
                            "id": "PRT",
                            "name": "Productivity",
                            "defaultProposal": true,
                            "addressable": true,
                            "steps": [
                                {
                                    "id": "STP1",
                                    "name": "Productivity",
                                    "order": 4,
                                    "type": "PRODUCTIVITY",
                                    "addressable": true
                                }
                            ]
                        },
                        {
                            "name": "Dynamic template",
                            "defaultProposal": false,
                            "addressable": false,
                            "steps": [
                                {
                                    "name": "Dynamic template",
                                    "order": 1,
                                    "type": "DYNAMIC_TEMPLATES",
                                    "addressable": false
                                },
                                {
                                    "name": "Dynamic template 2",
                                    "order": 2,
                                    "type": "DYNAMIC_TEMPLATES",
                                    "addressable": false
                                }
                            ]
                        },
                        {
                            "name": "Hourly budget",
                            "defaultProposal": false,
                            "addressable": false,
                            "steps": [
                                {
                                    "name": "Recommendation based on hourly budget",
                                    "order": 1,
                                    "type": "BUDGET_HOUR",
                                    "addressable": false
                                }
                            ]
                        },
                        {
                            "name": "Training",
                            "defaultProposal": false,
                            "addressable": false,
                            "steps": [
                                {
                                    "name": "Training",
                                    "order": 1,
                                    "type": "PREPARATION",
                                    "addressable": false
                                },
                                {
                                    "name": "Productivity",
                                    "order": 2,
                                    "type": "PRODUCTIVITY",
                                    "addressable": false
                                },
                                {
                                    "name": "Test template",
                                    "order": 3,
                                    "type": "DYNAMIC_TEMPLATES",
                                    "addressable": false
                                }
                            ]
                        }
                    ]
        }
    ],
    "dayTypes": [
        {
            "name": "ALL",
            "node": null,
            "priority": -400
        },
        {
            "name": "WORKED_EXCLUDING_HOLIDAYS",
            "node": null,
            "priority": -300
        },
        {
            "name": "MONDAY_SATURDAY",
            "node": null,
            "priority": -300
        },
        {
            "name": "Closing holiday",
            "node": "0001",
            "priority": 5
        }
    ],
    "locations": [
        {
            "id": "01",
            "zone": "General",
            "name": "OPENING",
            "type": "FIXED",
            "addressable": true
        },
        {
            "id": "03",
            "zone": "General",
            "name": "SALES",
            "type": "VARIABLE",
            "addressable": true
        },
        {
            "id": "AUTO",
            "zone": "General",
            "name": "AUTO",
            "type": "FIXED",
            "addressable": false
        }
    ]
}
Detalles
  • productId: identificador externo del producto o sección.

  • productName: nombre del producto o sección.

  • seasons: temporadas configuradas en el producto. Para cada temporada se incluye la siguiente información:

    • id: identificador externo de la temporada. Puede ser null, en cuyo caso, la temporada no puede referenciarse a través de la API.

    • name: nombre de la temporada.

    • fromMonthDay: inicio de la temporada, en formato MM-dd.

    • toMonthDay: fin de la temporada, en formato MM-dd.

    • year: año al que se restringe la temporada. Puede ser null si aplica a todos los años.

    • addressable: indica si esta temporada puede referenciarse a través de la API. Es false cuando no tiene identificador externo.

    • proposals: propuestas de generador de necesidades activas en la temporada. Para cada propuesta se incluye la siguiente información:

      • id: identificador externo de la propuesta. Puede ser null si no se ha definido en el sistema.

      • name: nombre de la propuesta.

      • defaultProposal: indica si esta es la propuesta por defecto.

      • addressable: indica si esta propuesta puede referenciarse a través de la API. Es false cuando no tiene identificador externo.

      • steps: etapas de la propuesta, ordenadas según se ejecutan. Para cada etapa se incluye la siguiente información:

        • id: identificador externo de la etapa. Puede ser null, en cuyo caso, la etapa no puede referenciarse a través de la API.

        • name: nombre de la etapa.

        • order: posición de la etapa dentro de la propuesta, tal y como está almacenada.

        • type: tipo de la etapa, que determina cómo se configura. Posibles valores son BRMS, PRODUCTIVITY, ASSISTED_SALE, BUDGET_HOUR, PREPARATION, REST, DYNAMIC_TEMPLATES, ACCUMULATIVE, LOWEST_DEMAND, CHECKOUT_SIMULATION.

        • addressable: indica si esta etapa puede modificarse a través de la API. Es false cuando no tiene identificador externo o cuando su tipo todavía no está soportado.

  • dayTypes: tipos de día que se pueden utilizar al configurar una etapa de este producto. Para cada tipo de día se incluye la siguiente información:

    • name: nombre del tipo de día, que es como se referencia al configurar una etapa.

    • node: identificador externo del nodo en el que está definido el tipo de día. Permite distinguir dos tipos de día con el mismo nombre heredados de nodos distintos. Puede ser null para un tipo de día del sistema y para uno definido en un nodo sin identificador externo.

    • priority: prioridad del tipo de día. Cuando varios se aplican al mismo día, prevalece el de valor más alto.

  • locations: tareas que se pueden utilizar al configurar la distribución de empleados de una etapa. Para cada tarea se incluye la siguiente información:

    • id: identificador externo de la tarea. Es null cuando no tiene ninguno definido, en cuyo caso la tarea no se puede referenciar.

    • zone: identificador externo de la zona a la que pertenece la tarea.

    • name: nombre de la tarea.

    • type: tipo de necesidad vinculada a la tarea, pudiendo ser VARIABLE, FIXED o UNPLANNED."

    • addressable: indica si esta tarea se puede referenciar al configurar una etapa. Es false para tareas del sistema y para aquellas sin identificador externo.

Consideraciones

Si el producto no tiene ninguna propuesta activa asociada a una temporada, la respuesta devolverá "seasons": [].

Si una propuesta no tiene etapas configuradas, la respuesta devolverá "steps": [] para esa propuesta.

El campo addressable será true si el elemento tiene identificador externo y se puede referenciar en la API. En las etapas (steps), además, su tipo de generación debe ser soportado en escritura.

Códigos de error

Además de los errores comunes, este endpoint puede devolver los siguientes códigos:

Código Mensaje Descripción

404 Not Found

Needs configuration not found

El producto existe, pero no tiene ninguna configuración de necesidades (temporadas, propuestas o etapas) definida.

Enlaces de interés

¿Qué son las necesidades?

¿Qué es un generador de necesidades?

¿Qué es el catálogo de tareas?