Εισαγωγή
Στο Odoo, τα μοντέλα ορίζουν πώς δομούνται και αποθηκεύονται τα δεδομένα στη βάση δεδομένων. Κάθε κομμάτι επιχειρηματικών δεδομένων με το οποίο εργάζεστε ζει σε ένα μοντέλο.
Η κατανόηση των μοντέλων του Odoo είναι απαραίτητη τόσο για τους προγραμματιστές όσο και για τους λειτουργικούς συμβούλους. Τα μοντέλα είναι το θεμέλιο της αρχιτεκτονικής δεδομένων του Odoo. Ορίζουν τα πεδία του Odoo, τις σχέσεις και τη επιχειρηματική λογική.
Αυτό το άρθρο εστιάζει στο μοντέλο ιστοσελίδας. Αυτό τροφοδοτεί τη διαμόρφωση της ιστοσελίδας στο Odoo. Είτε δημιουργείτε ρυθμίσεις πολλαπλών ιστοσελίδων, προσαρμόζετε την επωνυμία ή ενσωματώνεστε με εξωτερικά συστήματα, θα εργαστείτε με αυτό το μοντέλο.
Τι είναι το μοντέλο ιστοσελίδας
Το μοντέλο ιστοσελίδας αναπαριστά μια ρύθμιση ιστοσελίδας στο Odoo. Αυτό το μοντέλο στο Odoo αποθηκεύει τα πάντα που ορίζουν πώς φαίνεται και συμπεριφέρεται μια ιστοσελίδα: τομέας, γλώσσες, branding, κοινωνικοί σύνδεσμοι και δομή μενού.
Είναι μέρος της εφαρμογής Ιστοσελίδας και χρησιμοποιείται από κάθε ιστοσελίδα Odoo. Σε ρυθμίσεις πολλαπλών ιστοσελίδων, έχετε πολλαπλά αρχεία ιστοσελίδων. Κάθε ένα μπορεί να έχει τον δικό του τομέα, εταιρεία, γλώσσες και θέμα.
Άλλα μοντέλα στο Odoo αναφέρονται στο μοντέλο ιστοσελίδας μέσω του πεδίου website_id. Πολλά μοντέλα Odoo έχουν ένα πεδίο website_id για να περιορίσουν το περιεχόμενο σε μια συγκεκριμένη ιστοσελίδα. Έτσι λειτουργεί η κληρονομικότητα μοντέλων Odoo και το μοντέλο api στο Odoo.
Κύρια πεδία στο μοντέλο
Ακολουθούν τα πιο σημαντικά πεδία Odoo στο μοντέλο ιστοσελίδας. Η κατανόηση αυτών θα σας βοηθήσει να εργαστείτε αποτελεσματικά με τη ρύθμιση της ιστοσελίδας.
1. όνομα
Τύπος: Char. Απαιτείται. Αυτό το πεδίο αποθηκεύει το όνομα της ιστοσελίδας. Εμφανίζεται στον διακόπτη backend και στις οθόνες ρύθμισης. Είναι ο κύριος αναγνωριστικός παράγοντας για την ιστοσελίδα.
2. ακολουθία
Τύπος: Integer. Προεπιλογή 10. Ελέγχει τη σειρά εμφάνισης όταν υπάρχουν πολλές ιστοσελίδες. Χαμηλότερες τιμές εμφανίζονται πρώτες.
3. τομέας
Τύπος: Char. Ο τομέας της ιστοσελίδας (π.χ. https://www.mydomain.com). Το Odoo προσθέτει https αν λείπει. Πρέπει να είναι μοναδικός. Χρησιμοποιείται για δρομολόγηση και SEO.
4. company_id
Τύπος: Many2one (res.company). Απαιτείται. Συνδέει την ιστοσελίδα με μια εταιρεία Odoo. Σε ρυθμίσεις πολλαπλών εταιρειών, κάθε ιστοσελίδα εμφανίζει μόνο δεδομένα που σχετίζονται με την εταιρεία.
5. language_ids
Τύπος: Many2many (res.lang). Οι γλώσσες που είναι διαθέσιμες σε αυτή την ιστοσελίδα. Οι επισκέπτες μπορούν να αλλάξουν μεταξύ τους. Προεπιλογή σε όλες τις εγκατεστημένες γλώσσες.
6. language_count
Τύπος: Integer. Υπολογιζόμενο. Ο αριθμός των γλωσσών. Χρήσιμο για εμφάνιση και φιλτράρισμα.
7. default_lang_id
Τύπος: Many2one (res.lang). Απαιτείται. Η προεπιλεγμένη γλώσσα όταν οι επισκέπτες προσγειώνονται για πρώτη φορά. Πρέπει να είναι μέσα στις language_ids.
8. auto_redirect_lang
Τύπος: Boolean. Προεπιλογή Αληθές. Όταν είναι ενεργοποιημένο, οι επισκέπτες ανακατευθύνονται στη γλώσσα του προγράμματος περιήγησής τους αν είναι διαθέσιμη.
9. cookies_bar
Τύπος: Boolean. Όταν είναι Αληθές, εμφανίζεται μια μπάρα cookies. Χρήσιμο για συμμόρφωση με τον GDPR. Ο Odoo μπορεί να δημιουργήσει αυτόματα μια σελίδα πολιτικής cookies.
10. logo
Τύπος: Binary. Το λογότυπο της ιστοσελίδας. Εμφανίζεται στην κεφαλίδα και αλλού. Προεπιλογή στο λογότυπο του Odoo αν δεν έχει οριστεί.
11. favicon
Τύπος: Δυαδικό. Το favicon που εμφανίζεται στην καρτέλα του προγράμματος περιήγησης. Το Odoo το αλλάζει σε 256x256.
12. social_twitter
Τύπος: Χαρακτήρας. URL λογαριασμού Twitter/X. Προεπιλογές από την εταιρεία. Χρησιμοποιείται στο υποσέλιδο και στην κοινωνική κοινοποίηση.
13. social_facebook
Τύπος: Χαρακτήρας. URL λογαριασμού Facebook. Ίδιο μοτίβο με τα άλλα κοινωνικά πεδία.
14. social_linkedin
Τύπος: Χαρακτήρας. URL λογαριασμού LinkedIn.
15. social_instagram
Τύπος: Χαρακτήρας. URL λογαριασμού Instagram.
16. social_youtube
Τύπος: Χαρακτήρας. URL λογαριασμού YouTube.
17. social_github
Τύπος: Χαρακτήρας. URL λογαριασμού GitHub.
18. social_tiktok
Τύπος: Χαρακτήρας. URL λογαριασμού TikTok.
19. social_default_image
Τύπος: Δυαδικό. Προεπιλεγμένη εικόνα για κοινωνική κοινοποίηση. Επικαλύπτει το λογότυπο όταν έχει οριστεί. Χρησιμοποιείται για Open Graph και κάρτες Twitter.
20. google_analytics_key
Τύπος: Χαρακτήρας. Κλειδί Google Analytics. Για παρακολούθηση. Ο Odoo εισάγει το σενάριο όταν είναι ρυθμισμένο.
21. google_maps_api_key
Τύπος: Χαρακτήρας. Κλειδί Google Maps API. Για χάρτες και δυνατότητες τοποθεσίας.
22. user_id
Τύπος: Many2one (res.users). Απαιτείται. Ο δημόσιος χρήστης για αυτή την ιστοσελίδα. Χρησιμοποιείται για πρόσβαση σε πύλη και ανώνυμους επισκέπτες. Προεπιλογές από την εταιρεία.
23. cdn_activated
Τύπος: Boolean. Όταν είναι True, οι στατικές πηγές εξυπηρετούνται από ένα CDN. Βελτιώνει την απόδοση.
24. cdn_url
Τύπος: Char. Η βασική διεύθυνση URL του CDN. Χρησιμοποιείται όταν το cdn_activated είναι True.
25. cdn_filters
Τύπος: Text. Regex μοτίβα για URLs που θα ξαναγραφούν. Προεπιλογή οι στατικές διαδρομές.
26. menu_id
Τύπος: Many2one (website.menu). Υπολογιζόμενο. Το κύριο μενού. Σημειώνει το ριζικό στοιχείο μενού για αυτή την ιστοσελίδα.
27. homepage_url
Τύπος: Char. Η διαδρομή της αρχικής σελίδας (π.χ. /contactus ή /shop). Πρέπει να αρχίζει με μια κάθετο.
28. custom_code_head
Τύπος: Html. Προσαρμοσμένος κώδικας που εισάγεται στην κεφαλή. Για αναλύσεις, σενάρια ή μετα-ετικέτες.
29. custom_code_footer
Τύπος: Html. Προσαρμοσμένος κώδικας που εισάγεται στο υποσέλιδο. Χρήσιμος για widgets συνομιλίας ή παρακολούθηση.
30. robots_txt
Τύπος: Html. Προσαρμοσμένο περιεχόμενο robots.txt. Για SEO και έλεγχο crawler.
31. theme_id
Τύπος: Many2one (ir.module.module). Το εγκατεστημένο θέμα.
32. auth_signup_uninvited
Τύπος: Επιλογή. b2b (Με πρόσκληση) ή b2c (Δωρεάν εγγραφή). Ελέγχει αν οι επισκέπτες μπορούν να δημιουργούν λογαριασμούς χωρίς πρόσκληση.
33. create_date
Τύπος: Datetime. Πότε δημιουργήθηκε η εγγραφή. Διαχειρίζεται αυτόματα από το Odoo.
34. write_date
Τύπος: Datetime. Πότε τροποποιήθηκε τελευταία η εγγραφή. Επίσης διαχειρίζεται αυτόματα.
Πώς χρησιμοποιείται αυτό το μοντέλο σε επιχειρηματικές ροές εργασίας
1. Πολυιστοσελίδα και Τοπικοποίηση
Οι εταιρείες με πολλαπλές μάρκες ή περιοχές δημιουργούν μία καταχώρηση ιστοσελίδας ανά ιστότοπο. Κάθε μία έχει το δικό της domain, γλώσσες και περιεχόμενο. Το πεδίο website_id στις σελίδες, τα blogs και τα προϊόντα περιορίζει τα δεδομένα στον σωστό ιστότοπο.
2. Branding και Ταυτότητα
Το λογότυπο, το favicon και οι κοινωνικοί σύνδεσμοι ρυθμίζονται ανά ιστοσελίδα. Οι ομάδες μάρκετινγκ τα ενημερώνουν όταν γίνεται επαναbranding. Το πεδίο social_default_image βελτιώνει την εμφάνιση των συνδέσμων όταν κοινοποιούνται.
3. Γλώσσα και SEO
Τα language_ids και default_lang_id ελέγχουν ποιες γλώσσες είναι διαθέσιμες. Το auto_redirect_lang βελτιώνει την εμπειρία χρήστη για διεθνείς επισκέπτες. Η σωστή ρύθμιση βοηθά στο SEO και στο hreflang.
4. Απόδοση και CDN
Όταν η κίνηση αυξάνεται, τα cdn_activated και cdn_url αποφορτίζουν τα στατικά στοιχεία σε ένα CDN. Τα cdn_filters καθορίζουν ποιες διευθύνσεις URL αναδιατυπώνονται.
5. Συμμόρφωση και Αναλύσεις
Το cookies_bar ενεργοποιεί την μπάντα συγκατάθεσης για τα cookies. Το google_analytics_key και το custom_code_head εισάγουν παρακολούθηση. Το robots_txt ελέγχει την πρόσβαση των crawler.
Πώς οι προγραμματιστές επεκτείνουν αυτό το μοντέλο
Οι προγραμματιστές επεκτείνουν το μοντέλο ιστοσελίδας χρησιμοποιώντας διάφορα μοτίβα. Η κληρονομικότητα μοντέλου του Odoo είναι ο κύριος μηχανισμός.
Κληρονομικότητα Μοντέλου
Χρησιμοποιήστε _inherit = 'website' για να επεκτείνετε το μοντέλο. Προσθέστε νέα πεδία Odoo, παρακάμψτε μεθόδους ή προσθέστε περιορισμούς. Το μοντέλο κληρονομιάς στο Odoo διατηρεί τις αλλαγές σας σε ένα ξεχωριστό module για εύκολες αναβαθμίσεις.
Προσθήκη Πεδίων
Ορίστε νέα πεδία Odoo στο κληρονομημένο μοντέλο σας. Χρησιμοποιήστε τον σωστό τύπο πεδίου: Char, Many2one, Boolean, Integer, Text, Selection. Σκεφτείτε τα πεδία που εξαρτώνται από τον ιστότοπο για λογική πολλαπλών ιστότοπων.
Επεκτάσεις Python
Παρακάμψτε create, write ή unlink για να προσθέσετε λογική. Χρησιμοποιήστε super() για να καλέσετε το αρχικό. Να είστε προσεκτικοί με το user_id και το company_id όταν δημιουργείτε ιστότοπους προγραμματισμένα.
Odoo Studio
Το Odoo Studio σας επιτρέπει να προσθέτετε πεδία χωρίς κώδικα. Καλή επιλογή για γρήγορες προσαρμογές. Για πολύπλοκη λογική ή διαμόρφωση μέσω API, τα προσαρμοσμένα modules είναι πιο συντηρήσιμα.
Καλές πρακτικές
- Ορίστε το domain για κάθε ιστότοπο στην παραγωγή. Βοηθά στην δρομολόγηση και το SEO.
- Διατηρήστε το default_lang_id εντός των language_ids. Το Odoo το επικυρώνει κατά την αλλαγή.
- Χρησιμοποιήστε το custom_code_head και το custom_code_footer για σενάρια τρίτων. Αποφύγετε την τροποποίηση των βασικών προτύπων.
- Όταν δημιουργείτε API integrations, χρησιμοποιήστε το XML-RPC ή το JSON-RPC API. Το μοντέλο ιστότοπου είναι πλήρως εκτεθειμένο. Χαρτογραφήστε σωστά το website_id κατά την συγχρονισμό περιεχομένου.
- Για προσαρμοσμένα πεδία, χρησιμοποιήστε το
x_πρόθεμα ή ένα πρόθεμα module για να αποφύγετε συγκρούσεις με μελλοντικές εκδόσεις του Odoo.
Κοινά λάθη
- Δημιουργία διπλών τομέων. Το πεδίο τομέα έχει μοναδικό περιορισμό.
- Ξεχνώντας να ορίσετε το user_id κατά τη δημιουργία ιστοσελίδων μέσω API. Είναι απαραίτητο.
- Ορισμός homepage_url χωρίς αρχικό slash. Το Odoo επικυρώνει και εμφανίζει σφάλμα.
- Ενεργοποίηση cdn_activated χωρίς έγκυρο cdn_url. Τα assets ενδέχεται να αποτύχουν να φορτωθούν.
- Αναίρεση βασικών μεθόδων χωρίς κλήση super(). Αυτό μπορεί να σπάσει άλλα modules ή μελλοντικές αναβαθμίσεις.
Συμπέρασμα
Το μοντέλο ιστοσελίδας είναι κεντρικό για τη διαμόρφωση του ιστότοπου στο Odoo. Αποθηκεύει τομέα, γλώσσες, branding και συμπεριφορά. Η κατανόηση των πεδίων του Odoo και του τρόπου αναφοράς άλλων μοντέλων σε αυτό θα σας βοηθήσει να διαμορφώσετε, να προσαρμόσετε και να ενσωματώσετε αποτελεσματικά τις ιστοσελίδες Odoo.
Είτε είστε λειτουργικός σύμβουλος που χαρτογραφεί τις ανάγκες πολλαπλών ιστότοπων είτε προγραμματιστής που δημιουργεί προσαρμοσμένα modules, μια σταθερή κατανόηση του μοντέλου ιστοσελίδας θα σας εξοικονομήσει χρόνο και θα αποτρέψει σφάλματα.
Χρειάζεστε βοήθεια με την υλοποίηση του Odoo σας;
Η Dasolo βοηθά τις εταιρείες να υλοποιήσουν, να προσαρμόσουν και να βελτιστοποιήσουν το Odoo. Ειδικευόμαστε σε API integrations και ανάπτυξη Odoo. Η ομάδα μας έχει βαθιά εμπειρία με την αρχιτεκτονική δεδομένων του Odoo και μοντέλα όπως το website.
Αν χρειάζεστε βοήθεια με την υλοποίηση του Odoo, τη ρύθμιση πολλαπλών ιστοσελίδων ή τις ενσωματώσεις, είμαστε εδώ για να βοηθήσουμε. Κλείστε μια επίδειξη για να συζητήσουμε το έργο σας.