Kleidarakos B2B & Papanikolaou Doors
Lead Developer
B2B marketplace που αντικαθιστά τη διαδικασία με spreadsheet και τηλέφωνο για ελληνικό δίκτυο κλειδαράδων. Quote workflows, multi-supplier ενημέρωση καταλόγου και 3D door configurator που επιτρέπει στους πελάτες να βλέπουν το προϊόν πριν παραγγείλουν.
Αποτελέσματα
- προμηθευτές που τροφοδοτούν έναν ενιαίο κατάλογο
- 24
- από αυτούς με ζωντανό έλεγχο τιμής
- 15
- σχέδια πόρτας που ρυθμίζει μόνος του ο πελάτης
- 10
- έτοιμες εικόνες που συνθέτουν την πόρτα στην οθόνη
- 412

Η κατάσταση
Τα Kleidarakos και Papanikolaou Doors λειτουργούν ένα ελληνικό δίκτυο κλειδαράδων. Οι επαγγελματίες πελάτες παρήγγελναν με τηλέφωνο και spreadsheet, και κάθε προμηθευτής είχε δικό του τιμοκατάλογο σε δική του μορφή. Χρειάζονταν έναν ενιαίο κατάλογο, προσφορές που εγκρίνονται χωρίς τηλεφώνημα, και έναν τρόπο να δείχνουν μια πόρτα στον πελάτη πριν την παραγγείλει. Ανέλαβα το έργο ως ο μοναδικός developer.
Ένας κατάλογος αντί για είκοσι τέσσερις
Τα προϊόντα 24 προμηθευτών κάθονται πλέον σε έναν κατάλογο, με μία τιμή ανά κωδικό και ένα φίλτρο ανά προμηθευτή. Ο κατάλογος ενημερώνεται μόνος του σε πρόγραμμα, και τα διπλότυπα εντοπίζονται πριν φτάσουν στον πελάτη.

Πώς λειτουργεί
- Backend: Express 5 με TypeORM και PostgreSQL, 58 controllers, 68 entities και 411 σημεία API, που καλύπτουν και το λογιστικό κομμάτι πέρα από τον κατάλογο.
- Άντληση: ένας adapter ανά προμηθευτή, γιατί κάθε πλατφόρμα έχει δικό της HTML και δικές της ιδιοτροπίες· οι εργασίες τρέχουν σε ουρές BullMQ με όριο ρυθμού ανά προμηθευτή, και τα credentials αποθηκεύονται κρυπτογραφημένα με AES-256-GCM.
- Ταίριασμα: μηχανή αντιστοίχισης με EAN, MPN και μάρκα προτείνει διπλότυπα· η συγχώνευση περνάει από έγκριση, κρατάει στιγμιότυπο για αναίρεση και δεν σβήνει ποτέ γραμμή προϊόντος.
- Αναζήτηση: Meilisearch, μαζί με fuzzy αναζήτηση στη βάση για τα ελληνικά ονόματα προϊόντων.
- Πέρα από τον κατάλογο: λογιστική παρακολούθηση με τον ελληνικό ΦΠΑ να υπολογίζεται στο επίπεδο του καταλόγου, ραντεβού συγχρονισμένα με Google Calendar κάθε 15 λεπτά, και ειδοποιήσεις σε πραγματικό χρόνο μέσω Socket.IO.
Παραγγελία χωρίς τηλεφώνημα
Οι επαγγελματίες πελάτες μπαίνουν με τον λογαριασμό της εταιρείας τους, ζητούν προσφορά, τη βλέπουν εγκεκριμένη και περνούν την παραγγελία μόνοι τους. Οι ιεραρχίες και τα όρια έγκρισης είναι μέρος του καταστήματος, όχι κάτι που θυμάται κάποιος στο τηλέφωνο.

Πώς λειτουργεί
- Κατάστημα: Medusa 2.14.2 με τα B2B modules για εταιρείες, υπαλλήλους, προσφορές και εγκρίσεις, και storefront σε Next.js 16.
- Δικά μας modules: μάρκες, newsletter και ειδοποιήσεις μέσω Resend, πάνω στον ίδιο πυρήνα.
- Πληρωμές: Stripe και PayPal.
- Admin καταλόγου: React 19 με Vite και TanStack Router, Query και Table, με ανανέωση του token πριν λήξει ώστε να μη βγαίνει ο χρήστης έξω στη μέση της δουλειάς.
Η πόρτα πριν την πόρτα
Ο πελάτης διαλέγει σχέδιο, φινίρισμα, διαστάσεις, χερούλι και κλειδαριά, και βλέπει την πόρτα να αλλάζει αμέσως. Η ρύθμιση μοιράζεται με έναν σύνδεσμο και βγαίνει ως προσφορά σε PDF.

Πώς λειτουργεί
- Επιλογές: 10 σχέδια πόρτας, 8 φινιρίσματα, 6 χερούλια και 3 κλειδαριές, με ενδεικτική τιμή σε κάθε επιλογή.
- Εικόνες: 412 έτοιμα αρχεία WebP, φτιαγμένα μία φορά με headless Blender και ανεβασμένα στο repo· ο browser απλώς τα στοιβάζει με σταδιακό σβήσιμο μεταξύ τους.
- Γιατί έτσι: χωρίς 3D στον browser, ο διαμορφωτής τρέχει και στο λάπτοπ που έχει μαζί του ο αγοραστής, χωρίς κάρτα γραφικών.
- Έλεγχος: το build αποτυγχάνει αν κάποιος συνδυασμός επιλογών δείχνει σε αρχείο εικόνας που δεν υπάρχει.
Σύνδεσμοι
- Η εγκατάσταση είναι εσωτερική (δεν υπάρχει δημόσιο URL καταστήματος).
- Repo διαμορφωτή:
jimrarras/papanikolaou-doors(private)
Παρόμοια έργα
- Heartbeat Pharmacy Platform: άλλη Medusa build, αλλά B2C pharma αντί B2B locksmith