> ## Documentation Index
> Fetch the complete documentation index at: https://app.docs.circuly.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Asset tracking

> Register serial-numbered units, attach them to subscriptions, and scan them back in

## What an asset is

An **asset** is one physical unit you can identify on its own — a specific bike, laptop, or
machine with a serial number. Assets let you answer "which exact unit does this customer
have?", which a simple stock count cannot.

You manage them under **Shopify Admin** → **circuly Rental & Subscriptions** → **Assets**.

<Info>
  Assets can be attached to **any** subscription, not just rentals. They are most useful when
  you lend or lease equipment that comes back, but nothing stops you tracking units on a
  regular subscription.
</Info>

Assets require the **Base plan or higher**.

## Adding assets

<Steps>
  <Step title="Open Assets">
    Go to **Shopify Admin** → **circuly Rental & Subscriptions** → **Assets** and choose
    **Create asset**.
  </Step>

  <Step title="Give it a serial number">
    Enter the serial number printed on the unit, or let circuly generate one for you. Serial
    numbers must be unique across your store.
  </Step>

  <Step title="Pick the product">
    Choose the product variant this unit is. This is how circuly knows which subscriptions the
    unit can be assigned to.
  </Step>

  <Step title="Add a location and status">
    Optionally record where the unit lives, and set its starting status. New units are
    **Available** unless you say otherwise.
  </Step>
</Steps>

<Note>
  **Location is a free-text label** you type yourself — for example "Warehouse A, Shelf 3".
  It is not linked to your Shopify locations.
</Note>

### Importing many at once

**Import assets** takes a CSV so you can register a whole fleet in one go. A template is
available on the import page.

| Column             | Required | Notes                                              |
| ------------------ | -------- | -------------------------------------------------- |
| Serial Number      | Yes      | Must be unique.                                    |
| Product Variant ID | Yes      | The Shopify variant this unit is.                  |
| Product ID         | No       | Worked out from the variant if you leave it blank. |
| Location           | No       | Free text.                                         |
| Status             | No       | Defaults to Available.                             |

Rows are checked before anything is saved. A file is rejected if it repeats a serial number,
uses a serial number you already have, or gives a Product ID without a Variant ID. You get a
per-row report so you can fix and re-upload.

## The assets list

Tabs across the top split your units by status and show how many are in each: **All**,
**Available**, **Rented**, **Maintenance**, **Lost**, and **Sold**. You can search by serial
number, filter by location, and **Export** the list as a CSV.

## Attaching a unit to a subscription

Open a subscription under **Subscriptions**, find the **Asset** card, and assign a unit — or
create a new one and assign it in the same step. You can unassign a unit at any time.

If several subscriptions are waiting for equipment, **Operations** → **Fulfillment** →
**Subscriptions** lists them under **Awaiting unit** so you can work through them in one pass.

<Note>
  Only **Available** assets can be assigned. A unit that is already out with a customer, in
  maintenance, lost, or sold will not appear in the picker.
</Note>

## The scanner

**Assets** → **Scanner** is built for the counter or the loading bay. Scan or type a serial
number and circuly does one of two things:

* **Look it up** — shows the product, its current status, its location, and the subscription
  it belongs to
* **Confirm return** — ends that subscription and puts the unit back to Available

A running list of recent scans stays on screen so you can work through a pile of returns.

<Warning>
  **Confirm return** only works when the subscription is in **Pending Return**. If the unit is
  not attached to any subscription, or the subscription is in another status, circuly tells you
  and makes no change.
</Warning>

## Asset statuses

| Status          | What it means                     |
| --------------- | --------------------------------- |
| **Available**   | On the shelf and ready to assign. |
| **Rented**      | Out with a customer.              |
| **Maintenance** | Being serviced. Not assignable.   |
| **Lost**        | Written off. Final.               |
| **Sold**        | Sold outright. Final.             |

**Bought out** is a sixth status you never set by hand — circuly applies it automatically when
a customer completes a buyout. You can only delete an asset while it is **Available**.

## What gets recorded

Every asset keeps its own history: status changes with the old and new value, when it was
assigned to a subscription, when it was unassigned, and who did it.

Asset events also drive Shopify Flow, so you can email a customer, notify your team, or update
a spreadsheet automatically. See
[Trigger reference](/docs/mintlify/flow-triggers#asset-triggers).

## Next steps

<CardGroup cols={2}>
  <Card title="Contract management" icon="file-contract" href="/docs/mintlify/contract-management">
    Review and act on the subscriptions your assets are attached to.
  </Card>

  <Card title="Rental unit lifecycle" icon="arrows-rotate" href="/docs/mintlify/rental-unit-lifecycle">
    Follow rental units from handover through inspection and back to available.
  </Card>
</CardGroup>
