Step 12 Base Price
Purpose (Product)
Capture the property's pricing strategy with base price and weekend pricing to enable revenue optimization and channel distribution.
Offer Smart Pricing service as an optional add-on that automatically adjusts prices based on demand, seasonality, and market conditions.
Smart Pricing Mode: When enabled, users can set a price range (min-max) for dynamic pricing. When disabled, users set a single fixed price.
Display property details and room cards for context while setting pricing.
UX Flow (What the user sees)
Left side shows property title, description, and a 2-column grid of room cards with cover images, room type chips, and photo counts.
Right side displays a large price card with current pricing, interactive slider, and Smart Pricing toggle.
Single Price Mode (Smart Pricing disabled): Slider shows single value, price display shows "X GBP"
Range Mode (Smart Pricing enabled): Slider shows min-max range, price display shows "X GBP - Y GBP"
Price updates in real-time as user moves the slider. Smart Pricing toggle includes service cost (£X/month) and "Learn more" link.
![[Desktop 11.png]]
System Flow (How it works)
Data Touched
Properties table:
price.basePrice (number, required, min: 1)
price.weekendBasePrice (number, required, min: 1)
price.currency (string, default: "GBP")
price.minPrice (number, optional, Smart Pricing only)
price.maxPrice (number, optional, Smart Pricing only)
Property Cart Items:
serviceId (Smart Pricing service ID)
quantity (number, default: 1)
Validation rules:
APIs Called
GET /api/services/smart-pricing
Method: GET
Response: Service object with pricing details
Used to display Smart Pricing cost and enable/disable toggle
POST /api/properties/{id}/cart
Method: POST
Payload:
{ serviceId: string, quantity: number }Response: Cart item created
Used when enabling Smart Pricing
DELETE /api/properties/{id}/cart
Method: DELETE
Payload:
{ serviceId: string }Response: 204 No Content
Used when disabling Smart Pricing
PATCH /api/properties/{id}
Method: PATCH
Payload:
{ price: { basePrice, weekendBasePrice, currency, minPrice?, maxPrice? } }Response: Updated property object
Idempotent: Yes
Retries: Standard axios retry logic
QA Checklist
Basic functionality:
Smart Pricing modes:
Data persistence:
Error handling: