Saltar a contenido

Añadir elementos al carrito

Este método nos permite añadir actividades, alojamientos y/o paquetes al carrito de la compra.

Puede ser llamado una o varias veces, según nuestras necesidades para ir añadiendo elementos al carrito.

Podemos añadir uno o varios productos en una o varias llamadas, según las necesidades en el proceso de integración.

Método de acceso

POST /ShoppingCart/Add

Estructura de la petición

  • ShoppingCartId: (string) Requerido. Identificador del carrito.
  • Activities: (list) Opcional. Listado de actividades a añadir al carrito.

    • Activity: (object) Opcional. Información de la actividad.
      • ProductId: (string) Requerido. Identificador del producto.
      • CombinedProductId: (string) Opcional. Identificador del producto combinado.
      • AccessDateTime: (date) Requerido. Fecha de acceso. Formato IS0 8601 (YYYY-MM-DD).
      • Quantity: (int) Requerido. Cantidad de productos.
      • Tickets: (object) Opcional. Lista con la información del ticket.
        • TicketId: (string) Requerido. Identificador del ticket.
        • SessionId: (string) Opcional. Identificador de la sesión.
        • AccessDateTime: (date) Requerido. Fecha de acceso. Formato IS0 8601 (YYYY-MM-DD).
        • Questions: (list) Opcional. Listado de respuestas de preguntas sobre tickets.

          • TicketQuestionId: (string) Requerido. Identificador de la pregunta.
          • StringValue: (string) Requerido. Respuesta de la pregunta.
          Información adicional
          • Cuando alguno de los tickets de los productos del catálogo que queremos añadir al carrito tiene rellena la propiedad TicketsQuestionsProfileId(identificador del perfil de una pregunta), debemos de comprobar las preguntas de tickets para saber qué preguntas de tickets tiene esa actividad.
          • Dependiendo del tipo de pregunta se tienen que enviar el valor de la respuesta en una propiedad u otra. Es decir, por ejemplo, si la pregunta es de tipo texto(DataType= 0), habría que rellenar la propiedad StringValue.
          • Otro ejemplo, en caso de que fuese de tipo fecha(DataType = 4), habría que rellenar la propiedad DateTimeValue y así sucesivamente.
          Posibles valores

          --8<-- "includes/enum/examenResponseQuestions.md"

  • Accommodations: (list) Opcional. Listado de alojamientos a añadir al carrito.

    • Accommodation: (object) Opcional. Información del alojamiento.
      • EchoToken: (string) Requerido. Token obtenido en la petición de alojamientos.
      • Rates: (list) Requerido. Listado de identificadores de tarifas.
        • (string):Requerido. Identificador de la tarifa.
  • Packages: (list) Opcional. Listado de agrupaciones de paquetes a añadir al carrito.
    • Package: (object) Opcional. Información del grupo paquete.
      • EchoToken: (string) Requerido. Token obtenido en la petición de paquetes.
      • Packages: (list) Requerido. Listado de paquetes.
        • Package: (object) Requerido. Información del paquete.
          • Id:Requerido. Identificador del paquete.
          • Providers: (list) Opcional. Objeto con los datos del proveedor.
            • Id: (string) Requerido. Identificador.
            • Activities: (list) Opcional. Listado de actividades a añadir al carrito.
              • Id: (string) Requerido. Identificador.
              • ProductBaseId: (string) Requerido. Identificador del producto base.
              • Tickets: (object) Opcional. Lista con la información del ticket.
                • SessionId: (string) Opcional. Identificador de la sesión.
                • AccessDateTime: (date) Requerido. Fecha de la sesión.
                • TicketId: (string) Opcional. Identificador del ticket.

Ejemplos de llamadas

Examples
{
    "ShoppingCartId": "stf9gy7i3xawa",
    "Activities": [
        {
            "ProductId": "yt1pgb1k61wdc",
            "AccessDateTime": "2023-01-25",
            "Quantity": 1
        }
    ]
}
{
    "ShoppingCartId": "stf9gy7i3xawa",
    "Activities": [
        {
            "ProductId": "yt1pgb1k61wdc",
            "AccessDateTime": "2023-01-25",
            "Quantity": 1,
            "Questions": [
                {
                    "TicketQuestionId": "ik375myid33uq",
                    "DecimalAnswer": 11.2
                }
            ]
        }
    ]
}
{
    "ShoppingCartId": "stf9gy7i3xawa",
    "Activities": [
        {
            "ProductId": "yt1pgb1k61wdc",
            "CombinedProductId": "j7gjproc9c6sw",
            "AccessDateTime": "2023-01-25",
            "Quantity": 1
        },
        {
            "ProductId": "ppyibu8qwb88s",
            "CombinedProductId": "j7gjproc9c6sw",
            "AccessDateTime": "2023-01-26",
            "Quantity": 1
        }
    ]
}
{
    "ShoppingCartId": "stf9gy7i3xawa",
    "Accommodations": [
        {
            "EchoToken": "aa5zyx8djys5az9msuhjzcoqge",
            "Rates": [
                "wdiwc9ehmj4yk"
            ]
        }
    ]
}
{
    "ShoppingCartId": "48siun8ozecx1",
    "Activities": [
        {
            "ProductId": "ppyibu8qwb88s",
            "AccessDateTime": "2023-03-18",
            "Quantity": 1,
            "Tickets": [
                {
                    "TicketId": "5uztgje33ayyw",
                    "Questions": [
                        {
                            "TicketQuestionId": "6inrbj61drob4",
                            "StringValue": "response of my question"
                        }
                    ]
                }
            ]
        }
    ]
}
{
    "ShoppingCartId": "stf9gy7i3xawa",
    "Packages": [
        {
            "EchoToken": "az9msuhjzcoqgeaa5zyx8djys5",
            "Packages": [
                {
                    "Id": "4pdc7ad88qota"
                }
            ]
        }
    ]
}
{
    "ShoppingCartId": "hy3gp7cykreog",
    "Activities": [
        {
            "ProductId": "35ro8mcqkzs4q",
            "AccessDateTime": "2023-03-21",
            "Quantity": 1,
            "Tickets": [
                {
                    "TicketId": "6nx1a1pd1wbms",
                    "Questions": [
                        {
                            "TicketQuestionId": "dhci15yyp1y81",
                            "StringValue": "respuesta"
                        }
                    ],
                    "SessionId": "9zobybtjtou6s",
                    "AccessDateTime": "2023-03-21"
                }
            ]
        }
    ]
}
{
    "ShoppingCartId": "{{ShoppingCartId}}",
    "Activities": [
        {
            "ProductId": "yt1pgb1k61wdc",
            "AccessDateTime": "2023-01-25",
            "Quantity": 1
        }
    ],
    "Accommodations": [
        {
            "EchoToken": "{{EchoToken}}",
            "Rates": [
                "wdiwc9ehmj4yk"
            ]
        }
    ]
}

Estructura de la respuesta

Es relevante tener en cuenta las propiedades Id que son devueltas en la respuesta, dado que serán necesarios para manipular los productos una vez han sido añadidos al carrito.

  • Activities: (list). Listado de las actividades añadidas en la petición actual. Si no se ha añadido actividades, esta propiedad no aparecerá.

    • Activity: (object). Información de la actividad añadida.
      • Id: (string). Identificador que se ha asignado a esta actividad dentro del carrito.
      • Activity: (object). Información de la actividad añadida.
        • ProductId: (string). Identificador de producto.
        • Quantity: (int). Cantidad añadida.
        • AccessDateTime: (dateTime). Fecha de acceso. Formato ISO 8601 (YYYY-MM-DDThh:mm:ss).
        • ForceNotAutoAssignSeating: (boolean). Forzar los asientos asignados.
        • Tickets: (list). Lista de tickets.
          • TicketId: (string). Identificador del ticket.
          • SessionId: (string). Identificador de la sesión.
          • Questions: (object). Información sobre las preguntas.

            • TicketQuestionId: (string). Identificador de la pregunta.
            • Question: (string). Pregunta.
            • StringValue: (string). Respuesta de la pregunta.
            Información adicional
            • Dependiendo del tipo de pregunta se tienen que enviar el valor de la respuesta en una propiedad u otra. Es decir, por ejemplo, si la pregunta es de tipo texto(DataType= 0), se devolverá la propiedad StringValue.
            • Otro ejemplo, en caso de que fuese de tipo fecha(DataType = 4), se devolverá la propiedad DateTimeValue y así sucesivamente.
            Posibles valores
            • StringValue: Respuesta de la pregunta con un único valoro selección de un valor entre un conjunto de valores predefinidos.
            • BooleanValue: Respuesta de la pregunta con true o false.
            • DateTimeValue: Respuesta de la pregunta indicando fecha.
            • IntegerValue: Respuesta de la pregunta indicando número entero.
            • DecimalValue: Respuesta de la pregunta indicando número decimal.
            • StringCollectionValue: Selección de varios valores entre un conjunto de valores predefinidos.
            • BinaryValue: Archivo.
  • Accommodations: (list). Listado de los alojamientos añadidos en la petición actual. Si no se ha añadido alojamientos, esta propiedad no aparecerá.

    • Accommodation: (object). Información del alojamiento añadido.
      • Id: (string). Identificador que se ha asignado a este alojamiento dentro del carrito.
      • RateId: (string). Identificador de la tarifa.
  • 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
{
    "Success": true,
    "Activities": [
        {
            "Id": "ygqbw4q8owhue",
            "Activity": {
                "ProductId": "yt1pgb1k61wdc",
                "Quantity": 1,
                "AccessDateTime": "2023-01-25T00:00:00",
                "ForceNotAutoAssignSeating": false
            }
        }
    ]
}
{
    "Success": true,
    "Activities": [
        {
            "Id": "ygqbw4q8owhue",
            "Activity": {
                "ProductId": "yt1pgb1k61wdc",
                "CombinedProductId": "j7gjproc9c6sw",
                "Quantity": 1,
                "AccessDateTime": "2023-01-25T00:00:00",
                "ForceNotAutoAssignSeating": false
            }
        },
         {
            "Id": "sdfhiq8owhue",
            "Activity": {
                "ProductId": "ppyibu8qwb88s",
                "CombinedProductId": "j7gjproc9c6sw",
                "Quantity": 1,
                "AccessDateTime": "2023-01-26T00:00:00",
                "ForceNotAutoAssignSeating": false
            }
        }
    ]
}
{
    "Success": true,
    "Accommodations": [
        {
            "Id": "yhwrziz8bsag1",
            "RateId": "wdiwc9ehmj4yk"
        }
    ]
}
{
    "Success": true,
    "Activities": [
        {
            "Id": "mi95gbadopeqk",
            "Activity": {
                "ProductId": "ppyibu8qwb88s",
                "Quantity": 1,
                "AccessDateTime": "2023-03-18T00:00:00",
                "ForceNotAutoAssignSeating": false,
                "Tickets": [
                    {
                        "TicketId": "5uztgje33ayyw",
                        "Questions": [
                            {
                                "TicketQuestionId": "6inrbj61drob4",
                                "StringValue": "response to my question"
                            }
                        ]
                    }
                ]
            }
        }
    ]
}
{
    "Success": true,

}
{
    "Success": true,
    "Activities": [
        {
            "Id": "ygqbw4q8owhue",
            "Activity": {
                "ProductId": "yt1pgb1k61wdc",
                "Quantity": 1,
                "AccessDateTime": "2023-01-25T00:00:00",
                "ForceNotAutoAssignSeating": false
            }
        }
    ],
    "Accommodations": [
        {
            "Id": "yhwrziz8bsag1",
            "RateId": "wdiwc9ehmj4yk"
        }
    ]
}