diff --git a/content/applications/inventory_and_mrp/inventory/barcode/operations/internal.rst b/content/applications/inventory_and_mrp/inventory/barcode/operations/internal.rst index 92209ed822..5549d7bccb 100644 --- a/content/applications/inventory_and_mrp/inventory/barcode/operations/internal.rst +++ b/content/applications/inventory_and_mrp/inventory/barcode/operations/internal.rst @@ -2,6 +2,8 @@ Process to Transfers ==================== +.. _barcode/operations/intro: + Simple Transfers ================ diff --git a/content/applications/inventory_and_mrp/inventory/barcode/setup/software.rst b/content/applications/inventory_and_mrp/inventory/barcode/setup/software.rst index 7e99e5413c..7fb72aa212 100644 --- a/content/applications/inventory_and_mrp/inventory/barcode/setup/software.rst +++ b/content/applications/inventory_and_mrp/inventory/barcode/setup/software.rst @@ -2,6 +2,8 @@ Activate the Barcodes in Odoo ============================= +.. _inventory/barcode/software: + The barcode scanning features can save you a lot of time usually lost switching between the keyboard, the mouse and the scanner. Properly attributing barcodes to products, pickings locations, etc. allows you to diff --git a/content/applications/inventory_and_mrp/inventory/management/products/uom.rst b/content/applications/inventory_and_mrp/inventory/management/products/uom.rst index 6396c74a6c..af6d6f12bb 100644 --- a/content/applications/inventory_and_mrp/inventory/management/products/uom.rst +++ b/content/applications/inventory_and_mrp/inventory/management/products/uom.rst @@ -2,6 +2,8 @@ Use different units of measure ============================== +.. _inventory/management/products/units_of_measure: + In some cases, handling products in different units of measure is necessary. For example, a business can buy products from a country that uses the metric system, and then sell those products in a country that uses the imperial system, so the business needs to convert the units. Another diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage.rst b/content/applications/inventory_and_mrp/inventory/management/products/usage.rst index 8bd6d347c8..b2acf95e5e 100644 --- a/content/applications/inventory_and_mrp/inventory/management/products/usage.rst +++ b/content/applications/inventory_and_mrp/inventory/management/products/usage.rst @@ -1,71 +1,245 @@ -==================================================================== -When Should you Use Packages, Units of Measure or Special Packaging? -==================================================================== +========================================== +Units of measure, packages, and packagings +========================================== + +In Odoo, there are a variety of ways to specify the amount of products being bought, stocked, and +sold. *Units of measure*, *packages*, and *packagings* are all available to streamline inventory +flows, allowing for a variety of configurations for products as they enter and leave the warehouse. Units of measure ================ -Units of measure specify the unit used to handle a product. In Odoo, you have the possibility to -specify the unit of measure in which you manage your stock and the one which is used when -purchasing the product to your supplier. +A *unit of measure (UoM)* refers to any of the different standards used to measure and handle a +quanitifiable amount of products, such a units, weight, time, or size. Different :abbr:`UoMs (Units +of Measure)` for weight, for example, can be kilos, pounds, ounces, grams, and so on. + +In Odoo, stock management and purchasing from suppliers are streamlined by specifying different +:abbr:`UoMs (Units of Measure)` for both buying and selling products. -.. image:: usage/uom-product-setting.png +.. image:: usage/uom-on-product-form.png :align: center - :alt: Specify unit of measure for handling a product vs. when it's purchased. + :alt: Specify unit of measure for selling a product vs purchasing. + +Once a product has a default :guilabel:`Unit of Measure` and :guilabel:`Purchase Unit of Measure` +set on the product form, Odoo automatically converts the different units in the product's +purchase/sales orders and the corresponding delivery orders/receipts. + +The only condition is that all of the units have to be in the *same category* (unit, weight, volume, +length, etc.). + +.. example:: + On the product form for `Rope`, the following fields are set as: + + - :guilabel:`Unit of Measure` in `ft` (feet), and + - :guilabel:`Purchase Unit of Measure` in `cm` (centimeters). + + Because the vendor sells rope in `cm`, the purchase :guilabel:`UoM` is used to represent the + quantity on the :abbr:`PO (Purchase Order)`, which is also in centimeters. -Once a product has a :guilabel:`Unit of Measure` and a :guilabel:`Purchase UoM` set on the product -form, Odoo can automatically convert the different units in the product's purchase/sales orders and -the orders' respective delivery orders/receipts. The only condition is that all the units have to -be in the *same category* (Unit, Weight, Volume, Length, etc.). + .. image:: usage/purchase-rope-in-cm.png + :align: center + :alt: Display purchase order for the product, rope, in centimeters. -For example, a product can have its :guilabel:`Unit of Measure` set to `feet (ft)` and its -:guilabel:`Purchase UoM` set to `centimeters (cm)`. When a purchase order (PO) is created for that -product, it will list the quantity in centimeters. Then, when the PO is confirmed, Odoo -automatically generates a receipt and converts the centimeters to feet. The receipt will list the -quantity in feet. +After confirming the :abbr:`PO (Purchase Order)`, the quantity of product (found under the now +visible :guilabel:`Demand` column) is converted from the purchase :abbr:`UoM (Unit of Measure)` to +the :guilabel:`Unit of Measure`. Then, when the product is received by clicking the +:guilabel:`Validate` button, the quantity in :guilabel:`Done` is automatically adjusted to match the +:guilabel:`Demand` column. + +.. example:: + On the *receipt* for `Rope`, the quantities are automatically converted from `500 cm` that was + requested on the purchase order, to `16.40 ft` to match the internal/stock :guilabel:`Unit of + Measure` value. + + .. image:: usage/receive-rope-in-ft.png + :align: center + :alt: Rope quantity is converted from cm to ft during warehouse reception. + +.. seealso:: + :ref:`Use Different Units of Measure ` Packages ======== -A package refers to the physical container that holds one or several products from a picking. For -example, when a product is ready for delivery, its quantities can be separated into two different -packages. In Odoo, the quantity of products in each package can be recorded in the database. Make -sure the :guilabel:`Packages` option is enabled in :menuselection:`Inventory --> Configuration --> -Settings --> Operations`. +Packages are a physical container that holds one or several products from a picking, typically used +for outgoing deliveries or internal transfers. Packages can be a reusable or disposable (shipping) +box, and are **not** specific to a product. -On a delivery order, separate the products into different packages by setting the :guilabel:`Done` -quantity to the desired quantity in the first package. Then, click :guilabel:`Put in Pack` to -record the first package. Repeat for each package. +Reusable boxes temporarily hold products during a picking to be brought to either a packing or +shipping area. Disposable boxes are the actual shipping containers (e.g. cardboard boxes, envelopes, +shipping bags, etc). These are used to ship the products out to customers. -.. image:: usage/separate-delivery-into-different-packages.png - :align: center - :alt: Separate delivery into different packages +Multiple items in a sales order (SO) can be separated into different packages to accommodate the +products. For example, an :abbr:`SO (Sales Order)` that has 20 boxes of pencils and 4 boxes of +erasers can be separated into two separate packages, each containing 10 boxes of pencils and 2 boxes +of erasers. + +.. note:: + Products do *not* have to be divided equally. Products can be divided into as many packages that + are needed to accommodate the :abbr:`SO (Sales Order)`. + +In Odoo, the quantity of products in each package needs to be recorded, so there is a full history +for each product, including which package each item is shipped out in. + +To use this method, ensure the :guilabel:`Packages` option is enabled, by navigating to +:menuselection:`Inventory app --> Configuration --> Settings --> Operations`. Click the +:guilabel:`Packages` check box, and then :guilabel:`Save` to activate the feature. + +On a delivery order, assign which package to use by clicking on the :guilabel:`≣ (Detailed +Operations)` icon to the right of each product in the :guilabel:`Operations` tab. -.. image:: usage/delivery-package-details.png +.. image:: usage/detailed-operations-icon.png :align: center - :alt: Separate delivery package details + :alt: Find detailed operations icon to the right on the product line. + +Clicking the :guilabel:`≣ (Detailed Operations)` icon of a product reveals a pop-up window. In this +window, the :guilabel:`Product` name, :guilabel:`Demand`, and :guilabel:`Quantity Done` are clearly +displayed above the customizable product line. + +Here, the warehouse location the product is coming from can be modified, in addition to the +:guilabel:`Source Package` and :guilabel:`Destination Package`, which represents what package(s) the +product(s) will be packaged into. + +Click :guilabel:`Add a line` to include each additional package used. Enter the desired amount in +the :guilabel:`Done` field to specify the amount of products that will go into the +:guilabel:`Destination Package`. + +Multiple packages in a single delivery +-------------------------------------- + +Although a :abbr:`DO (Delivery Order)` is typically associated with a single package, orders can be +split by clicking the :guilabel:`≣ (Detailed Operations)` icon next to the products on an :abbr:`SO +(Sales Order)` line. This opens the :guilabel:`Detailed Operations` window with an editable table to +specify which products are intended for which package. + +.. example:: + To package 10 boxes of pencils with 2 boxes of erasers from the same :abbr:`SO (Sales Order)`, + begin by navigating to the :abbr:`DO (Delivery Order)`. Then, select the :guilabel:`≣ (four + horizontal lines)` icon to the right of the product, `Box of Pencils`. Clicking the icon opens + the :guilabel:`Detailed Operations` window that is used to detail how products, like the 20 `Box + of Pencils`, are packaged. + + Type in `10` under the :guilabel:`Done` field to package 10 products into the + :guilabel:`Destination Package`. To specify the destination package, type the name of an existing + package (such as `PACK0000006`) under the field, :guilabel:`Destination Package`. If the package + does not exist, Odoo displays the :guilabel:`Create` button to create a new package. Click + :guilabel:`Add a line` to assign the remaining products in another package, `PACK0000007`. + + .. image:: usage/add-destination-package.png + :align: center + :alt: Detailed operations pop-up where the amount of product going in a pack can be specified. + + Select :guilabel:`Detailed Operations` on the product line for `Box of Erasers` and similarly set + 2 :guilabel:`Done` products to `PACK0000006` and `PACK0000007` each. + + .. image:: usage/put-in-pack-button.png + :align: center + :alt: Put in pack button to match the done amount matches the demand. + +Once all the products for each line have been entered, click :guilabel:`Confirm` to return to the +:abbr:`DO (Delivery Order)`. + +The :guilabel:`Done` quantity on the :abbr:`DO (Delivery Order)` updates as products are selected +for each package. When the :guilabel:`Done` amount matches the :guilabel:`Demand` amount, click the +:guilabel:`Validate` button to complete the delivery order. + +.. tip:: + The :guilabel:`Put In Pack` button is intended to quickly package all products in the :abbr:`DO + (Delivery Order)` into one new package. The option to rename the package, or modify its contents, + is available in the :guilabel:`Detailed Operations` pop-up. + +Clicking on the :guilabel:`Packages` smart button in the upper-right corner of the delivery order +reveals a separate page, showing all the packages used in that :abbr:`DO (Delivery Order)`. Packagings ========== -Packaging refers to a standard container that holds several unit of a product. For example, cans of -soda can be in a 6-pack, 15-pack, or even a pallet for the packaging. +*Packaging* is product specific, and refers to a disposable container that holds several units of a +specific product. Unlike packages, packagings cannot be reusable, and each specific packaging must +be defined on the individual product form. -In Odoo, packagings are used for indicative purposes on sales/purchase orders and inventory -transfers. The main difference between packagings and units of measure is that packagings are -defined at the product level while UoMs are generic. +For example, different packages for cans of soda can be configured as a 6-pack, a 12-pack, or a case +of 36. Each flavor of soda would need a `6`, `12`, and `36` can packaging configured on the +individual product since packagings are product specific, not generic. -.. image:: usage/product-packaging-examples.png - :align: center - :alt: Different product packaging examples. +Set up packagings +----------------- -.. image:: usage/package-field-on-po.png - :align: center - :alt: Package field on purchase order. +To use packagings, ensure the :guilabel:`Product Packagings` feature is enabled. To do that, +navigate to :menuselection:`Inventory app --> Configuration --> Settings`. Then, under the +:guilabel:`Products` heading, check the box next to :guilabel:`Product Packagings`, and click +:guilabel:`Save`. -.. note:: - Packaging is also useful during product reception. When scanning the barcode of the - packaging, Odoo automatically adds the number of units contained in the packing on the picking. +In Odoo, product packagings are used on sales/purchase orders and inventory transfers. -.. seealso:: - :doc:`uom` +Next, to create packagings, navigate to :menuselection:`Inventory app --> Products --> Products` and +click on the desired product, then click :guilabel:`Edit` on the product page. + +Under the :guilabel:`Inventory` tab, scroll down to the :guilabel:`Packaging` section, and click +:guilabel:`Add a line`. Then, a pop-up window appears, in which the following information for each +packaging should be entered: + +- :guilabel:`Packaging`: name of packaging that appears on sales/purchase orders as a packaging + option for the product +- :guilabel:`Contained quantity`: amount of product in the packaging +- :guilabel:`Barcode`: identifier used with the :ref:`Barcode app ` to + trace the packaging of a product during stock moves or pickings. Leave blank if not in use +- :guilabel:`Company`: indicates the packaging is only available at the selected company. Leave + blank to make the packaging available across all companies. + +.. example:: + Create a packaging type for 6 cans of the product, `Grape Soda`, by naming the + :guilabel:`Packaging` to `6-pack` and setting the :guilabel:`Contained quantity` to `6` in the + pop-up window that appears after clicking on :guilabel:`Add a line`. + + .. image:: usage/create-product-packages.png + :align: center + :alt: Create 6-pack case for product. + +When all the necessary information has been entered, either click :guilabel:`Save & Close` to save +the packaging and return to the product detail form, or :guilabel:`Save & New` to save the packaging +and create another one in a fresh pop-up window. + +.. example:: + View all product packagings in the :guilabel:`Inventory` tab of the product form. + + .. image:: usage/display-product-packaging.png + :align: center + :alt: Show packaging and contained quantities, specified on the product page form in the + Inventory tab. + +View all packagings +------------------- + +To view all packagings that have been created, go to :menuselection:`Inventory app --> Configuration +--> Product Packagings`. Doing so reveals the :guilabel:`Product Packagings` page with a complete +list of all packagings that have been created for all products. Create new packagings by clicking +:guilabel:`Create`. + +.. example:: + Two soda products, `Grape Soda` and `Diet Coke`, have three types of packaging configured. On the + :guilabel:`Product Packagings` page, each product can sold as a `6-Pack` that contains 6 + products, `12-Pack` of 12 products, or a `Case` of 32 products. + + .. image:: usage/packagings.png + :align: center + :alt: List of different packagings for products. + +Apply packagings +---------------- + +When creating a sales order in the :menuselection:`Sales` app, specify the packagings that should be +used for the product(s). The chosen packaging is displayed on the :abbr:`SO (Sales Order)` under the +:guilabel:`Package` field. + +.. example:: + 18 cans of the product, `Grape Soda`, is packed using three 6-pack packagings. + + .. image:: usage/packagings-sales-order.png + :align: center + :alt: Assign packagings on the Sales Order Line. + +.. tip:: + Packaging can be used in conjunction with Odoo :ref:`Barcode `. When + receiving products from suppliers, scanning the packaging barcode automatically adds the number + of units in the packaging to the internal count of the product. diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/add-destination-package.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/add-destination-package.png new file mode 100644 index 0000000000..1eab0c962a Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/add-destination-package.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/create-product-packages.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/create-product-packages.png new file mode 100644 index 0000000000..32a7aa67ca Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/create-product-packages.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/delivery-package-details.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/delivery-package-details.png deleted file mode 100644 index 4803c4e653..0000000000 Binary files a/content/applications/inventory_and_mrp/inventory/management/products/usage/delivery-package-details.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/detailed-operations-icon.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/detailed-operations-icon.png new file mode 100644 index 0000000000..dbab1d765b Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/detailed-operations-icon.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/display-product-packaging.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/display-product-packaging.png new file mode 100644 index 0000000000..75dd44c9d7 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/display-product-packaging.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/package-field-on-po.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/package-field-on-po.png deleted file mode 100644 index 8dffe2206b..0000000000 Binary files a/content/applications/inventory_and_mrp/inventory/management/products/usage/package-field-on-po.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/packagings-sales-order.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/packagings-sales-order.png new file mode 100644 index 0000000000..6d28731069 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/packagings-sales-order.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/packagings.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/packagings.png new file mode 100644 index 0000000000..c366b67704 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/packagings.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/product-packaging-examples.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/product-packaging-examples.png deleted file mode 100644 index f4013a1ee2..0000000000 Binary files a/content/applications/inventory_and_mrp/inventory/management/products/usage/product-packaging-examples.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/purchase-rope-in-cm.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/purchase-rope-in-cm.png new file mode 100644 index 0000000000..06140daf0d Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/purchase-rope-in-cm.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/put-in-pack-button.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/put-in-pack-button.png new file mode 100644 index 0000000000..8e04b6cdab Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/put-in-pack-button.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/receive-rope-in-ft.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/receive-rope-in-ft.png new file mode 100644 index 0000000000..7082747ad3 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/receive-rope-in-ft.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/separate-delivery-into-different-packages.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/separate-delivery-into-different-packages.png deleted file mode 100644 index 1f70446702..0000000000 Binary files a/content/applications/inventory_and_mrp/inventory/management/products/usage/separate-delivery-into-different-packages.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/uom-on-product-form.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/uom-on-product-form.png new file mode 100644 index 0000000000..8b5d6e1958 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/management/products/usage/uom-on-product-form.png differ diff --git a/content/applications/inventory_and_mrp/inventory/management/products/usage/uom-product-setting.png b/content/applications/inventory_and_mrp/inventory/management/products/usage/uom-product-setting.png deleted file mode 100644 index a9df3342c6..0000000000 Binary files a/content/applications/inventory_and_mrp/inventory/management/products/usage/uom-product-setting.png and /dev/null differ