November 2024
New Features
Data Integrity
- Connect now sends the X-Forwarded-For and User-Agent HTTPheaders when making requests to Web Payments Module. This data is now required for certain payment connectors.
- All OCAPI endpoints now require a license in order to integrate with them.
Important: If you have a license to use OCAPI endpoints, ensure the tenant code from your license has been entered in the OrganisationCode field in tblConfigure in the Connect database.
Functionality
- When a request is sent to the OCAPI endpoint GetFilmAvailability, you can now optionally omit the AdvanceBookingPeriod entity which includes dates relating to a film's advanced booking period. Use the toggle setting HideAdvanceBookingPeriodsNotAdvertisedInAdvance (disabled by default). Note: This setting only works if Advertise Open Sessions in Advance is left unselected as a Rule in Head Office.
- Digital Platform now supports tax-exclusive concession prices. Tax-exclusive values are used for price calculations and submitted to Sales Server as part of the ordering process.
- To support setting custom ticket booking fees within the OCAPI API we have created the following Enterprise endpoint: PUT ocapi/v1/enterprise/orders/{orderId}/ticket-booking-fees
-
In the relatedData ticketTypes section of the endpoint ocapi/v1/showtimes/{showtimeId}/ticket-prices, we've introduced the new fields hopk, hoCode, and ticketCode.
-
Connect now supports tax-exclusive concession prices. Tax-exclusive values are used for price calculations and submitted to Sales Server as part of the ordering process.
To enable tax-exclusive concession prices in Connect:
- Ensure you have installed Sales Server version 5.0.13.0 or higher..
- In the Connect database, update the tblFeatureToggleSettings table and set FeatureT_strSettings to true for all entries where FeatureT_strName is equal to ConcessionPriceTaxExclusive.
- Set the Cinema system setting PriceModeConcessions to be set to TaxEXCLUSIVE.
Note:
- Tax-exclusive concession prices are not compatible with Vista Web (Legacy), Call Centre, or Vista Mobile (Legacy).
- Items in an item class which has a tax-inclusive override will have incorrect prices.
- When tax-exclusive concession prices are enabled, the VariablePriceInCents field in the POST /RESTTicketing.svc/order/concessions endpoint will be a tax-exclusive value.
-
We've updated our API to support full self-service refunds by adding the following:
- A new endpoint, POST ocapi/v1/orders/completed/{orderId}/refunds/full
- Refund availability to the completed order and journey endpoints
Note: The new endpoint only allows for full refunds. Partial refunds are not supported in this release.
-
Anonymous seat swaps is now managed with the SwapSeats.AllowSwapOfAnonymousBookings setting.
-
We now support redemption of payment vouchers that have a value higher than the order. We've updated the following endpoints to allow for this:
- POST /RESTTicketing.svc/order/payment-voucher
- POST /RESTTicketing.svc/order/payment
- POST /RESTBooking.svc/booking/refund
- POST /cinemas/{cinemaId}/bookings/{bookingId}/refund
-
We now support adding weight-based items to orders. We've updated the following endpoints to allow for this:
-
GET /RESTData.svc/concession-items
-
GET /RESTData.svc/concession-items-grouped-by-tabs
-
POST /RESTTicketing.svc/order/concessions
-
POST /RESTBooking.svc/booking (Get Single Booking)
-
POST /RESTBooking.svc/booking/search (Get Bookings)
-
-
We've added the ability to automatically waive booking fees from ticket orders depending on a logged-in member's loyalty club level.
This is configured using two new system settings:
- MemberLevelBookingFeesExemption
- MemberLevelBookingFeesExemptionList
Note: AllowTicketBookingFeeOverrides must be enabled in Connect Manager for the booking fee waiver to be successful.
-
Third-party loyalty schemes which are validated by Vista Loyalty can now get ticket approvals of more than one ticket per showtime via the following endpoint:
POST ocapi/v1/orders/{orderId}/ticket-redemption-cards
Note: The quantity of tickets must be configured by a Vista representative.
-
Third party loyalty schemes which are validated by Vista Loyalty can now request ticket approval for a specified ticket type. This is achieved via an optional ticketTypeId parameter in the following endpoint:POST ocapi/v1/orders/{orderId}/ticket-redemption-cards
-
In OCAPI, we've added a new error code (10107), which is returned by the SetShowtimes endpoint (PUT ocapi/v1/orders/{orderId}/showtimes/{showtimeId}) when a request contains more third party member scheme tickets than are approved.
-
You can now tailor different email templates for individual regions and sites. You can also customise your print-at-home PDF templates.
-
We've updated our API to support returning seating details for completed orders by adding the following endpoint:
- GET ocapi/v1/sites/{siteId}/orders/by-barcode/{barcode}/seats
Bookings that come from sources other than Connect (for example, POS) are supported but sessions can't be in the past.
-
Web Loader can now be configured to import booking-fee data from Cinema into VISTAIT. This feature is intended to replace the current system of manually configuring booking fees in VISTAIT.
To enable the import, the BOOKINGFEES option must be added to Web Loader's DataToLoad parameter. Once web loader has run, switching from any manually configured data to the imported data can be done by disabling or deleting the manually configured data from VISTAIT.
Note: This booking-fee data only affects the booking fee values returned as part of ticket pricing. Calculation of actual booking fees is still performed at cinema. This feature allows those two values to be automatically kept in sync.
-
Connect now supports the 'Start my order' feature for Living Ticket. The following settings control its functionality:
- PreparationBookingCollectionThresholdMins (Cinema system setting) - Number of minutes before session start time that users can request order preparation.
- ConcessionSaleAutoCompleteDays (Connect system setting) - Number of days after the order has been made that it expires. Only applies to concession-only orders.
-
Discount vouchers can now be applied to subscription orders to partially discount recurring subscription billing options. Use the new system setting AllowRecurringSubscriptionVoucher to enable this functionality.
-
The GetTicketsForSession endpoint now returns the booking fee price including and excluding tax and tax value for each ticket.
- When a request is sent to the OCAPI endpoint GetFilmAvailability, you can now optionally omit the AdvanceBookingPeriod entity which includes dates relating to a film's advanced booking period. Use the toggle setting HideAdvanceBookingPeriodsNotAdvertisedInAdvance (disabled by default). Note: This setting only works if Advertise Open Sessions in Advance is left unselected as a Rule in Head Office.
Performance
-
We've optimised the performance of the OCAPI GetCompletedOrder endpoint for Living Ticket by limiting how often the booking details are refreshed.
Stability
- Loss of Loyalty connectivity no longer prevents non-Loyalty transactions from completing. Loyalty transactions will still fail, however. If this happens, contact your Vista Services rep for help.
Fixes
Data Integrity
- A 400 'bad request' response will now occur when a modifier is added to an order with a quantity outside the minimum/maximum, after these settings have been changed in Cinema.
- We've fixed a SQL issue that could have caused data for a single cinema to be missing or obsolete for up to 60 minutes.
Financial
- When a request is sent to the OCAPI endpoint CreateFutureRecurringSubscriptionPaymentCard for a future recurring subscription, it now returns the billing amount with a valid value.
- We've updated Connect so that retrying payments now works correctly on the Lumos-application Payment page.
- The reactivation price for a frozen member subscription is now calculated with the correct tax rounded to two decimal places.
Functionality
- The OData Sessions endpoint now filters as expected with the OR condition.
- If a concession item has the same modifier included in several of its modifier groups, you can now add this modifier to the order successfully.
- We've fixed integration with Vista Notifier in earlier releases of 5.0.13.
- After an order refund, the totalRefunded property now correctly includes the price of item and smart modifiers.
- We've improved the response times of the endpoints that retrieve bookings.
- The PrepareAllItemDeliveries endpoint in the Digital Platform now correctly sends all items to the kitchen when the system setting PreparationRequiresBookingCollection is enabled.
- We've reduced error messages when performing seat swaps.
- Orders containing zero-value tickets can now be refunded via Call Centre.
- Data saved while creating sessions in Cinema Manager (and during certain other sequences of events) is now correctly sent to Connect via Data Stream.
- Connect has been updated so that when patrons are ordering items in the Vista Web Gift Shop using embedded payments they can change delivery methods.
- Third-party member tickets which are validated by Vista Loyalty, and have a ticket type configured as a Loyalty recognition, are now returned with the correct number of prices by the following endpoint:
GET ocapi/v1/showtimes/{showtimeId}/ticket-prices
- The DiscountValue field in Connect now returns the correct value from the GetDealItems endpoint for deals of the "Price Off" type.
- Voucher-exclusive deals are now correctly applied to child items where the parent item has a deal configured.
- Even if there's no matching third-party member scheme configured, OCAPI calls to the AddTicketRedemptionCard endpoint (POST ocapi/v1/orders/{orderId}/ticket-redemption-cards) no longer present internal server errors.
- When attempting to mark a booking as collected, when it has already been marked collected, Connect will now return a 200 response with the error message "Booking does not exist or has already been collected".
- When using the CreateFullRefund endpoint in OCAPI, the collected status now only updated to "Collected" if requested.
- The OCAPI GetCompletedOrders endpoint now assigns null values to the order- and item-level Comment properties if they are not specified.
- The following OCAPI endpoint now ensures that Loyalty members purchasing third-party member tickets must enter their own member card number.
POST ocapi/v1/orders/{orderId}/ticket-redemption-cards
- We've ensured that tax rate settings are always requested to prevent logging excessive warnings.
- When a ticket type is requested with a voucher redemption, that ticket type will be redeemed, not any others that are available.
- We've fixed an error that occurred when initiating payment via Lumos Mobile.
- When adding concessions via the V1 AddConcessions endpoint, the HeadOfficeItemCode property in the response is now populated with the correct value instead of null.
- Where Loyalty 5.0.15 is being used, the validation message for a failed third-party-member-ticket request is now correct.
- When requesting information from the mobile films endpoint (/WSVistaWebClient/api/mobile/v1/films), if the film has an advance booking period that is configured to not be advertised in advance, the advance booking date property can be omitted. This will prevent Vista Mobile from displaying a ticket-sale date on the Coming Soon film. To omit the property, enable the new feature toggle HideAdvanceBookingPeriodsNotAdvertisedInAdvance.
Performance
-
We've fixed some performance issues around deals when using the following endpoint: /RestTicketing.svc/order/season-passes
Security
- We've ensured that potentially sensitive Loyalty member information is secure during password resets.
- System performance when ticket discounts have been configured is improved.
- Member transactions returned from the Loyalty Member service now page consistently.
- We've improved the performance of environments using Redis to store in-progress order information during transactions, which now limits internal server errors.
- We've ensured that performance remains the same when seats are set for an order.
-
The Internal security profile for Connect now has permissions for all OCAPI endpoints.
May 2024
New Features
Functionality
-
We've introduced a new setting which lets you determine whether the deal form is displayed in the order summary on your customers' mobile devices.
-
You can now use OCAPI to provide specific error responses when a customer orders an item that is unavailable. New error responses include:
- Sold out for Current Business Date
- Sold out indefinitely
- Outside available hours
- Invalid quantity
-
We've introduced two new endpoints you can use to retrieve information about item availability:
- GetItemAvailabilitiesForSite: ocapi/v1/sites/{siteId}/item-availability
- GetItemAvailabilitiesForGiftShop: ocapi/v1/gift-shop/item-availability
Both resources include information on two types of item availability:
- SoldOutForCurrentBusinessDate: This is equivalent to a selling limit with no quantity and sold out today only.
- SoldOutIndefinitely: This is equivalent to a selling limit with no quantity and sold out indefinitely.
Integrate these resources with your sales channels so that you can let your patrons know why an item isn't currently available.
-
The GetCurrentMember API call now returns the new property HasUnprocessedPriceAdjustment, which lets a member know that their current recurring subscription price is going to change.
-
We've introduced two new endpoints to support processing external payments.
External payments are payments made to the Digital Platform via an external system, where the interaction with the payment provider and actual taking of the payment is handled by the client application. The payments must still be recorded in Vista for an order to be completed.
- CreateExternallyProcessedPayments: POST /ocapi/v1/enterprise/orders/{orderId}/payments/externally-processed
- Returns booking ID and externally processed payment details
- CompleteExternallyProcessedPayments: PUT /ocapi/v1/enterprise/orders/{orderId}/payments/externally-processed
- Requires card type and payment value information. Returns completed externally processed payment details
To ensure a separation of capability between OCAPI and OCAPI Enterprise endpoints, a new client profile has been created called Ocapi.Enterprise which has the following required permissions/behaviors enabled by default.
- OCAPI.Enterprise.Payments
- OCAPI.Enterprise.Payments.CompleteExternallyProcessedPayments
- OCAPI.Enterprise.Payments.CreateExternallyProcessedPayments
- AllowCompleteOrderWithoutPerformingPayment
Note: This feature requires the new Externally processed payments license for Digital Platform.
-
We've added the isChildTicket field to the OCAPI V1 endpoint GET /ocapi/v1/showtimes/{showtimeId}/ticket-prices, which indicates whether or not the ticket is a Child ticket.
-
We've enhanced our API so that your customers can now apply any discounts you've set up to tickets in their order.
To allow for this, we've added a new parameter, discountID, to the /ocapi/v1/orders/{orderId}/showtimes/{showtimeId} endpoint for the Digital Platform. See Ordering tickets for details.
When the ID for a Loyalty discount is passed using this parameter, the discount will be applied to the customer's order. -
We've enhanced our API so that you can now load unopened sessions and return their status via the following V1 Sessions endpoint:
- /OData.Sessions&includeUnopened=true now returns a field called "Status" against each session
Unopened sessions are loaded into the Digital Platform by running Webloader with the following DataToLoad pipe SESSIONSINCLUDINGUNOPENED.
Note: This enhancement requires version 5.0.13.0.9914 of Sales Server or higher, and it is currently not compatible with Call Centre and Vista Web.
Security
-
We've changed our subscription flows to ensure that Subscriptions in the Vista Digital Platform are compliant with Strong Customer Authentication (SCA). To do this, we've deprecated an endpoint and replaced it with new flows.
We've deprecated the following endpoint for members to reactivate their frozen subscription with recurring billing:
POST ocapi/v1/members/current/subscriptions/current/reactivate
Now when a subscription member wants to reactivate their frozen membership, a new subscription order must be created, specifying the 'Reactivate' order action. After that, the existing subscription order completion flow can be used.
For details on the new flows and endpoints, see the documentation for the Digital Platform.
-
We've changed our subscription flows to ensure that Subscriptions in Vista Digital Platform are compliant with Strong Customer Authentication (SCA).
Previously the following endpoints would be used to set the payment card for a subscription with recurring billing:
- CreateEmbeddedMemberPaymentCard - POST ocapi/v1/members/current/payment-cards/embedded
- SetPrimaryMemberPaymentCard - PUT ocapi/v1/members/current/payment-cards/primary
We've deprecated the endpoint SetPrimaryMemberPaymentCard, and created the following endpoint which can be used to add or select a payment card for a subscription with recurring billing:
- CreateRecurringSubscriptionEmbeddedPaymentCard - POST ocapi/v1/members/current/subscriptions/recurring/payment-card/embedded
Note: The endpoint CreateEmbeddedMemberPaymentCard can continue to be used to add payment cards to a member's wallet regardless of whether the member has a subscription.
For details on the new flows and endpoints, see the documentation for the Digital Platform.
-
We've changed our subscription flows to ensure that Subscriptions in Vista Digital Platform are compliant with Strong Customer Authentication (SCA).
Previously the following endpoint would be used to set a member's future subscription (if they opted for recurring billing):
- SetFutureRecurringSubscription - POST ocapi/v1/members/current/subscriptions/future-recurring
We've deprecated this endpoint, and replaced it with the following endpoint to initiate creation of a future subscription with recurring billing, and add or select a payment card for that subscription:
- CreateFutureRecurringSubscriptionPaymentCard - POST ocapi/v1/members/current/subscriptions/future-recurring/payment-card/embedded
We've also created another endpoint to check the status of the future subscription creation:
- GetFutureRecurringSubscriptionCreation - GET ocapi/v1/members/current/subscriptions/future-recurring/creation
For details on the new flows and endpoints, see the documentation for the Digital Platform.
Improvements
Security
-
We've ensured that potentially sensitive Loyalty member information is secure during password resets.
Fixes
-
Initiating payment via Lumos Mobile no longer results in an error.
Data Integrity
-
The GetTicketPricesForShowtime endpoint no longer returns duplicate reward IDs when a recognition-restricted ticket discount is configured to be available for multiple ticket types.
-
Web Loader can now consistently handle the scheduling multiple marathons, and no duplicate film IDs are recorded in the database.
Financial
-
We've fixed an issue in which, if a customer ordered two package tickets and applied two different discounts, the first discount would override the second discounts preventing it being applied to the second ticket.
-
Showtime ticket price discounts are now displayed in dollars, as expected, rather than in cents.
-
When a request is sent to the OCAPI endpoint CreateFutureRecurringSubscriptionPaymentCard for a future recurring subscription, it now returns the billing amount with a valid value.
-
We've updated the Digital Platform so that retrying payments now works correctly on the Lumos-application Payment page.
Functionality
-
Member-restricted Discounts can no longer be applied to member-restricted tickets. Although use of this scenario is not encouraged, to avoid losing your configuration if you were using it, we've introduced a toggle setting, AllowLRDiscountOnLRTicket, to allow you to enable or disable this feature as required.
-
The DiscountValue field in the Digital Platform now returns the correct value from the GetDealItems endpoint for deals of the "Price Off" type.
-
The system now respects custom values for the Sales Server timeout for Web Loader, even when they're configured using scheduled task parameters.
-
We've fixed an issue that could result in incorrect displays of total spend or number of Loyalty points earned for individual transactions when customers viewed their transaction history.
-
The system now correctly processes refunds when a user initiates a matched refund and payment providers are configured for only specific clients. In this scenario, the Digital Platform now prioritises the payment provider for the calling client application, and then uses providers configured with a wild card client class value.
-
The Digital Platform no longer freezes on start-up when it can't reach Service Discover DNS resources.
-
The Vista Content Delivery Network now returns images as expected, ignoring any unavailable dimension metadata.
-
Adding concessions to an online order no longer results in a "Sorry, your request could not be processed right now" error message.
-
We've fixed an issue that allowed users to apply a loyalty-only discount to an order by using the discount ID, even when no loyalty member was logged in.
-
Validating a deal or payment voucher using the cinema defined in the NonTransactionalVoucherGiftCardCinemaId system setting, instead of the cinema defined in the order, no longer results in a validation error.
-
Redeeming a ticket voucher for a session which had unallocated seating no longer results in an error message stating that the VoucherAreaCategoryCode was not found.
-
The refund status now successfully updates the bookingFee node when calling the Digital Platform's OCAPI GetCompletedOrder endpoint is used to complete and refund an order.
-
The number of tickets is now calculated correctly and orders can be completed when customers purchase ticket packages that contain multiple tickets configured for sale only via POS.
-
When modifiers of the type Information Only are marked as sold out, there is now no effect on item availability, as expected. Items are unavailable only when Adjust Stock modifiers are sold out.
-
Barcodes now consistently appear in voucher and gift card confirmation emails, as expected.
-
We've fixed an issue that resulted in a Digital Platform-generated cookie sometimes causing websites integrated with the Digital Platform to display a 403 error.
-
The inSeatDelivery value of an item is now reflected in the allowedDevliveryMethods result of an API call, even when the item configured to have in-seat delivery is included in an item package.
-
Digital Platform-generated cookie refresh tokens can no longer be used after the cookie is deleted and expired.
-
All tax levels are now summed and returned correctly when the Modifier Price Type is set to Use Modifier Price and there are multiple levels of sales tax.
-
We've fixed an issue that allowed members to redeem their subscription tickets regardless of the status of their subscription, via the AddTicketRedemptionCard endpoint. Now, only members with active subscriptions can redeem their subscription tickets.
-
Adding an item with a modifier using the the V1 AddConcessions endpoint /RESTTicketing.svc/order/concessions, when a loyalty discount had been applied to the item, no longer results in an incorrect tax cents amount for the modifier in the response body.
- Completed orders now show the correct tax amount saved when a customer buys a package ticket that has a children's ticket with 0 sales tax.
-
OCAPI now accurately returns the payment status of failed split payments with the GetOrderCompletion endpoint, and the CreateEmbeddedPayment and CreateRedirectPayment endpoints correctly validate when the order payment is in a failed state.
-
Seat plan endpoints now always return wheelchair and companion seats.
-
The OData Sessions endpoint filters as expected with the OR condition.
-
If a concession item has the same modifier included in several of its modifier groups, you can now add this modifier to the order successfully.
-
We've fixed integration with Vista Notifier in earlier releases of 5.0.13.
-
Voucher-exclusive deals are now correctly applied to child items where the parent item has a deal configured.
-
Orders containing zero-value tickets can now be refunded via Call Centre.
-
Data saved while creating sessions in Cinema Manager (and during certain other sequences of events) is now correctly sent to the Digital Platform via Data Stream.
-
When patrons are ordering items in the Vista Web Gift Shop using embedded payments they can now change delivery methods.
Performance
-
Response times are now faster when receiving a large volume of requests from Redis.
-
We've fixed an issue with the order deserialiser to ensure orders made using Vista Web are now processed as expected.
-
System performance when ticket discounts have been configured is improved.
-
Member transactions returned from the Loyalty Member service now page consistently.
October 2023
Improvements
Security
-
We've ensured that potentially sensitive Loyalty member information is secure during password resets.
Fixes
Data Integrity
-
We've fixed an issue that prevented some marathon sessions from loading.
Functionality
-
Deal vouchers and payment vouchers linked to specific cinemas no longer produce validation errors in orders submitted for those cinemas.
-
Redeeming ticket vouchers for unallocated seating sessions no longer gives an error stating that the VoucherAreaCategoryCode was not found.
-
We've fixed an issue where an order could not be completed when purchasing ticket packages containing multiple tickets configured only for sale via POS.
-
Cookies generated by Digital Platform no longer cause integrated websites to display a 403 error.
-
Digital Platform's cookie refresh tokens can no longer be used after the associated cookie has been deleted or expired.
-
Multiple levels of sales taxes are now calculated and returned correctly on modifiers and smart modifiers.
-
Only members with active subscriptions can redeem subscription tickets via the AddTicketRedemptionCard endpoint.
-
The tax cents quantity returned by the V1 AddConcessions endpoint /RESTTicketing.svc/order/concessions is now correct when adding an item with a modifier that has a loyalty discount applied.
-
The OData Sessions endpoint now filters as expected with the OR condition.
-
If a concession item has the same modifier included in several of its modifier groups, you can now add this modifier to the order successfully.
Performance
-
We've improved the response time of Digital Platform when it's configured to use Redis and receives a large volume of requests.
Comments
0 comments
Article is closed for comments.