Johdanto
Odoossa mallit määrittelevät, kuinka tiedot on jäsennelty ja tallennettu tietokantaan. Jokainen liiketoimintatieto, jonka kanssa työskentelet, myyntitilauksista varastoon ja tuotteisiin, elää mallissa.
Odoo-mallien ymmärtäminen on olennaista sekä kehittäjille että toiminnallisille konsultteille. Mallit ovat Odoo-tietorakenteen perusta. Ne määrittelevät Odoo-kentät, suhteet ja liiketoimintalogiikan.
Tässä artikkelissa keskitytään yhteen Odoon tärkeimmistä malleista: product.product. Olitpa sitten rakentamassa mukautettuja moduuleja, integroimassa ulkoisia järjestelmiä tai konfiguroimassa tuotekatalogeja, tulet työskentelemään tämän mallin kanssa.
Mikä on tuote.product-malli
Tuote.product-malli edustaa Odoo:ssa todellisia tuotevariantteja. Nämä ovat konkreettisia, myytäviä ja ostettavia tuotteita, jotka näkyvät myyntitilauksissa, ostotilauksissa ja varastosiirroissa.
Tämä malli Odoo:ssa poikkeaa product.template:sta. Malli sisältää jaettuja attribuutteja tuoteperheelle. Tuote.product-tiedot ovat erityisiä varianteista. Yksinkertaiselle tuotteelle, jolla ei ole varianteja, on yksi product.product per product.template. Konfiguroitaville tuotteille (esim. T-paita koossa ja värissä) jokainen yhdistelmä on erillinen product.product.
Malli on määritelty tuotemoduulissa (tuote). Myynti, osto, varasto ja verkkokauppa viittaavat kaikki product.product:iin. Kun lisäät rivin tarjouspyyntöön tai vastaanotat varastoa, työskentelet product.product-tietueiden kanssa.
product.product käyttää delegointiperintöä product.template:sta. Monet Odoo-kentät on määritelty mallissa ja peritty variantilta. Tämä pitää jaetut tiedot yhdessä paikassa, samalla kun se mahdollistaa variantti-spesifiset ylitykset.
Mallin avokentät
Tässä ovat tärkeimmät Odoo-kentät product.product-mallissa. Näiden ymmärtäminen auttaa sinua työskentelemään tehokkaasti tuotevarianttien kanssa.
1. nimi
Tyyppi: Char. Tämä kenttä tallentaa tuotevariantin nimen. Se näkyy tyypillisesti listoissa, lomakkeissa ja asiakirjoissa. Yksinkertaisille tuotteille se vastaa mallin nimeä. Varianteille se voi sisältää attribuuttien arvoja (esim. "T-Paita - Sininen / M").
2. product_tmpl_id
Tyyppi: Many2one (product.template). Linkittää variantin sen vanhempaan malliin. Tämä on keskeinen suhde. Jokaisella product.product:lla on tarkalleen yksi product.template. Käytä tätä, kun sinun tarvitsee periä malli Odoo:ssa tai laajentaa tuotelogikkaa.
3. default_code
Tyyppi: Char. Sisäinen viite tai SKU. Käytetään tunnistamiseen, viivakoodin hakemiseen ja integraatioon ulkoisten järjestelmien kanssa. Jokaisella variantilla voi olla oma koodinsa.
4. viivakoodi
Tyyppi: Merkkijono. Viivakoodi (EAN, UPC jne.). Käytetään skannaamiseen myyntipisteessä, varastossa ja inventaariossa. Sen on oltava ainutlaatuinen tuotteiden kesken.
5. luontipäivämäärä
Tyyppi: Päivämäärä ja aika. Tallentaa päivämäärän ja ajan, jolloin tietue luotiin. Odoo hallitsee automaattisesti. Hyödyllinen raportointiin ja tarkastuksiin.
6. muokkauspäivämäärä
Tyyppi: Päivämäärä ja aika. Tallentaa viimeisen muokkauksen päivämäärän ja ajan. Myös hallitaan automaattisesti. Auttaa seuraamaan, milloin tietoja viimeksi päivitettiin.
7. aktiivinen
Tyyppi: Boolean. Pehmeä poistolippu. Kun arvo on False, tietue arkistoidaan ja se piilotetaan oletusnäkymistä. Tuotteita ei poisteta fyysisesti historian säilyttämiseksi.
8. tyyppi
Tyyppi: Valinta. Tuotetyyppi: Kulutustavara, Palvelu tai Varastoitava tuote. Kulutustavaroita ei seurata varastossa. Palveluilla ei ole varastoa. Varastoitavat tuotteet seurataan varastossa. Tämä vaikuttaa siihen, mitkä moduulit ja työnkulut soveltuvat.
9. kategorian_id
Tyyppi: Moni-yhteen (tuote.kategoria). Tuotekategoria. Käytetään raportointiin, hinnoittelusääntöihin ja luettelon organisointiin. Kategorioilla voi olla vanhempi-lapsi-hierarkia.
10. listahinta
Tyyppi: Liukuluku. Myyntihinta. Näytetään tarjouksissa ja käytetään oletuksena rivin lisäämisessä. Voidaan ylittää asiakaskohtaisesti tai hinnastoilla.
11. standard_price
Tyyppi: Liukuluku. Kustannushinta. Käytetään varaston arvostuksessa ja katelaskelmissa. Tyypillisesti päivitetään ostotilausten tai manuaalisen syötteen avulla.
12. uom_id
Tyyppi: Many2one (uom.uom). Myynnin ja varaston mittayksikkö. Määrittelee, miten määrät ilmaistaan (yksiköt, kg, litraa jne.).
13. uom_po_id
Tyyppi: Many2one (uom.uom). Ostojen mittayksikkö. Voi poiketa uom_id:stä (esim. ostetaan laatikoissa, myydään yksiköissä). Muunnos käsitellään automaattisesti.
14. description_sale
Tyyppi: Html. Myyntikuvastus. Näytetään tarjouksissa, tilauksissa ja laskuissa. Voi sisältää muotoilua ja tuotedetaleja.
15. description_purchase
Tyyppi: Html. Ostokuvastus. Näytetään ostotilauksissa ja toimittajalaskuissa. Käytetään sisäiseen ja toimittajaviestintään.
16. sale_ok
Tyyppi: Boolean. Voidaan myydä. Kun arvo on False, tuote on piilotettu myynnistä ja verkkokaupasta. Hyödyllinen sisäisille tai vain ostettaville tuotteille.
17. purchase_ok
Tyyppi: Boolean. Voidaan ostaa. Kun arvo on False, tuote on piilotettu ostamisesta. Hyödyllinen valmistetuille tai vain myynnissä oleville tuotteille.
18. image_1920
Tyyppi: Binary. Tuotekuva täydessä resoluutiossa. Odoo tallentaa useita kokoja (image_512, image_256 jne.) näyttöä varten. Käytetään lomakkeissa, verkkokaupassa ja raporteissa.
19. weight
Tyyppi: Float. Tuotteen paino. Käytetään toimituslaskelmissa ja logistiikassa. Yksikkö riippuu yrityksen asetuksista.
20. volume
Tyyppi: Float. Tuotteen tilavuus. Käytetään toimituksessa ja varastokapasiteetissa. Tärkeä yrityksille, joilla on tilavuusrajoituksia.
21. company_id
Tyyppi: Many2one (res.company). Moniyritysympäristöissä tämä osoittaa, mikä yritys omistaa tuotteen. Vaikuttaa tietueiden näkyvyyteen ja varastoon.
22. currency_id
Tyyppi: Many2one (res.currency). Valuutta list_price- ja standard_price-arvoille. Yleensä yrityksen valuutta. Hintalistat voivat muuntaa muihin valuuttoihin.
23. qty_available
Tyyppi: Float. Varastossa oleva määrä. Lasketaan varastokvanttien perusteella. Vain lukuoikeus. Käytetään saatavuuden tarkistamiseen ja raportointiin. Vain varastoitaville tuotteille.
24. virtual_available
Tyyppi: Float. Ennustettu määrä (varastossa plus saapuvat miinus lähtevät). Käytetään saatavuuden ja täydennyksen tarkistamiseen. Vain lukuoikeus, laskettu kenttä.
25. product_template_attribute_value_ids
Tyyppi: Many2many. Linkittää varianttia määrittäviin attribuuttiväriarvoihin (esim. Väri=Sininen, Koko=M). Käytetään varianttien konfiguroimiseen ja suodattamiseen.
26. sequence
Tyyppi: Integer. Näyttöjärjestys. Käytetään tuotteiden lajitteluun listoissa ja konfiguraattoreissa. Pienemmät arvot näkyvät ensin.
27. display_name
Tyyppi: Char. Laskettu näyttönimi. Yhdistää nimen varianttiattribuuttien kanssa. Käytetään many2one-pudotusvalikoissa ja hakutuloksissa. Vain lukuoikeus.
28. responsible_id
Tyyppi: Many2one (res.users). Vastuutaho tuotteelle. Käytetään uudelleenjärjestelysääntöihin ja sisäisiin osoituksiin. Valinnainen.
Kuinka tätä mallia käytetään liiketoimintaprosesseissa
1. Myynti ja tarjouksia
Kun myyjä luo tarjouksen, hän valitsee tuotteen tuoteluettelosta. list_price, description_sale ja uom_id siirtyvät tilausriviin. Hintalistat voivat ohittaa hinnan. Vain tuotteet, joiden sale_ok=True, näkyvät.
2. Ostot ja toimittajat
Ostotilaukset ja toimittajalaskut viittaavat product.product:iin. standard_price päivitetään ostopaketeista. Tuotteet, joiden purchase_ok=True, ovat saatavilla. uom_po_id määrittää, miten määriä tilataan (esim. laatikoittain).
3. Varasto ja varastointi
Varastosiirrot, keräilyt ja kvantit käyttävät product.product:ia. qty_available ja virtual_available kentät ohjaavat saatavuutta. Vain varastoitavat tuotteet ovat seurannassa. Viivakoodin skannaus käyttää viivakoodikenttää nopeaa hakua varten.
4. Verkkokauppa ja verkkosivusto
Verkkosivuston kauppa näyttää product.product-tietueet. Eri ominaisuuksilla (koko, väri) varustetut variantit näkyvät vaihtoehtoina. Tuotekuvat, kuvaukset ja hinnat tulevat mallista. sale_ok-lippu ohjaa näkyvyyttä.
5. Valmistus ja MRP
Materiaaliluettelot viittaavat product.product:iin sekä komponenteissa että valmiissa tuotteissa. tyyppi-kenttä määrittää, onko tuote valmistettu (varastoitava) vai kulutettu. Varastotasot ohjaavat tuotannon suunnittelua.
Kuinka kehittäjät laajentavat tätä mallia
Kehittäjät laajentavat product.product:ia useilla malleilla. Odoo-mallin perintö on päämekanismi.
Malliperintä
Käytä _inherit = 'product.product' laajentaaksesi mallia. Lisää uusia Odoo-kenttiä, ylikirjoita metodeja tai lisää rajoituksia. Odoo:ssa perintömalli pitää muutoksesi erillisessä moduulissa helppoa päivitystä varten. Valitse product.product, kun kenttä on variantti-spesifinen; käytä product.template, kun se koskee koko tuoteperhettä.
Kenttien lisääminen
Määritä uusia Odoo-kenttiä perityssä mallissasi. Käytä oikeaa kenttätyyppiä: Char, Many2one, Boolean, Integer, Text, Selection. Mieti, kuuluuko kenttä malliin (jaettu) vai varianttiin (spesifinen). Variantti-spesifisten tietojen, kuten SKU tai viivakoodin ylikirjoitusten, osalta käytä product.product.
Python-laajennukset
Ylikirjoita create, write tai unlink lisätäksesi logiikkaa. Käytä super() kutsuaksesi alkuperäistä. Ole varovainen lasketuissa kentissä ja niiden riippuvuuksissa. product.product-mallissa on monia laskettuja kenttiä varasto- ja myyntimoduuleista.
Odoo Studio
Odoo Studio antaa sinun lisätä kenttiä ilman koodia. Hyvä nopeisiin mukautuksiin. Monimutkaiselle logiikalle tai päivityksille mukautetut moduulit ovat ylläpidettävämpiä. Odoo:n API-malli (product.product) on täysin avoinna XML-RPC:n ja JSON-RPC:n kautta integraatioita varten.
Parhaat käytännöt
- Käytä default_code tai viivakoodia ulkoisen järjestelmän kartoitukseen. Pidä ne ainutlaatuisina ja johdonmukaisina.
- Aseta tyyppi oikein jokaiselle tuotteelle. Kulutettava vs Varastoitava vs Palvelu vaikuttaa siihen, mitkä moduulit ja työnkulut soveltuvat.
- API-integraatioita rakennettaessa käytä product.productia tilausriveille ja tapahtumille. Käytä product.templatea katalogitason operaatioille.
- Mukautetuille kentille käytä
x_etuliitettä tai moduulietuliitettä välttääksesi ristiriidat tulevien Odoo-versioiden kanssa. - Harkitse product.templatea lisätessäsi kenttiä, jotka koskevat kaikkia variantteja (esim. brändi, kategoria). Käytä product.productia variantti-spesifiseen dataan (esim. variantti-spesifinen viivakoodi).
Yleisimmät virheet
- Peri product.templatea, kun tarvitset variantti-spesifistä logiikkaa. Käytä product.productia per-variantti käyttäytymiseen.
- Luo product.product -rekisterit manuaalisesti sen sijaan, että käyttäisit mallia. Varianttituotteille, luo ne tuotteen konfiguraattorin kautta.
- Unohda asettaa sale_ok tai purchase_ok. Tuotteet ovat oletuksena piilotettu myynniltä/ostolta joissakin konfiguraatioissa.
- Ylikirjoita ydinmenetelmiä ilman super(). Tämä voi rikkoa muita moduuleja tai tulevia päivityksiä.
- Käytä product.productia alueilla, kun product.template olisi sopivampi (esim. suodatus kategorian mukaan mallissa).
Yhteenveto
Product.product-malli on keskeinen Odoon tuotearkkitehtuurissa. Se edustaa todellisia myytäviä ja ostettavia tuotteita. Ymmärtäminen sen kentistä ja siitä, miten se liittyy product.templateen, auttaa sinua konfiguroimaan, mukauttamaan ja integroimaan Odoota tehokkaasti.
Olitpa sitten toiminnallinen konsultti, joka kartoittaa tuotekatalogeja, tai kehittäjä, joka rakentaa mukautettuja moduuleja, vankka ymmärrys product.productista säästää aikaa ja estää virheitä.
Tarvitsetko apua Odoo-toteutuksesi kanssa?
Dasolo auttaa yrityksiä toteuttamaan, mukauttamaan ja optimoimaan Odoota. Erikoisalaamme ovat API-integraatiot ja Odoo-kehitys. Tiimillämme on syvällistä kokemusta Odoon tietorakenteesta ja malleista, kuten product.product.
Jos tarvitset apua Odoo-toteutuksessasi, mukautetuissa moduuleissa tai integraatioissa, olemme täällä auttamassa. Varaa esittely keskustellaksesi projektistasi.