Skip to content
← Back to case studies
Hospitality and booking

Bema 6: booking, Uplisting and payments

A bilingual apartment website with Uplisting sync, stay pricing, booking, iCal availability and Przelewy24 payments.

Visit the live website
Strona Apartamentów Bema 6 w Sopocie

A website connected to a booking platform

Bema 6 is a bilingual website for apartments in Sopot. Marketing content is managed in WordPress, while Uplisting remains the source of truth for apartments, prices, rules and availability. This separation preserves convenient editing without creating a second, inconsistent booking calendar.

API synchronization

External data is normalized into the model used by the website. A lightweight synchronization runs regularly, with a full refresh every hour. When availability data becomes stale, the form does not accept a booking without confirmation. This is safer than selling a date based on outdated data.

Booking and payment

The form calculates the stay price, while the server verifies availability, minimum stay rules and the order value again. A request is stored as pending. Once confirmed, its dates are blocked through a protected per-apartment iCal feed. The Przelewy24 integration creates the transaction and verifies callback signatures before changing payment status.

Security and privacy

Forms use nonces, a honeypot, request rate limits and Cloudflare Turnstile. The project includes data retention rules and WordPress privacy tools. Transactional messages use dedicated templates, while administrators keep control over request handling.

Marketing layer

The theme supports Polish and English, correct canonicals and hreflang, VacationRental schema and Rank Math integration. Local fonts and responsive images reduce loading cost, while copy, galleries and property information remain editable in the dashboard.