---
title: Kleidarakos B2B & Papanikolaou Doors
description: >-
  B2B marketplace που αντικαθιστά τη διαδικασία με spreadsheet και τηλέφωνο για ελληνικό δίκτυο κλειδαράδων. Quote
  workflows, multi-supplier ενημέρωση καταλόγου και 3D door configurator που επιτρέπει στους πελάτες να βλέπουν το
  προϊόν πριν παραγγείλουν.
lang: el
source: https://jimrarras.com/projects/kleidarakos-papanikolaou/
fetched: '2026-09-19T05:53:18.364Z'
---

Lead Developer

B2B marketplace που αντικαθιστά τη διαδικασία με spreadsheet και τηλέφωνο για ελληνικό δίκτυο κλειδαράδων. Quote workflows, multi-supplier ενημέρωση καταλόγου και 3D door configurator που επιτρέπει στους πελάτες να βλέπουν το προϊόν πριν παραγγείλουν.

- **24** προμηθευτές που τροφοδοτούν έναν ενιαίο κατάλογο

- **15** από αυτούς με ζωντανό έλεγχο τιμής

- **10** σχέδια πόρτας που ρυθμίζει μόνος του ο πελάτης

- **412** έτοιμες εικόνες που συνθέτουν την πόρτα στην οθόνη

## Stack
## Η κατάσταση

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

## Ένας κατάλογος αντί για είκοσι τέσσερις

Τα προϊόντα 24 προμηθευτών κάθονται πλέον σε έναν κατάλογο, με μία τιμή ανά κωδικό και ένα φίλτρο ανά προμηθευτή. Ο κατάλογος ενημερώνεται μόνος του σε πρόγραμμα, και τα διπλότυπα εντοπίζονται πριν φτάσουν στον πελάτη.

![Εικονογράφηση pixel art οθόνης καταλόγου: φίλτρο πολλαπλών προμηθευτών αριστερά, πίνακας προϊόντων με κωδικό, όνομα, ποσότητα και προμηθευτή στο κέντρο, και εικονίδιο κρυπτογραφημένων διαπιστευτηρίων πάνω δεξιά](https://jimrarras.com/images/projects/kleidarakos-papanikolaou/pim-admin.webp)

Ένας πίνακας για όλους τους προμηθευτές, με φίλτρο ανά προμηθευτή

Πώς λειτουργεί

- **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.

## Παραγγελία χωρίς τηλεφώνημα

Οι επαγγελματίες πελάτες μπαίνουν με τον λογαριασμό της εταιρείας τους, ζητούν προσφορά, τη βλέπουν εγκεκριμένη και περνούν την παραγγελία μόνοι τους. Οι ιεραρχίες και τα όρια έγκρισης είναι μέρος του καταστήματος, όχι κάτι που θυμάται κάποιος στο τηλέφωνο.

![Εικονογράφηση pixel art ενός B2B καταστήματος σε παράθυρο browser: banner με κλειδί και κουμπί ροής προσφοράς, και από κάτω κάρτες με λουκέτα, πόρτες και κλειδιά](https://jimrarras.com/images/projects/kleidarakos-papanikolaou/storefront.webp)

Το B2B κατάστημα: είσοδος με λογαριασμό εταιρείας και ροή προσφοράς από την αρχική

Πώς λειτουργεί

- **Κατάστημα:** 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.

![Εικονογράφηση pixel art διαμορφωτή πόρτας: μια θωρακισμένη πόρτα με χερούλι και σύρτες αριστερά, και δεξιά πλαϊνή στήλη με παλέτες για χρώμα, υλικό και μοτίβο](https://jimrarras.com/images/projects/kleidarakos-papanikolaou/door-configurator.webp)

Ο διαμορφωτής: η πόρτα αριστερά, οι επιλογές δεξιά

Πώς λειτουργεί

- **Επιλογές:** 10 σχέδια πόρτας, 8 φινιρίσματα, 6 χερούλια και 3 κλειδαριές, με ενδεικτική τιμή σε κάθε επιλογή.
- **Εικόνες:** 412 έτοιμα αρχεία WebP, φτιαγμένα μία φορά με headless Blender και ανεβασμένα στο repo· ο browser απλώς τα στοιβάζει με σταδιακό σβήσιμο μεταξύ τους.
- **Γιατί έτσι:** χωρίς 3D στον browser, ο διαμορφωτής τρέχει και στο λάπτοπ που έχει μαζί του ο αγοραστής, χωρίς κάρτα γραφικών.
- **Έλεγχος:** το build αποτυγχάνει αν κάποιος συνδυασμός επιλογών δείχνει σε αρχείο εικόνας που δεν υπάρχει.

Το πιο «τρισδιάστατο» κομμάτι της δουλειάς δεν τρέχει καθόλου 3D στον browser: οι πόρτες ρενταρίστηκαν μία φορά σε Blender και ο browser συνθέτει έτοιμες εικόνες.

## Σύνδεσμοι

- Η εγκατάσταση είναι εσωτερική (δεν υπάρχει δημόσιο URL καταστήματος).
- Repo διαμορφωτή: `jimrarras/papanikolaou-doors` (private)

## Παρόμοια έργα

- Heartbeat Pharmacy Platform: άλλη Medusa build, αλλά B2C pharma αντί B2B locksmith
