Όταν μια επιχείρηση ζητά «να συνδεθεί το eshop με το ERP», συνήθως εννοεί κάτι απλό: η παραγγελία να μπαίνει μόνη της στο λογιστήριο και το απόθεμα στο site να λέει την αλήθεια. Αυτό το κάνουν σχεδόν όλοι οι connectors, τις μέρες που όλα δουλεύουν. Η πραγματική διαφορά φαίνεται τη μέρα που κάτι αποτυγχάνει.
Γράφω από τη σύνδεση WooCommerce με SoftOne που φτιάξαμε φέτος για την Olympus Plus, όπου αντικαταστήσαμε έναν connector τρίτου, και από άλλα δύο eshops με SoftOne και Prosvasis Go που συντηρούμε. Δεν είναι οδηγός για όλα τα ERP της αγοράς. Είναι τα σημεία που μας έκαψαν ή κόντεψαν να μας κάψουν.
Τι πρέπει να μεταφέρει η σύνδεση, και προς τα πού
Μια σωστή σύνδεση έχει τρεις ροές, όχι μία:
- Παραγγελία προς παραστατικό (eshop προς ERP): πελάτης με ΑΦΜ, email ή τηλέφωνο, γραμμές, ΦΠΑ, τρόπος πληρωμής, courier, σχόλιο πελάτη, σωστή σειρά παραστατικού για λιανική ή χονδρική.
- Απόθεμα και κωδικοί (ERP προς eshop). Στην Olympus τρέχει κάθε 15 λεπτά.
- Κατάσταση (ERP προς eshop): όταν η παραγγελία τιμολογηθεί, κλείνει στο site και ο πελάτης παίρνει το email ολοκλήρωσης. Αυτό τρέχει κάθε 10 λεπτά.
Η τρίτη ροή είναι αυτή που ξεχνιέται πιο συχνά. Χωρίς αυτήν, κάποιος στο κατάστημα κλείνει παραγγελίες με το χέρι και το «αυτοματοποιημένο» eshop έχει ακόμα έναν υπάλληλο που κάνει copy-paste.
Πριν γράψουμε γραμμή κώδικα, κάναμε το mapping των κωδικών. Στην Olympus, 540 από τους 546 κωδικούς προϊόντων ταίριαξαν αυτόματα, γιατί ο κωδικός στο SoftOne ήταν ίδιος με το SKU του WooCommerce. Οι 6 που έμειναν ήταν νέες παραλλαγές που δεν είχαν περαστεί ακόμα στο ERP. Τους δώσαμε στον πελάτη ως λίστα. Αν οι κωδικοί σου δεν ταιριάζουν, αυτή είναι η πρώτη δουλειά, όχι η τελευταία.
Πρώτο λάθος: «στέλνω και ελπίζω»
Ο connector που αντικαταστήσαμε τραβούσε τις παραγγελίες από το site με καθυστέρηση. Στα logs επτά ημερών που μετρήσαμε, η πρώτη ανάγνωση μιας νέας παραγγελίας γινόταν κατά μέσο όρο 150 λεπτά μετά τη δημιουργία της. Και αν κάτι αποτύγχανε, δεν το ξαναδοκίμαζε.
Η δική μας ροή είναι: η παραγγελία ενεργοποιεί ένα background job (Action Scheduler, το ίδιο σύστημα ουράς που χρησιμοποιεί το WooCommerce), το job ελέγχει τα δεδομένα, βρίσκει ή δημιουργεί τον πελάτη στο ERP και στέλνει το παραστατικό. Κάθε παραγγελία έχει δική της εγγραφή κατάστασης: εκκρεμεί, στάλθηκε, απέτυχε, κόλλησε.
Ο έλεγχος πριν την αποστολή είναι αυτό που κρατά το ERP καθαρό. Δεν στέλνουμε:
- παραγγελία BoxNow χωρίς επιλεγμένο locker,
- προϊόν που δεν έχει αντιστοίχιση κωδικού,
- συντελεστή ΦΠΑ που δεν αναγνωρίζουμε,
- σύνολα που δεν συμφωνούν με το άθροισμα των γραμμών,
- αίτημα τιμολογίου χωρίς ΑΦΜ.
Μια παραγγελία που σταματά εδώ σημειώνεται με τον λόγο και ξαναδοκιμάζεται. Είναι προτιμότερο να μη φτάσει στο ERP παρά να φτάσει λάθος και να τη διορθώνει το λογιστήριο.
Τι γίνεται όταν το ERP πέσει
Θα πέσει. Μέχρι σήμερα έχουμε καταγράψει πέντε περιστατικά όπου το cloud ERP ενός πελάτη απαντούσε με σφάλματα 404 ή 503 για ώρες, συνήθως βράδυ.
Η σύνδεση ξαναδοκιμάζει κάθε αποτυχημένη αποστολή πέντε φορές, σε αυξανόμενα διαστήματα: 1 λεπτό, 5 λεπτά, 30 λεπτά, 2 ώρες, 6 ώρες. Μετά τη σημειώνει ως κολλημένη και στέλνει email. Τη νύχτα της 12ης Αυγούστου το ERP ήταν εκτός για περίπου έξι ώρες και 14 παραγγελίες εξάντλησαν τις επαναλήψεις. Δεν χάθηκε καμία, γιατί η καθεμία είχε την εγγραφή της. Πριν τις ξαναστείλουμε ελέγξαμε και τις 14 ότι δεν είχαν ήδη περάσει στο ERP, ώστε να μη δημιουργηθεί διπλό παραστατικό. Πέρασαν και οι 14 με την πρώτη.
Σε επόμενη πτώση, τον Σεπτέμβριο, φάνηκε το πραγματικό κενό: οι ειδοποιήσεις έφταναν σε ένα δικό μας inbox ανάμεσα σε δεκάδες άλλα μηνύματα, και ο πελάτης δεν ήξερε ότι είχε παραγγελίες που περίμεναν. Οι επαναλήψεις έκαναν τη δουλειά τους. Αυτό που μετράει τελικά είναι αν η ειδοποίηση φτάνει σε άνθρωπο που μπορεί να κάνει κάτι, την ώρα που πρέπει.
Το χειρότερο σενάριο είναι η σιωπή. Σε άλλο eshop που αναλάβαμε, με SoftOne μέσω Prosvasis Go, η κλήση που ψάχνει τον πελάτη στο ERP κολλούσε σε 1 από 5 δοκιμές τη μία μέρα και σε 3 από 8 την επόμενη, ενώ όταν απαντούσε το έκανε σε λιγότερο από μισό δευτερόλεπτο. Το plugin που υπήρχε τότε εγκατέλειπε την παραγγελία χωρίς να γράψει σφάλμα και χωρίς να ξαναδοκιμάσει. Το προσωπικό είχε συνηθίσει να περνά παραγγελίες με το χέρι, χωρίς να ξέρει γιατί.
Τα «αόρατα» του ERP
Μερικά πράγματα δεν φαίνονται στη σύμβαση ούτε στο demo:
Ακυρωμένα παραστατικά που εξαφανίζονται. Το SoftOne δεν δείχνει τα ακυρωμένα παραστατικά στην προβολή που διαβάζει η σύνδεση. Αν δεν το ξέρεις, μια παραγγελία μοιάζει να «χάθηκε». Προσθέσαμε ειδοποίηση για παραγγελίες που ήταν στο ERP και δεν φαίνονται πια.
Κενές απαντήσεις που σπάνε. Όταν μια αναζήτηση δεν βρίσκει τίποτα, το API επιστρέφει JSON που δεν είναι έγκυρο. Ο κώδικας πρέπει να το περιμένει, αλλιώς το «δεν βρέθηκε πελάτης» γίνεται «έπεσε η σύνδεση».
ΦΠΑ νησιών. Η παραγγελία που στέλνει η σύνδεση έχει τα μεταφορικά με 24%. Σε 7 από τα 7 νησιωτικά παραστατικά που ελέγξαμε, η μετατροπή της παραγγελίας σε τιμολόγιο μέσα στο ERP άλλαζε τον συντελεστή σε 17%. Η διαφορά δεν προερχόταν από το eshop, και δεν θα τη βρίσκαμε αν ελέγχαμε μόνο τι στείλαμε. Γι’ αυτό ελέγχουμε και το τελικό παραστατικό, όχι μόνο την αποστολή.
Πληρωμές που δεν επιστρέφουν. Με Viva Wallet βρήκαμε μια περίπτωση όπου ο πελάτης πληρώνει επιτυχώς μια παραγγελία που είχε ήδη σημειωθεί ως αποτυχημένη. Η κάρτα χρεώνεται, η παραγγελία στο WordPress μένει «αποτυχημένη» και δεν φτάνει ποτέ στο ERP. Αυτό λύνεται μόνο με τακτική σύγκριση πληρωμών και παραγγελιών.
Ηλεκτρονική τιμολόγηση από 1/10/2026
Σύμφωνα με τις συχνές ερωτήσεις της ΑΑΔΕ, η ηλεκτρονική τιμολόγηση μεταξύ επιχειρήσεων είναι υποχρεωτική από 2/3/2026 για όσες είχαν ακαθάριστα έσοδα πάνω από 1.000.000 € το 2023, και από 1/10/2026 για όλες τις υπόλοιπες. Μέχρι 31/12/2026 επιτρέπεται παράλληλη χρήση των παλιών τρόπων, με την προϋπόθεση ότι έχει υποβληθεί εγκαίρως η σχετική δήλωση. Η έκδοση γίνεται μέσω Παρόχου Ηλεκτρονικής Τιμολόγησης ή μέσω της δωρεάν εφαρμογής timologio της ΑΑΔΕ.
Για ένα eshop αυτό αφορά κυρίως τις παραγγελίες με τιμολόγιο. Πρακτικά:
- Το πεδίο ΑΦΜ στο checkout πρέπει να ελέγχεται, όχι απλώς να υπάρχει. Ένα τιμολόγιο με λάθος ΑΦΜ θα σταματήσει πιο πάνω στην αλυσίδα.
- Η σύνδεση με το ERP πρέπει να ξέρει ποια σειρά παραστατικών χρησιμοποιείται για τιμολόγια και ποια για αποδείξεις.
- Ρώτα τον λογιστή σου πώς ακριβώς εκδίδει το ERP σου μέσω παρόχου. Αυτό καθορίζει τι πρέπει να στέλνει το eshop.
Δεν είμαστε λογιστές. Η σύνδεση πρέπει να ακολουθεί αυτό που θα αποφασίσει ο λογιστής σου, όχι να το μαντεύει.
Checklist πριν υπογράψεις για σύνδεση
- Mapping κωδικών. Πόσα προϊόντα ταιριάζουν σήμερα αυτόματα; Ποιος διορθώνει τα υπόλοιπα;
- Τρεις ροές. Παραγγελία, απόθεμα, κατάσταση. Ποια από τις τρεις καλύπτει η προσφορά;
- Έλεγχος πριν την αποστολή. Τι κάνει η σύνδεση με παραγγελία χωρίς locker, χωρίς ΑΦΜ ή με άγνωστο κωδικό;
- Πτώση του ERP. Πόσες επαναλήψεις, σε τι διαστήματα, και ποιος ειδοποιείται μετά;
- Διπλά παραστατικά. Πώς εξασφαλίζεται ότι μια παραγγελία που ξαναστέλνεται δεν θα τιμολογηθεί δύο φορές;
- ΦΠΑ και σειρές. Νησιά, εξωτερικό, λιανική, χονδρική: ελέγχθηκαν σε πραγματικά παραστατικά;
- Δοκιμή χωρίς ρίσκο. Υπάρχει περιβάλλον δοκιμών; Εμείς δουλέψαμε σε αντίγραφο του site στον ίδιο server, γιατί ο λογαριασμός web του SoftOne μπορεί να δέχεται κλήσεις μόνο από συγκεκριμένη IP.
Αν η απάντηση σε κάποιο από αυτά είναι «θα δούμε», ξέρεις πού θα σπάσει πρώτα.
Τα συστήματα που έχουμε συνδέσει σε παραγωγή είναι στη σελίδα Συνδέσεις. Για το τι κάνουμε μετά την παράδοση, όταν πέφτει ένα API στις 2 τα ξημερώματα, δες το Care. Αν το ERP σου δεν είναι στη λίστα, γράψε μας τι χρησιμοποιείς.
