> For the complete documentation index, see [llms.txt](https://galmis.gitbook.io/serializer-product-tracking/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://galmis.gitbook.io/serializer-product-tracking/getting-started/setup-and-configuration/settings/track-custom-item-information.md).

# Track custom item information

The feature lets you enter and track other item information according to your business needs - for example, batch numbers, item URL links, supplier SKUs, etc.

Please skip this section if you're happy with the existing fields.

## Create custom fields in the app's settings

Navigate to the **Settings** page in the embedded app and click **Create new field**. You should notice the following form input fields:

1. **Name** - the name of the field. Example: *batch number*. It will be used as a label/header elsewhere in the app and can be changed anytime.
2. **Key** - the field identifier. Example: *batchNumber*. The key will be stored with the associated item field's values in the app's database and Shopify metafields. Once saved, the key is not editable.
3. **Searchable** - tick the checkbox if you wish the field to be searchable on the "Tracked items" page. Enabling the setting will slightly slow the search, but it shouldn't be noticeable (a matter of milliseconds). It can be changed anytime.

Click **Save** once you're happy with the changes.

<figure><img src="https://dyk0l9a1ledth.cloudfront.net/public/images/custom-fields-settings.gif" alt=""><figcaption><p>Create custom item fields</p></figcaption></figure>

## Use the newly created fields in the app

Enable the field tracking for the relevant product variants on the [**Product tracking preferences**](/serializer-product-tracking/getting-started/setup-and-configuration/product-tracking-preferences.md) page  individually or in bulk.

<figure><img src="https://dyk0l9a1ledth.cloudfront.net/public/images/custom-field-variant.gif" alt=""><figcaption><p>Enable custom field tracking</p></figcaption></figure>

Once field tracking is enabled, enter custom details to [items on hand](/serializer-product-tracking/getting-started/item-management/manage-inventory-items.md), [items in POS cart](/serializer-product-tracking/getting-started/item-management/manage-items-in-pos-cart.md) or [sold items](/serializer-product-tracking/getting-started/item-management/manage-sold-items.md).&#x20;

## Display values of custom fields outside the app

Following a similar approach to displaying serial numbers and warranties, you can add some liquid code to display the values of your custom fields outside the app (e.g. website theme). For example,

```liquid
{% assign tracked_line_items = order.metafields.serializer.properties.value.items | where: "lineItemId", line_item.id %}

{% if tracked_line_items.size > 0 %}

  {% comment %} 
    Some other item related code, e.g. displaying serial numbers
  {% endcomment %}

  {% assign line_custom_fields = tracked_line_items | map: "customFields" %}
  {% assign my_fields = line_custom_fields | where: "key", "<field key saved in app settings>" %} 
  {% if my_fields.size > 0 %}
    <small>
      My field(s): {{ my_fields | map: "value" | join: ", " }}
    </small>
  {% endif %}

{% endif %}
```

Ensure you replaced `<field key saved in app settings>` with the actual key in the following block:

```liquid
{% assign my_fields = line_custom_fields | where: "key", "<field key saved in app settings>" %}
```

For example, if you saved a custom field with a key **batchNumber**, the above snippet should be changed to

```liquid
{% assign my_fields = line_custom_fields | where: "key", "batchNumber" %}
```
