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

E-commerce / Retail (beauty)

GoHair

E-shop με custom theme + Prosvasis Go ERP + Skroutz, BestPrice, Shopflix, Trendyol

Ένα admin, 4 marketplaces, real-time stock από ERP, δικό μας theme

4
Marketplaces
Skroutz, BestPrice, Shopflix, Trendyol
~1.649
Προϊόντα
WC products
Custom v2.0.0
Theme
gohair-theme, from scratch
Automated
myDATA invoices
via Prosvasis seira mapping
12 εβδομάδες + ongoing per-marketplace iterations2023-2026

Challenge

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

Η επιχείρηση πουλάει σε 4 marketplaces ταυτόχρονα και έπρεπε καθένα να βλέπει σωστό stock. Manual updates κάθε πρωί καθυστερούσαν παραγγελίες, διπλοπωλήσεις γέμιζαν customer service, και η μη συγχρονισμένη τιμολόγηση δημιουργούσε λάθη myDATA. Παράλληλα χρειαζόταν checkout που να μη σπάει όταν ο πελάτης διαλέγει BoxNow locker.

Solution

Τι χτίσαμε

Χτίσαμε δικό μας theme `gohair-theme` v2.0.0 πάνω σε WooCommerce, με custom 3-step checkout (multistep-checkout.css + multistep-checkout.js), custom ERP bridge προς Prosvasis Go που γράφει direct στο SoftOne cloud (go.s1cloud.net) και απογράφει σε myDATA, και product feed generator ανά marketplace. Country mapping 28 EU + TR για σωστό VAT μέσω Prosvasis seira 7075.

Custom Modules

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

01

Custom theme `gohair-theme` v2.0.0

Φτιαγμένο from scratch αντί για page-builder bloat. 13 ACF field groups για admin visibility (General, Header, Footer, Social, Homepage, Features, Product Features, Popups & Bars), custom blocks (fleet-grid, hair-quiz, mega-menu), 3 mu-plugins (admin-http-throttle, wholesale-sync, sales-dashboard), centralized free shipping threshold, FAB position controls, brand mega nav. Πρώην Woodmart αντικαταστάθηκε στο go-live 2026-04-02.

02

Prosvasis Go ERP bridge με myDATA

Custom plugin που μιλάει στο SoftOne cloud (go.s1cloud.net) μέσω Prosvasis Go. Παραγγελία → API call → άμεση τιμολόγηση + stock decrement + myDATA submission. Receipt series map: 7078 GR receipt, 7075 non-GR (auto-VAT μέσω country mapping 28 EU + TR), 7062 invoices. Bidirectional: stock changes στο ERP propagate πίσω.

03

Skroutz feed + plugin patches

Custom XML feed generator. Πατσάραμε επίσης το επίσημο Skroutz cart plugin (4 patches: unique email per order, σωστό unit_price/total_price, country από payload αντί hardcoded GR, kept on-hold status). Καλύπτει 7 affected legacy orders.

04

BestPrice + Shopflix συγχρονισμός

Δύο επιπλέον feeds με διαφορετικά XML schemas και κατηγοριοποιήσεις. Centralized config ώστε να αλλάζει mapping χωρίς redeploy.

05

Trendyol kickoff (cross-border to Turkey)

Trendyol API integration για τουρκική αγορά. Currency conversion EUR→TRY με daily rates, προσαρμοσμένο shipping, διαφορετικά tax rules.

06

Custom 3-step checkout με BoxNow handling

Custom checkout template form-checkout.php με .gh-ms-step pattern, locker validation στο step 2. BoxNow gotcha: cloneNode δεν διατηρεί jQuery handlers, οπότε moveBoxNowElements μετακινεί το original button στο cloned step. Mobile sidebar peek bottom-bar.

07

Sales dashboard mu-plugin (4 channels)

Custom mu-plugin v1.3.0 με admin bar Sales button → modal με revenue breakdown ανά κανάλι (Skroutz, BestPrice, Site, Shopflix), 7 περίοδοι, daily breakdown table, channel bars. Detection μέσω _wc_order_attribution_utm_source + skroutz-dispatched status.

Live από production

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

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

Αρχική e-shop με banner promo και brand carousel

Mobile

Hero mobile με promo banner και brand strip

Αρχική e-shop desktop με search bar και 8 brands

Desktop

Hero desktop με sticky search και mega-menu κατηγοριών

Σελίδα κατηγορίας με 4 προϊόντα ανά viewport, τιμές μασκαρισμένες

Mobile

Category mobile με add-to-cart και brand badges

Σελίδα κατηγορίας desktop με sidebar filter και product grid

Desktop

Category desktop με brand/price/availability filters

Tech Stack

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

WooCommerceCustom ThemeProsvasis GoSoftOne cloudmyDATAPHP 8.2Skroutz APITrendyol API

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

FAQ

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

Πώς γίνεται sync με Skroutz, BestPrice, Shopflix και Trendyol ταυτόχρονα χωρίς λάθη stock;

Έχουμε ξεχωριστό custom XML feed generator για κάθε marketplace, καθένας με το δικό του schema και τις δικές του κατηγοριοποιήσεις. Το stock είναι single source of truth από το ERP (Prosvasis Go προς SoftOne cloud), οπότε όταν αλλάζει σε WC, ενημερώνεται κεντρικά και τα 4 feeds διαβάζουν την ίδια τιμή. Έτσι δεν εμφανίζεται sold-out προϊόν σαν διαθέσιμο σε κάποιο marketplace.

Πόσο γρήγορα ενημερώνεται το stock μετά από παραγγελία ή τιμολόγηση;

Παραγγελία στο site → άμεσο API call στο Prosvasis Go → instant invoicing + stock decrement + myDATA submission. Δεν τρέχει cron κάθε ώρα, η ενημέρωση είναι real-time. Έτσι το επόμενο feed read από Skroutz βλέπει σωστό απόθεμα σε λεπτά αντί για ώρες.

Πώς γίνεται σωστή τιμολόγηση myDATA για παραγγελίες εκτός Ελλάδας;

Έχουμε στήσει country mapping 28 EU + Τουρκία, και ο receipt series mapping στέλνει 7078 για ελληνικές αποδείξεις, 7075 για non-GR με auto-VAT calculation, και 7062 για τιμολόγια. Έτσι το myDATA submission γίνεται με σωστό ΦΠΑ ανά χώρα χωρίς manual παρέμβαση από το λογιστήριο.

Γιατί φτιάξατε δικό σας theme αντί για κάποιο ready solution;

Το παλιό theme έβαζε page-builder bloat σε κάθε φόρτωση και έσπαγε σε κάθε plugin update. Το gohair-theme v2.0.0 είναι γραμμένο from scratch με 13 ACF field groups για admin visibility, custom blocks (fleet-grid, hair-quiz, mega-menu) και 3 mu-plugins (admin-http-throttle, wholesale-sync, sales-dashboard). Έτσι η εμπορική ομάδα αλλάζει banner, free shipping threshold ή product features χωρίς να αγγίζει developer, και το stack δε φοβάται να ενημερώσει WordPress core.

Λειτουργεί το checkout αν ο πελάτης διαλέξει BoxNow locker σε mobile;

Ναι. Το custom 3-step checkout έχει BoxNow validation στο step 2 και έχουμε λύσει το γνωστό issue ότι το cloneNode δε διατηρεί τα jQuery handlers του BoxNow widget. Φτιάξαμε moveBoxNowElements function που μετακινεί το original button στο cloned step αντί να το αντιγράφει. Το mobile sidebar peek bottom-bar φροντίζει να βλέπει ο πελάτης το ποσό σε όλη τη διάρκεια.

Πώς βλέπει ο owner revenue per channel χωρίς να μπαίνει σε 4 dashboards;

Φτιάξαμε mu-plugin Sales Dashboard v1.3.0 που προσθέτει button στο WP admin bar, και ανοίγει modal με revenue breakdown ανά κανάλι (Skroutz, BestPrice, Site, Shopflix), 7 περιόδους, daily breakdown table και channel bars. Το detection γίνεται μέσω _wc_order_attribution_utm_source και skroutz-dispatched status, οπότε δε χρειάζεται manual tagging από τον admin.

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

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