---
title: "Sale items and stock"
description: "Add goods you sell (Equipment for sale) with a sale price, net cost, barcode, and opening stock, then keep the stock count right with deliveries, write-offs, and stock counts, and see sales and margin on the product page."
canonical_url: "https://requiply.com/docs/en/guides/sales/items-and-stock"
---
# Sale items and stock

> Add goods you sell (Equipment for sale) with a sale price, net cost, barcode, and opening stock, then keep the stock count right with deliveries, write-offs, and stock counts, and see sales and margin on the product page.

Goods you sell are products of the type **Equipment for sale**: *Goods you sell to clients, like memory cards or batteries. They have a stock count instead of individual units.* They live in your normal inventory, next to your rental equipment, but they have no units, no rental rate, no deposit, and no pricing tiers. They never appear in availability checks, the calendar, or the rental items of a booking.

This page explains how to add them, how the stock count works, and what the product page shows. Selling them is covered in [New sale](https://requiply.com/docs/en/guides/sales/new-sale) and [Sell items on a booking](https://requiply.com/docs/en/guides/bookings/sell-items).

<note>

**Equipment for sale** is offered only while [Sales](https://requiply.com/docs/en/guides/sales) is switched on under **Settings → Organization → Features**.

</note>

## Adding a product for sale

Open **Inventory → Add item** at [https://app.requiply.com/inventory/add](https://app.requiply.com/inventory/add) and set **Rental object type** to **Equipment for sale** (cart icon). The form changes:

<table>
<thead>
  <tr>
    <th>
      Field
    </th>
    
    <th>
      For Equipment for sale
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Stock source
      </strong>
    </td>
    
    <td>
      Locked to <strong>
        Owned
      </strong>
      
      . Goods for sale cannot be subrented.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Category
      </strong>
    </td>
    
    <td>
      The same categories as Equipment, so a <em>
        Consumables
      </em>
      
       category works for both.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Item name
      </strong>
      
      , <strong>
        Images
      </strong>
    </td>
    
    <td>
      As for any product.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Stock now
      </strong>
    </td>
    
    <td>
      Replaces <strong>
        Quantity
      </strong>
      
      . How many you have on the shelf today, zero allowed. <em>
        Recorded as the first delivery.
      </em>
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Price
      </strong>
    </td>
    
    <td>
      The sale price per unit. <em>
        Flat price per unit. Client discounts do not apply.
      </em>
      
       There is no price type.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Net cost
      </strong>
    </td>
    
    <td>
      Optional. <em>
        What you pay the supplier. Only members who manage stock see it.
      </em>
      
       Once filled, the hint shows <em>
        Margin per unit: $11.00 (38%)
      </em>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Barcode
      </strong>
    </td>
    
    <td>
      Optional, shown with <a href="https://requiply.com/docs/en/guides/inventory/qr-and-barcodes">
        QR codes and barcodes
      </a>
      
       (Advanced plan). <em>
        The manufacturer code on the package, so a scan finds this product.
      </em>
    </td>
  </tr>
</tbody>
</table>

**Security deposit override** and **Full price** are hidden, because they do not apply to goods.

Click **Add item**. Requiply creates the product and records **Stock now** as a *Delivery* with the note *Opening stock*, using the net cost as its unit cost. If that last step fails, the product is still saved and Requiply says *The item was saved, but its opening stock could not be recorded. Record a delivery on its page.*

To change the price, net cost, barcode, or name later, use **Edit** on the product, the same as for rental equipment.

<warning>

**The barcode must be unique.** It cannot match a unit's code, a unit's SKU, or another product's SKU, so a scan always means one thing. A code already in use is refused.

</warning>

A product created as rental equipment with units cannot be turned into Equipment for sale, and a product for sale that already has stock movements or sales cannot be turned back into rental equipment. Create a new product instead.

## In the inventory table

[Manage inventory](https://requiply.com/docs/en/guides/inventory/manage) lists goods for sale together with rental equipment:

- an orange cart badge on the photo, labelled **Equipment for sale** on hover,
- **per unit** in the **Price Type** column,
- a stock tag in the **Quantity** column: *17 in stock*, or red *Out of stock (0)* at zero or below.

Members without a Sales permission do not see these rows.

<figure>

![Manage inventory in dark mode. Under a subrented Canon EOS C50 row, four goods for sale, each with an orange cart badge on its photo: Foam microphone windscreen $4.50 per unit, 38 in stock; Gaffer tape 50 mm × 25 m $14.00 per unit, 27 in stock; SanDisk Extreme SD card 128GB $29.00 per unit, 17 in stock; and Duracell AA batteries (4-pack) $6.50 per unit, 43 in stock, all in the Consumables category. Below them the rental product Rode PSA1 at $8.00 per day with 3 units and an expand arrow](https://requiply.com/docs/assets/inventory/manage/sale-rows.png)<figcaption>

Goods for sale carry a cart badge, a *per unit* price, and a stock count instead of units. Rental products below them still expand into their units.

</figcaption>
</figure>

## The product page

Click a product to open its page at `https://app.requiply.com/inventory/item-group-{id}`. The details list shows the image, SKU, QR code, name, category, **Price**, and **Quantity** as a stock tag. Rental-only rows (price type, deposit, pricing tiers, full price) are not shown.

<figure>

![The product page of SanDisk Extreme SD card 128GB in dark mode, with a Search fields box and rows for Image, SKU SD-128-EXT, QR with a Copy button, System ID, Name, Category Consumables, Price $29.00 and Quantity 17 in stock](https://requiply.com/docs/assets/sales/sale-items/product-page.png)<figcaption>

A product for sale shows its price and stock count; the units table of rental equipment is replaced by **Stock and sales** further down.

</figcaption>
</figure>

Below the details, the **Stock and sales** card replaces the units table:

<table>
<thead>
  <tr>
    <th>
      Part
    </th>
    
    <th>
      What it shows
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        In stock
      </strong>
    </td>
    
    <td>
      The current stock count.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Sold in 30 days
      </strong>
    </td>
    
    <td>
      Units and revenue of the last 30 days, and <em>
        Sold in total: 3
      </em>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Sale price
      </strong>
    </td>
    
    <td>
      The price, and for stock managers <em>
        Cost $18.00, margin 38%
      </em>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Sold per month
      </strong>
    </td>
    
    <td>
      A bar chart of units sold per month over the last year, shown once the product has sold.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Stock history
      </strong>
    </td>
    
    <td>
      Every stock movement, newest first, with <strong>
        Load more
      </strong>
      
       for older ones.
    </td>
  </tr>
</tbody>
</table>

<figure>

![The Stock and sales card of SanDisk Extreme SD card 128GB with the buttons Record delivery, Count stock and Write off. Tiles show In stock 17, Sold in 30 days 3 with $87.00 and Sold in total: 3, and Sale price $29.00 with Cost $18.00, margin 38%. A Sold per month bar chart from October to September has a single bar of 3 in September. The Stock history table lists September 29, 2026 at 10:14 PM, Sold, -2, Sale #4, by Super Admin](https://requiply.com/docs/assets/sales/sale-items/stock-and-sales.png)<figcaption>

Three cards sold this month. The history links each sale to its sale or booking, so you can trace every change of the count.

</figcaption>
</figure>

The **Stock history** table has the columns **Date**, **Type**, **Quantity** (+ or −), **Details** (a link to *Booking #20* or *Sale #4*, and the note), **Unit cost** (for deliveries, visible to stock managers only), and **By**.

<table>
<thead>
  <tr>
    <th>
      Type
    </th>
    
    <th>
      Recorded when
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Delivery
      </strong>
    </td>
    
    <td>
      You record a delivery, including the opening stock.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Sold
      </strong>
    </td>
    
    <td>
      A sale or a booking takes the goods.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Sale undone
      </strong>
    </td>
    
    <td>
      A sale is cancelled or edited down, or a booking with goods is cancelled or deleted.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Returned
      </strong>
    </td>
    
    <td>
      A client returns goods with <strong>
        Back to stock
      </strong>
      
       on.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Stock count
      </strong>
    </td>
    
    <td>
      You count the shelf and correct the number.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Write-off
      </strong>
    </td>
    
    <td>
      You write off broken, lost, or used-up goods.
    </td>
  </tr>
</tbody>
</table>

The history cannot be edited or deleted. A mistake is corrected with a new movement, usually **Count stock**.

## Stock movements

Members with **Allow managing stock** see three buttons on **Stock and sales** (not on archived products). Each opens the **Stock of {product}** dialog with the matching type selected:

<table>
<thead>
  <tr>
    <th>
      Button
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      What you enter
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Record delivery
      </strong>
    </td>
    
    <td>
      <strong>
        Delivery
      </strong>
      
      : <em>
        Goods that arrived from a supplier. They are added to the stock.
      </em>
    </td>
    
    <td>
      <strong>
        Quantity
      </strong>
      
      , optional <strong>
        Purchase price per unit
      </strong>
      
       (<em>
        Becomes the product's cost for margin figures.
      </em>
      
      ), and a <strong>
        Note
      </strong>
      
       such as the supplier or invoice number.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Count stock
      </strong>
    </td>
    
    <td>
      <strong>
        Stock count
      </strong>
      
      : <em>
        Enter what is on the shelf. The stock is set to that number.
      </em>
    </td>
    
    <td>
      <strong>
        Counted on the shelf
      </strong>
      
      , and a note on why the count differs.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Write off
      </strong>
    </td>
    
    <td>
      <strong>
        Write-off
      </strong>
      
      : <em>
        Goods that were broken, lost or used up. They are taken off the stock.
      </em>
    </td>
    
    <td>
      <strong>
        Quantity
      </strong>
      
       and what happened.
    </td>
  </tr>
</tbody>
</table>

The dialog shows *Now in stock: 17* and, as you type, *Stock: 17 → 27*. **Save** records it: *Stock updated. Now in stock: 27*.

A delivery with a purchase price updates the product's **Net cost**, so margins follow your latest buying price.

## How the stock count moves

- **A sale or a booking with goods** takes them off the stock when it is saved, even if the booking is only a request and its rental items are not held yet.
- **Editing** a sale or a booking's sold items moves the stock by the difference.
- **Returns** put goods back only when **Back to stock** is on.
- **Cancelling** a standalone sale returns everything the client still had. **Cancelling a booking** does the same for its goods, and moving the booking back out of a cancelled status takes them again. **Deleting a booking** returns its goods.
- **The count may go negative.** Selling is never blocked by the count. Screens warn instead: *Stock short by 2*, *Not enough in stock: {items}. The booking can still be created.*, or on the product *Out of stock (-2)*.

## In the mobile app

Open the product from the inventory or by scanning its barcode. For a product for sale the screen shows **In stock**, **Barcode**, **Net cost** (stock managers), **Sold in 30 days**, and the **Stock history**. Under **Actions**, members with inventory access and barcodes enabled can **Tie barcode**, **Change barcode**, or **Remove barcode** with the camera (*Point the camera at the barcode on the package. Every scan of it then adds one unit of this product.*).

Scanning an unknown barcode anywhere in the app offers to link it: *Barcode {code} is not linked to any product or SKU yet. Link it now?* Pick the product for sale in the list to link it.

Deliveries, stock counts, and write-offs are recorded on the web.

## Common scenarios

### A box of 20 memory cards arrives

Open the product, click **Record delivery**, enter **Quantity** 20, the **Purchase price per unit** from the supplier invoice, and the invoice number as the note. The stock rises by 20 and the net cost follows the new price.

### The shelf count does not match

Count what is physically there, click **Count stock**, and enter the number under **Counted on the shelf** with a short reason. The history keeps the correction, so you can see later how far off the count was.

### A battery pack is damaged in storage

Click **Write off**, enter 1, and note what happened. The pack leaves the stock without a sale.

## Tips and cautions

<note>

**Tip:** Fill in **Net cost** for every product. Without it, margins on the product page, in the new sale preview, and in a booking's **Profit** column cannot be calculated.

</note>

<warning>

**Heads up:** Archiving a product hides it from new sales, but it can stay on existing sales and bookings and can still be reduced or returned there. The stock buttons are hidden on archived products.

</warning>


## Sitemap

See the full [sitemap](https://requiply.com/docs/sitemap.md) for all pages.
