diff --git a/content/applications/sales/sales/products_prices/products/variants.rst b/content/applications/sales/sales/products_prices/products/variants.rst index 7c760f653..165b0e53e 100644 --- a/content/applications/sales/sales/products_prices/products/variants.rst +++ b/content/applications/sales/sales/products_prices/products/variants.rst @@ -2,186 +2,286 @@ Product variants ================ -Product variants are used to give single products a variety of different characteristics, such as -size and color. Products using variants can be managed at the product template level (for all -attributes and variants of that product), and/or at the variant level (for individual variants). +Product variants are used to give single products a variety of different characteristics and options +for customers to choose from, such as size, style, or color, just to name a few. -As an example, a company selling t-shirts may have the following product: +Products variants can be managed via their individual product template, or by navigating to either +the :guilabel:`Product Variants` or :guilabel:`Attributes` page. All of these options are located +within the Odoo *Sales* application. -- T-shirt +.. example:: + An apparel company has the following variant breakdown for one their best-selling t-shirts: - - Color: Blue, Red, White, Black - - Size: S, M, L, XL, XXL + - Unisex Classic Tee -In this example, the **T-Shirt** is the product template, and **T-Shirt, S, Blue** is a product -variant. **Color** and **size** are the attributes. **S** and **Blue** are values. + - Color: Blue, Red, White, Black + - Size: S, M, L, XL, XXL -The above example has a total of 20 different product variants (5 sizes x 4 colors). Each one of -these has its own inventory, sales, etc. + Here, the **T-shirt** is the product template, and **T-shirt: Blue, S** is a specific product + variant. + + **Color** and **Size** are *attributes*, and the corresponding options (like **Blue** and **S**) + are *values*. + + In this instance, there is a total of twenty different product variants: four **Color** options + multiplied by five **Size** options. Each variant has its own inventory count, sales totals, and + other similar records in Odoo. + +.. seealso:: + :doc:`/applications/websites/ecommerce/managing_products/variants` Configuration ============= -Activating product variants ---------------------------- +To use product variants, the *Variants* setting **must** be activated in the Odoo *Sales* +application. -To use product variants, go to :menuselection:`Sales --> Configuration --> Settings --> -Product Catalog`, and enable the :guilabel:`Variants` feature. Finally, click :guilabel:`Save` to -apply the setting. +To do that, go to :menuselection:`Sales app --> Configuration --> Settings`, and locate the +:guilabel:`Product Catalog` section at the top of the page. + +In that section, check the box to enable the :guilabel:`Variants` feature. .. image:: variants/activating-variants-setting.png :align: center - :alt: Activating product variants. + :alt: Activating product variants on the Settings page of the Odoo Sales application. -Creating attributes -------------------- +Then, click :guilabel:`Save` at the top of the :guilabel:`Settings` page. -Attributes need to be created before product variants can be set up. Attributes can be accessed -via :menuselection:`Sales --> Configuration --> Products --> Attributes`. +Attributes +========== + +Before product variants can be set up, attributes **must** be created. To create, manage, and modify +attributes, navigate to :menuselection:`Sales app --> Configuration --> Attributes`. .. note:: The order of attributes on the :guilabel:`Attributes` page dictates how they appear on the :guilabel:`Product Configurator`, :guilabel:`Point of Sale` dashboard, and :guilabel:`eCommerce` pages. -To create a new attribute, click :guilabel:`Create`. First, choose an attribute name, such as -"Color" or "Size." +To create a new attribute from the :guilabel:`Attributes` page, click :guilabel:`New`. Doing so +reveals a blank attributes form that can be customized and configured in a number of ways. .. image:: variants/attribute-creation.png :align: center - :alt: Attribute creation window. + :alt: A blank attribute creation form in the Odoo Sales application. -Then, select a :guilabel:`Display Type`, which determines how this product will be shown on the -:guilabel:`eCommerce` page, :guilabel:`Point of Sale` dashboard, and :guilabel:`Product -Configurator`. +First, create an :guilabel:`Attribute Name`, such as `Color` or `Size`. -- :guilabel:`Radio`: options appear in a bullet style list. -- :guilabel:`Select`: options appear in a dropdown menu. -- :guilabel:`Color`: options appear as small colored squares, which reflect any HTML color codes - set. +Next, in the optional :guilabel:`Category` field, select a category from a drop-down menu to group +similar attributes under the same section for added specificity and organization. + +.. note:: + To view the details related to the attribute category selected, click the internal link + :guilabel:`➡️ (arrow)` icon to the far-right of the :guilabel:`Category` field. Doing so reveals + that attribute category's detail form. + + .. image:: variants/attribute-category-internal-link.png + :align: center + :alt: A standard attribute category detail page accessible via its internal link arrow icon. + + Here, the :guilabel:`Category Name` and :guilabel:`Sequence` is displayed at the top. Followed by + :guilabel:`Related Attributes` associated with the category. These attributes can be + dragged-and-dropped into a desirable order of priority. + + Attributes can be directly added to the category, as well, by clicking :guilabel:`Add a line`. + +.. tip:: + To create an attribute category directly from this field, start typing the name of the new + category, then select either :guilabel:`Create` or :guilabel:`Create and edit...` from the + drop-down menu that appears. + + Clicking :guilabel:`Create` creates the category, which can be modified later. Clicking + :guilabel:`Create and edit...` creates the category and reveals a :guilabel:`Create Category` + pop-up window, in which the new attribute category can be configured and customized. + +Beneath the :guilabel:`Category` field are the :guilabel:`Display Type` options. The +:guilabel:`Display Type` determines how this product is shown on the online store, :guilabel:`Point +of Sale` dashboard, and :guilabel:`Product Configurator`. + +The :guilabel:`Display Type` options are: + +- :guilabel:`Radio`: options appear in a bullet-style list on the product page of the online store. +- :guilabel:`Pills`: options appear as selectable buttons on the product page of the online store. +- :guilabel:`Select`: options appear in a drop-down menu on the product page of the online store. +- :guilabel:`Color`: options appear as small, colored squares, which reflect any HTML color codes + set, on the product page of the online store. .. image:: variants/display-types.png :align: center - :alt: Display Types on Product Configurator. + :alt: Display Types on Product Configurator on the online store in Odoo. -The :guilabel:`Variants Creation Mode` informs Odoo when to automatically create a new variant once -an attribute is added to a product. +The :guilabel:`Variants Creation Mode` field informs Odoo when to automatically create a new variant +once an attribute is added to a product. - :guilabel:`Instantly`: creates all possible variants as soon as attributes and values are added to a product template. -- :guilabel:`Dynamically`: creates variants only when corresponding attributes and values are added - to a sales order. -- :guilabel:`Never`: never automatically creates variants. +- :guilabel:`Dynamically`: creates variants **only** when corresponding attributes and values are + added to a sales order. +- :guilabel:`Never (option)`: never automatically creates variants. -.. note:: +.. warning:: Once added to a product, an attribute's :guilabel:`Variants Creation Mode` cannot be edited. -Values should be added to an attribute before saving, but more values can be added at any time, -if needed. To add a value, click :guilabel:`Add a line`. From there, you can: +Lastly, the :guilabel:`eCommerce Filter Visibility` field determines whether these attribute options +are visible to the customer on the front-end, as they shop on the online store. -#. Type in the value's name. -#. Check a box to indicate whether or not the value is custom (i.e. the customer provides unique - specifications). -#. Specifically for colors, add an HTML color code to make it even easier for salespeople and - customers to know what they're selecting. +- :guilabel:`Visible`: the attribute values are visible to customers on the front-end. +- :guilabel:`Hidden`: the attribute values are hidden from customers on the front-end. -A color code can be selected either by dragging the slider around or by entering a specific HTML -color code (e.g. #FF0077). +Attribute values +---------------- -.. image:: variants/picking-a-color.png - :align: center - :alt: Selecting a color. +Attribute values should be added to the :guilabel:`Attribute Values` tab. Values can be added to an +attribute at any time, if needed. -Finally, click :guilabel:`Save` to finish creating the attribute. +To add a value, click :guilabel:`Add a line` in the :guilabel:`Attribute Values` tab. + +Then, enter the name of the value in the :guilabel:`Value` column. Next, check the box in the +:guilabel:`Is custom value` column, if the value is custom (i.e. the customer gets to provide unique +specifications that are specific to this particular value). + +.. note:: + If the :guilabel:`Display Type` - :guilabel:`Color` option is selected, the option to add an HTML + color code will appear to the far-right of the value line, to make it easier for salespeople and + customers to know exactly what color option they're choosing. + + .. image:: variants/attribute-value-add-a-line.png + :align: center + :alt: Attribute values tab when add a line is clicked, showing the custom columns. + + To choose a color, click the blank circle in the :guilabel:`Color` column, which reveals an HTML + color selector pop-up window. + + .. image:: variants/picking-a-color.png + :align: center + :alt: Selecting a color from the HTML color pop-up window that appears on attribute form. + + In this pop-up window, select a specific color by dragging the color slider to a particular hue, + and clicking on the color portion directly on the color gradient window. + + Or, choose a specific color by clicking the *dropper* icon, and selecting a desired color that's + currently clickable on the screen. .. tip:: Attributes can also be created directly from the product template by adding a new line and typing the name into the :guilabel:`Variants` tab. -After an attribute is added to a product, a new tab appears on the attribute's page called -:guilabel:`Related Products`. This tab lists every product in the database that is currently using -the attribute. +Once an attribute is added to a product, that product is listed and accessible, via the attribute's +:guilabel:`Related Products` smart button. That button lists every product in the database currently +using that attribute. -Creating product variants -------------------------- +Product variants +================ -After creating an attribute, use the attribute to create a product variant by going to -:menuselection:`Sales --> Products --> Products`. Then, select an existing product and click -:guilabel:`Edit`, or create a new product by clicking :guilabel:`Create`. +Once an attribute is created, use the attribute (and its values) to create a product variant. To do +that, go to :menuselection:`Sales app --> Products --> Products`, and select an existing product to +view that desired product's form. Or, click :guilabel:`Create` to create a new product, to which a +product variant can be added. -The :guilabel:`Variants` smart button at the top of the product template indicates the number of -currently configured variants on the product. +On the product form, click the :guilabel:`Attributes \& Variants` tab to view, manage, and modify +attributes and values for the product. -To add a new variant, click on the :guilabel:`Variants` tab, then click on :guilabel:`Add a line` -to add any attributes and values. When all the attributes and values have been added, click -:guilabel:`Save`. +.. image:: variants/attributes-values-tab.png + :align: center + :alt: The attributes and values tab on a typical product form in Odoo Sales. + +To add an attribute to a product, and subsequent attribute values, click :guilabel:`Add a line` in +the :guilabel:`Attributes \& Variants` tab. Then, choose the desired attribute from the drop-down +menu that appears. + +.. tip:: + Attributes can be created directly from the :guilabel:`Attributes \& Variants` tab of a product + form. To do that, start typing the name of the new attribute in the blank field, and select + either :guilabel:`Create` or :guilabel:`Create and edit...` from the mini drop-down menu that + appears. + + Clicking :guilabel:`Create` creates the attribute, which can be customized later. Clicking + :guilabel:`Create and edit...` creates the attribute, and a :guilabel:`Create Attribute` pop-up + form appears. In the pop-up form, proceed to modify the attribute in a number of ways. + +Once an attribute is selected in the :guilabel:`Attribute` column, proceed to select the specific +attribute values to apply to the product, via the drop-down menu available in the :guilabel:`Values` +column. + +.. note:: + There is no limit to how many values can be added. .. tip:: Similar product variant creation processes are accessible through the Purchase, Inventory, and eCommerce applications. -Managing product exclusions ---------------------------- +Configure variants +------------------ -The following examples are all based on a product template that has two attributes: +To the far-right of the attribute line is a :guilabel:`Configure` button. When clicked, Odoo reveals +a separate page showcasing those specific :guilabel:`Product Variant Values`. -- T-Shirt - - - Color: Blue, Red, White - - Size: S, M, L, XL, XXL - -With the above product template, there are 15 different t-shirt variants in three different colors -and five different sizes. If the white t-shirts are not available in the XXL size, then that -variant can be deactivated. - -To deactivate a particular product variant, go to :menuselection:`Sales --> Products --> Products` -and select the relevant product. Next, click on the :guilabel:`Configure` button next to the -relevant attribute value. Then select the relevant value (in this example, the :guilabel:`White -Color` attribute), and then click on :guilabel:`Edit`. - -In the :guilabel:`Exclude for` section, click :guilabel:`Add a line` and select any product(s) -and/or specific attribute values that are currently unavailable. Finally, click :guilabel:`Save` to -apply the setting, and Odoo will automatically show the product variant as unavailable on the -eCommerce page. - -.. image:: variants/attributes-exclusions.png +.. image:: variants/product-variant-values.png :align: center - :alt: Excluding attributes. + :alt: The Product Variant Values page accessible via the Configure button on a product form. -Setting a price per variant ---------------------------- +Here, the specific :guilabel:`Value` name, :guilabel:`HTML Color Index` (if applicable), and +:guilabel:`Value Price Extra` are viewable. -Extra costs can be added to a product's standard price for specific product variants. +.. note:: + The :guilabel:`Value Price Extra` represents the increase in the sales price if the attribute is + selected. -To do this, open :menuselection:`Sales --> Products --> Products`, and click on the relevant -product. Next, click on :guilabel:`Configure Variants` to access the list of product variant -values. +When a value is clicked on the :guilabel:`Product Variant Values` page, Odoo reveals a separate +page, detailing that value's related details. -Then, click on a variant value, and :guilabel:`Edit`. In the :guilabel:`Value Price Extra` field, -type in the additional cost for this particular value. This amount is added to the standard price. -Finally, click :guilabel:`Save` to apply the extra price to the value. - -.. image:: variants/value-price-extra.png +.. image:: variants/product-variant-value-page.png :align: center - :alt: Value Price Extra setting. + :alt: A Product Variant Values page accessible via the Product Variants Values general page. + +On the specific product variant detail page, the :guilabel:`Value` and :guilabel:`Value Price Extra` +fields can be found, along with an :guilabel:`Exclude for` field. + +In the :guilabel:`Exclude for` field, different :guilabel:`Product Templates` and specific +:guilabel:`Attribute Values` can be added. When added, this specific attribute value will be +excluded from those specific products. + +Variants smart button +--------------------- + +When a product has attributes and variants configured in its :guilabel:`Attributes \& Variants` tab, +a :guilabel:`Variants` smart button appears at the top of the product form. The :guilabel:`Variants` +smart button indicates how many variants are currently configured for that specific product. + +.. image:: variants/variants-smart-button.png + :align: center + :alt: The variants smart button at the top of the product form in Odoo Sales. + +When the :guilabel:`Variants` smart button is clicked, Odoo reveals a separate page showcasing all +the specific product variant combinations configured for that specific product. + +.. image:: variants/variants-page.png + :align: center + :alt: The variants page accessible via the variants smart button on the product form in Odoo. Impact of variants ================== -- :guilabel:`Barcode`: barcodes are associated with each variant instead of the product template. - Each individual variant can have its own unique barcode/SKU. +In addition to offering more detailed product options to customers, product variants have their own +impacts that can be taken advantage of throughout the Odoo database. +- :guilabel:`Barcode`: barcodes are associated with each variant, instead of the product template. + Each individual variant can have its own unique barcode/SKU. - :guilabel:`Price`: every product variant has its own public price, which is the sum of the - product template price and any extra charges for particular attributes. For example, a red - shirt's cost is $23 because the shirt's template price is $20, plus an additional $3 for the red - color variant. Pricelist rules can be configured to apply to the product template or to the - variant. + product template price *and* any extra charges for particular attributes. + + .. example:: + A red shirt's sales price is $23 -- because the shirt's template price is $20, plus an additional + $3 for the red color variant. Pricelist rules can be configured to apply to the product template, + or to the variant. - :guilabel:`Inventory`: inventory is counted for each individual product variant. On the product template form, the inventory reflects the sum of all variants, but the actual inventory is computed by individual variants. - - :guilabel:`Picture`: each product variant can have its own specific picture. .. note:: Changes to the product template automatically apply to every variant of that product. + +.. seealso:: + :doc:`import` diff --git a/content/applications/sales/sales/products_prices/products/variants/activating-variants-setting.png b/content/applications/sales/sales/products_prices/products/variants/activating-variants-setting.png index f20dbe0eb..3eae04db4 100644 Binary files a/content/applications/sales/sales/products_prices/products/variants/activating-variants-setting.png and b/content/applications/sales/sales/products_prices/products/variants/activating-variants-setting.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/attribute-category-internal-link.png b/content/applications/sales/sales/products_prices/products/variants/attribute-category-internal-link.png new file mode 100644 index 000000000..7933a750b Binary files /dev/null and b/content/applications/sales/sales/products_prices/products/variants/attribute-category-internal-link.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/attribute-creation.png b/content/applications/sales/sales/products_prices/products/variants/attribute-creation.png index 78c6eeee5..5b8132344 100644 Binary files a/content/applications/sales/sales/products_prices/products/variants/attribute-creation.png and b/content/applications/sales/sales/products_prices/products/variants/attribute-creation.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/attribute-value-add-a-line.png b/content/applications/sales/sales/products_prices/products/variants/attribute-value-add-a-line.png new file mode 100644 index 000000000..f7f540237 Binary files /dev/null and b/content/applications/sales/sales/products_prices/products/variants/attribute-value-add-a-line.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/attributes-exclusions.png b/content/applications/sales/sales/products_prices/products/variants/attributes-exclusions.png deleted file mode 100644 index 8d4a198f2..000000000 Binary files a/content/applications/sales/sales/products_prices/products/variants/attributes-exclusions.png and /dev/null differ diff --git a/content/applications/sales/sales/products_prices/products/variants/attributes-values-tab.png b/content/applications/sales/sales/products_prices/products/variants/attributes-values-tab.png new file mode 100644 index 000000000..e300e540c Binary files /dev/null and b/content/applications/sales/sales/products_prices/products/variants/attributes-values-tab.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/display-types.png b/content/applications/sales/sales/products_prices/products/variants/display-types.png index 21c179d98..edcebf430 100644 Binary files a/content/applications/sales/sales/products_prices/products/variants/display-types.png and b/content/applications/sales/sales/products_prices/products/variants/display-types.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/picking-a-color.png b/content/applications/sales/sales/products_prices/products/variants/picking-a-color.png index b1fc9fa90..d282de90d 100644 Binary files a/content/applications/sales/sales/products_prices/products/variants/picking-a-color.png and b/content/applications/sales/sales/products_prices/products/variants/picking-a-color.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/product-variant-value-page.png b/content/applications/sales/sales/products_prices/products/variants/product-variant-value-page.png new file mode 100644 index 000000000..2bcaef422 Binary files /dev/null and b/content/applications/sales/sales/products_prices/products/variants/product-variant-value-page.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/product-variant-values.png b/content/applications/sales/sales/products_prices/products/variants/product-variant-values.png new file mode 100644 index 000000000..9f2446e08 Binary files /dev/null and b/content/applications/sales/sales/products_prices/products/variants/product-variant-values.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/value-price-extra.png b/content/applications/sales/sales/products_prices/products/variants/value-price-extra.png deleted file mode 100644 index d5f769a1c..000000000 Binary files a/content/applications/sales/sales/products_prices/products/variants/value-price-extra.png and /dev/null differ diff --git a/content/applications/sales/sales/products_prices/products/variants/variants-page.png b/content/applications/sales/sales/products_prices/products/variants/variants-page.png new file mode 100644 index 000000000..2c64098c5 Binary files /dev/null and b/content/applications/sales/sales/products_prices/products/variants/variants-page.png differ diff --git a/content/applications/sales/sales/products_prices/products/variants/variants-smart-button.png b/content/applications/sales/sales/products_prices/products/variants/variants-smart-button.png new file mode 100644 index 000000000..3d0d5cd07 Binary files /dev/null and b/content/applications/sales/sales/products_prices/products/variants/variants-smart-button.png differ