Hi everyone!
This latest release is pretty exciting in that while it doesn't have a lot of flashy new functionality, we've addressed some long running bugs that have been nagging at all of us for a while.
TL;DR
We fixed quite a few bugs that were occurring with booking conflicts and made some much needed improvements to the transfer booking calendar in the Admin dashboard. You can see the transfer booking changes in the video below.
Technical Explanation
Booking Conflict Issues
The Problem
Many of you have noticed a few strange issues where editing an experience with lots of bookings would cause some to be marked as booking conflicts. There were also issues where orders would be marked as booking conflicts even though they were for a valid time slot. All of this and a few other issues were essentially due to the way we attached bookings to a specific time slots. We used a unique id which was added as line item property to connect a line item to a specific booking. There were some technical reasons for structuring the id the way we did but we didn't foresee that anytime that id changed even in the slightest, bookings wouldn't be able to be linked to the correct time slot even when all the time info is there. While we tried to remedy these issues using some less invasive approaches, it became clear that we needed to rethink how we were doing this and put in the work to fix them once and for all.
The Fix
You'll now notice that the "Timeslot" property on line items no longer includes the long string of random characters, but instead is just a plain old UNIX timestamp indicating the time of the booking. We still want to make this invisible to the customer and plan to do that in the future but hopefully this isn't quite as confusing as the long string of gibberish that many of you have noticed. This change means that bookings will no longer run the risk of becoming "detached" from the correct time slot due to weird unique id changes which means you can edit your experiences schedule and bookings will always appear in the right place.
The other exciting implication of this is that because this unique id issue was creating a pretty big performance overhead on our database, with it remedied we're now able to confidently say our system can handle very high bursts of booking traffic (1000+ people trying to book at the same time) without impacting either the integrity of the bookings or the performance of other parts of the app (admin, pos, etc).
NOTE
You can still get booking conflicts if you completely remove time slots that already have bookings but you will no longer have issues with valid bookings becoming conflicts. This is the correct behavior of booking conflicts.
Updated Transfer Booking Calendar
The Problem
Another issue that has been seen on several occasions is an overall "bugginess" with the transfer booking calendar in the admin app. Sometimes time slots wouldn't load in unless you clicked forward and back, times were being displayed in 24h time instead of 12h time and a few others.
The Fix
We finally dedicated some time to putting in a much better calendar here which correctly displays time slots, improves the UX and makes it very easy to navigate to the time slot you want to transfer to. Hopefully, this will make it much smoother for you to move your bookings to different time slots.