Flora

Flora Admin

Enter your admin password to continue

Dashboard

Total Rooms
Reviews
Studios
Apartments
Quick Actions
🔗 View Website
📋 Reservation Mode

Current mode:

Go to Booking Settings to change how reservation requests are handled (WhatsApp, Email, Beds24, or Booking.com).

🖼️ Hero Background Image
Full URL to the hero background photo (e.g. from apartmentsflora.bg). Leave blank to use the upload below.
Uploading replaces the URL above. Stored inline in data.js — keep under 500 KB for fast loads.
Use a portrait-cropped or different image on mobile. Leave blank to use the same as desktop.
Tip: after changing the image, click Save all changes at the top-right and then refresh the website tab. The image updates immediately for all visitors.
Hero Text
📋 Booking Card ("Провери наличности")
Small gold label at the top of the booking card
Value Cards (3 stats under CTA buttons)
Sections Headings
Early / Late Check Options
🛏️ All Rooms (0)
Photo ID Type Guests Price/night Beds24 ID Badges Actions
⭐ Reviews (0)
🌍 Edit All Text by Language
🇧🇬 Bulgarian
🇬🇧 English
🇩🇪 Deutsch
🇷🇺 Русский
🇺🇦 Українська
🇫🇷 Français
🇳🇴 Norsk
📨 Inquiry mode (no online booking)

Hides every price, every date picker, the booking flow, and replaces "Reserve" buttons with "Направи запитване". Visitors get a contact form that opens WhatsApp or email pre-filled.

💎 Direct Member discount

% off the parity price applied to every Direct Member booking. The website's "Save X%" CTAs and the in-booking discount line both read from this number. Server re-validates the discount at booking-submit time.

☀️ Peak-season surcharge (website only)

Adds flat €/night on top of the Beds24-fetched price for any night inside the date range. Affects only the Flora website — Beds24, Booking.com, and other OTAs continue to sell at their own prices (rate-parity safe).

👶 Extra child on existing bed

When enabled, every room's kids dropdown allows one additional child over the room's standard capacity. That extra child pays the surcharge per night below.

📅 Reservation Mode

Choose how "Reserve" button works on the website:

🏨 Beds24 Integration
Found in Beds24 → Settings → API
Used to build the booking redirect URL
If set, an embedded booking widget will open instead of a redirect. Get it from Beds24 → Booking Engine → iFrame.
When ON, every "Confirm reservation" on the site silently POSTs the booking to your Beds24 account in addition to showing the proforma popup to the guest. Beds24 immediately blocks those dates on Booking.com and every other channel, preventing double-bookings. Requires BEDS24_REFRESH_TOKEN in Netlify env vars — set it up via /api/beds24-setup.
🔗 Room ID Mapping
Go to Rooms editor and fill in the Beds24 Room ID field for each room. This maps your Flora room numbers to Beds24 room IDs so the booking widget can pre-select the right room.
🌐 Booking.com Link
Optional — shown as an alternative booking link
🌙 Minimum Stay per Month

Set the minimum number of nights a guest must book for each month. Guests will see a message if they try to select fewer nights.

Default values: May=2, Jun=3, Jul/Aug=5, all others=1. The calendar will grey out dates below the minimum and show a message to guests.
💶 Surcharges & Extras

These values are used in price calculations and shown to guests in notices throughout the booking flow.

Applied for each child (0–12) per night. Set to 0 to disable.
Shown as a notice when guest types cot/bed keywords in special instructions.
Default discount per unfilled guest slot per night for rooms with 3+ capacity. Set to 0 to disable site-wide. Adds to (does NOT replace) the child surcharge.
Override the default sub-cap discount for specific date ranges. Each row = one rule:
  • Pricing-only rule — leave the rooms list empty. Disables the discount for the whole site during that range, but guests can still pick any adult/kid combo (they just pay full per-room price for sub-capacity bookings).
  • Hard-enforce rule — pick specific rooms in the rooms list. Targeted rooms ALSO get their dropdown locked to full-capacity-only pairs (e.g. for a 4-cap apartment: 4A, 3A+1K, 2A+2K, 1A+3K). Use this when you want a room MUST be booked full in high season.
Leave the €/missing field blank to use the default above; tick "disabled" to skip the discount entirely for that range.
🔑 Self Check-in Policy

Controls the self check-in notice that appears when guests select a late arrival time.

Arrival times at or after this hour trigger the self check-in notice.
% of one night's rate charged if guest wants host to come in person after threshold.
Note: The self check-in notice text (all 7 languages) is editable under Translations → key selfCheckin. The cot notice text is under key cotNotice, and the placeholder text under notePlaceholder.
🚫 Manual Date Blocking

Block specific dates per room (e.g. maintenance, personal use). These dates are merged with Beds24 bookings and shown as unavailable in the calendar.

🧩 Orphan Gap Prevention

When enabled, the calendar automatically blocks check-in dates that would leave a gap too small to book (smaller than the minimum stay). This prevents dead days between bookings.

How many spare nights may be left unbooked next to an existing reservation. 0 = strict (no gaps of any size). 1 = default (0- or 1-night gaps allowed). 2 = lenient (up to 2-night gaps allowed).
🚪 Block check-in only

Reject new arrivals on these dates for the selected room, but still allow a guest who's already staying to check out that day. Useful for "no Sunday arrivals" policies without orphaning the previous guest's last night.

✅ Booking Confirmation Modal
The italic line shown under "Резервацията е потвърдена". Leave blank to use per-language defaults.
Use {days} — it gets replaced with the caparo-deadline number automatically. Leave blank to use per-language defaults.
💰 Caparo Settings
e.g. 50 = 50% of total
Hours within which the deposit must be paid. After this window the reservation auto-cancels.
🏦 Bank Transfer Details
Shown in the payment proform as the recipient
📞 Contact Information
International format without +
🔍 SEO / Google Business Profile

These values update the structured data (JSON-LD) that Google reads. Leave blank to keep the default from the build.

With + prefix. Shown in Google Knowledge Panel.
Shown in Google rich results.
Legal name for structured data.
Displayed in Google search snippets.
🔐 Admin Password
🎨 Colour Palette

Colour changes apply on next Save & Publish and website reload.

🏷️ Room Name Format
👁️ Show / Hide Sections

Uncheck anything you don't want visitors to see. Changes apply on Save & Publish.

🔤 Fonts — color, size, family

Change how every text style looks. Changes apply on Save & Publish. Leave size blank to keep the default.

🎈 Hero Balloons — per-balloon color

Customise each of the three stat balloons under the hero CTAs independently. Default: middle balloon is white for contrast.

🏷️ Room feature chips (Wi-Fi · А/C · TV …)

Recolor and resize the small feature chips underneath each room title on the room cards.

👥 Fewer-guests discount

For rooms that sleep 3 or 4 people, the site automatically offers a lower price per missing adult. Set the per-person, per-night discount here.

🏷️ Conversion Badge Controls

Control which conversion badges appear on which rooms. Toggle automatic assignment on/off per badge type, or manually assign badges to specific rooms. Manual assignments always take priority over automatic ones.

🔥 High Demand (pulsing red)
Auto: rooms 4.2, 3.1, 4.1, 2.2. Manual override below:
🔥 Books Fast (orange)
Auto: sea-view apartments. Manual override below:
🌊 Sea View / High Interest (navy)
Auto: rooms with sea view. Manual override below:
👨‍👩‍👧 Family Favourite (green)
Auto: apartments with garden. Manual override below:
💰 Best Value (green)
Auto: rooms priced ≤ €100/night. Manual override below:
📊 Social Proof Controls

Manage the "X people viewing · booked Y× this month" text shown on every room card. By default all rooms show auto-generated numbers. Override per room below.

Recent Booking Badges

Control the "Last booked Xh ago" line under each room. By default all rooms show varied auto-generated times. Disable per room or set custom text.

✉️ Automated Guest Emails

Welcome email is sent when a booking is confirmed. Departure email is sent automatically at 11:30 AM BGT on checkout day.
Placeholders: {guestName} {roomTitle} {checkin} {checkout} {nights} {total} {year}

Welcome Email (on booking)

Edit any text field below — the styling stays intact. Clear a field to revert to the default.

Placeholders: {guestName} {roomTitle} {checkin} {checkout} {nights} {total} {year}
Live Preview
Departure Email (on checkout day, 11:30 AM)

Edit any text field below — the styling stays intact. Clear a field to revert to the default.

Placeholders: {guestName} {roomTitle} {checkin} {checkout} {nights} {total} {year}
Live Preview
⚙️ Gmail Setup (one-time)

To enable email sending, set these environment variables in Netlify:
GMAIL_USER = your Gmail address (e.g. studioflora2017@gmail.com)
GMAIL_APP_PASSWORD = a Google App Password (NOT your regular password)

To create an App Password: Google Account → Security → 2-Step Verification → App passwords → Create one for "Mail".

🔍 Verify Beds24 prices

Compare website prices against Beds24 over the next 365 days. Reports every room/date mismatch and refreshes the cache.

💰 Seasonal Pricing

Set custom EUR prices per room for specific date ranges. Type the exact € you want guests to see — no math, no multipliers. Leave a room blank within a range to keep its base price for those dates.

Example: "Summer Peak", Jun 10 → Jun 25 — Sea Glimpse: €135, The Sunset: €140. A guest searching Jun 14 sees those exact numbers on the room cards and in the booking flow. Ranges are checked in the order shown — the first range with a price for the room wins.

📋 Reservations (Backup Log)

All reservations submitted through the website are logged here as a backup. This supplements the Beds24 sync — if a sync misfires, you still have the data.

Date Guest Room Check-in Check-out Total Status
Saved!