Dynamic Pricing

AirDoo supports seasonal pricing for direct bookings (website, API).

Airbnb Bookings

Dynamic pricing does not apply to bookings imported from Airbnb. Airbnb sets its own prices and transmits them in confirmation emails.

How It Works

The pricing engine uses Odoo Pricelists (product.pricelist) to calculate the price night by night based on the stay date.

Configuration

1. Create the Pricelist

Sales → Configuration → Pricelists → New

Configure rules on the "Accommodation Nights" product with date ranges:

Rule Period Price
High season 01/07 - 31/08 €250/night
Low season 01/11 - 31/03 €120/night
Standard rate Rest of year €180/night

AirDoo → Accommodations → [your accommodation] → Pricing Tab

  • Pricelist: seasonal pricelist
  • Minimum Stay: minimum number of nights for direct bookings

3. Default Pricelist

AirDoo → Configuration → Settings → Default Pricelist

Pricelist applied to new Airbnb bookings.


Price Calculation

For a direct booking, _compute_direct_booking_price() iterates over each night of the stay and calls pricelist._get_product_price(product, quantity=total_nights, date=night).

The quantity=total_nights (not 1) allows "Minimum Quantity" rules (e.g. minimum 3 nights) to work correctly while still calculating night by night.

Example

Stay 15/06 → 20/06 (5 nights, high season €250/night)
Total: €1,250 | Average: €250/night

Via the Odoo Interface

On a direct booking: "Recalculate Price" button - Updates the "Accommodation Nights" line with the average price - Writes the per-date price breakdown in the line description

Via the API

The /api/v1/airdoo/availability endpoint returns the calculated price:

{
  "available": true,
  "nights": 5,
  "pricing": {
    "total": 1250.00,
    "per_night": 250.00,
    "cleaning_fee": 80.00
  }
}

← Back: Advanced Parsing | Next: Loyalty →