# Product categories

## Product categories

Product categories is the configuration list for maintaining product-category names and codes.
A subcategory is a product category arranged beneath a parent category. Open the Product Categories
configuration page to see the
`Product Categories` page with **Category** and **Code** columns.

| If you need to… | Go to |
| --- | --- |
| Reach the list and locate a category | [Find product categories](#find-product-categories) |
| Identify the fields and available actions | [Understand the category list](#understand-the-category-list) |
| Add or change a category | [Create or update a category](#create-or-update-a-category) |
| Add a child category | [Create a subcategory](#create-a-subcategory) |
| Remove a category | [Delete a category](#delete-a-category) |
| Filter or prepare a list export | [Filter or export the list](#filter-or-export-the-list) |
| Resolve a blocked action or validation message | [When category maintenance goes wrong](#when-category-maintenance-goes-wrong) |
| Continue after maintenance | [What to do next](#what-to-do-next) |

## Before you start

You maintain them from the Product Categories configuration page. The list is available when the
Product Categories package is included and your account has the permission needed for the action.

Prerequisites

| Before you start | What you need |
| --- | --- |
| Page access | Access to the Product Categories configuration page. |
| Product Categories package | The package must be included for the category list to appear. |
| Create permission | **New** appears when the new permission is available. |
| Edit permission | **Add New Sub-Category** and **Edit** are available when edit permission is available. |
| Delete permission | The row's **Delete** action is available when delete permission is available. |
| Export and import permissions | The corresponding list actions depend on your permissions. |
| Existing parent row | Select an existing category before adding a subcategory. |

When the package is not included, the page shows the subscription-upgrade surface instead of the list.
The page checks permission levels for new, edit, delete, export, and import actions.

After checking these conditions, go to [Find product categories](#find-product-categories).

## Find product categories

Use the Product Categories list to locate an existing category before changing or removing it. The page
title, **Category** and **Code** columns, and **New** control identify the list when it is available.

Prerequisites

- You are signed in.
- The Product Categories package and the required permission are available.

Steps

1. Open the Product Categories configuration page.
2. Check that the page title reads `Product Categories`.
3. Check that the list contains the **Category** column.
4. Check that the list contains the **Code** column.
5. Select the category row you need to maintain.

![Check the Product Categories title and the Category and Code columns.](https://atloriaassets.blob.core.windows.net/assets/a438221c-c1af-407c-b9e6-a56c986db846/583828740bc8daf7c4d203f2229c7f59.png)

**Result:** The Product Categories list is open, and the category row is ready for a maintenance action.

Continue to [Understand the category list](#understand-the-category-list) before choosing the action.

## Understand the category list

The category list arranges parent categories with their subcategories beneath them and provides a
category-name column, a product-code column, and an action column. The product-code column appears on
the Product Categories page. The same form supplies the fields for both entry types.

| Surface | What it contains or does |
| --- | --- |
| **Category** | Identifies each category or subcategory row. |
| **Code** | Shows the product code for the Product Categories page. |
| **Product category name** | Required text field for a category. |
| **Sub product category name** | Required text field for a subcategory. |
| **Product code** | Required text field. Its length is from 1 through 10 characters. |
| Action area | Contains **New**, **Add New Sub-Category**, **Edit**, and **Delete** according to permission. |
| List toolbar | Provides `Apply filter`, **Export**, and other shared list actions when available. |
| Existing-record history | The history area appears when the selected record has an ID. |

The category form and subcategory form both require their name and product-code fields on this page.
The name fields also use the product's pattern validation. The search panel is not shown, and the
action column has no heading of its own.

Use [Create or update a category](#create-or-update-a-category) for a category entry, or [Create a
subcategory](#create-a-subcategory) for a child entry.

## Create or update a category

A category is a named product-category entry with a product code. Use **New** for a new entry or
**Edit** to change a saved entry, then save the values in the form.

Prerequisites

- The Product Categories list is open.
- You have the permission for the action you are taking.
- You have the category name and product code ready to enter.

Steps

1. Choose one route.

   | If you need to… | Action |
   | --- | --- |
   | Add a category | Select **New**. |
   | Change a category | Select **Edit** on the category row. |

2. In **Product category name**, enter the category name.
3. In **Product code**, enter a code from 1 through 10 characters.
4. Select **Save**.
5. Read the validation message and apply the matching correction in the table.

   | Message | Action |
   | --- | --- |
   | `This Field Is Required` | Enter a value in the field named by the message. |
   | `Just '_'‘-''.' And '&' Characters Accepted` | Remove characters that are not accepted from the field value. |
   | `Must have maximum 10 letters` | Shorten **Product code** to 10 characters or fewer. |
   | `Required Field can not be Empty Spaces` | Replace spaces-only text in **Product category name** with a category name. |
   | `Please Enter the Required Field` | Enter the required category value before saving. |

6. Select **Save** again after correcting the value.

After a successful save, the application reports `Data saved Successfully`, refreshes the list, and
closes the popup.

![Use the category list as the starting point for a new or existing category.](https://atloriaassets.blob.core.windows.net/assets/a438221c-c1af-407c-b9e6-a56c986db846/46fa95bbfdceb7300c79f53dddf95aad.png)

**Result:** The category is saved or the corrected form remains ready for another **Save** action.

Continue to [Create a subcategory](#create-a-subcategory) when the category needs a child entry.

## Create a subcategory

Use the subcategory form to add a child entry beneath an existing parent category. The selected row
provides the parent context.

Prerequisites

- The Product Categories list is open.
- An existing parent category row is available.
- You have edit permission.

Steps

1. On the parent category row, select **Add New Sub-Category**.
2. In **Sub product category name**, enter the subcategory name.
3. Review **Product code** and change it when the parent code is not the code required for the child.
4. Select **Save**.
5. If a validation message appears, correct the field using the message table in [Create or update a category](#create-or-update-a-category).
6. Select **Cancel** when you want to close the form without saving the subcategory.

The new subcategory is initialized with the selected row as its parent and with the selected row's
product code copied into **Product code**.

![Select the parent category row before opening Add New Sub-Category.](https://atloriaassets.blob.core.windows.net/assets/a438221c-c1af-407c-b9e6-a56c986db846/583828740bc8daf7c4d203f2229c7f59.png)

**Result:** The subcategory form closes after **Save**, or it closes without a new subcategory after
**Cancel**.

Continue to [Delete a category](#delete-a-category) when you need to remove an entry.

## Delete a category

Deleting removes the selected category from the list. The delete action is available only when your
account has delete permission, and the application asks you to confirm before removal.

Prerequisites

- The Product Categories list is open.
- The row you intend to remove is selected.
- You have delete permission.

Steps

1. Open the selected row's **Delete** action.
2. Read the confirmation `Are you sure you want to delete this item?`.
3. Choose one route.

   | If you need to… | Action |
   | --- | --- |
   | Remove the selected category | Select **Delete**. |
   | Keep the category | Select **Cancel**. |

After a successful deletion, the application reports `Data Deleted Successfully` and refreshes the
list. During the request, the loading status reads `Deleting`.

**Result:** The category is removed and the list is refreshed, or the category remains unchanged after
**Cancel**.

Continue to [Filter or export the list](#filter-or-export-the-list) when you need to work with the list.

## Filter or export the list

The list toolbar provides a filtering action and an export action when those permissions are available.
Use filtering to narrow the visible list, or open the export options when you need a list file.

Prerequisites

- The Product Categories list is open.
- You have export permission for the export action.

Steps

1. Apply a list filter with `Apply filter`.
2. Select **Export**.
3. When `Exporting List:` opens, choose the required list export option.
4. Select **Cancel** to close the export options without continuing.

The export dialog provides Excel and PDF list options. The product-code column is included in the
Product Categories list, while the action column is excluded from export.

**Result:** The filtered list remains open, or the export options are closed after **Cancel**.

Continue to [When category maintenance goes wrong](#when-category-maintenance-goes-wrong) if a message
or unavailable action needs attention.

## When category maintenance goes wrong

Use the message or surface you see to choose the next action. The page can block a field, hide an
action based on permission, or show the subscription-upgrade surface instead of the list.

| What you see | What it means | What to do |
| --- | --- | --- |
| `This Field Is Required` | A required field has no value. | Enter a value in the named field and select **Save**. |
| `Just '_'‘-''.' And '&' Characters Accepted` | The value contains a character outside the accepted pattern. | Remove the unaccepted character and select **Save**. |
| `Must have maximum 10 letters` | **Product code** is longer than 10 characters. | Shorten the code and select **Save**. |
| `Required Field can not be Empty Spaces` | **Product category name** contains only spaces. | Replace the spaces with a category name and select **Save**. |
| `Please Enter the Required Field` | The required category value was not entered. | Enter the value and select **Save**. |
| `Are you sure you want to delete this item?` | The application is waiting for a deletion choice. | Select **Delete** to remove the row or **Cancel** to keep it. |
| `Saving...` | The save request is in progress. | Wait for the save result before selecting another action. |
| `Deleting` | The delete request is in progress. | Wait for the deletion result before selecting another action. |
| `Data saved Successfully` | The save completed. | Continue from the refreshed list. |
| `Data Deleted Successfully` | The deletion completed. | Continue from the refreshed list. |
| `Data Importing completed` | The import action completed. | Continue from the refreshed configuration list. |
| The subscription-upgrade surface appears instead of the list. | The Product Categories package is not included. | Ask an administrator to review the package before maintaining categories. |
| **New**, **Edit**, **Add New Sub-Category**, or **Delete** is absent. | The corresponding permission is not available. | Ask an administrator to review your permission for that action. |

After resolving the message or access condition, return to [What to do next](#what-to-do-next).

## What to do next

After category maintenance, continue from the Product Categories list. A successful save refreshes the
list and closes the popup; a successful deletion refreshes the list. The selected parent context is
used when you create a subcategory.

Steps

1. Check the refreshed list after saving or deleting a category.
2. Select another category when you need to continue maintaining the list.
3. Return to [Create a subcategory](#create-a-subcategory) when you need to add a child under an
   existing category.

**Result:** The Product Categories list is ready for the next category maintenance action.
