Skip to Content

Το Μοντέλο Παραγγελίας Αγοράς: Κατανόηση της Αρχιτεκτονικής του Odoo

Ένας πλήρης οδηγός για το μοντέλο παραγγελίας αγοράς του Odoo για προγραμματιστές και λειτουργικούς συμβούλους
11 Μαρτίου 2026 από
Το Μοντέλο Παραγγελίας Αγοράς: Κατανόηση της Αρχιτεκτονικής του Odoo
Dasolo
| No comments yet

Εισαγωγή


Στο Odoo, τα μοντέλα ορίζουν πώς δομούνται και αποθηκεύονται τα δεδομένα στη βάση δεδομένων. Κάθε κομμάτι επιχειρηματικών δεδομένων με το οποίο εργάζεστε, από παραγγελίες αγοράς έως τιμολόγια και αποθέματα, ζει σε ένα μοντέλο.


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


Αυτό το άρθρο εστιάζει σε ένα από τα πιο σημαντικά μοντέλα στο Odoo: το purchase.order. Είτε δημιουργείτε προσαρμοσμένα modules, είτε ενσωματώνετε εξωτερικά συστήματα, είτε ρυθμίζετε ροές εργασίας προμηθειών, θα εργαστείτε με αυτό το μοντέλο.

Τι είναι το μοντέλο purchase.order


Το μοντέλο purchase.order αντιπροσωπεύει τις παραγγελίες αγοράς και τα αιτήματα προσφοράς (RFQs) στο Odoo. Είναι το κεντρικό σημείο όπου καταγράφονται όλες οι συναλλαγές προμηθειών πριν γίνουν παραλαβές ή τιμολόγια προμηθευτών.


Αυτό το μοντέλο στο Odoo χρησιμοποιείται από το module Αγορών. Όταν ένας αγοραστής δημιουργεί ένα RFQ, δημιουργεί μια εγγραφή purchase.order. Όταν ο προμηθευτής επιβεβαιώνει ή ο αγοραστής εγκρίνει, η παραγγελία μετακινείται από το προσχέδιο στην επιβεβαίωση. Το ίδιο μοντέλο στο Odoo κρατά τόσο τα προσχέδια RFQs όσο και τις επιβεβαιωμένες παραγγελίες αγοράς. Το πεδίο κατάσταση παρακολουθεί τον κύκλο ζωής.


Άλλα modules επεκτείνουν αυτό το μοντέλο μέσω κληρονομικότητας μοντέλων Odoo. Το Inventory προσθέτει λογική παραλαβής και παραλαβής. Η Λογιστική προσθέτει πεδία τιμολογίων προμηθευτών. Η Παραγωγή μπορεί να δημιουργήσει παραγγελίες αγοράς από τιμολόγια υλικών. Κάθε module προσθέτει ό,τι χρειάζεται χωρίς να επαναλαμβάνει τη βασική δομή.

Κύρια πεδία στο μοντέλο


Ακολουθούν τα πιο σημαντικά πεδία Odoo στο μοντέλο purchase.order. Η κατανόηση αυτών θα σας βοηθήσει να εργαστείτε αποτελεσματικά με τις παραγγελίες αγοράς.


1. name

Τύπος: Char. Αυτό το πεδίο αποθηκεύει την αναφορά παραγγελίας (π.χ. PO00042). Συνήθως δημιουργείται αυτόματα και εμφανίζεται σε λίστες και σε έγγραφα. Είναι ο κύριος αναγνωριστικός αριθμός για την παραγγελία αγοράς.


2. state

Τύπος: Selection. Παρακολουθεί τον κύκλο ζωής της παραγγελίας. Τιμές: draft (RFQ), sent (απεστάλη στον προμηθευτή), to approve (σε αναμονή έγκρισης), purchase (επιβεβαιωμένη), done (πλήρως παραληφθείσα και τιμολογημένη), cancel (ακυρωμένη). Η κατάσταση καθορίζει ποιες ενέργειες είναι διαθέσιμες.


3. partner_id

Τύπος: Many2one (res.partner). Ο προμηθευτής ή προμηθευτής. Απαιτείται. Αυτός είναι ο κύριος επαφή ή εταιρεία για την παραγγελία. Χρησιμοποιείται για όλη τη λογική και αναφορά που σχετίζεται με τους προμηθευτές.


4. partner_ref

Τύπος: Char. Η αναφορά του προμηθευτή ή ο αριθμός παραγγελίας προμηθευτή. Χρησιμοποιείται όταν ο προμηθευτής παρέχει τη δική του αναφορά παραγγελίας. Εμφανίζεται σε έγγραφα και βοηθά στην αντιστοίχιση παραλαβών και τιμολογίων.


5. date_order

Τύπος: Ημερομηνία και ώρα. Η ημερομηνία παραγγελίας. Για προσχέδια παραγγελιών: ημερομηνία δημιουργίας. Για επιβεβαιωμένες παραγγελίες: ημερομηνία επιβεβαίωσης. Χρησιμοποιείται για αναφορές, ταξινόμηση και ως προεπιλεγμένη αναμενόμενη ημερομηνία για τις γραμμές παραγγελίας.


6. date_approve

Τύπος: Ημερομηνία και ώρα. Η ημερομηνία έγκρισης ή επιβεβαίωσης. Ορίζεται όταν η παραγγελία μεταβαίνει σε κατάσταση αγοράς. Μόνο για ανάγνωση. Χρησιμοποιείται για αναφορές και ιχνηλασίες ελέγχου.


7. order_line

Τύπος: One2many (purchase.order.line). Οι γραμμές παραγγελίας. Κάθε γραμμή περιέχει προϊόν, ποσότητα, τιμή και φόρο. Αυτή είναι η βασική λεπτομέρεια της παραγγελίας αγοράς.


8. amount_untaxed

Τύπος: Float. Το υποσύνολο πριν από τον φόρο. Υπολογίζεται από τις γραμμές παραγγελίας. Χρησιμοποιείται για αναφορές και εμφάνιση.


9. amount_tax

Τύπος: Float. Το συνολικό ποσό φόρου. Υπολογίζεται από τις γραμμές παραγγελίας με βάση τη ρύθμιση φόρου. Εμφανίζεται στην παραγγελία και στον λογαριασμό προμηθευτή.


10. amount_total

Τύπος: Float. Το συνολικό ποσό συμπεριλαμβανομένου του φόρου. Το κύριο ποσό για τιμολόγηση και αναφορές.


11. currency_id

Τύπος: Many2one (res.currency). Το νόμισμα. Συνήθως κληρονομείται από την εταιρεία ή τον προμηθευτή. Όλα τα νομισματικά πεδία χρησιμοποιούν αυτό το νόμισμα.


12. origin

Τύπος: Char. Το έγγραφο προέλευσης. Για παράδειγμα, όταν μια παραγγελία δημιουργείται από μια παραγγελία πώλησης (dropship) ή παραγγελία παραγωγής, το όνομα προέλευσης αποθηκεύεται εδώ. Χρησιμοποιείται για ιχνηλασία.


13. dest_address_id

Τύπος: Many2one (res.partner). Η διεύθυνση παράδοσης. Αν δεν έχει οριστεί, προεπιλέγεται η διεύθυνση της εταιρείας. Χρησιμοποιείται για dropshipping όταν τα αγαθά πηγαίνουν απευθείας στον πελάτη.


14. priority

Τύπος: Selection. Προτεραιότητα παραγγελίας: Κανονική ή Επείγουσα. Χρησιμοποιείται για ταξινόμηση και επισήμανση. Οι επείγουσες παραγγελίες μπορεί να λάβουν ειδική μεταχείριση στις ροές εργασίας.


15. invoice_status

Τύπος: Selection. Παρακολουθεί την τιμολόγηση: όχι (δεν έχει τιμολογηθεί), προς τιμολόγηση (έτοιμο προς τιμολόγηση), τιμολογημένο (πλήρως τιμολογημένο). Καθορίζει την ορατότητα της ενέργειας Δημιουργία Λογαριασμού.


16. invoice_count

Τύπος: Integer. Αριθμός σχετικών τιμολογίων προμηθευτών. Υπολογίζεται. Χρησιμοποιείται για εμφάνιση και για άνοιγμα της λίστας των τιμολογίων.


17. invoice_ids

Τύπος: One2many (account.move). Οι σχετικές τιμολόγια προμηθευτών. Συνδέει τις παραγγελίες αγοράς με τη λογιστική. Χρησιμοποιείται για τριπλό έλεγχο και παρακολούθηση πληρωμών.


18. picking_ids

Τύπος: One2many (stock.picking). Οι σχετικές παραγγελίες παράδοσης ή παραλαβές. Χρησιμοποιείται όταν η ενότητα Αγορών είναι εγκατεστημένη με το Απόθεμα.


19. picking_count

Τύπος: Ακέραιος. Αριθμός σχετικών παραλαβών. Υπολογίζεται. Χρησιμοποιείται για εμφάνιση και για άνοιγμα της λίστας παραλαβών.


20. create_date

Τύπος: Ημερομηνία και ώρα. Αποθηκεύει την ημερομηνία και ώρα που δημιουργήθηκε η εγγραφή. Διαχειρίζεται αυτόματα από το Odoo. Χρήσιμο για αναφορές και έλεγχο.


21. write_date

Τύπος: Ημερομηνία και ώρα. Αποθηκεύει την ημερομηνία και ώρα της τελευταίας τροποποίησης. Επίσης διαχειρίζεται αυτόματα. Βοηθά στην παρακολούθηση του πότε ενημερώθηκαν τελευταία τα δεδομένα.


22. notes

Τύπος: Κείμενο. Όροι και προϋποθέσεις ή εσωτερικές σημειώσεις. Μπορεί να εμφανίζεται στην παραγγελία αγοράς. Χρησιμοποιείται για ειδικές οδηγίες προς τον προμηθευτή.


23. company_id

Τύπος: Many2one (res.company). Σε ρυθμίσεις πολλών εταιρειών, αυτό υποδεικνύει σε ποια εταιρεία Odoo ανήκει η παραγγελία. Επηρεάζει την ορατότητα και την πρόσβαση στα αρχεία.


24. user_id

Τύπος: Many2one (res.users). Ο αγοραστής ή ο υπεύθυνος χρήστης. Χρησιμοποιείται για ροές έγκρισης και ανάθεση δραστηριοτήτων.


25. fiscal_position_id

Τύπος: Many2one (account.fiscal.position). Η φορολογική θέση για την αντιστοίχιση φόρων. Εφαρμόζεται όταν ο προμηθευτής βρίσκεται σε διαφορετική χώρα ή έχει ειδικό φορολογικό καθεστώς.


26. payment_term_id

Τύπος: Many2one (account.payment.term). Όροι πληρωμής (π.χ. Net 30, 50% προκαταβολή). Χρησιμοποιείται κατά τη δημιουργία τιμολογίων προμηθευτών.


27. display_name

Τύπος: Char. Υπολογιζόμενο όνομα εμφάνισης. Συνδυάζει το όνομα με πληροφορίες προμηθευτή. Χρησιμοποιείται σε αναπτυσσόμενα μενού many2one και αποτελέσματα αναζήτησης. Μόνο για ανάγνωση.


28. active

Τύπος: Boolean. Σημείο μαλακής διαγραφής. Όταν είναι False, το αρχείο αρχειοθετείται και κρύβεται από τις προεπιλεγμένες προβολές. Οι παραγγελίες αγοράς δεν διαγράφονται φυσικά για να διατηρηθεί η ιστορία.

Πώς χρησιμοποιείται αυτό το μοντέλο σε επιχειρηματικές ροές εργασίας


1. RFQ προς Παραγγελία

Ο αγοραστής δημιουργεί ένα αίτημα προσφοράς (πρόχειρο). Προσθέτει γραμμές, στέλνει στον προμηθευτή. Ο προμηθευτής επιβεβαιώνει ή ο αγοραστής επιβεβαιώνει χειροκίνητα. Η παραγγελία επιβεβαιώνεται (κατάσταση = αγορά). Μπορούν να δημιουργηθούν παραλαβές και τιμολόγια προμηθευτή.


2. Παραλαβή Προμηθευτή

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


3. Τιμολόγιο Προμηθευτή

Από μια επιβεβαιωμένη παραγγελία, οι χρήστες δημιουργούν τιμολόγια προμηθευτή. Οι γραμμές τιμολογίου αντλούνται από τις γραμμές παραγγελίας. Το payment_term_id και το fiscal_position_id προέρχονται από την παραγγελία. Το invoice_status παρακολουθεί την πρόοδο.


4. Dropshipping

Όταν μια παραγγελία πώλησης ενεργοποιεί μια αγορά, η προέλευση συνδέεται πίσω στην πώληση. Το dest_address_id ορίζεται στη διεύθυνση του πελάτη ώστε ο προμηθευτής να αποστέλλει απευθείας. Το μοντέλο purchase.order είναι η γέφυρα μεταξύ πωλήσεων και προμηθειών.



5. Κατασκευή και MRP

Όταν μια παραγγελία κατασκευής χρειάζεται εξαρτήματα, μπορεί να δημιουργήσει παραγγελίες αγοράς για πρώτες ύλες. Το πεδίο προέλευσης συνδέεται με την παραγγελία κατασκευής. Αυτό το μοντέλο είναι κεντρικό στον κύκλο προμήθειας-πληρωμής.

Πώς οι προγραμματιστές επεκτείνουν αυτό το μοντέλο


Οι προγραμματιστές επεκτείνουν το purchase.order χρησιμοποιώντας διάφορα μοτίβα. Η κληρονομικότητα μοντέλων Odoo είναι ο κύριος μηχανισμός.


Κληρονομικότητα Μοντέλων

Χρησιμοποιήστε _inherit = 'purchase.order' για να επεκτείνετε το μοντέλο. Προσθέστε νέα πεδία Odoo, παρακάμψτε μεθόδους ή προσθέστε περιορισμούς. Το μοντέλο κληρονομιάς στο Odoo διατηρεί τις αλλαγές σας σε ένα ξεχωριστό module για εύκολες αναβαθμίσεις.


Προσθήκη Πεδία

Ορίστε νέα πεδία Odoo στο κληρονομημένο μοντέλο σας. Χρησιμοποιήστε τον σωστό τύπο πεδίου: Char, Many2one, Boolean, Integer, Text, Selection. Σκεφτείτε τα πεδία που εξαρτώνται από την εταιρεία για πολυεταιρικές ρυθμίσεις.


Επεκτάσεις Python

Παρακάμψτε button_confirm, create ή write για να προσθέσετε λογική. Χρησιμοποιήστε super() για να καλέσετε το αρχικό. Να είστε προσεκτικοί με τα υπολογισμένα πεδία και τις εξαρτήσεις τους.


Odoo Studio

Το Odoo Studio σας επιτρέπει να προσθέτετε πεδία χωρίς κώδικα. Καλή επιλογή για γρήγορες προσαρμογές. Για πολύπλοκη λογική ή αναβαθμίσεις, τα προσαρμοσμένα modules είναι πιο συντηρήσιμα. Το API μοντέλο στο Odoo (purchase.order) είναι πλήρως εκτεθειμένο μέσω XML-RPC και JSON-RPC για ενσωματώσεις.

Καλές πρακτικές


  • Χρησιμοποιήστε την σωστή κατάσταση για κάθε στάδιο. Μην παραλείπετε καταστάσεις ή παρακάμπτετε τη λογική επιβεβαίωσης.
  • Ορίστε το partner_ref όταν ο προμηθευτής παρέχει μια αναφορά. Βοηθά στην αντιστοίχιση παραλαβών και τιμολογίων.
  • Χρησιμοποιήστε το origin για να εντοπίσετε την πηγή των παραγγελιών αγοράς. Απαραίτητο για dropshipping και κατασκευή.
  • Όταν δημιουργείτε ενσωματώσεις API, χρησιμοποιήστε το API XML-RPC ή JSON-RPC. Το μοντέλο purchase.order είναι πλήρως εκτεθειμένο. Χάρτης εξωτερικών ID προσεκτικά.
  • Για προσαρμοσμένα πεδία, χρησιμοποιήστε το x_ πρόθεμα ή ένα πρόθεμα module για να αποφύγετε συγκρούσεις με μελλοντικές εκδόσεις Odoo.

Κοινά λάθη


  • Τροποποίηση επιβεβαιωμένων παραγγελιών χωρίς έλεγχο της κατάστασης. Οι επιβεβαιωμένες παραγγελίες έχουν περιορισμένα πεδία. Δημιουργήστε μια νέα παραγγελία ή χρησιμοποιήστε τη σωστή ροή εργασίας.
  • Ανακατεύοντας το partner_id και το dest_address_id. Το partner_id είναι ο προμηθευτής; το dest_address_id είναι ο προορισμός των αγαθών (για dropshipping).
  • Αναίρεση του button_confirm χωρίς να καλέσετε το super(). Αυτό μπορεί να σπάσει άλλα modules ή μελλοντικές αναβαθμίσεις.
  • Προσθήκη απαιτούμενων προσαρμοσμένων πεδίων χωρίς προεπιλογές. Οι υπάρχουσες παραγγελίες θα αποτύχουν στην επικύρωση κατά την αναβάθμιση.
  • Ξεχνώντας να ορίσετε το currency_id όταν ασχολείστε με προμηθευτές πολλαπλών νομισμάτων. Λάθος νόμισμα μπορεί να οδηγήσει σε λανθασμένα κόστη και τιμολόγηση.

Συμπέρασμα


Το μοντέλο purchase.order είναι κεντρικό για τις αγορές του Odoo. Αποθηκεύει RFQs και επιβεβαιωμένες παραγγελίες αγοράς. Η κατανόηση των πεδίων του Odoo και του τρόπου που τα modules το επεκτείνουν θα σας βοηθήσει να διαμορφώσετε, να προσαρμόσετε και να ενσωματώσετε το Odoo αποτελεσματικά.


Είτε είστε λειτουργικός σύμβουλος που χαρτογραφεί τις διαδικασίες προμηθειών είτε προγραμματιστής που κατασκευάζει προσαρμοσμένα modules, μια καλή κατανόηση του purchase.order θα σας εξοικονομήσει χρόνο και θα αποτρέψει λάθη.

Χρειάζεστε βοήθεια με την υλοποίηση του Odoo σας;


Η Dasolo βοηθά τις εταιρείες να υλοποιήσουν, να προσαρμόσουν και να βελτιστοποιήσουν το Odoo. Ειδικευόμαστε σε API integrations και ανάπτυξη Odoo. Η ομάδα μας έχει βαθιά εμπειρία με την αρχιτεκτονική δεδομένων του Odoo και μοντέλα όπως το purchase.order.


Αν χρειάζεστε βοήθεια με την υλοποίηση του Odoo, προσαρμοσμένα modules ή ενσωματώσεις, είμαστε εδώ για να βοηθήσουμε. Κλείστε μια επίδειξη για να συζητήσουμε το έργο σας.

Το Μοντέλο Παραγγελίας Αγοράς: Κατανόηση της Αρχιτεκτονικής του Odoo
Dasolo 11 Μαρτίου 2026
Share this post
Σύνδεση to leave a comment