|
1 |
| -==================================================================== |
2 |
| -When Should you Use Packages, Units of Measure or Special Packaging? |
3 |
| -==================================================================== |
| 1 | +========================================== |
| 2 | +Units of measure, packages, and packagings |
| 3 | +========================================== |
| 4 | + |
| 5 | +In Odoo, there are a variety of ways to specify the amount of products being bought, stocked, and |
| 6 | +sold. *Units of measure*, *packages*, and *packagings* are all available to streamline inventory |
| 7 | +flows, allowing for a variety of configurations for products as they enter and leave the warehouse. |
4 | 8 |
|
5 | 9 | Units of measure
|
6 | 10 | ================
|
7 | 11 |
|
8 |
| -Units of measure specify the unit used to handle a product. In Odoo, you have the possibility to |
9 |
| -specify the unit of measure in which you manage your stock and the one which is used when |
10 |
| -purchasing the product to your supplier. |
| 12 | +A *unit of measure (UoM)* refers to any of the different standards used to measure and handle a |
| 13 | +quanitifiable amount of products, such a units, weight, time, or size. Different :abbr:`UoMs (Units |
| 14 | +of Measure)` for weight, for example, can be kilos, pounds, ounces, grams, and so on. |
| 15 | + |
| 16 | +In Odoo, stock management and purchasing from suppliers are streamlined by specifying different |
| 17 | +:abbr:`UoMs (Units of Measure)` for both buying and selling products. |
11 | 18 |
|
12 |
| -.. image:: usage/uom-product-setting.png |
| 19 | +.. image:: usage/uom-on-product-form.png |
13 | 20 | :align: center
|
14 |
| - :alt: Specify unit of measure for handling a product vs. when it's purchased. |
| 21 | + :alt: Specify unit of measure for selling a product vs purchasing. |
| 22 | + |
| 23 | +Once a product has a default :guilabel:`Unit of Measure` and :guilabel:`Purchase Unit of Measure` |
| 24 | +set on the product form, Odoo automatically converts the different units in the product's |
| 25 | +purchase/sales orders and the corresponding delivery orders/receipts. |
| 26 | + |
| 27 | +The only condition is that all of the units have to be in the *same category* (unit, weight, volume, |
| 28 | +length, etc.). |
| 29 | + |
| 30 | +.. example:: |
| 31 | + On the product form for `Rope`, the following fields are set as: |
| 32 | + |
| 33 | + - :guilabel:`Unit of Measure` in `ft` (feet), and |
| 34 | + - :guilabel:`Purchase Unit of Measure` in `cm` (centimeters). |
| 35 | + |
| 36 | + Because the vendor sells rope in `cm`, the purchase :guilabel:`UoM` is used to represent the |
| 37 | + quantity on the :abbr:`PO (Purchase Order)`, which is also in centimeters. |
15 | 38 |
|
16 |
| -Once a product has a :guilabel:`Unit of Measure` and a :guilabel:`Purchase UoM` set on the product |
17 |
| -form, Odoo can automatically convert the different units in the product's purchase/sales orders and |
18 |
| -the orders' respective delivery orders/receipts. The only condition is that all the units have to |
19 |
| -be in the *same category* (Unit, Weight, Volume, Length, etc.). |
| 39 | + .. image:: usage/purchase-rope-in-cm.png |
| 40 | + :align: center |
| 41 | + :alt: Display purchase order for the product, rope, in centimeters. |
20 | 42 |
|
21 |
| -For example, a product can have its :guilabel:`Unit of Measure` set to `feet (ft)` and its |
22 |
| -:guilabel:`Purchase UoM` set to `centimeters (cm)`. When a purchase order (PO) is created for that |
23 |
| -product, it will list the quantity in centimeters. Then, when the PO is confirmed, Odoo |
24 |
| -automatically generates a receipt and converts the centimeters to feet. The receipt will list the |
25 |
| -quantity in feet. |
| 43 | +After confirming the :abbr:`PO (Purchase Order)`, the quantity of product (found under the now |
| 44 | +visible :guilabel:`Demand` column) is converted from the purchase :abbr:`UoM (Unit of Measure)` to |
| 45 | +the :guilabel:`Unit of Measure`. Then, when the product is received by clicking the |
| 46 | +:guilabel:`Validate` button, the quantity in :guilabel:`Done` is automatically adjusted to match the |
| 47 | +:guilabel:`Demand` column. |
| 48 | + |
| 49 | +.. example:: |
| 50 | + On the *receipt* for `Rope`, the quantities are automatically converted from `500 cm` that was |
| 51 | + requested on the purchase order, to `16.40 ft` to match the internal/stock :guilabel:`Unit of |
| 52 | + Measure` value. |
| 53 | + |
| 54 | + .. image:: usage/receive-rope-in-ft.png |
| 55 | + :align: center |
| 56 | + :alt: Rope quantity is converted from cm to ft during warehouse reception. |
| 57 | + |
| 58 | +.. seealso:: |
| 59 | + :ref:`Use Different Units of Measure <inventory/management/products/units_of_measure>` |
26 | 60 |
|
27 | 61 | Packages
|
28 | 62 | ========
|
29 | 63 |
|
30 |
| -A package refers to the physical container that holds one or several products from a picking. For |
31 |
| -example, when a product is ready for delivery, its quantities can be separated into two different |
32 |
| -packages. In Odoo, the quantity of products in each package can be recorded in the database. Make |
33 |
| -sure the :guilabel:`Packages` option is enabled in :menuselection:`Inventory --> Configuration --> |
34 |
| -Settings --> Operations`. |
| 64 | +Packages are a physical container that holds one or several products from a picking, typically used |
| 65 | +for outgoing deliveries or internal transfers. Packages can be a reusable or disposable (shipping) |
| 66 | +box, and are **not** specific to a product. |
35 | 67 |
|
36 |
| -On a delivery order, separate the products into different packages by setting the :guilabel:`Done` |
37 |
| -quantity to the desired quantity in the first package. Then, click :guilabel:`Put in Pack` to |
38 |
| -record the first package. Repeat for each package. |
| 68 | +Reusable boxes temporarily hold products during a picking to be brought to either a packing or |
| 69 | +shipping area. Disposable boxes are the actual shipping containers (e.g. cardboard boxes, envelopes, |
| 70 | +shipping bags, etc). These are used to ship the products out to customers. |
39 | 71 |
|
40 |
| -.. image:: usage/separate-delivery-into-different-packages.png |
41 |
| - :align: center |
42 |
| - :alt: Separate delivery into different packages |
| 72 | +Multiple items in a sales order (SO) can be separated into different packages to accommodate the |
| 73 | +products. For example, an :abbr:`SO (Sales Order)` that has 20 boxes of pencils and 4 boxes of |
| 74 | +erasers can be separated into two separate packages, each containing 10 boxes of pencils and 2 boxes |
| 75 | +of erasers. |
| 76 | + |
| 77 | +.. note:: |
| 78 | + Products do *not* have to be divided equally. Products can be divided into as many packages that |
| 79 | + are needed to accommodate the :abbr:`SO (Sales Order)`. |
| 80 | + |
| 81 | +In Odoo, the quantity of products in each package needs to be recorded, so there is a full history |
| 82 | +for each product, including which package each item is shipped out in. |
| 83 | + |
| 84 | +To use this method, ensure the :guilabel:`Packages` option is enabled, by navigating to |
| 85 | +:menuselection:`Inventory app --> Configuration --> Settings --> Operations`. Click the |
| 86 | +:guilabel:`Packages` check box, and then :guilabel:`Save` to activate the feature. |
| 87 | + |
| 88 | +On a delivery order, assign which package to use by clicking on the :guilabel:`≣ (Detailed |
| 89 | +Operations)` icon to the right of each product in the :guilabel:`Operations` tab. |
43 | 90 |
|
44 |
| -.. image:: usage/delivery-package-details.png |
| 91 | +.. image:: usage/detailed-operations-icon.png |
45 | 92 | :align: center
|
46 |
| - :alt: Separate delivery package details |
| 93 | + :alt: Find detailed operations icon to the right on the product line. |
| 94 | + |
| 95 | +Clicking the :guilabel:`≣ (Detailed Operations)` icon of a product reveals a pop-up window. In this |
| 96 | +window, the :guilabel:`Product` name, :guilabel:`Demand`, and :guilabel:`Quantity Done` are clearly |
| 97 | +displayed above the customizable product line. |
| 98 | + |
| 99 | +Here, the warehouse location the product is coming from can be modified, in addition to the |
| 100 | +:guilabel:`Source Package` and :guilabel:`Destination Package`, which represents what package(s) the |
| 101 | +product(s) will be packaged into. |
| 102 | + |
| 103 | +Click :guilabel:`Add a line` to include each additional package used. Enter the desired amount in |
| 104 | +the :guilabel:`Done` field to specify the amount of products that will go into the |
| 105 | +:guilabel:`Destination Package`. |
| 106 | + |
| 107 | +Multiple packages in a single delivery |
| 108 | +-------------------------------------- |
| 109 | + |
| 110 | +Although a :abbr:`DO (Delivery Order)` is typically associated with a single package, orders can be |
| 111 | +split by clicking the :guilabel:`≣ (Detailed Operations)` icon next to the products on an :abbr:`SO |
| 112 | +(Sales Order)` line. This opens the :guilabel:`Detailed Operations` window with an editable table to |
| 113 | +specify which products are intended for which package. |
| 114 | + |
| 115 | +.. example:: |
| 116 | + To package 10 boxes of pencils with 2 boxes of erasers from the same :abbr:`SO (Sales Order)`, |
| 117 | + begin by navigating to the :abbr:`DO (Delivery Order)`. Then, select the :guilabel:`≣ (four |
| 118 | + horizontal lines)` icon to the right of the product, `Box of Pencils`. Clicking the icon opens |
| 119 | + the :guilabel:`Detailed Operations` window that is used to detail how products, like the 20 `Box |
| 120 | + of Pencils`, are packaged. |
| 121 | + |
| 122 | + Type in `10` under the :guilabel:`Done` field to package 10 products into the |
| 123 | + :guilabel:`Destination Package`. To specify the destination package, type the name of an existing |
| 124 | + package (such as `PACK0000006`) under the field, :guilabel:`Destination Package`. If the package |
| 125 | + does not exist, Odoo displays the :guilabel:`Create` button to create a new package. Click |
| 126 | + :guilabel:`Add a line` to assign the remaining products in another package, `PACK0000007`. |
| 127 | + |
| 128 | + .. image:: usage/add-destination-package.png |
| 129 | + :align: center |
| 130 | + :alt: Detailed operations pop-up where the amount of product going in a pack can be specified. |
| 131 | + |
| 132 | + Select :guilabel:`Detailed Operations` on the product line for `Box of Erasers` and similarly set |
| 133 | + 2 :guilabel:`Done` products to `PACK0000006` and `PACK0000007` each. |
| 134 | + |
| 135 | + .. image:: usage/put-in-pack-button.png |
| 136 | + :align: center |
| 137 | + :alt: Put in pack button to match the done amount matches the demand. |
| 138 | + |
| 139 | +Once all the products for each line have been entered, click :guilabel:`Confirm` to return to the |
| 140 | +:abbr:`DO (Delivery Order)`. |
| 141 | + |
| 142 | +The :guilabel:`Done` quantity on the :abbr:`DO (Delivery Order)` updates as products are selected |
| 143 | +for each package. When the :guilabel:`Done` amount matches the :guilabel:`Demand` amount, click the |
| 144 | +:guilabel:`Validate` button to complete the delivery order. |
| 145 | + |
| 146 | +.. tip:: |
| 147 | + The :guilabel:`Put In Pack` button is intended to quickly package all products in the :abbr:`DO |
| 148 | + (Delivery Order)` into one new package. The option to rename the package, or modify its contents, |
| 149 | + is available in the :guilabel:`Detailed Operations` pop-up. |
| 150 | + |
| 151 | +Clicking on the :guilabel:`Packages` smart button in the upper-right corner of the delivery order |
| 152 | +reveals a separate page, showing all the packages used in that :abbr:`DO (Delivery Order)`. |
47 | 153 |
|
48 | 154 | Packagings
|
49 | 155 | ==========
|
50 | 156 |
|
51 |
| -Packaging refers to a standard container that holds several unit of a product. For example, cans of |
52 |
| -soda can be in a 6-pack, 15-pack, or even a pallet for the packaging. |
| 157 | +*Packaging* is product specific, and refers to a disposable container that holds several units of a |
| 158 | +specific product. Unlike packages, packagings cannot be reusable, and each specific packaging must |
| 159 | +be defined on the individual product form. |
53 | 160 |
|
54 |
| -In Odoo, packagings are used for indicative purposes on sales/purchase orders and inventory |
55 |
| -transfers. The main difference between packagings and units of measure is that packagings are |
56 |
| -defined at the product level while UoMs are generic. |
| 161 | +For example, different packages for cans of soda can be configured as a 6-pack, a 12-pack, or a case |
| 162 | +of 36. Each flavor of soda would need a `6`, `12`, and `36` can packaging configured on the |
| 163 | +individual product since packagings are product specific, not generic. |
57 | 164 |
|
58 |
| -.. image:: usage/product-packaging-examples.png |
59 |
| - :align: center |
60 |
| - :alt: Different product packaging examples. |
| 165 | +Set up packagings |
| 166 | +----------------- |
61 | 167 |
|
62 |
| -.. image:: usage/package-field-on-po.png |
63 |
| - :align: center |
64 |
| - :alt: Package field on purchase order. |
| 168 | +To use packagings, ensure the :guilabel:`Product Packagings` feature is enabled. To do that, |
| 169 | +navigate to :menuselection:`Inventory app --> Configuration --> Settings`. Then, under the |
| 170 | +:guilabel:`Products` heading, check the box next to :guilabel:`Product Packagings`, and click |
| 171 | +:guilabel:`Save`. |
65 | 172 |
|
66 |
| -.. note:: |
67 |
| - Packaging is also useful during product reception. When scanning the barcode of the |
68 |
| - packaging, Odoo automatically adds the number of units contained in the packing on the picking. |
| 173 | +In Odoo, product packagings are used on sales/purchase orders and inventory transfers. |
69 | 174 |
|
70 |
| -.. seealso:: |
71 |
| - :doc:`uom` |
| 175 | +Next, to create packagings, navigate to :menuselection:`Inventory app --> Products --> Products` and |
| 176 | +click on the desired product, then click :guilabel:`Edit` on the product page. |
| 177 | + |
| 178 | +Under the :guilabel:`Inventory` tab, scroll down to the :guilabel:`Packaging` section, and click |
| 179 | +:guilabel:`Add a line`. Then, a pop-up window appears, in which the following information for each |
| 180 | +packaging should be entered: |
| 181 | + |
| 182 | +- :guilabel:`Packaging`: name of packaging that appears on sales/purchase orders as a packaging |
| 183 | + option for the product |
| 184 | +- :guilabel:`Contained quantity`: amount of product in the packaging |
| 185 | +- :guilabel:`Barcode`: identifier used with the :ref:`Barcode app <barcode/operations/intro>` to |
| 186 | + trace the packaging of a product during stock moves or pickings. Leave blank if not in use |
| 187 | +- :guilabel:`Company`: indicates the packaging is only available at the selected company. Leave |
| 188 | + blank to make the packaging available across all companies. |
| 189 | + |
| 190 | +.. example:: |
| 191 | + Create a packaging type for 6 cans of the product, `Grape Soda`, by naming the |
| 192 | + :guilabel:`Packaging` to `6-pack` and setting the :guilabel:`Contained quantity` to `6` in the |
| 193 | + pop-up window that appears after clicking on :guilabel:`Add a line`. |
| 194 | + |
| 195 | + .. image:: usage/create-product-packages.png |
| 196 | + :align: center |
| 197 | + :alt: Create 6-pack case for product. |
| 198 | + |
| 199 | +When all the necessary information has been entered, either click :guilabel:`Save & Close` to save |
| 200 | +the packaging and return to the product detail form, or :guilabel:`Save & New` to save the packaging |
| 201 | +and create another one in a fresh pop-up window. |
| 202 | + |
| 203 | +.. example:: |
| 204 | + View all product packagings in the :guilabel:`Inventory` tab of the product form. |
| 205 | + |
| 206 | + .. image:: usage/display-product-packaging.png |
| 207 | + :align: center |
| 208 | + :alt: Show packaging and contained quantities, specified on the product page form in the |
| 209 | + Inventory tab. |
| 210 | + |
| 211 | +View all packagings |
| 212 | +------------------- |
| 213 | + |
| 214 | +To view all packagings that have been created, go to :menuselection:`Inventory app --> Configuration |
| 215 | +--> Product Packagings`. Doing so reveals the :guilabel:`Product Packagings` page with a complete |
| 216 | +list of all packagings that have been created for all products. Create new packagings by clicking |
| 217 | +:guilabel:`Create`. |
| 218 | + |
| 219 | +.. example:: |
| 220 | + Two soda products, `Grape Soda` and `Diet Coke`, have three types of packaging configured. On the |
| 221 | + :guilabel:`Product Packagings` page, each product can sold as a `6-Pack` that contains 6 |
| 222 | + products, `12-Pack` of 12 products, or a `Case` of 32 products. |
| 223 | + |
| 224 | + .. image:: usage/packagings.png |
| 225 | + :align: center |
| 226 | + :alt: List of different packagings for products. |
| 227 | + |
| 228 | +Apply packagings |
| 229 | +---------------- |
| 230 | + |
| 231 | +When creating a sales order in the :menuselection:`Sales` app, specify the packagings that should be |
| 232 | +used for the product(s). The chosen packaging is displayed on the :abbr:`SO (Sales Order)` under the |
| 233 | +:guilabel:`Package` field. |
| 234 | + |
| 235 | +.. example:: |
| 236 | + 18 cans of the product, `Grape Soda`, is packed using three 6-pack packagings. |
| 237 | + |
| 238 | + .. image:: usage/packagings-sales-order.png |
| 239 | + :align: center |
| 240 | + :alt: Assign packagings on the Sales Order Line. |
| 241 | + |
| 242 | +.. tip:: |
| 243 | + Packaging can be used in conjunction with Odoo :ref:`Barcode <inventory/barcode/software>`. When |
| 244 | + receiving products from suppliers, scanning the packaging barcode automatically adds the number |
| 245 | + of units in the packaging to the internal count of the product. |
0 commit comments