Παράκαμψη στο περιεχόμενο
← Όλα τα Case Studies

Yacht charter / Tourism CRM

Sea Dreamers

Custom MVC CRM για 6 σκάφη με Stripe + Worldline + multibrand

78 tables, 6 vessels, 2 brands, payments live σε 2 gateways

78
DB tables
6
Vessels managed
2
Brands
SD + ILC
2
Payment gateways
Stripe + Worldline
v3.24.4
Version
20+ εβδομάδες + ongoing per-feature releases2023-2026

Challenge

Τι έπρεπε να λυθεί

Η επιχείρηση χρησιμοποιούσε 5 διαφορετικά εργαλεία για bookings: Excel, Google Calendar, Stripe dashboard, email templates, και handwritten σημειώσεις. Δύο brands (Sea Dreamers + Ionian Luxury) με ξεχωριστή ταυτότητα, 6 σκάφη με διαφορετικά rates. Λάθος invoice σε λάθος brand = customer service nightmare.

Solution

Τι χτίσαμε

Χτίσαμε ολοκληρωμένο CRM από scratch σε custom PHP MVC με 78 tables. Multibrand toggle σε κάθε booking, per-brand templates (logo, signature, payment links, color), unified payment logic που πηγαίνει σε Stripe ή Worldline ανάλογα με την επιλογή. Κάθε σκάφος έχει δικό του calendar + crew assignments.

Custom Modules

Τι το κάνει διαφορετικό

01

Custom PHP MVC με 78 tables

From scratch architecture, no off-the-shelf CRM. Auth, ACL, audit log, multilingual, file uploads, calendar, email automation, payment gateway abstraction.

02

Multibrand toggle (Sea Dreamers ↔ Ionian Luxury)

Ένα booking δείχνει διαφορετικό logo, signature, payment link, color theme ανάλογα με ποιο brand στέλνει. PaymentLinkMatcher για Quick PL auto-match.

03

Stripe + Worldline unified payment logic

Single API που routes σε Stripe ή Worldline (Cardlink) ανάλογα με preference, currency, customer location. Webhook handlers για επιβεβαίωση πληρωμής σε όποιο gateway. Worldline LIVE από 2026-04-27 (€1 Mastercard test captured), Stripe Payment Links με auto-renew expired (24h Stripe max), full activity log per link με IP/country/UA parsing.

04

Sea Transfer Offer mode #10

Ειδικό offer mode για transfers με fixed pricing per route + return discounts + group adjustments. Aller/Retour confirmation rendering με ξεχωριστά PDF templates.

05

6-vessel calendar με crew assignments

Καθένα από τα 6 σκάφη έχει δικό του calendar, crew roster, maintenance schedule. Drag-and-drop bookings, automated conflict detection για double-bookings.

06

v3.24.4 με auto-deploy + audit trail

Semantic versioning, automated git deploy, full audit trail σε κάθε CRUD operation. v3.22.0 Sea Transfer Offer shipped 2026-05-05, v3.22.1→v3.23.2 multibrand.

Live από production

Πώς δείχνει στην πράξη

Screenshots από το ζωντανό site. Τιμές, ονόματα πελατών και ευαίσθητα στοιχεία είναι μασκαρισμένα με skeleton blur ώστε να φαίνεται μόνο το functionality.

Customer-facing booking site σε mobile, hero με tour overview

Mobile

Public site mobile που τροφοδοτεί το CRM με κρατήσεις

Customer-facing booking site desktop με fleet showcase

Desktop

Hero desktop με 6-vessel showcase και πολυγλωσσικό switcher

Σελίδα boat tours με analytical κείμενο και image gallery

Desktop

Tours page desktop με storytelling content για κάθε διαδρομή

Tech Stack

Με τι χτίστηκε

Custom PHP MVCMySQLStripeWorldlineJavaScriptBootstrap

Όλο το stack είναι τυποποιημένο. Δεν βασίζεται σε κρυφά παραμετροποιημένα plugins ή proprietary cloud services. Μπορεί να μεταφερθεί ή να συντηρηθεί από οποιαδήποτε ομάδα γνωρίζει το stack.

FAQ

Συχνές ερωτήσεις

Γιατί custom CRM αντί για έτοιμο τύπου HubSpot ή Salesforce;

Η Sea Dreamers διαχειρίζεται 6 σκάφη με per-vessel calendar, crew assignments, και 2 brands (Sea Dreamers + Ionian Luxury Cruises) που πρέπει να φαίνονται διαφορετικά σε bookings, invoices και payment links. Έτοιμο CRM ή booking platform δεν καλύπτει yacht-specific workflows όπως aller/retour confirmations, deposit + balance schedule ή Sea Transfer Offer mode #10. Φτιάξαμε δικό μας σε PHP MVC με 78 tables ώστε κάθε feature να είναι ακριβώς όπως χρειάζεται η επιχείρηση, και χωρίς per-user license cost.

Πώς διαχειρίζεται το CRM 2 brands ταυτόχρονα χωρίς λάθη invoicing;

Στήσαμε multibrand toggle σε κάθε booking. Ένα booking δείχνει διαφορετικό logo, signature, payment link και color theme ανάλογα με ποιο brand στέλνει (Sea Dreamers ή Ionian Luxury). Το ίδιο για PDF templates, email templates και Stripe Payment Links. Φτιάξαμε επίσης PaymentLinkMatcher για Quick PL auto-match ώστε να μη χρειάζεται manual selection σε κάθε νέα κράτηση.

Δουλεύει με Stripe ή Worldline; Μπορεί να χρησιμοποιήσει και τα 2;

Ναι. Στήσαμε unified payment logic, ένα single API που routes σε Stripe ή Worldline (Cardlink) ανάλογα με preference, currency και customer location. Webhook handlers δουλεύουν για επιβεβαίωση πληρωμής σε όποιο gateway. Worldline είναι LIVE από 2026-04-27 (€1 Mastercard test captured, txId 35000418287). Stripe Payment Links έχουν auto-renew expired link logic (24h Stripe max) και full activity log per link με IP, country, και UA parsing.

Πώς αποφεύγει το σύστημα double bookings σε 6 σκάφη;

Καθένα από τα 6 σκάφη έχει δικό του calendar, crew roster και maintenance schedule. Drag-and-drop bookings τρέχουν με automated conflict detection: όταν προστίθεται νέα κράτηση που overlaps με υπάρχουσα, alert κλείνει το save action πριν δημιουργηθεί. Το ίδιο calendar στηρίζεται από audit log σε κάθε CRUD operation, οπότε αν γίνει λάθος επιβεβαίωση γνωρίζουμε ποιος και πότε.

Τι είναι το Sea Transfer Offer mode και ποια προβλήματα λύνει;

Είναι ξεχωριστό offer mode #10 για transfers (όχι κρατήσεις σκαφών) με fixed pricing per route, return discounts και group adjustments. Το Aller/Retour confirmation rendering γίνεται με ξεχωριστά PDF templates, ώστε ο πελάτης να βλέπει καθαρά το one-way ή το round-trip ποσό. Shipped 2026-05-05 σε v3.22.0, με Worldline live test pending σε production.

Παρόμοιο project σε εξέλιξη;

Αν χτίζεις κάτι παρόμοιο και ψάχνεις partner που να ξέρει το τεχνικό terrain, πες μας. 30λεπτη συζήτηση χωρίς δέσμευση.