From 55ec59ba241c5326531f9283a1a929f2f2e32f12 Mon Sep 17 00:00:00 2001 From: Felicious Date: Wed, 29 May 2024 02:04:00 +0000 Subject: [PATCH] [IMP] inventory: reserve full vs partial packaging closes odoo/documentation#9729 X-original-commit: dc0dec9d65e1033f0a0fb8cc38c0c69b3151b668 Signed-off-by: Felicia Kuan (feku) Signed-off-by: Samuel Lieber (sali) Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com> Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com> --- .../product_tracking/packaging.rst | 56 +++++++++++++++--- .../packaging/reserve-packaging.png | Bin 0 -> 6587 bytes 2 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 content/applications/inventory_and_mrp/inventory/product_management/product_tracking/packaging/reserve-packaging.png diff --git a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/packaging.rst b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/packaging.rst index 8ab4e1945..4d212aa6b 100644 --- a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/packaging.rst +++ b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/packaging.rst @@ -3,11 +3,16 @@ Packaging ========= In Odoo *Inventory*, *packaging* refers to disposable containers holding multiple units of a -specific product. Each specific packaging **must** be defined on the individual product form. +specific product. -For example, different packages for cans of soda, such as a 6-pack, a 12-pack, or a case of 36, need -to be configured on the individual product form. This is because packagings are product specific — -**not** generic. +For example, different packages for cans of soda, such as a 6-pack, a 12-pack, or a case of 36, +**must** be configured on the individual product form. This is because packagings are product +specific, not generic. + +.. 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. Configuration ============= @@ -20,6 +25,8 @@ under the :guilabel:`Products` heading, enable the :guilabel:`Product Packagings :align: center :alt: Enable packagings by selecting "Product Packagings". +.. _inventory/product_management/packaging-setup: + Create packaging ================ @@ -82,6 +89,43 @@ list of all packagings that have been created for all products. Create new packa :align: center :alt: List of different packagings for products. +Partial reservation +------------------- + +After :ref:`completing the packaging setup `, +packagings can be reserved in full or partial quantities for outgoing shipments. Partial packaging +flexibility expedites order fulfillment by allowing the immediate shipment of available items, while +awaiting the rest. + +To configure packaging reservation methods, go to :menuselection:`Inventory app --> Configuration +--> Product Categories`. Then, click :guilabel:`New`, or select the desired product category. + +On the product category's form, in the :guilabel:`Logistics` section, :guilabel:`Reserve Packagings` +can be set to :guilabel:`Reserve Only Full Packagings` or :guilabel:`Reserve Partial Packagings`. + +.. important:: + To see the :guilabel:`Reserve Packaging` field, the :guilabel:`Product Packaging` feature + **must** be enabled. To enable this feature, go to :menuselection:`Inventory app --> + Configuration --> Settings`, scroll to the :guilabel:`Products` section, tick the + :guilabel:`Product Packagings` checkbox, and click :guilabel:`Save`. + +.. image:: packaging/reserve-packaging.png + :align: center + :alt: Show Reserve Packagings field on the product categories page. + +.. example:: + To better evaluate the options based on business needs, consider the following example: + + - a product is sold in twelve units per packaging. + - an order demands two packagings. + - there are only twenty-two units in stock. + + When :guilabel:`Reserve Only Full Packagings` is selected, only twelve units are reserved for the + order. + + Conversely, when :guilabel:`Reserve Partial Packagings` is selected, twenty-two units are + reserved for the order. + Apply packagings ================ @@ -96,8 +140,4 @@ used for the product. The chosen packaging is displayed on the :abbr:`SO (Sales :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/product_management/product_tracking/packaging/reserve-packaging.png b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/packaging/reserve-packaging.png new file mode 100644 index 0000000000000000000000000000000000000000..7f22ea4fcf655bab5e03002e4e94b079962e3fd0 GIT binary patch literal 6587 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 xdL8rNe`d%nX}8KhOHyW|idOia)z!;$=}MO