# Inventory Upload

## Overview

The **Inventory Upload** section allows you to bulk import units via an Excel/CSV template, and to reprice existing units in bulk.

---

## How to Access

Go to **Setup → Inventory Upload**.

[![image.png](https://knowledge-base.profitcrm.net/uploads/images/gallery/2026-06/scaled-1680-/AMRimage.png)](https://knowledge-base.profitcrm.net/uploads/images/gallery/2026-06/AMRimage.png)

---

## Two Templates Available

<table id="bkmrk-template-purpose-inv"><thead><tr><th>Template</th><th>Purpose</th></tr></thead><tbody><tr><td>**Inventory Template**</td><td>Bulk upload new units into the CRM.</td></tr><tr><td>**Repricing Template**</td><td>Update prices of existing project units in bulk — download, update the green columns only, delete first row, save as CSV UTF-8, and upload. Only affects **available** and **hidden** units.</td></tr></tbody></table>

---

## Before You Upload — Set Up Inventory Settings First

Before filling in the template, configure these values in **Inventory Settings** — the upload will fail if template values don't match exactly:

<table id="bkmrk-setting-description-"><thead><tr><th>Setting</th><th>Description</th><th>Example Values</th></tr></thead><tbody><tr><td>**Segment Positions**</td><td>Position values used in the template.</td><td>Open Air, Sunny Side</td></tr><tr><td>**Segment View**</td><td>View values used in the template.</td><td>Pool View, Garden View, CityScape, Panorama, Pyramid View</td></tr><tr><td>**Finishing**</td><td>Finishing values used in the template.</td><td>Fully Finished, Core &amp; Shell, Not Finished</td></tr><tr><td>**Phase**</td><td>Phase values used in the template.</td><td>Phase 1, Phase 2</td></tr><tr><td>**Unit's Contents**</td><td>Room types (comma-separated).</td><td>Hall, Bedroom, Bathroom, Kitchen, Reception, Garage, Pool</td></tr><tr><td>**Units Type**</td><td>Unit types (comma-separated).</td><td>Villa, Twin, Apartment, Duplex, Roof, 1 Bedroom, 2 Bedroom</td></tr><tr><td>**Units Code**</td><td>Unit codes (comma-separated).</td><td>A, B, C</td></tr><tr><td>**Additional Meter Prices**</td><td>Extra meter names (comma-separated).</td><td>outdoor dining, garden, roof</td></tr></tbody></table>

---

## Inventory Template — Column Reference

<table id="bkmrk-column-required-note"><thead><tr><th>Column</th><th>Required</th><th>Notes</th></tr></thead><tbody><tr><td>**Unit Name**</td><td>✅</td><td>Unit name.</td></tr><tr><td>**Unit Floor**</td><td>✅</td><td>Floor number or name.</td></tr><tr><td>**Unit Price**</td><td>✅</td><td>Unit price (full price or meter price depending on project type).</td></tr><tr><td>**Unit Details**</td><td>✅</td><td>Unit description.</td></tr><tr><td>**Unit Status**</td><td>✅</td><td>Must be exactly one of: `Pending`, `Under Construction`, `Completed`, `Resale`.</td></tr><tr><td>**View**</td><td> </td><td>Write any view value — must be added to Inventory Settings first.</td></tr><tr><td>**Segment Name**</td><td>✅</td><td>Segment name.</td></tr><tr><td>**Segment Type**</td><td>✅</td><td>Unit type (e.g., Apartment, Villa) — must be added to Inventory Settings first.</td></tr><tr><td>**Segment Space**</td><td>✅</td><td>Space in sqm.</td></tr><tr><td>**Segment Desc**</td><td> </td><td>Segment description.</td></tr><tr><td>**Segment View**</td><td> </td><td>Must be added to Inventory Settings first.</td></tr><tr><td>**Segment Finishing**</td><td> </td><td>Must be added to Inventory Settings first.</td></tr><tr><td>**Building Name**</td><td>✅</td><td>Building name.</td></tr><tr><td>**Building Desc**</td><td> </td><td>Building description.</td></tr><tr><td>**Building Details**</td><td> </td><td>Building details.</td></tr><tr><td>**Project Name**</td><td>✅</td><td>Must match existing project name **exactly**.</td></tr><tr><td>**Project Desc**</td><td> </td><td>Project description.</td></tr><tr><td>**Project Code**</td><td> </td><td>Can be left blank.</td></tr><tr><td>**Project Location Name**</td><td>✅</td><td>Project location.</td></tr><tr><td>**Project Price Type**</td><td>✅</td><td>Either `full` or `meter_price`.</td></tr><tr><td>**Garden Space**</td><td> </td><td>Garden space in sqm.</td></tr><tr><td>**Roof Space**</td><td> </td><td>Roof space in sqm.</td></tr><tr><td>**Position**</td><td> </td><td>Must be added to Inventory Settings first.</td></tr><tr><td>**Premium %**</td><td> </td><td>Price premium percentage.</td></tr><tr><td>**Garden Price %**</td><td> </td><td>Only used if Project Price Type is `meter_price`. Enter `0` if not applicable.</td></tr><tr><td>**Roof Price %**</td><td> </td><td>Only used if Project Price Type is `meter_price`. Enter `0` if not applicable.</td></tr><tr><td>**Unit Code**</td><td> </td><td>Can be left blank.</td></tr><tr><td>**Hall**</td><td> </td><td>Enter count if exists, `0` if not.</td></tr><tr><td>**Bedroom**</td><td> </td><td>Enter count if exists, `0` if not.</td></tr><tr><td>**Bathroom**</td><td> </td><td>Enter count if exists, `0` if not.</td></tr><tr><td>**Kitchen**</td><td> </td><td>Enter count if exists, `0` if not.</td></tr><tr><td>**Reception**</td><td> </td><td>Enter count if exists, `0` if not.</td></tr><tr><td>**Pool**</td><td> </td><td>Enter count if exists, `0` if not.</td></tr><tr><td>**Segment Phase**</td><td> </td><td>Must be added to Inventory Settings first.</td></tr><tr><td>**Unit Delivery Date**</td><td> </td><td>Can be left blank.</td></tr><tr><td>**Additional Meter Name**</td><td> </td><td>Must be added to Inventory Settings first.</td></tr><tr><td>**Additional Meter Area**</td><td> </td><td>Area in sqm.</td></tr><tr><td>**Additional Meter Price**</td><td> </td><td>Price per meter for this additional area.</td></tr></tbody></table>

---

## Price Type Logic

**Full Price:** The Unit Price column is the total unit price as-is.

**Meter Price:**

- Unit total price = Unit Price × Segment Space
- Garden price = Garden Price % × Meter Price × Garden Space
- Roof price = Roof Price % × Meter Price × Roof Space
- Enter `0` for Garden Price % and Roof Price % if not applicable.

---

## Adding Units to an Existing Project

If you want to add more units to an existing project via upload, all project/building/segment values in the file must **exactly match** the existing values already in the CRM.

---

## File Preparation Steps

1. Go to **Setup → Inventory Upload** and download the template.
2. Fill in the data following the column reference above.
3. **Delete the first row** (the example row that comes with the template).
4. Save as **CSV UTF-8**.
5. Upload the file.

---

## Repricing Template

Use this when you have an existing project and want to update the prices of all units at once.

### How to Download

Go to **Setup → Inventory Upload** — the system will ask you to select which project you want to download the repricing template for. After selecting the project, the template downloads pre-filled with all that project's existing units.

### Steps

1. Download the **Repricing Template** from **Setup → Inventory Upload**.
2. The template comes pre-filled with your existing units.
3. Update **only the columns highlighted in green** — these are the editable price fields.
4. **Delete the first row** (the example row).
5. Save as **CSV UTF-8**.
6. Upload the file.

### Editable Fields (Green Columns)

The green columns are the only ones you can edit:

<table id="bkmrk-column-description-p"><thead><tr><th>Column</th><th>Description</th></tr></thead><tbody><tr><td>**Price**</td><td>Updated unit price.</td></tr><tr><td>**Space**</td><td>Updated unit space in sqm.</td></tr><tr><td>**Floor**</td><td>Updated floor number or name.</td></tr><tr><td>**Roof Space**</td><td>Updated roof space in sqm.</td></tr><tr><td>**Garden Space**</td><td>Updated garden space in sqm.</td></tr><tr><td>**View**</td><td>Updated view type — must exist in Inventory Settings.</td></tr><tr><td>**Bedroom**</td><td>Updated bedroom count.</td></tr><tr><td>**Bathroom**</td><td>Updated bathroom count.</td></tr><tr><td>**Finishing**</td><td>Updated finishing type — must exist in Inventory Settings.</td></tr><tr><td>**Unit Delivery Date**</td><td>Updated delivery date.</td></tr><tr><td>**State**</td><td>Updated unit state.</td></tr></tbody></table>

The following columns are **read-only** (grey) and must not be changed:

- Unit Id, Name, Segment Name, Segment Type, Building, Project

> ⚠️ Only the columns highlighted in green can be edited — do not modify any other columns or the upload will fail.

> 💡 The repricing template only affects **available** and **hidden** units — sold or reserved units are never modified.

---

## Inventory Template — File Preparation

> 💡 Same process applies to both the Inventory Template and the Repricing Template:
> 
> 1. Fill in the data.
> 2. **Delete the first row** (the example row that comes with the template).
> 3. Save as **CSV UTF-8**.
> 4. Upload.

---