4cefbce87eb5275b23e3f1d543295a0fc72155bd
The product lookup also matched hotel aliases (matchcodes), joined on the product uid. Matchcodes only exist for hotels, so a hotel alias equal to the requested code matched whatever product had that hotel's uid. With no ordering, the database picked one of the rows: locally DPWGRU3 returned SnowZone and KHHMP returned Hotel Terrace instead of Roncalli Düren and Gasthof Heidelberg. The other 313 product codes return the same response as before. Products are looked up by code only. Some codes exist on two products (e.g. MVKPGW); ordering by uid makes the result deterministic. Co-Authored-By: Claude Opus 5.5 <[email protected]>
E&P Reisen websites (TYPO3 13)
TYPO3 13 LTS for www.ep-reisen.de and its subsites (ski-boarderweek, snowzone, semesterende-skireisen,
ski-wochenenden, …). Products, hotels, regions and dates live in packages/ep_products, templates
and assets in packages/ep_theme. Dates, prices and availability come from MyE&P (EP/myep),
which in turn reads bpn-connect.
Local setup
DDEV project: ddev start, then ddev composer install and ddev npm install && ddev npm run build.
Rebuild the assets after template changes: Tailwind purges classes it does not find in the
templates.
Documentation
- docs/cms-api.md: the API TYPO3 serves to MyE&P and the chatbot
(
/api/hotel,/api/product,/api/calendar-hotels,/api/content/*). - docs/calendars.md: price calendar, Belegungskalender and iCal feed: where the data comes from, caching, and what to check when a calendar does not load.
Deployment
deploy.php (Deployer). A deploy runs extension:setup, resets OPcache and flushes all caches.
License
GPL-2.0 or later
Languages
JavaScript
41.2%
PHP
35.4%
HTML
22.3%
SCSS
0.9%
Shell
0.2%