# Handles

> How handles identify Shoplazza store resources in Liquid: how a handle is generated from a title, the rules it follows, and how to reference it in a theme.

## Object handles

Objects represent store resources, such as products, collections, articles, and blogs, and have handles for identifying an individual resource. The handle is used to build the URL for the resource or to return properties for the resource.

## Creating and modifying handles

Handles are automatically generated based on the resource title. They follow a set of rules:

* Handles are always lowercase
* whitespace and special characters (`?`, `#`, etc.) are replaced with a hyphen `-`.
* If there are multiple consecutive whitespace or special characters, then they're replaced with a single hyphen.
* Whitespace or special characters at the beginning are removed.

Handles need to be unique, so if a duplicate title is used, then the handle is auto-incremented by one. For example, if you had two products called `Ace Cashmere Beanie`, then their handles would be `ace-cashmere-beanie` and `ace-cashmere-beanie-1`.

```liquid title="Code"
{{ product.title | handle }}
```
```json title="Data"
{
  "product": {
    "title": "Ace Cashmere Beanie"
  }
}
```

```html title="Output"
ace-cashmere-beanie
```

## Referencing handles

Some objects(e.g. [product](../objects/product), [collection](../objects/collection), etc.)that have a handle have a `handle` property. For example, you can output a product's handle with the`product.handle`.
