You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Odoo 10中stock_move与stock_picking表的区别及用途咨询

Hey there! Let's break down the difference between stock_move and stock_picking in Odoo 10—these two core inventory tables work hand in hand but serve totally distinct purposes.

Core Definitions & Primary Use Cases

stock_picking - The "Logistics Task Container"

Think of this as the overarching document that represents a complete inventory operation. It's the wrapper for all related product movements, storing high-level details about the task itself:

  • The type of operation (outgoing shipment to a customer, incoming receipt from a vendor, internal transfer between warehouses)
  • Source and destination locations/partners
  • Overall status of the task (draft, confirmed, done, cancelled)
  • Dates and responsible users

Typical Scenarios:

  • Creating a customer delivery order for an ecommerce order
  • Processing a vendor receipt for purchased goods
  • Setting up an internal transfer to restock a retail store from a central warehouse

stock_move - The Individual Product Movement Line

This table tracks the specific, granular movement of a single product (or batch/serial number of a product). Each stock_move is tied to a stock_picking and stores the nitty-gritty details of what's being moved:

  • Exact product ID, quantity, and unit of measure
  • Source and destination stock locations (down to specific bins if you use location tracking)
  • Batch/serial number (if the product uses tracking)
  • Status of this individual line (e.g., one line might be backordered while others are fulfilled)

Typical Scenarios:

  • Tracking that 5 units of "Wireless Headphones" move from Warehouse Bin A to Customer X's shipping address
  • Logging that 10 units of "Raw Steel" are transferred from the receiving dock to the production floor
  • Monitoring that a specific serial-numbered laptop is being returned from a customer to the repair depot
Key Core Differences

Let's distill the critical distinctions between the two:

  • Granularity: stock_picking is macro-level (the entire task), while stock_move is micro-level (individual product lines within the task).
  • Status Independence: A picking's overall status reflects the task's progress, but individual moves can have their own statuses. For example, a picking might show "partially done" if some moves are fulfilled and others are still pending.
  • Data Focus: stock_picking stores metadata about the operation, while stock_move stores the actionable details of product flow.
  • Relationship: One stock_picking can have many stock_move records (a one-to-many relationship), but every stock_move must belong to exactly one picking (with rare exceptions for ad-hoc, unplanned inventory adjustments).
Quick Real-World Analogy

If you're sending a package to a friend with 3 items inside:

  • The shipping label and package itself are the stock_picking (the overall task with sender/receiver info)
  • Each item's packing slip entry is a stock_move (detailing what's inside, where it came from, where it's going)

内容的提问来源于stack exchange,提问作者M.E.

火山引擎 最新活动