[IMP] Inventory: Scrap inventory updates

closes odoo/documentation#16256

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Rex <11528309+huisit@users.noreply.github.com>
This commit is contained in:
erjer-odoo
2026-01-26 16:30:00 -08:00
parent 7e88d9699e
commit 0ca004a806
8 changed files with 63 additions and 40 deletions

View File

@@ -12,8 +12,8 @@ a vendor, it can be scrapped.
Odoo *Inventory* allows users to scrap inventory, designating goods or materials that are no longer
usable or sellable for disposal (or recycling).
Scrapping inventory in a database helps stock counts remain accurate, by removing scrapped products
from physical inventory, and placing it in a virtual scrap location (*Virtual Locations/Scrap*).
Scrapping inventory in a database helps stock counts remain accurate by removing scrapped products
from physical inventory and placing them in a virtual *Inventory Loss* location.
.. note::
*Virtual locations* in Odoo are **not** real, physical spaces in a warehouse. Rather, they are
@@ -23,6 +23,42 @@ from physical inventory, and placing it in a virtual scrap location (*Virtual Lo
For more information about virtual locations, see the documentation about the different types of
:ref:`location types <inventory/warehouses_storage/location-type>`.
Create a scrap location
=======================
By default, scrap operations are recorded in the :guilabel:`Inventory adjustment` virtual location.
However, if the scrapped products need to be recorded in the *Profit and Loss* accounting report, it
is possible to create an :guilabel:`Inventory Loss` location specifically for tracking scrapped
goods. If scrapped goods don't need to be tracked for reporting purposes, :ref:`create a scrap order
from stock <inventory/scrap-from-stock>`.
To create a new :guilabel:`Inventory Loss` location specifically for scrapped goods, first, open
:menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouse` section,
enable :guilabel:`Storage Locations`. Be sure to click :guilabel:`Save`.
To create a new scrap location, open :menuselection:`Inventory app --> Configuration --> Locations`.
By default, this list is filtered by :guilabel:`Internal` locations. To see all locations, remove
the :guilabel:`Internal` filter. Click the :guilabel:`New` button to create a new location.
The location form opens. Specify a :guilabel:`Location Name` and :guilabel:`Parent Location`. Update
the :guilabel:`Location Type` to :guilabel:`Inventory Loss`. If working in a multi-company database,
specify a :guilabel:`Company`. Optionally, specify a :guilabel:`Loss Account` to ensure that
products scrapped to this location show up in the *Profit and Loss* accounting report.
.. example::
A company creates a new `Scrapped Goods` location, with the parent location being `Inventory
adjustment`. The :guilabel:`Location Type` is set to :guilabel:`Inventory Loss`. To ensure the
scrapped products show up in the *Profit and Loss* accounting report, they specify `600000
Expenses` as the :guilabel:`Loss Account`.
.. image:: scrap_inventory/new-scrap-location.png
:alt: Optionally create a Scrapped Goods inventory loss location.
.. seealso::
:doc:`../../inventory_valuation/scrapped_inventory_valuation`
.. _inventory/scrap-from-stock:
Scrap from stock
================
@@ -33,43 +69,34 @@ Click the drop-down menu in the :guilabel:`Product` field, and select the produc
scrapped from inventory. In the :guilabel:`Quantity` field, change the value to the quantity of the
product that should be scrapped (by default, this value is set to `1.00`).
.. image:: scrap_inventory/scrap-inventory-new-scrap-order.png
:align: center
:alt: Filled out new scrap order form with product details.
The :guilabel:`Source Location` defaults to the location where the product is currently stored. The
:guilabel:`Scrap Location` defaults to the designated scrap location (:guilabel:`Virtual
Locations/Scrap`). Either of these locations can be changed by selecting a different location from
their respective drop-down menus.
:guilabel:`Scrap Location` defaults to :guilabel:`Inventory adjustment`. Either of these locations
can be changed by selecting a different location from their respective drop-down menus.
If the scrapping is tied to a specific existing operation, specify the operation in the
:guilabel:`Source Document` field.
The :guilabel:`Company` field displays the company whose warehouse this product belongs to. If a
replenishment rule is set up for the product being scrapped, and if the product should be
replenished, tick the checkbox for :guilabel:`Replenish Quantities`.
replenished, select the checkbox for :guilabel:`Replenish Quantities`.
Once ready, click :guilabel:`Validate` to complete the new |SP|. Once validated, a
:guilabel:`Product Moves` smart button appears at the top of the form. Click the smart button to
view the details of the scrap operation.
Optionally specify a :guilabel:`Scrap Reason`.
.. image:: scrap_inventory/scrap-inventory-product-moves-button.png
:align: center
:alt: Product Moves smart button on new scrap order form.
Once ready, click :guilabel:`Validate` to complete the new |SP|.
.. image:: scrap_inventory/scrap-inventory-new-scrap-order.png
:alt: Filled out new scrap order form with product details.
Once validated, a :icon:`fa-exchange` :guilabel:`Product Moves` smart button appears at the top of
the form. Click the smart button to view the details of the scrap operation.
.. tip::
To view the all-time total quantities of scrapped items, navigate to :menuselection:`Inventory
app --> Configuration --> Locations`. Click the :guilabel:`x (remove)` button on the
:guilabel:`Internal` filter in the :guilabel:`Search...` bar, to display virtual locations.
Select the :guilabel:`Virtual Locations/Scrap` location. From the :guilabel:`Scrap` location's
form, click the :guilabel:`Current Stock` smart button, at the top of the form.
A list of all scrapped products, and their quantities, is displayed.
app --> Operations --> Scrap Orders`. A list of all scrapped products, and their quantities, is
displayed.
.. image:: scrap_inventory/scrap-inventory-current-stock.png
:align: center
:alt: Current Stock list of all scrapped products in virtual scrap location.
:alt: List of all scrapped products in inventory.
Scrap from an existing operation
================================
@@ -83,34 +110,30 @@ To scrap a product during an operation, navigate to the :menuselection:`Inventor
card (i.e. the :guilabel:`Receipts` task card).
.. image:: scrap_inventory/scrap-inventory-receipts-task-card.png
:align: center
:alt: # To Process button on Receipts task card on Inventory Overview page.
:alt: # To Receive button on Receipts task card on Inventory Overview page.
Then, select an operation to process from the resulting list of existing orders. Doing so opens that
operation's form.
Click the :icon:`fa-cog` :guilabel:`(cog)` icon, and select :guilabel:`Scrap` from the resulting
Click the :icon:`fa-cog` :guilabel:`(Actions)` icon, and select :guilabel:`Scrap` from the resulting
drop-down menu. This opens a :guilabel:`Scrap Products` pop-up window.
.. image:: scrap_inventory/scrap-inventory-popup-window.png
:align: center
:alt: Scrap Products pop-up window on operation form.
From this pop-up window, click the drop-down menu in the :guilabel:`Product` field, and select the
products from the operation that should be scrapped. Adjust the value in the :guilabel:`Quantity`
field, if necessary.
field, if necessary. Optionally specify a :guilabel:`Scrap Reason`.
If the :guilabel:`Product` selected is tracked using a lot or serial number, a
:guilabel:`Lot/Serial` field appears. Specify the tracking number in that field.
The :guilabel:`Source Location` and :guilabel:`Scrap Location` can be changed, if needed. If a
replenishment rule is set up for the product being scrapped, and if the product should be
replenished, tick the checkbox for :guilabel:`Replenish Quantities`.
replenished, select the checkbox for :guilabel:`Replenish Quantities`.
Once ready, click :guilabel:`Scrap Products`. A :guilabel:`Scraps` smart button appears at the top
of the operation form. Click this smart button to view the details of all scrap orders created from
this specific operation.
Once ready, click :guilabel:`Scrap Products`.
.. image:: scrap_inventory/scrap-inventory-scraps-smart-button.png
:align: center
:alt: Scraps smart button showing all scrap orders from operation.
.. image:: scrap_inventory/scrap-inventory-popup-window.png
:alt: Scrap Products pop-up window on operation form.
After products have been scrapped from an operation, a :icon:`oi-arrows-v` :guilabel:`Scraps` smart
button appears at the top of the operation form. Click this smart button to view the details of all
scrap orders created from this specific operation.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB