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

# How to move a stock item from the rental fleet into resale

> Retire a unit from the rental pool and sell it — deciding when, taking it out of rental cleanly, and what happens to the record after it sells.

<Card title="Open in TWICE Admin" icon="external-link" href="https://admin.twicecommerce.com/inventory/stock-items" horizontal>
  inventory/stock-items
</Card>

A unit that has earned what it is going to earn does not have to leave as scrap. Moving it from the rental fleet into resale is the circular half of the platform, and it is why per-unit cost tracking pays off — the same record that shows what a unit earned tells you when it is worth more sold than rented.

This is a sequence of small, ordinary actions in a specific order. Getting the order wrong is what causes trouble, because one of the steps is irreversible from the admin and another releases bookings you may still need.

## Prerequisites

<Warning>
  **Required permissions:**

  * `inventory:stock_item:manage` — status changes and archiving
  * `inventory:stock_item_cost` — reading what the unit earned, which is how you decide. The **Member** system role does not hold this one
  * `inventory:stock_item:delete` — only if you intend to delete rather than archive
</Warning>

<Info>
  **Before you start, know two things:** whether the unit still has bookings on it, and what it is worth. The first decides how you take it out of rental; the second decides whether you should.
</Info>

## The Walkthrough

<Steps>
  <Step title="Decide it is time">
    Three signals, in rough order of how much they should weigh:

    * **What it has earned against what it cost.** The item's **Income & Expenses** tab gives Total Income, Total Costs, and the difference. A unit whose earnings have flattened while costs keep arriving is the clearest case.
    * **Its condition.** A unit that keeps needing work is spending your money and your customers' goodwill.
    * **Its age or use.** Whatever your fleet wears by.

    <Note>Profitability on that tab is a plain subtraction — no depreciation, no residual value. If you want a book value to sell against, compute it as a formula attribute from the purchase price and age. Read more: [Formulas](/docs/admin/formulas).</Note>
  </Step>

  <Step title="Stop it being rented, without breaking what is booked">
    Three ways to take a unit out of rental, and they are not interchangeable:

    |              | What it does                                                                                                           | Use it when                                                                     |
    | ------------ | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
    | **Inactive** | Stops the unit being offered for new bookings. Existing bookings keep their holds                                      | The normal choice — you are retiring it but it still has commitments to see out |
    | **Reserve**  | Blocks specific dates without changing anything else                                                                   | You want it held for a window rather than retired                               |
    | **Archive**  | Removes it from service entirely and **releases the holds behind existing bookings**, leaving those orders in conflict | Only once nothing is booked on it                                               |

    **Set it Inactive now.** Archiving belongs at the end, after the sale — not here.

    Check the item's **Events** tab for upcoming bookings before you do anything more drastic.
  </Step>

  <Step title="Re-grade it for resale">
    A rental unit and a resale unit are the same record with different data on it. What changes is the attribute your resale listing matches on.

    Set the grading attribute to whatever means "for sale" in your scheme, and update the free-text **Condition** with the honest state of it. Photograph it as it is now — the photos from when it was new are not what you are selling.

    <Note>Resale listings draw stock through fulfilment rules, and those rules can match on attributes, item and SKU codes, and item and SKU names — **not** on the built-in Condition field. If the resale listing does not pick the unit up, the grade is probably in Condition rather than in an attribute.</Note>
  </Step>

  <Step title="Let it sell">
    From here the catalog does the work. The resale listing draws the unit through its rules, and it sells like any other sale line.

    Nothing about the stock item changes on its own when that happens.
  </Step>

  <Step title="Close the record after the sale">
    This step is manual, and it is the one people skip.

    **There is no Sold status.** A stock item is Active, Inactive, or Draft — nothing more. Selling a unit does not archive it, does not mark it, and does not remove it from your inventory. Left alone, a sold unit sits in your fleet as Inactive stock forever, quietly inflating what you think you own.

    **Archive it once it has gone.** By then nothing is booked on it, so archiving has nothing to release. The record survives, stays attached to the order that sold it, and keeps its whole history.
  </Step>

  <Step title="Or write it off instead">
    Not every unit leaves by being sold. Stolen, destroyed, scrapped — same ending, no sale.

    Set it Inactive, then archive it. Add a cost entry for the write-off if you want the loss to show against what the unit earned, which keeps its lifetime numbers honest.
  </Step>
</Steps>

## How do I know it worked?

* **The unit is not offered for new rentals**, but anything already booked still holds.
* **The resale listing finds it** — if it does not, the grade is in the wrong place.
* **After the sale it is archived**, and gone from the default inventory lists.
* **Its page still opens**, with the archived banner, and its history and the selling order are still on it.
* **Your inventory count no longer includes it.** That is the point of the last step.

## Troubleshooting / Common Pitfalls

<AccordionGroup>
  <Accordion title="I archived it to take it out of rental and now orders have conflicts">
    **Cause:** archiving releases the holds behind bookings that already had the unit assigned. The orders keep it assigned with nothing holding it, which is exactly what a conflict is.

    **What to do:** unarchive to get the unit back, then work through the conflicts on the affected orders — unarchiving does not restore the released holds. Use **Inactive** instead for a unit that still has commitments.

    Read more: [Archive stock items](/docs/guides/inventory/archive-stock-items)
  </Accordion>

  <Accordion title="Sold units are still counted in our inventory">
    **Cause:** nothing archives a unit when it sells. There is no Sold status, and the sale does not touch the stock item.

    **What to do:** archive sold units as a deliberate step. If a backlog has built up, find them by cross-referencing the resale listing's orders, and archive in bulk. Then make it the last step of the resale routine, because it will happen again otherwise.
  </Accordion>

  <Accordion title="The resale listing will not pick up the unit">
    **Usually the grade is in the wrong field.** Fulfilment rules match on attributes, item and SKU codes, and item and SKU names. The built-in Condition field is free text and is not one of them.

    **What to do:** put the grade in an attribute and point the rule at it. Also check the unit is Active — an Inactive unit is not offered, and that includes not being offered for sale.
  </Accordion>

  <Accordion title="Should the unit be Active or Inactive while it is listed for resale?">
    **Active, once it is genuinely for sale.** Inactive stops it being offered at all, and that applies to sale as well as rental.

    **What to do:** use Inactive for the gap between retiring it from rental and listing it for sale — while it is being cleaned, graded, or photographed. Set it Active again when it is ready to sell.
  </Accordion>

  <Accordion title="Its lifetime numbers look wrong now">
    **Cause:** the sale proceeds arrive as income against the unit, and that is what closes the loop on a circular asset — bought, rented for years, sold. Costs you never recorded make the total look better than it was.

    **What to do:** record the write-off, repairs, and refurbishment as cost entries as they happen, not at the end. A unit's profitability is only as honest as what was entered.

    Read more: [Track item costs and income](/docs/guides/inventory/track-item-costs-and-income)
  </Accordion>

  <Accordion title="Should I delete it instead of archiving?">
    **Almost never.** Deleting is available only on an already-archived item, needs its own permission, and is not reversible from the admin.

    **What to do:** archive. A sold unit's record is the provenance behind a sale you made — a customer query, a warranty claim, or a dispute all want it. Archiving keeps every bit of that while taking the unit out of your working views, which is the whole job.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Archive stock items" icon="box-archive" href="/docs/guides/inventory/archive-stock-items">
    The impact scan, and what archiving leaves on orders.
  </Card>

  <Card title="Track item costs and income" icon="coins" href="/docs/guides/inventory/track-item-costs-and-income">
    The numbers this decision rests on.
  </Card>

  <Card title="Read a stock item's history" icon="clock-rotate-left" href="/docs/guides/inventory/read-stock-item-history">
    The provenance that survives the sale.
  </Card>

  <Card title="Formulas" icon="calculator" href="/docs/admin/formulas">
    Computing a residual value to sell against.
  </Card>
</CardGroup>
