存货成本

Important

此文档适用于Odoo 19或更高版本。 了解版本间的改变。

存货计价方法

Odoo supports 3 costing methods configured in accounting’s settings and, optionally, the product’s category.

标准成本:固定单位成本,手动更新

作业

单位成本

在手数量

差异值

存货成本

$10

0

$0

接收8个 @$10

$10

8

+8×$10

$80

接收4个 @$16

$10

12

+4×$10

$120

发货 10

$10

2

-10×$10

$20

接收2个 @$9

$10

4

+2×$10

$40

均值:所有单位的加权平均值

作业

单位成本

在手数量

差异值

存货成本

$0

0

$0

接收8个 @$10

$10

8

+8×$10

$80

接收4个 @$16

$12

12

+4×$16

$144

发货 10

$12

2

-10×$12

$24

接收2个 @$6

$9

4

+2×$6

$36

FIFO:先进先出

作业

单位成本

在手数量

差异值

存货成本

$0

0

$0

接收8个 @$10

$10

8

+8×$10

$80

接收4个 @$16

$12

12

+4×$16

$144

发货 10

$16

2

-8×$10
-2×$16

$32

接收2个 @$6

$11

4

+2×$6

$44

Note

下架策略还支持LIFO(后进先出)和FEFO(先到期先出),但它们只影响产品优先级,而不是成本估价方法。例如,您可以使用LIFO,但使用平均成本进行评估,因为LIFO不是通过IFRS(国际金融报表标准)所允许的。

库存与会计

库存应用会实时记录库存价值,当您**接收和发货商品**时。报告菜单允许您通过公司、位置、产品等来分析库存量及价值。

会计应用 会更新账户,当您 收到发票或账单 时。虽然收据和发票不同,但是对于会计来说,对每个库存移动都进行日记账是不实际的。因此,他们会生成结账条目来记录发票和收據/发货之间的差异。这个结账过程通常一年一次,对于中小企业来说,或者每月一次。

会计

仓储物流

采购订单

/

/

收货

/

供应商账单

/

销售订单

/

/

客户结算单

/

Delivery

/

期末分录

/

Accounting Methods

There are two accounting practices on how to maintain your accounts, defined in Accounting app ‣ Configuration ‣ Settings, under the Inventory Valuation section:

Periodic: Post vendor bills as expenses by nature, and update stock valuation in the closing entry by reducing expenses (stock variation). This is the best practice in Europe.

Perpetual: Post vendor bills as assets (stock valuation), report expenses when goods are sold (cost of goods sold). This is the best practice in countries that follow Anglo-Saxon accounting, like the USA and India.

  • Stock Account on the product’s category

  • Stock Variation on the stock account

  • Expense/Cost of Goods Sold on the product/category

  • Inventory Adjustment on the Inventory Loss location (optional, recommended for Anglo-Saxon accounting)

  • Expense on the stock account (for perpetual Continental accounting only)

EU Periodic

EU Perpetual

US Periodic

US Perpetual

ADJUSTMENT

Stock

Stock

LOSS

Shrinkage

账单

Expense

Stock

COGS

Stock

Payable

Payable

Payable

Payable

INVOICE

Expense

COGS

Stock

Stock

Income

Income

Income

Income

Receivable

Receivable

Receivable

Receivable

关闭

Stock

Stock

Stock

Stock

[1]

Variation

Expense

Variation

Variation

[2]

LOSS

Shrinkage

[3]

Variation

Expense

  1. Inventory valuation - Accounting valuation

  2. Inventory valuation lost, only if an account is set on the loss location

  3. Accounting valuation end of period - Valuation beginning of period

会计分录

Journal Entries Configuration

报表

In Inventory

Open Inventory ‣ Reporting ‣ Stock to view your current inventory level and valuation for each product, or to review historical data as of a previous date.

../../../../_images/valuation-stock.png

Unit cost

To check a product’s existing unit price updates and their origins, click on the product’s Unit Cost. In AVCO this allows you to understand how the currently used value was calculated.

../../../../_images/unit-cost.png

总价值

To see all incoming quantities for which you still have a remaining quantity and the value used for their valuation, click on a product’s Total Value.

  • In AVCO or standard cost, the used value is always the current average unit cost.

  • In FIFO, remaining units from each previous incoming move retain their own individual valuation.

In FIFO or AVCO, remaining quantities from a previous incoming move can have their value adjusted if necessary: Select the incoming moves to be adjusted, click Actions, and then click Adjust Valuation. Enter the new Value and, optionally, a Description.

../../../../_images/total-value.png

In Accounting

To view the difference between the accounting stock value and the current inventory value recorded thanks to the incoming moves with a remaining quantity, go to Accounting ‣ Review ‣ Inventory Valuation.

To generate a new accounting entry to review and post, click Generate Entry.

../../../../_images/valuation-accounting.png

To view a list of sales and purchase orders for which accrual entries should be encoded, go to Accounting ‣ Review and select the relevant menu item (Bill To Receive, Invoices To Be Issued, Billed Not Received and Invoiced Not Delivered). Select the desired lines and click Create Accrual Entries.

With Anglo-Saxon perpetual accounting, this will also help to distribute recorded inventory variations to accounts such as Bills to Receive/GRNI or COGS as shown in the Accounting Entries and Journal Entries Configuration sections.

../../../../_images/accrual.png ../../../../_images/accrual1.png ../../../../_images/accrual2.png ../../../../_images/accrual3.png

Changes in Odoo 19

Before Odoo 19, the Perpetual accounting method was implemented by posting real-time accounting entries at each stock movement. That created a lot of journal items in accounting, which was an issue for performance, general ledger clarity and auditability.

Since Odoo 19, the Perpetual method impacts the stock valuation account at the invoice level. The closing entry is then used to manage bills to receive, invoices to issue, deferred revenues, prepaid expenses, and other gaps between inventory values and accounting ones.

Odoo 18

Odoo 19

Periodic Continental

Manual closing

Automated closing

Periodic Anglo-Saxon

Not supported

Fully supported

Perpetual Continental

Manual closing

Perpetual Anglo-Saxon

Manual closing

Accounting valuation

Requires inventory

Accounting only

Perpetual Entries

Invoices + every moves

Invoices + one closing

Invoices to issue

Prepaid expenses

待接收账单

递延收入

绩效

Slower

Faster

总账

More journal entries

Fewer journal entries