I was experimenting with discounts and extras for a listing, and it seems that when selecting extras with the “per place per day” or with the “per day” option together with a discount applied to bookings longer than X days, the system calculates first the total price of the X days, PLUS the extra, and then applies the discount on the sum. In my opinion, this should not be normal behavior, and extras should not be included as part of the discount. The options “per place” and “per booking” calculate correctly and leave out the extras.
Steps to reproduce
Create a listing in a bookable category. Like “New apartment”. Fill only the required fields. Set the regular price to 75$. Add a discount of 10% for bookings over 4 days. Add and extra called “breakfast” for a price of 25$, and apply it per place per day. Enable the option to allow multiple places per booking.
When someone books 1 guest for 4 days, the price correctly displays as 270$, which is 75*4=300. Minus 10%, that becomes 270$. Now mark the breakfast extra. 4 days breakfast of 25$ for one guest is 100$. End price shows 360$
Breakfast is an extra added on top of the price, or in this case, the discounted price. 4 days with breakfast equals 100$ extra, so the final price should have been 370$
The same happens when selecting the extra “per day”, but works correctly for the other two options. The system clearly first calculated 754=300, then added the 4breakfast=100, and came to a sum of 400. Then it discounted 10% (40) and it showed 360 as end result.
I doubt this is the expected behavior and I think it is a bug.
Of course the same error occurs when selecting 2 or more guests instead of one only in my example.
It seems the discount price comes at the end of total of everything’. Original price plus extras, then the discount last.
This is how it should work by default. Discounts are applied to the total amount of the order.
Okay, but if you say that the discounts apply to the total amount, the systems still calculates incorrectly for 2 options. I explain per option what happens and you can reproduce it with my example above. Assume here below that I am booking enough nights to get a discount:
- “Extras” field set to “per place per day”: system calculates (price x guests x nights) + (extras x guests x nights) and then applies 10% ( like you say it should)
- “Extras” field set to “per place”: system calculates (price x guests x nights) and applies 10%. Then adds (extras x guests) (contrary to what you say)
- “Extras” field set to “per day”: system calculates (price x guests x nights) + (extras x nights) and then applies 10% ( like you say it should)
- “Extras” field set to “per booking”: system calculates (price x guests x nights) and applies 10%. Then adds (extras) (contrary to what you say)
As you can see, it behaves in two different manners. In the two options that contain “per day”, it will behave as you say.
In my opinion, all 4 options should behave the same, because if a user adds 2 extras with different options (per place per day, per booking…) and they behave differently, it will be very confusing for them, and also for me to have to explain to every customer.
And also I believe, based on the example of a breakfast, that a breakfast as an extra added price should not be discounted. Users get a discount per night booked on the apartment (in the example), but why would they on top get a cheaper breakfast?
Based on this, I think all 4 options should behave like how it works now when you set “per place” or “per booking”. Or maybe there is something I am not seeing?
Please could you check it again?
To avoid confusion, when I mention (extras) in a calculataion, I mean the price of the Extra option selected
Sorry for the delay. Thanks for reporting this, the bug is confirmed, and we’ll fix it as soon as possible.