Saltar a contenido

Reserva de productos

Este método permite reservar los productos añadidos al carrito de la compra durante un periodo de tiempo.

Una vez que se ha confirmado la reserva, ya no es posible añadir más productos al carrito.

Método de acceso

POST /ShoppingCart/Confirm

Estructura de la petición

  • ShoppingCartId: (string) Requerido. Identificador del carrito.

Ejemplos de llamadas

Examples
{
    "ShoppingCartId" : "j7gjproc9c6sw"
}

Estructura de la respuesta

  • ExpirationDateTime: (dateTime). Indica cuándo la reserva expirará. Formato IS0 8601 (YYYY-MM-DDThh:mm:ss.d).
  • Activities: (object). Información sobre la actividad añadida.

    • Products: (list). Listado de productos añadidos.

      • ProductId: (string). Identificador del producto añadido.
      • CombinedProductId: (string). Identificador del producto combinado añadido.
      • ProductName: (string). Nombre del producto añadido.
      • AccessDateTime: (dateTime). Fecha y hora de acceso. Formato IS0 8601 (YYYY-MM-DDThh:mm:ss.d).
      • Price: (decimal). Precio de la tarifa.
      • PriceMode: (int). Tipo de precio.

        Posibles valores
        • 1: PVP
        • 2: Neto
      • Success: (boolean). Si ha sido correctamente reservado.

      • Tickets: (list). Listado de tickets que conforman este producto.
        • Ticket: (object). Información sobre el ticket.
          • TicketId: (string). Identificador del ticket.
      • CancellationPolicy: (object). Indica las políticas de cancelación que se aplican al cancelar este producto.
        • IsRefundable: (boolean). Indica si la cancelación gratuita está disponible en algún momento.
        • Rules: (list). Listado de reglas que se aplican al efectuar la cancelación.
          • Rule: Información sobre la regla a aplicar.
            • HoursInAdvanceOfAccess: (int). Indica la cantidad de horas de antelación con respecto a la fecha de acceso a partir de las cuales se aplicará la penalización de precio indicada en Percentage.
            • Percentage: (decimal). Porcentaje de penalización sobre el precio de la entrada.
            • Amount: (decimal). Valor total de la penalización que se aplicará.
            • FromInclusiveDateTime: (dateTime). Fecha/hora a partir de la cual se aplicará esta regla.
            • ToExclusiveDateTime: (dateTime). Fecha/hora hasta la cual se aplicará esta regla.
  • Accommodations: (list). Información sobre los alojamientos/habitaciones añadidas al carrito.

    • Accommodation: (object). Información sobre el alojamiento.

      • ProductId: (string). Identificador de la tarifa.
      • ProductConditions: (string). Condiciones del producto.
      • AccessDateTime: (dateTime). Fecha de entrada.
      • AccessEndDateTime: (dateTime). Fecha de salida.
      • Quantity: (int). Cantidad de unidades añadidas.
      • Price: (decimal). Precio de la tarifa.
      • PriceMode: (int). Tipo de precio.

        Posibles valores
        • 1: PVP
        • 2: Neto
      • Success: (boolean). Si ha sido correctamente reservado.

      • ErrorMessage: (boolean). En caso de error en la reserva, mensaje asociado.
      • ChildrenAges: (list). Listado con las edades de los bebés/niños.
        • int: Edad del bebé/niño
      • NumberOfAdults: (int). Número de adultos en esta habitación.
      • NumberOfChildren: (int). Número de niños en esta habitación.
      • NumberOfSenior: (int). Número de seniors en esta habitación.
      • NumberOfBabies: (int). Número de bebés en esta habitación.
      • NumberOfGeneric: (int). Número de personas (sin definir) en esta habitación.
      • CancellationPolicy: (object). Indica las políticas de cancelación que se aplican al cancelar este producto.
        • IsRefundable: (boolean). Indica si la cancelación gratuita está disponible en algún momento.
        • Rules: (list). Listado de reglas que se aplican al efectuar la cancelación.
          • Rule: Información sobre la regla a aplicar.
            • HoursInAdvanceOfAccess: (int). Indica la cantidad de horas de antelación con respecto a la fecha de acceso a partir de las cuales se aplicará la penalización de precio indicada en Percentage.
            • Percentage: (decimal). Porcentaje de penalización sobre el precio de la entrada.
            • Amount: (decimal). Valor total de la penalización que se aplicará.
            • FromInclusiveDateTime: (dateTime). Fecha/hora a partir de la cual se aplicará esta regla.
  • PaymentMethodsNotApplicable: (boolean). Indica si los método de pago serán aplicables o no a este colaborador. Los colaboradores con contrato "débito" tendrán que aplicar los métodos de pago (PaymentMethodsNotApplicable = false).

  • PaymentMethods: (list). Métodos de pago soportados para el colaborador en caso de ser a débito.

    • PaymentMethod: (object). Información sobre el método de pago.
      • Id: (string). Identificador del método de pago.
      • Type: (byte). Tipo de método de pago.
      • Name: (string). Nombre del método de pago.
      • CommercialName: (string) Opcional. Nombre comercial del método de pago.
      • EnableSendByEmail: (boolean) Opcional. Indica si es posible utilizar este método de cobro para el envío automático de enlace de cobro por correo.
      • Fields: (list). Array de campos rellenables asociados al método de pago. Estos campos se pueden especificar en el momento de crear una transacción.
        • Id: (string). Identificador del campo.
        • Name: (string). Nombre del campo.
        • IsRequired: (boolean). Indica si se obligatorio rellenar el campo.
        • RegexValidation: (string) Opcional. Expresión regular que se debe cumplir al rellenar el valor del campo.
        • RegexValidationErrorMessage: (string) Opcional. Mensaje de error a mostrar al usuario en caso de que no se cumpla la expresión regular.
        • DefaultValue: (string) Opcional. Valor por defecto del campo que se debe mostrar al usuario.
        • DataType: (byte). Indica el tipo de datos que debe tener el valor del campo.

          Posibles valores
          • 0: Texto
          • 1: Númerico
          • 2: Fecha
          • 3: Booleano
  • Success: (boolean). Valor que indica si la llamada ha sido procesada correctamente o no.

  • Errors: (list). Array de errores.
    • Error: (object).
      • ErrorMessage: (string). Mensaje de error explicando por qué la petición no ha sido correcta. En caso que haya sido correcta, devolverá null.
      • ErrorCode: (int). Código que identifica al error.
  • ErrorEntityBreakDown (list): Lista que contiene objetos con el nombre e ID en caso de error.
    • Id (string): Identificador
    • Name (string): Nombre relacionado del identificador.

Ejemplos de respuestas

Examples
{
    "Activities": {
        "Products": [
            {
                "ProductId": "yt1pgb1k61wdc",
                "ProductName": "Forfait Adulto + Alquiler snow 2 días ",
                "AccessDateTime": "2023-01-25T00:00:00",
                "Quantity": 1,
                "Price": 119.60,
                "PriceMode": 1,
                "Success": true,
                "Tickets": [
                    {
                        "TicketId": "na19qnrm8zh3e"
                    }
                ],
                "CancellationConditions": {
                    "IsRefundable": true,
                    "Rules": [
                        {
                            "Percentage": 100.000000000000,
                            "Amount": 119.60,
                            "FromInclusiveDateTime": "2023-01-22T00:00:00",
                            "HoursInAdvanceOfAccess": 72.000000000000
                        }
                    ]
                }
            }
        ]
    },
    "Accommodations": [
        {
            "ProductId": "gmw4uitqxsg91",
            "ProductConditions": "Reception is opened from 08:00 to 11:00 &  from 16:00 to 19:00 all week except Wednesday afternoon it is closed. If client has to arrive out of this hours, pls contact the hotel by phone  Importe total estimado de tasas y recargos para esta reserva:22.23 Euro pagaderas a la llegada.  Recogida de llaves 17:00-19:00.Hora de entrada 18:00-.Aparcamiento 8.00 EUR Por unidad/noche.Identificación a la llegada.Depósito a la llegada.",
            "AccessDateTime": "2023-01-25T00:00:00",
            "Quantity": 1,
            "Price": 273.0100,
            "PriceMode": 1,
            "Success": true,
            "ErrorMessage": "",
            "NumberOfAdults": 1,
            "NumberOfChildren": 0,
            "NumberOfSenior": 0,
            "NumberOfBabies": 0,
            "NumberOfGeneric": 0,
            "CancellationConditions": {
                "IsRefundable": true,
                "Rules": [
                    {
                        "Percentage": 100.0,
                        "Amount": 273.0100,
                        "FromInclusiveDateTime": "2023-01-22T00:00:00",
                        "HoursInAdvanceOfAccess": 72.0
                    }
                ]
            }
        },
        {
            "ProductId": "5msetyd6q4rqa",
            "ProductConditions": "Reception is opened from 08:00 to 11:00 &  from 16:00 to 19:00 all week except Wednesday afternoon it is closed. If client has to arrive out of this hours, pls contact the hotel by phone  Importe total estimado de tasas y recargos para esta reserva:22.23 Euro pagaderas a la llegada.  Recogida de llaves 17:00-19:00.Hora de entrada 18:00-.Aparcamiento 8.00 EUR Por unidad/noche.Identificación a la llegada.Depósito a la llegada.",
            "AccessDateTime": "2023-01-25T00:00:00",
            "Quantity": 1,
            "Price": 273.0100,
            "PriceMode": 1,
            "Success": true,
            "ErrorMessage": "",
            "ChildrenAges": [
                5
            ],
            "NumberOfAdults": 2,
            "NumberOfChildren": 1,
            "NumberOfSenior": 0,
            "NumberOfBabies": 0,
            "NumberOfGeneric": 0,
            "CancellationConditions": {
                "IsRefundable": true,
                "Rules": [
                    {
                        "Percentage": 100.0,
                        "Amount": 273.0100,
                        "FromInclusiveDateTime": "2023-01-22T00:00:00",
                        "HoursInAdvanceOfAccess": 72.0
                    }
                ]
            }
        }
    ],
    "ExpirationDateTime": "2023-01-13T01:19:16.067",
    "PaymentMethodsNotApplicable": false,
    "PaymentMethods": [
        {
            "Type": 1,
            "Name": "Tarjeta bancaria",
            "EnableSendByEmail": true
        },
        {
            "Type": 9,
            "Name": "TPV Externo",
            "EnableSendByEmail": false
        },
        {
            "Type": 13,
            "Name": "Bizum",
            "EnableSendByEmail": true
        },
        {
            "Type": 4,
            "Name": "Reserva online",
            "EnableSendByEmail": false
        }
    ],
    "Success": true
}