Overslaan naar inhoud

Het Stock.Picking Model: Odoo's Transfer- en Magazijnoperaties Begrijpen

Een complete gids voor Odoo's centrale transfermodel voor voorraad- en magazijnbeheer
10 maart 2026 in
Het Stock.Picking Model: Odoo's Transfer- en Magazijnoperaties Begrijpen
Dasolo
| Nog geen reacties

Inleiding


In Odoo definiëren modellen hoe gegevens zijn gestructureerd en opgeslagen in de database. Elk stuk bedrijfsgegevens waarmee u werkt, van verkooporders tot voorraadtransfers tot magazijnoperaties, bevindt zich in een model.


Het begrijpen van Odoo-modellen is essentieel voor zowel ontwikkelaars als functionele consultants. Modellen zijn de basis van de Odoo-gegevensarchitectuur. Ze definiëren velden, relaties en bedrijfslogica.


Dit artikel richt zich op een van de belangrijkste modellen in de Inventory-app: stock.picking. Of u nu aangepaste magazijnmodules bouwt, externe systemen integreert of workflows configureert, u zult met dit model werken.

Wat is het stock.picking Model


Het stock.picking-model vertegenwoordigt overboekingen in Odoo. Het is de centrale plaats waar magazijnoperaties worden gevolgd. Elk picking-record vertegenwoordigt een enkele overdracht van goederen van de ene locatie naar de andere.


Dit model in Odoo wordt gebruikt in de Inventaris-module. Ontvangsten, leveringen en interne overboekingen creëren allemaal stock.picking-records. Wanneer je een leveringsorder van een verkoop bevestigt, goederen van een aankoop ontvangt of voorraad tussen magazijnen verplaatst, creëer of werk je een stock.picking-record bij.


Het model is gedefinieerd in de stock-module. Andere modules breiden het uit via Odoo-modelerfelijkheid. Verkoop voegt leveringsgerelateerde velden toe. Aankoop voegt ontvangstworkflows toe. Productie voegt productiebewegingen toe. Elke module voegt toe wat het nodig heeft zonder de kernstructuur te dupliceren.


Het stock.picking-model erft van mail.thread en mail.activity.mixin. Dit betekent dat je wijzigingen kunt volgen, chatterberichten kunt toevoegen en activiteiten op overboekingen direct kunt plannen.

Belangrijke Velden in het Model


Hier zijn de belangrijkste Odoo-velden in het stock.picking-model. Het begrijpen hiervan zal je helpen om effectief te werken met overboekingen en magazijnoperaties.


1. naam

Type: Char. Dit veld slaat de referentie van de overdracht op. Het wordt meestal automatisch gegenereerd uit een reeks (bijv. WH/OUT/00001). Het wordt weergegeven in de kop van de overdrachtsformulieren en is de primaire identificator voor de picking.


2. oorsprong

Type: Char. De referentie van het brondocument. Voor een levering kan dit de naam van de verkooporder zijn. Voor een ontvangst, de inkooporder. Het helpt om te traceren waar de overdracht vandaan komt.


3. staat

Type: Selectie. De status van de overdracht. Waarden: Concept, Wacht op een andere operatie, Wachtend, Klaar, Voltooid, Geannuleerd. Elke staat bepaalt welke acties beschikbaar zijn. Odoo berekent dit op basis van de gerelateerde voorraadbewegingen.


4. picking_type_id

Type: Many2one (stock.picking.type). Het type operatie. Bepaalt of dit een ontvangst, levering of interne overdracht is. Vereist. Elk pickingtype heeft standaard bron- en bestemmingslocaties.


5. move_ids

Type: One2many (stock.move). De voorraadbewegingen. Elke regel vertegenwoordigt een product en hoeveelheid om te verplaatsen. Dit is de kern van de overdracht. Alle reserverings- en beschikbaarheidslogica werkt op deze bewegingen.


6. move_line_ids

Type: One2many (stock.move.line). De gedetailleerde operaties. Wanneer je lot- of serienummertracking hebt, slaan deze regels de specifieke lots en locaties op. Gebruikt voor picking, packing en validatie.


7. location_id

Type: Many2one (stock.location). De bronlocatie. Waar producten vandaan worden gehaald. Vereist. Voor leveringen is dit meestal de voorraadlocatie. Voor ontvangsten is dit de leverancierlocatie.


8. location_dest_id

Type: Many2one (stock.location). De bestemmingslocatie. Waar producten naartoe worden verplaatst. Vereist. Voor leveringen is dit meestal de klantlocatie. Voor ontvangsten is dit de voorraadlocatie.


9. partner_id

Type: Many2one (res.partner). De contactpersoon. Voor leveringen, de klant. Voor ontvangsten, de leverancier. Gebruikt voor adressen op documenten en voor carrierintegratie.


10. scheduled_date

Type: Datetime. Wanneer de overdracht gepland is om verwerkt te worden. Gebruikt voor planning en prioritering. Handmatig instellen stelt de verwachte datum in voor alle voorraadbewegingen.


11. date_deadline

Type: Datetime. De deadline. Komt vaak van de verkooporder of inkooporder. Gebruikt om late overdrachten te markeren en voor klantbelofte data.


12. date_done

Type: Datetime. Wanneer de overdracht gevalideerd of geannuleerd werd. Alleen-lezen. Wordt automatisch ingesteld wanneer de picking is voltooid.


13. priority

Type: Selection. Het prioriteitsniveau. Producten worden eerst gereserveerd voor overdrachten met een hogere prioriteit. Gebruikt voor dringende bestellingen.


14. move_type

Type: Selection. Het verzendbeleid. Waarden: Zo snel mogelijk (deeltijdlevering toegestaan) of Wanneer alle producten klaar zijn (alles of niets). Beïnvloedt wanneer de picking kan worden verwerkt.


15. user_id

Type: Many2one (res.users). De verantwoordelijke gebruiker. Gebruikt voor toewijzing en workload tracking. Standaard ingesteld op de huidige gebruiker bij het aanmaken.


16. company_id

Type: Many2one (res.company). Het bedrijf. Gerelateerd aan het picking type. In multi-company setups bepaalt dit welke onderneming het transport bezit.


17. group_id

Type: Many2one (procurement.group). De inkoopgroep. Verbindt gerelateerde bewegingen samen. Wordt gebruikt wanneer meerdere pickings van dezelfde bestelling komen.


18. backorder_id

Type: Many2one (stock.picking). Wanneer een transfer gedeeltelijk gevalideerd is, wordt er een backorder aangemaakt voor de resterende. Dit veld linkt naar de oorspronkelijke picking.


19. backorder_ids

Type: One2many (stock.picking). De backorders die zijn aangemaakt vanuit deze picking. Wordt gebruikt wanneer je gedeeltelijk valideert en de rest later moet verwerken.


20. return_id

Type: Many2one (stock.picking). Als deze picking is aangemaakt als een retour, linkt dit naar de oorspronkelijke picking. Gebruikt voor retourwerkstromen.


21. note

Type: Html. Interne notities. Zichtbaar voor magazijngebruikers. Kan speciale instructies of behandelingsvereisten bevatten.


22. signature

Type: Afbeelding. De handtekening vastgelegd wanneer de levering wordt gevalideerd. Gebruikt als bewijs van levering. Opgeslagen als een bijlage.


23. is_signed

Type: Boolean. Berekend op basis van de handtekening. Geeft aan of de levering is ondertekend.


24. owner_id

Type: Many2one (res.partner). De eigenaar die moet worden toegewezen bij validatie. Gebruikt voor consignatie of wanneer producten toebehoren aan een derde partij.


25. package_level_ids

Type: One2many (stock.package_level). Pakketniveaus bij gebruik van inpakken. Groepeert verplaatsingslijnen in pakketten voor verzending.


26. create_date

Type: Datetime. Wanneer het record is aangemaakt. Automatisch beheerd door Odoo. Geërfd van het basismodel.


27. write_date

Type: Datetime. Wanneer het record voor het laatst is gewijzigd. Automatisch beheerd. Geërfd van het basismodel.


28. actief

Type: Boolean. Soft delete vlag. Wanneer False, wordt het record gearchiveerd. Geërfd van het basismodel.

Hoe Dit Model Wordt Gebruikt in Bedrijfsworkflows


1. Verkoop en Levering

Wanneer een verkooporder is bevestigd, creëert Odoo een leveringsorder (stock.picking). De picking is gekoppeld aan de verkooporder via de oorsprong. Magazijnmedewerkers picken en verpakken, en valideren vervolgens. De status verandert van concept naar gereed naar voltooid.


2. Aankoop en Ontvangst

Wanneer een aankooporder is bevestigd, creëert Odoo een inkomende ontvangst. De picking ontvangt producten van de leverancier naar de voorraad. De partner_id is de leverancier. Validatie werkt de voorraadhoeveelheden bij.


3. Interne Overdrachten

Het verplaatsen van voorraad tussen magazijnen of locaties creëert interne pickings. De picking_type_id heeft de code 'intern'. Locatie en bestemming zijn beide interne voorraadlocaties.


4. Retouren en Achterstanden

Wanneer een verkoop wordt geretourneerd, wordt er een retourpicking aangemaakt. De return_id is gekoppeld aan de oorspronkelijke levering. Wanneer een levering gedeeltelijk is gevalideerd, houdt backorder_ids het resterende werk vast.


5. Productie en Productie

Productieorders creëren pickings voor grondstoffen (verbruik) en eindproducten (productie). Het stock.picking model wordt uitgebreid door de mrp-module voor deze stromen.

Hoe Ontwikkelaars Dit Model Uitbreiden


Ontwikkelaars breiden stock.picking uit met verschillende patronen. Odoo modelovererving is het belangrijkste mechanisme.


Model Inheritance

Gebruik _inherit = 'stock.picking' om het model uit te breiden. Voeg nieuwe velden toe, overschrijf methoden of voeg beperkingen toe. Het erfmodel in Odoo houdt uw wijzigingen in een aparte module voor gemakkelijke upgrades.


Velden Toevoegen

Definieer nieuwe Odoo-velden in uw geërfde model. Gebruik het juiste veldtype: Char, Many2one, Boolean, Integer, Text, Selection. Overweeg bedrijfsspecifieke velden voor meerdere bedrijven.


Python Uitbreidingen

Overschrijf button_validate, action_assign of _create_backorder om logica toe te voegen. Gebruik super() om de originele aanroep te doen. Wees voorzichtig met statusovergangen en het aanmaken van bewegingen.


Odoo Studio

Odoo Studio stelt u in staat om velden toe te voegen zonder code. Goed voor snelle aanpassingen zoals aangepaste labels of extra notities. Voor complexe logica of carrierintegratie zijn aangepaste modules beter onderhoudbaar.

Beste Praktijken


  • Stel altijd de picking_type_id in bij het handmatig aanmaken van pickings. Dit stuurt de standaardlocaties en het gedrag aan.
  • Gebruik het origin-veld om terug te traceren naar het brondocument. Dit helpt bij rapportage en debugging.
  • Bij het bouwen van API-integraties is het stock.picking-model volledig blootgesteld via de Odoo API. Maak bewegingen aan via de move_ids-relatie. Maak geen pickings aan zonder bewegingen.
  • Gebruik scheduled_date voor planning. Dit beïnvloedt reservering en prioritering.
  • Voor aangepaste velden, gebruik de x_ prefix of een moduleprefix om conflicten met toekomstige Odoo-versies te vermijden.

Veelvoorkomende Fouten


  • Pickings aanmaken zonder picking_type_id in te stellen. Dit kan leiden tot verkeerde standaardlocaties.
  • Move_ids wijzigen na bevestiging zonder de toestandsmachine te begrijpen. Toestandsovergangen kunnen complex zijn.
  • Vergeten partner_id in te stellen voor leveringen. Vervoerders en documenten hebben de contactpersoon nodig.
  • De button_validate overschrijven zonder super() aan te roepen. Dit kan de creatie van backorders en andere modules verstoren.
  • Aannemen dat move_ids en move_line_ids altijd synchroon zijn. Move lines worden aangemaakt wanneer je reserveert of wanneer je gedetailleerde bewerkingen gebruikt.

Conclusie


Het model stock.picking is centraal in de Odoo-inventaris. Het slaat overboekingen, leveringen en ontvangstbewijzen op. Het begrijpen van de velden en hoe modules het uitbreiden zal je helpen Odoo effectief te configureren, aan te passen en te integreren.


Of je nu een functionele consultant bent die magazijnprocessen in kaart brengt of een ontwikkelaar die aangepaste modules bouwt, een goed begrip van stock.picking zal tijd besparen en fouten voorkomen.

Klaar om Uw Odoo Magazijn te Optimaliseren


Dasolo helpt bedrijven bij het implementeren, aanpassen en optimaliseren van Odoo. We zijn gespecialiseerd in API-integraties en Odoo-ontwikkeling. Ons team heeft diepgaande ervaring met de Odoo-gegevensarchitectuur en modellen zoals stock.picking.


Als je hulp nodig hebt bij je Odoo-implementatie, aangepaste magazijnmodules of integraties, zijn we hier om te helpen. Boek een demo om je project te bespreken.

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