Esittely
Odoossa tiedot elävät malleissa: ne kertovat, miten tieto tallennetaan, mitä kenttiä siinä on ja miten siihen viitataan. Kaikki liiketoiminnan tiedot — tilauksista laskuihin ja asiakasrekistereihin — rakentuvat mallien varaan.
Mallien ymmärtäminen on oleellista niin kehittäjälle kuin toiminnalliselle konsultillekin. Mallit määrittelevät kentät, suhteet ja säännöt, jotka ohjaavat tiedon käyttöä ja eheyttä järjestelmässä.
Tässä artikkelissa keskitytään yhteen Odoon keskeisimmistä malleista: res.partneriin. Olitpa rakentamassa ominaisuutta, integroimassa ulkoista järjestelmää tai määrittämässä prosesseja, tulet käsittelemään tätä mallia.
Mikä on res.partner-malli
res.partner edustaa Odoossa kaikkia sidosryhmiä: yksittäisiä henkilöitä, asiakkaita, toimittajia ja yrityksiä. Se on paikka, johon koko osapuolen tiedot tallennetaan ja josta muut moduulit niitä lukevat.
Mallia käytetään lähes kaikissa moduuleissa: myynnissä, CRM:ssä, laskutuksessa, hankinnoissa ja verkkokaupassa. Kun luot asiakkaan, liiditietoihin tai toimittajan, taustalla on aina res.partner-tietue.
res.partner on määritelty base-moduulissa, ja muut moduulit laajentavat sitä perinnän kautta. CRM lisää liidiin liittyviä kenttiä, kirjanpito lisää maksuehtoja ja niin edelleen — jokainen moduuli täydentää ydintä omilla tarpeillaan ilman tietomallin kopiointia.
Tärkeimmät kentät mallissa
Seuraavaksi käyn läpi tärkeimmät kentät, jotka kannattaa tuntea. Niiden ymmärtäminen nopeuttaa työtäsi kontaktitietojen hallinnassa ja integraatioissa.
1. name
Tyyppi: Char. Tallentaa osapuolen nimen — yrityksen nimen tai henkilön koko nimen. Tämä kenttä näkyy laajasti käyttöliittymässä ja toimii osapuolen ensisijaisena tunnisteena.
2. create_date
Tyyppi: Datetime. Kirjaa tietueen luonnin ajan automaattisesti. Hyödyllinen raportoinnissa ja auditoinnissa.
3. write_date
Tyyppi: Datetime. Viimeisimmän muokkauksen ajankohta. Automaattinen kenttä, joka auttaa seuraamaan tietojen ajantasaisuutta.
4. email
Tyyppi: Char. Pääsähköposti, jota käytetään viestintään, laskutukseen ja portaalikäyttäjän tunnistukseen. Odoo pyrkii validoimaan sähköpostimuodon.
5. phone
Tyyppi: Char. Pääpuhelinnumero, joka näkyy kontaktin tiedoissa ja jota käytetään viestintäprosesseissa.
6. mobile
Tyyppi: Char. Matkapuhelinnumero. Voidaan käyttää tekstiviestihälytyksiin tai kiireellisiin yhteydenottoihin, jos se eroaa pääpuhelimesta.
7. street
Tyyppi: Char. Osoitteen ensimmäinen rivi — käytetään laskuissa, toimitusosoitteissa ja tulosteissa.
8. street2
Tyyppi: Char. Osoitteen toinen rivi: esimerkiksi huoneisto- tai taloyhtiötiedot sekä lisätiedot osoitteeseen.
9. city
Tyyppi: Char. Kaupunki tai paikkakunta. Osoitteen muotoilu voi vaihdella maittain, joten kaupunki on tärkeä osa osoiterakennetta.
10. zip
Tyyppi: Char. Postinumero, jota käytetään osoitevarmennuksessa ja toimituslaskennassa.
11. state_id
Tyyppi: Many2one (res.country.state). Maakunta tai osavaltio. Valikoituu maan perusteella; ei kaikissa maissa käytössä.
12. country_id
Tyyppi: Many2one (res.country). Maa. Vaikuttaa osoitteen muotoiluun, verosääntöihin ja paikallisiin asetuksiin.
13. is_company
Tyyppi: Boolean. Ilmaisee, onko tietue yritys vai yksityishenkilö. Yrityksillä voi olla lapsikontakteja; henkilöihin voi linkittää parent_id:n kautta yrityksen.
14. parent_id
Tyyppi: Many2one (res.partner). Linkittää kontaktin emoyritykseen. Mahdollistaa yritys–henkilö-hierarkian ja kenttien periytymisen emolta.
15. child_ids
Tyyppi: One2many (res.partner). Emoyrityksen kaikki alaosapuolet eli henkilökontaktit. Helppo tapa selata yrityksen yhteyshenkilöitä.
16. company_id
Tyyppi: Many2one (res.company). Moniyritysympäristössä kertoo, minkä yhtiön kontekstissa partner kuuluu. Vaikuttaa näkyvyyteen ja käyttöoikeuksiin.
17. vat
Tyyppi: Char. Y-tunnus tai ALV-tunnus. Maakohtaisesti validoitu. Tärkeä laskutuksessa ja veronmäärittelyssä — käytä erityissymboleja, jos osapuoli ei ole veronalainen.
18. customer_rank
Tyyppi: Integer. Ilmaisee asiakkaan aktiivisuuden: arvo kasvaa myyntitapahtumien myötä ja auttaa suodattamaan ja priorisoimaan asiakasmassoja.
19. supplier_rank
Tyyppi: Integer. Merkitsee toimittajastatusta. Kasvaa ostotapahtumien myötä ja helpottaa toimittajien tunnistamista.
20. user_id
Tyyppi: Many2one (res.users). Vastuu- tai myyntihenkilö. Käytetään CRM- ja myyntityön kohdistukseen sekä aktiviteettien osoittamiseen.
21. type
Tyyppi: Selection. Lapsikontaktien osoitetyyppi: Contact, Invoice, Delivery tai Other. Määrittää, mikä osoite tulostuu dokumenttiin.
22. ref
Tyyppi: Char. Sisäinen viite tai koodi. Hyödyllinen integraatioissa ja oman numeroinnin hallinnassa.
23. website
Tyyppi: Char. Verkkosivuosoite. Näkyy kontaktin lomakkeella ja verkkokaupan asiakastiedoissa.
24. comment
Tyyppi: Html. Sisäiset muistiinpanot, kuten myyntimuistiinpanot tai erityisohjeet — näkyy vain sisäisessä käytössä.
25. active
Tyyppi: Boolean. Arkistointilippu: kun False, tietue piilotetaan oletusnäkymistä mutta ei poisteta tietokannasta.
26. lang
Tyyppi: Selection. Asiakkaan haluttu kieli. Lähetettävät viestit ja dokumentit voidaan lokaalistaa tämän mukaan; periytyy emoyrityksestä tarvittaessa.
27. image_1920
Tyyppi: Binary. Osapuolen kuva tai logo. Odoo pitää usein useita kokoja ja käyttää kuvaa lomakkeissa, raporteissa ja verkkosivulla.
28. category_id
Tyyppi: Many2many (res.partner.category). Tunnisteet tai segmentit. Käytetään markkinoinnissa, suodattamisessa ja kampanjasegmentoinnissa.
Miten malli näkyy yritysten työnkuluissa
1. Myynti ja CRM
Myyjä valitsee tarjousta tehdessään asiakkaan res.partneristä — sama tietue kulkee liidistä mahdollisuudeksi ja tilaukseksi. customer_rank ja user_id ohjaavat raportointia ja vastuullisuutta.
2. Laskutus
Laskut ja ostolaskut viittaavat partneriin laskutusosoitetta varten. vat-kenttä vaikuttaa verolaskelmiin, ja maksuehdot tai luottorajat voivat olla säilöttynä partneriin.
3. Hankinnat ja toimittajat
Osto- ja toimittajatiedot linkittyvät res.partneriin. supplier_rank kertoo aktiiviset toimittajat ja buyer_id voi osoittaa vastuuhenkilön toimittajasuhteen hoitoon.
4. Verkkokauppa ja portaali
Verkkokaupan rekisteröityvät käyttäjät luodaan partner-rekistereiksi; nämä tietueet toimivat tilausten, tarjousten ja portaalikäytön pohjana.
5. Moniyritysmallit ja konsolidointi
Moniyritysympäristössä sama oikeushenkilö voi näkyä eri partner-tietueina eri yhtiöissä. company_id ja inter-company-säännöt määrittävät tiedon jakamisen ja synkronoinnin rajat.
Miten kehittäjät laajentavat mallia
Kehittäjät laajentavat res.partneria useilla tavoilla; Odoon malliperintä on yleisin. Se mahdollistaa kenttien, metodien ja sääntöjen lisäyksen ilman ydinkoodin kopiointia.
Malliperintä
Käytä _inherit = 'res.partner' lisätäksesi kenttiä, ylikirjoittaaksesi metodeja tai lisätäksesi rajoitteita. Muutokset pidetään erillisessä moduulissa, mikä helpottaa päivityksiä ja ylläpitoa.
Kenttien lisääminen
Määrittele uusia kenttiä perityssä mallissa oikeilla tyypeillä: Char, Many2one, Boolean, Integer, Text tai Selection. Moniyrityskäytössä harkitse company-dependent-kenttiä.
Python-laajennukset
Ylikirjoita create-, write- tai unlink-metodeja lisälogiikkaa varten, mutta käytä aina super()-kutsuja alkuperäisen toiminnan säilyttämiseksi. Ole tarkkana lasketuissa kentissä ja niiden riippuvuuksissa.
Odoo Studio
Odoo Studion kautta kenttiä voi lisätä ilman koodausta — nopea tapa prototyypin tekemiseen. Monimutkaisissa tai ylläpidettävissä ratkaisuissa koodattu moduuli on kuitenkin kestävämpi.
Parhaat käytännöt
- Luo yritys ensin ja lisää sitten kontaktit parent_id:llä, jotta hierarkia pysyy loogisena.
- Aseta country_id oikein, jotta osoitteet, verosäännöt ja paikalliset asetukset toimivat odotetusti.
- Käytä commercial_partner_id:tä, kun haluat ryhmitellä tietueet ylintä konsernitasoa varten esimerkiksi luotto- tai raportointitarpeissa.
- Kun rakennat API-integraatioita, käytä XML-RPC- tai JSON-RPC-rajapintaa. res.partner on täysin saatavilla; huolehdi ulkoisten ID:kenttien huolellisesta kartoituksesta.
- Lisääminen omille kentille käytä x_-etuliitettä tai moduulikohtaista prefiksiä, jotta konfliktit tulevaisuuden Odoo-päivitysten kanssa minimoidaan.
Yleisiä sudenkuoppia
- Luuppivirhe: luot samankaltaisia partnereita etsimisen sijaan. Hyödynnä email_normalized- tai ref-kenttää duplikaattien tunnistukseen ja yhdistämiseen.
- Sekoittaa parent_id:n ja company_id:n roolit. parent_id luo yritys–henkilö-suhteen; company_id kertoo moniyhtiöympäristön kontekstin.
- Unohtaa asettaa type-kentän lapsikontakteille. Lasku- ja toimitusosoitteet vaativat oikean tyypin, jotta dokumentit tulostuvat oikein.
- Ylikirjoittaa ydintoimintoja ilman super()-kutsua. Se voi rikkoa muiden moduulien toimintaa tai vaikeuttaa päivityksiä.
- Lisätä pakollinen kenttä ilman oletusarvoa. Olemassa olevat tietueet voivat epäonnistua validoitaessa tai päivitettäessä.
Yhteenveto
res.partner on Odoon ydin: se tallentaa kontaktit, asiakkaat ja toimittajat. Kun tunnet mallin kentät ja laajennusmahdollisuudet, osaat konfiguroida, räätälöidä ja integroida järjestelmää luotettavammin.
Olitpa prosessikartoituksissa toimiva konsultti tai moduuleja rakentava kehittäjä, res.partnerin hallinta säästää aikaa ja vähentää virheitä.
Tarvitsetko apua Odoo-projektissa?
Dasolo auttaa yrityksiä ottamaan Odoon käyttöön, räätälöimään sitä ja optimoimaan prosesseja. Erikoisosaamistamme ovat API-integraatiot ja räätälöity kehitys — tuntemme Odoon tietomallin ja erityisesti res.partnerin hyvin.
Jos tarvitset tukea Odoo-implementaatiossa, räätälöidyissä moduuleissa tai integraatioissa, autamme mielellämme. Varaa esittely keskustellaksesi projektistasi.