Skip to Content

Modellen stock.move: Slik fungerer Odoo's lagerbevegelsesarkitektur

Alt du trenger å vite om Odoos sentrale modell for lagerflyt — for utviklere og funksjonelle konsulenter
10. mars 2026 etter
Modellen stock.move: Slik fungerer Odoo's lagerbevegelsesarkitektur
Dasolo
| No comments yet

Introduksjon


I Odoo beskriver modeller hvordan forretningsdata lagres og organiseres i databasen. Alt fra ordre og fakturaer til lagerbevegelser ligger i egne modeller som bestemmer hvilke felter og relasjoner som gjelder.


Å kjenne modellene er sentralt både for utviklere og funksjonelle konsulenter. Modeller utgjør ryggraden i Odoos datamodell og inneholder felter, koblinger mellom poster og den forretningslogikken som styrer oppførselen.


Denne artikkelen går i dybden på en kjernekomponent i lagerstyringen: stock.move. Enten du setter opp lagerregler, bygger integrasjoner mot andre systemer eller finjusterer plukke- og leveringsflyter, vil du møte denne modellen ofte.

Hva er stock.move-modellen


stock.move representerer én enkelt varebevegelse — overføringen av en vare fra et sted til et annet. Hver gang noe plukkes, flyttes mellom lokasjoner eller leveres, opprettes eller endres en stock.move-post som dokumenterer hva som skjedde.


Modellen brukes av Lager-modulen og blir opprettet av mange forretningshendelser: salg, innkjøp, produksjon og nettbutikk. Når en leveranse bekreftes, varer mottas eller et produksjonsoppdrag fullføres, opprettes/oppdateres tilhørende stock.move-poster.


Stock.move ligger i stock-modulen, men andre moduler utvider den via Odoo-arv. Salg legger til referanse til salgsordren, innkjøp knytter kjøpslinjer, og produksjon refererer produksjonsordre — hver modul tilfører det den trenger uten å duplisere kjernen.

Viktige felt i modellen


Nedenfor finner du felt som er verdt å kunne godt. De forklarer hva en varebevegelse inneholder og hvordan Odoo bruker informasjonen ved reservering, planlegging og rapportering.


1. name

Tekstfelt som beskriver selve bevegelsen. Navnet konstrueres ofte fra produkt og mengde og vises i lister og på dokumenter som primær beskrivelse.


2. product_id

Lenke til produktet som flyttes (product.product). Obligatorisk — hver bevegelse må peke på et produkt slik at lager og regler kan beregnes.


3. product_uom

Enhet for mengden (uom.uom). Angir måleenheten for denne bevegelsen og sikrer at tall tolkes riktig i systemet.


4. product_uom_qty

Flyttemengden i valgt enhet. Dette er det planlagte behovet — den mengden som forventes å bli flyttet før operasjonen utføres.


5. quantity

Visnings- eller beregnet felt for mengde. Ofte brukt for å vise en mer brukervennlig eller omregnet verdi i grensesnittet.


6. location_id

Kildeplasseringen (stock.location). Hvor varen kommer fra — for utlevering typisk lagerlokasjon, for mottak kanskje leverandørens lokasjon.


7. location_dest_id

Destinasjonsplasseringen (stock.location). Hvor varen skal til — kunde, lager eller skraplokasjon avhengig av type operasjon.


8. picking_id

Lenke til plukk-/transfer-dokumentet (stock.picking) som samler flere bevegelser, for eksempel en leveranse eller et mottak.


9. picking_type_id

Type operasjon (stock.picking.type). Angir om bevegelsen er innkommende, utgående eller intern, og styrer standardlokasjoner og arbeidsflyt.


10. state

Bevegelsens status. Mulige verdier inkluderer draft, waiting, confirmed, assigned, done, cancelled — som viser hvor i prosessen posten befinner seg.


11. date

Planlagt dato og tid for bevegelsen. Brukes i planlegging og prioritering av operasjoner.


12. date_deadline

Frist for når bevegelsen bør være gjennomført, ofte brukt for kundeleveranser og prioritering.


13. origin

Referanse til kilden (for eksempel salgsordre- eller kjøpsordrenummer) for å spore hvorfor bevegelsen ble opprettet.


14. move_dest_id

Lenke til etterfølgende bevegelse når flyten er kjedeformet — for eksempel når produksjonsresultat mates videre til en leveranse.


15. move_orig_ids

Liste over tidligere bevegelser som ledet fram til denne — nyttig for sporbarhet og historikk.


16. move_line_ids

Detaljerte linjer for bevegelsen (stock.move.line) med lot-/serienummer, eksakt kvantum og lokasjonsdetaljer som opprettes ved reservasjon og plukking.


17. partner_id

Knyttet kunde eller leverandør (res.partner). Brukes til adressering, rapportering og tilknytning mot salg/innkjøp.


18. company_id

Viser hvilken juridisk enhet posten tilhører i flerbedriftsoppsett og påvirker synlighet og intercompany-regler.


19. quantity_done

Reelt behandlet mengde. Oppdateres ved plukking eller mottak — når denne matcher product_uom_qty blir bevegelsen fullført.


20. reserved_availability

Hvor mye som er reservert for denne bevegelsen. Viser tilgjengelig reservering før reell plukking skjer.


21. create_date

Tidspunkt for når posten ble opprettet — automatisk styrt og nyttig for revisjon.


22. write_date

Tidspunkt for siste endring på posten — også automatisk og viktig for sporbarhet.


23. sequence

Sorteringsrekkefølge innenfor et plukk. Mindre tall vises først og styrer presentasjonen i brukergrensesnittet.


24. priority

Prioritetsnivå for bevegelsen. Brukes i planleggingslogikk for å prioritere hasteoppdrag.


25. description_picking

En kort beskrivelse eller instruks for bevegelsen som vises på plukklister og dokumenter.


26. reference

Intern referansekode som kan brukes for integrasjoner eller ekstra sporbarhet.


27. group_id

Procurement-gruppe som knytter sammen relaterte bevegelser fra samme anskaffelse eller salg for enklere planlegging.


28. procure_method

Strategi for anskaffelse: gjør fra lager eller gjør ved bestilling. Styrer om bevegelsen trekker fra eksisterende lager eller trigges produksjon/innkjøp.


29. sale_line_id

Lenke til salgsordrers linje — lagt til av salgsmodulen for sporbarhet mellom salg og lagerbevegelse.


30. purchase_line_id

Lenke til kjøpslinjen — brukt ved mottak for å knytte varen tilbake til innkjøpet.


31. production_id

Henvisning til produksjonsordre — brukes for råvareforbruk og ferdigvarebevegelser i produksjonsflyten.


32. active

Arkiveringsflagg. Sett til False for å skjule poster uten å slette dem fysisk, nyttig for historikk og rydding.

Hvordan modellen brukes i forretningsprosesser


1. Kundeleveranse

Når en salgsordre bekreftes opprettes en eller flere stock.move-poster med lager som kilde og kunde som destinasjon. Disse samles i et plukk; ved plukking oppdateres quantity_done og status settes til done.


2. Leverandørmottak

Ved bekreftet kjøpsordre opprettes innkommende bevegelser fra leverandørlokasjon til lager. Når varer tas imot validerer brukeren mottaket og setter quantity_done.


3. Intern overflytting

Flytting mellom egne lokasjoner/lagre danner stock.move-poster som brukes for omdisponering, påfyll eller flytting mellom lageravdelinger.


4. Produksjon

Produksjonsordre genererer både uttak av råvarer og innlegging av ferdigvarer. Feltet production_id knytter disse bevegelsene til produksjonen, og move_dest_id skaper løpende koblinger videre i flyten.


5. Retur og skrap

Returer og skrap håndteres også av stock.move. Returlager lager reverserte bevegelser, mens skrap går til egen skraplokasjon — alt styrt av riktig picking_type.

Hvordan utviklere utvider modellen


Utviklere bygger på stock.move med Odoo-arv og flere vanlige mønstre for å legge til felt eller logikk.


Modellarv

Bruk _inherit = 'stock.move' for å utvide modellen. Da kan du legge til felt, overstyre metoder eller legge inn valideringer i en separat modul slik at endringene blir vedlikeholdsvennlige.


Legge til felt

Definer nye felt i din arvede modell med passende typer (Char, Many2one, Boolean, Integer, Text, Selection). For lagerflyt er det vanlig å legge til ekstra sporingsnummer, transportreferanser eller batch-atributter.


Python-utvidelser

Overstyr metoder som _action_done, _action_assign eller _action_cancel for å injisere logikk. Kall super() for å bevare eksisterende oppførsel, spesielt der lagerkvantum og kjedeoperasjoner påvirkes.


Odoo Studio

Odoo Studio gir en rask vei for å legge til felter uten kode — fint for enkle tilpasninger. For kompliserte arbeidsflyter eller forretningsregler er en modul i kode som kan versjonshåndteres ofte å foretrekke.

Anbefalte fremgangsmåter


  • Sørg alltid for at location_id og location_dest_id er korrekte — feil lokasjoner fører lett til gale lagerverdier.
  • Bruk picking_id for å gruppere bevegelser som tilhører samme transfer. Å opprette løse bevegelser uten plukk kan bryte reservasjonslogikken.
  • Ved integrasjoner, benytt XML-RPC eller JSON-RPC og kartlegg eksterne ID-er nøye. stock.move er tilgjengelig gjennom Odoos API, men korrekt mapping er kritisk.
  • For egendefinerte felt, bruk x_-prefiks eller modulspesifikt prefiks for å unngå kollisjoner med fremtidige Odoo-versjoner.
  • Sett move_dest_id og move_orig_ids riktig for å bevare sporbarhet. Når du lager kjedede bevegelser programmatisk må disse koblingene opprettes.
  • Ta hensyn til forskjellen mellom product_uom_qty (planlagt) og quantity_done (faktisk). Systemet tillater delvise leveranser, så valideringslogikk må ta høyde for dette.

Vanlige feil


  • Opprette bevegelser med feil lokasjonstyper. Kilde og destinasjon må være kompatible — for eksempel er det sjelden meningsfullt å flytte fra kunde til kunde.
  • Endre product_uom_qty etter at move lines finnes kan skape inkonsistenser. Ofte er det tryggere å avbryte og gjenskape bevegelsen.
  • Å glemme å sette origin gjør det vanskelig å spore hvorfor en bevegelse ble opprettet — alltid knytt tilbake til kildeordre om mulig.
  • Overstyre _action_done uten å kalle super() kan bryte lageroppdateringer og integrasjoner — pass på å bevare kjernen i logikken.
  • Opprette bevegelser direkte uten riktig plukk-workflow kan hindre reservasjon og føre til uventet oppførsel — følg standardprosessene når mulig.
  • Ignorere move_dest_id ved splitting eller sammenslåing kan etterlate koblinger i uorden og gjøre sporbarhet vanskelig.

Oppsummering


stock.move er hjørnesteinen i Odoos lagerstyring. Den dokumenterer hver eneste varebevegelse mellom lokasjoner. Å forstå feltene, statusene og hvordan andre moduler bygger på modellen gjør det enklere å konfigurere, tilpasse og integrere systemet.


Enten du kartlegger lagerprosesser som konsulent eller bygger funksjonalitet som utvikler, vil god kjennskap til stock.move redusere feil og spare tid i implementasjonen.

Trenger du hjelp med Odoo-implementasjonen din?


Dasolo bistår bedrifter med å implementere, tilpasse og optimalisere Odoo. Vi har spisskompetanse på API-integrasjoner og dyp erfaring med Odoos datamodeller, inkludert stock.move.


Trenger du hjelp med implementasjon, egenutviklede moduler eller integrasjoner mot Odoo? Vi kan ta en prat og finne riktig løsning for ditt prosjekt. Book en demo for å diskutere prosjektet ditt.

Modellen stock.move: Slik fungerer Odoo's lagerbevegelsesarkitektur
Dasolo 10. mars 2026
Share this post
Logg inn to leave a comment