casablanca / bookingengine-connector
CASABLANCA Booking Engine Integration for TYPO3 — asynchronous ARI synchronisation, SSR widgets, and PCI DSS-safe redirect handover to the IBE v2.
Package info
github.com/casablancahotelsoftware/typo3_casablanca_booking
Type:typo3-cms-extension
pkg:composer/casablanca/bookingengine-connector
Requires
- php: >=8.1 <8.7
- psr/log: ^1.1 || ^2.0 || ^3.0
- typo3/cms-backend: ^12.4 || ^13.4 || ^14.0
- typo3/cms-core: ^12.4 || ^13.4 || ^14.0
- typo3/cms-extbase: ^12.4 || ^13.4 || ^14.0
- typo3/cms-fluid: ^12.4 || ^13.4 || ^14.0
- typo3/cms-frontend: ^12.4 || ^13.4 || ^14.0
- typo3/cms-scheduler: ^12.4 || ^13.4 || ^14.0
Requires (Dev)
- phpunit/phpunit: ^10.5
- typo3/tailor: ^2.0
- typo3/testing-framework: ^8.0 || ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Integrates the CASABLANCA Internet Booking Engine (IBE v2) into TYPO3. Replaces the legacy JavaScript web widgets with native CMS content elements, scheduled ARI synchronisation, SSR-rendered prices for SEO, and PCI-safe redirect handover to the booking engine.
Extension key: casablanca_booking
Composer package: casablanca/bookingengine-connector
Author: Martin Hairer
Copyright: CASABLANCA hotelsoftware GmbH
License: AGPL-3.0-only (see LICENSE)
Compatibility: TYPO3 12.4 – 14.x · PHP 8.1 – 8.6
Quick start
composer require casablanca/bookingengine-connector- Activate the extension and run
vendor/bin/typo3 extension:setup - Open Tools → CASABLANCA Booking
- Enter Tenant ID and API key (IBE domain defaults to
https://bookingengine.casablanca.at) - Insert content elements on your pages
Content elements
| Element | Replaces legacy widget |
|---|---|
| Search bar | Header booking snippet |
| Availability calendar | Buchbarkeitskalender |
| Room types | Zimmertypen-Widget |
| Packages | Pauschalen-Widget |
| Price teaser | SEO “from €X” block |
Sync
vendor/bin/typo3 casablanca-booking:sync vendor/bin/typo3 casablanca-booking:sync --site=main --days=14
A daily scheduler task is created automatically on first save (staggered to the save time). An initial sync runs when the connection check succeeds; sync also runs after backend cache clears.
Theming
All widgets use the .cb- CSS prefix and --cb-* design tokens declared on .cb-widget. Agencies typically:
- Override tokens in the sitepackage stylesheet (accent colour, radius, fonts).
- Set global accent/radius via Site Settings or TypoScript (
plugin.tx_casablancabooking.theme). - Disable bundled CSS (
includeCss = 0) only when the sitepackage ships a complete replacement.
See the full theming cookbook: Documentation/Theming/Index.rst (CSS token table, appearance modes, Fluid overrides, do's and don'ts).
Localization
Frontend labels (Adults, Book now, calendar legend, …) follow the TYPO3
site language via locallang.xlf (EN/DE shipped). Editors can override
heading and primary buttons per content element in the FlexForm Texts
sheet; integrators use TypoScript _LOCAL_LANG for site-wide wording.
See Documentation/Localization/Index.rst.
Documentation
| Format | Location |
|---|---|
| TER / Sphinx (RST) | Documentation/ — published on docs.typo3.org after release |
Installing the extension does not show the manual inside the TYPO3 backend (editors use FlexForm labels and the frontend only).
Calendar minimum stay: enforced from the CASABLANCA API (minLengthOfStay
per arrival day), not from TYPO3 FlexForm.
PCI DSS
Widgets never call the CASABLANCA API from the browser. Booking and payment happen only on the IBE after HTTP 303 redirect.