Configuración de Fechas de Acceso (AdvancedDateSelector)

El selector AdvancedDateSelector en Experticket define si los tickets dentro de un producto pueden tener fechas de acceso diferentes a la fecha general de la transacción.

1. Importancia del AccessDateTime

  • El AccessDateTime de la transacción SIEMPRE debe completarse.
  • Dependiendo del método seleccionado (NoneDatePerTicketEnclosure), los tickets pueden o no tener fechas de acceso individuales.

2. Métodos Disponibles

🛑 Método: None (Sin fechas individuales por ticket)

🔹 Restricción:

  • Todos los tickets deben compartir la misma fecha de acceso que la transacción.
  • El AccessDateTime se establece a nivel de transacción y no se define a nivel de ticket.

🔹 Implicaciones:

  • En los endpoints de Reserva de productosCreación de una transacción, el valor de AccessDateTime a nivel de ticket debe:
    • Omitirse.
    • Establecerse como null.

 

✅ Método: DatePerTicketEnclosure (Fechas individuales por recinto de ticket)

🔹 Flexibilidad:

  • Los tickets pueden tener diferentes fechas de acceso dentro de la misma transacción.
  • Las fechas de acceso varían según el recinto del ticket (TicketEnclosureId).

🔹 Ejemplo de UsoProducto: "Entrada Adulto Atracciones + Acuático"
Se compone de dos tickets con diferentes recintos:

  1. 🎢 "Ticket Adulto Atracciones" → 📍 Recinto "Atracciones" → Fecha de entrada: 01-abril
  2. 🌊 "Ticket Adulto Acuático" → 📍 Recinto "Acuático" → Fecha de entrada: 03-mayo

🔹 Reglas Importantes:

  1. Todas las fechas de los tickets deben pertenecer al mismo conjunto de PricesAndDates en el catálogo de productos.
    → No se puede asignar un ticket a una fecha con precio de €20 y otro a una fecha con precio de €25.
  2. El AccessDateTime de la transacción debe ser la fecha más temprana entre los tickets.
    → En el ejemplo, el AccessDateTime de la transacción sería 01-abril, ya que es la fecha más temprana de los tickets.

 

3. Consideraciones Clave

Método

¿Permite fechas distintas por ticket?

¿Debe completarse AccessDateTime en la transacción?

¿Debe incluirse AccessDateTime en cada ticket?

None

❌ No

✅ Sí

❌ No (debe omitirse o ser null)

DatePerTicketEnclosure

✅ Sí

✅ Sí (fecha más temprana)

✅ Sí (cada recinto puede tener una diferente)

 

4. Ejemplo JSON

🔹 Caso None (Mismo AccessDateTime para todos los tickets)

{

    "ApiKey": "{apiKey}",

    "ReservationId": "giy64gjddgmmk",

    "IsTest": false,

    "AccessDateTime": "2024-05-01",

    "Products": [

        {

            "ProductId": "ctgyir9m9q4bo",

            "Tickets": [

                {

                    "TicketId": "tkt123",

                    "AccessDateTime": null

                },

                {

                    "TicketId": "tkt456",

                    "AccessDateTime": null

                }

            ]

        }

    ]

}

🔹 Caso DatePerTicketEnclosure (Diferentes AccessDateTime por recinto)

{

    "ApiKey": "{apiKey}",

    "ReservationId": "giy64gjddgmmk",

    "IsTest": false,

    "AccessDateTime": "2024-04-01",

    "Products": [

        {

            "ProductId": "ctgyir9m9q4bo",

            "Tickets": [

                {

                    "TicketId": "tkt123",

                    "TicketEnclosureId": "Atracciones",

                    "AccessDateTime": "2024-04-01"

                },

                {

                    "TicketId": "tkt456",

                    "TicketEnclosureId": "Acuático",

                    "AccessDateTime": "2024-05-03"

                }

            ]

        }

    ]

}

5. Resumen Final

  • ✅ None: Un solo AccessDateTime para toda la transacción. Los tickets no tienen fechas propias.
  • ✅ DatePerTicketEnclosure: Cada ticket puede tener su propia fecha, pero todas deben pertenecer al mismo conjunto de precios y fechas.
  • ⚠️ Regla Clave: Siempre completar el AccessDateTime de la transacción con la fecha más temprana.

¿Te ha parecido útil este artículo?