Overslaan naar inhoud

Het stock.picking Model: Odoo's Transfer- en Magazijnprocessen Begrijpen

Uitgebreide gids: hoe Odoo voorraadverplaatsingen en magazijnstromen centraal organiseert
10 maart 2026 in
Het stock.picking Model: Odoo's Transfer- en Magazijnprocessen Begrijpen
Dasolo
| Nog geen reacties

Introductie


In Odoo bepaalt een model de manier waarop gegevens in de database worden georganiseerd. Alle operationele informatie — van bestellingen en facturen tot magazijnbewegingen — leeft in modellen die het systeem structureren en toegankelijk maken.


Kennis van de Odoo-modellen is cruciaal voor zowel ontwikkelaars als functionele consultants. Deze modellen vormen de ruggengraat van de datalaag: zij definiëren de velden, de relaties tussen records en de logica die bedrijfsprocessen afdwingt.


Dit stuk zoomt in op één van de essentiële modellen binnen de Inventory-app: stock.picking. Of u nu maatwerk voor magazijnen bouwt, een externe koppeling ontwikkelt of processen instelt, met dit model komt u vroeg of laat in aanraking.

Wat is het stock.picking-model?


Het stock.picking-model staat voor verplaatsingen van voorraad in Odoo. Het is het centrale draaipunt waar elke transfer wordt vastgelegd: één record beschrijft het verplaatsen van goederen van een bronlocatie naar een bestemming.


Binnen de Inventory-module wordt stock.picking voor veel scenario's gebruikt. Ontvangsten, leveringen en interne verplaatsingen genereren allemaal een picking-record. Wanneer u een verkooporder levert, goederen in ontvangst neemt of stock tussen magazijnen verplaatst, wordt het corresponderende stock.picking-record aangemaakt of bijgewerkt.


Het model zelf komt uit de stock-module en andere apps breiden het uit via Odoo’s modelinheritance. De verkoopmodule voegt velden toe voor leveringen, inkoop voegt specificaties voor ontvangst toe en de productie uitbreidt het voor productiebewegingen — telkens zonder de kernstructuur te dupliceren.


stock.picking erft ook van mail.thread en mail.activity.mixin. Daardoor kunt u wijzigingen volgen, berichten in de chatter plaatsen en activiteiten koppelen aan transfers — handig voor communicatie en opvolging in het magazijn.

Belangrijke velden in het model


Hieronder staan de belangrijkste velden van het stock.picking-model. Wie deze goed kent, kan transfers en magazijnprocessen correct inrichten en aanpassen.


1. name

Type: Char. Dit is de referentie van de transfer, meestal automatisch gegenereerd via een volgnummer (bijv. WH/OUT/00001). Het wordt prominent getoond in het formulier en dient als primaire herkenning van de picking.


2. origin

Type: Char. Verwijst naar het brondocument — bijvoorbeeld de verkooporderreferentie bij een levering of de inkoopreferentie bij een ontvangst. Handig om de herkomst van een transfer te traceren.


3. state

Type: Selection. Geeft de status van de transfer weer (Draft, Waiting Another Operation, Waiting, Ready, Done, Cancelled). De status bepaalt welke acties mogelijk zijn en wordt afgeleid van de bijbehorende stock moves.


4. picking_type_id

Type: Many2one (stock.picking.type). Het type operatie: ontvangst, levering of interne verplaatsing. Verplicht. Elk picking-type bevat standaard bron- en bestemmingslocaties en stuurt het gedrag van de transfer.


5. move_ids

Type: One2many (stock.move). De effectieve voorraadbewegingen: elke regel beschrijft een product en hoeveelheid die verplaatst wordt. Dit is het hart van de transfer — reserveringen en beschikbaarheidslogica werken op deze moves.


6. move_line_ids

Type: One2many (stock.move.line). Gedetailleerde uitvoeringsregels: bij lot- of serienummertracking slaan deze rijen specifieke lotnummers, serials en locaties op. Belangrijk bij picken, verpakken en valideren.


7. location_id

Type: Many2one (stock.location). De bronlocatie: waar de producten vandaan komen. Verplicht. Bij uitgaande leveringen is dit meestal de magazijnvoorraadlocatie; bij inkomende zendingen de leverancierlocatie.


8. location_dest_id

Type: Many2one (stock.location). De bestemmingslocatie: waar de goederen heen gaan. Verplicht. Bij leveringen is dit vaak de klantlocatie; bij ontvangsten de voorraadlocatie.


9. partner_id

Type: Many2one (res.partner). De contactpartij: bij leveringen de klant, bij ontvangsten de leverancier. Wordt gebruikt op documenten en bij koppelingen met vervoerders.


10. scheduled_date

Type: Datetime. De geplande verwerkingsdatum. Belangrijk voor planning en prioritering; het stelt de verwachte datum voor alle gerelateerde stock moves in.


11. date_deadline

Type: Datetime. De deadline van de transfer, doorgaans overgenomen uit verkoop- of inkooporders. Gebruikt om late leveringen te signaleren en klantafspraken te bewaken.


12. date_done

Type: Datetime. Het tijdstip waarop de transfer gevalideerd (of geannuleerd) werd. Alleen-lezen en automatisch gezet wanneer de picking is voltooid.


13. priority

Type: Selection. Prioriteitsniveau: bij voorraadreservering krijgen hogere prioriteiten voorrang. Handig voor spoedorders.


14. move_type

Type: Selection. Verzendbeleid: 'as soon as possible' (gedeeltelijke leveringen toegestaan) of 'when all products are ready' (alles of niets). Dit beïnvloedt wanneer een picking verwerkt kan worden.


15. user_id

Type: Many2one (res.users). Verantwoordelijke gebruiker: voor toewijzing en werkbelasting. Standaard ingesteld op de gebruiker die de picking aanmaakt.


16. company_id

Type: Many2one (res.company). De bedrijfseenheid: in multi-company-omgevingen bepaalt dit welke entiteit eigenaar is van de transfer; vaak afgeleid van het picking-type.


17. group_id

Type: Many2one (procurement.group). De procurement-groep: koppelt samenhangende bewegingen, bijvoorbeeld wanneer meerdere pickings uit dezelfde order ontstaan.


18. backorder_id

Type: Many2one (stock.picking). Link naar een vorige picking wanneer een gedeeltelijke validatie een nabestelling creëert. Dit veld houdt de keten van backorders bij.


19. backorder_ids

Type: One2many (stock.picking). De backorders die vanuit deze picking zijn aangemaakt — nuttig wanneer een levering in delen wordt afgehandeld.


20. return_id

Type: Many2one (stock.picking). Verwijst naar het oorspronkelijke picking wanneer dit record een retour betreft. Ondersteunt retourworkflows en traceerbaarheid.


21. note

Type: Html. Interne notities: zichtbaar voor magazijngebruikers en geschikt voor speciale instructies of behandelingsopmerkingen.


22. signature

Type: Image. De klant- of ontvangerhandtekening bij aflevering — gebruikt als bewijs van levering en opgeslagen als bijlage.


23. is_signed

Type: Boolean. Berekenveld op basis van signature: geeft aan of de levering ondertekend is.


24. owner_id

Type: Many2one (res.partner). De eigenaar die toegewezen wordt bij validatie — relevant bij consignatievoorraad of wanneer goederen van derden zijn.


25. package_level_ids

Type: One2many (stock.package_level). Verpakkingsniveaus bij 'put in pack': bundelt move lines in pakketten voor verzending.


26. create_date

Type: Datetime. Aanmaakdatum van het record; automatisch beheerd door Odoo en geërfd uit het basismodel.


27. write_date

Type: Datetime. Datum laatste wijziging; automatisch bijgehouden en nuttig voor audits en synchronisaties.


28. active

Type: Boolean. Soft-delete-vlag: wanneer False is het record gearchiveerd en verdwijnt het uit standaardlijsten zonder fysiek te verwijderen.

Hoe dit model in bedrijfsprocessen gebruikt wordt


1. Verkoop en levering

Bij een bevestigde verkooporder genereert Odoo automatisch een leveringsopdracht (stock.picking). Het picking-record linkt terug naar de verkoop via origin. Magazijnmedewerkers picken en verpakken en valideren de picking; de status loopt van concept naar klaar naar voltooid.


2. Inkoop en ontvangst

Een bevestigde inkooporder leidt tot een inkomende ontvangst in Odoo. De picking registreert het binnenkomen van goederen van de leverancier naar uw voorraad; partner_id is daarbij de leverancier en valideren past de voorraadhoeveelheden aan.


3. Interne verplaatsingen

Verplaatsingen tussen magazijnen of locaties worden als interne pickings vastgelegd. Dergelijke pickings gebruiken een picking_type met code 'internal' en zowel bron als bestemming bevinden zich binnen uw interne stock-locaties.


4. Retouren en backorders

Bij een retour van een verkoop wordt een return-picking aangemaakt die linkt naar het oorspronkelijke leveringsrecord via return_id. Bij gedeeltelijke validatie ontstaan backorders; deze worden bijgehouden in backorder_ids om het resterende werk te verwerken.


5. Productie en assemblage

Productieorders maken pickings voor grondstoffen (consumptie) en eindproducten (productie). De mrp-module breidt stock.picking uit om die stromen correct te modelleren binnen het productieproces.

Hoe ontwikkelaars dit model uitbreiden


Ontwikkelaars breiden stock.picking uit met een paar gangbare patronen; belangrijkste instrument is Odoo’s modelinheritance.


Modelinheritance

Gebruik _inherit = 'stock.picking' in uw module om het model uit te breiden. Voeg velden toe, overschrijf methodes of voeg constraints toe. Door uitbreidingen in aparte modules te houden blijven upgrades en onderhoud overzichtelijk.


Velden toevoegen

Voeg nieuwe Odoo-velden toe in uw geërfde model en kies het juiste type (Char, Many2one, Boolean, Integer, Text, Selection). Houd rekening met company-dependency in multi-company-omgevingen om ongewenst gedrag te voorkomen.


Python-uitbreidingen

Overschrijf methodes zoals button_validate, action_assign of _create_backorder om extra logica in te brengen. Roep altijd super() aan waar nodig, en wees voorzichtig met state-transities en het aanmaken van moves — een foutje kan de flow breken.


Odoo Studio

Met Odoo Studio kunt u zonder code velden en views aanpassen — handig voor snelle aanpassingen zoals extra labels of notities. Voor complexe processen of integraties is een code-module echter duurzamer en makkelijker te testen en onderhouden.

Aanbevolen werkwijzen


  • Zorg er altijd voor dat picking_type_id wordt ingesteld wanneer u pickings handmatig aanmaakt; dit bepaalt standaardlocaties en het gewenste gedrag.
  • Gebruik het origin-veld om de herkomst van een picking te bewaren; dat vergemakkelijkt rapportage, troubleshooting en reconciliatie met orders.
  • Bij API-integraties is stock.picking volledig beschikbaar via de Odoo-API. Maak bewegingen aan via move_ids in plaats van een lege picking; pickings zonder moves leiden meestal tot inconsistenties.
  • Gebruik scheduled_date voor planning en prioritering: dat veld beïnvloedt reserveringslogica en de volgorde waarin pickings worden verwerkt.
  • Voor eigen velden gebruik altijd een x_ of modulenaam-voorvoegsel (bijv. x_mycompany_field) om botsingen met toekomstige Odoo-velden te vermijden.

Veelgemaakte fouten


  • Pickings aanmaken zonder picking_type_id instellen. Dat geeft vaak onjuiste standaardlocaties en onverwacht gedrag.
  • move_ids aanpassen nadat een picking bevestigd is, zonder het state-machinegedrag te begrijpen. Statusovergangen en afhankelijkheden kunnen complex zijn en tot fouten leiden.
  • Vergeten partner_id in te stellen voor leveringen. Zonder contactgegevens werken documenten en vervoerdersintegraties niet goed.
  • button_validate overschrijven zonder super() te roepen. Hierdoor kunt u backorderlogica of integratiepunten van andere modules breken.
  • Aannemen dat move_ids en move_line_ids altijd synchroon zijn. Move lines worden pas aangemaakt bij reservering of bij gebruik van gedetailleerde operaties, dus ze kunnen tijdelijk uit elkaar lopen.

Afronding


Het stock.picking-model is cruciaal binnen de Odoo-inventaris: het legt transfers, leveringen en ontvangsten vast. Wie de velden en uitbreidingen begrijpt, kan Odoo betrouwbaar configureren, maatwerk bouwen en systemen koppelen.


Of u nu processen ontwerpt als functioneel consultant of maatwerkmodules bouwt als ontwikkelaar: een degelijk begrip van stock.picking bespaart tijd en voorkomt kostbare fouten in magazijnprocessen.

Klaar om uw Odoo-magazijn te optimaliseren?


Dasolo ondersteunt bedrijven bij implementatie, maatwerk en optimalisatie van Odoo. Wij specialiseren ons in API-koppelingen en ontwikkeling met ruime ervaring in de Odoo-datalaag en modellen zoals stock.picking.


Heeft u hulp nodig bij uw Odoo-implementatie, magazijnmodule of integratieproject? Wij kunnen u ondersteunen. Boek een demo om uw project te bespreken.

Het stock.picking Model: Odoo's Transfer- en Magazijnprocessen Begrijpen
Dasolo 10 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten