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

# Import and Export Vendor Price Lists

> Load vendor prices from a CSV or XLSX file, export them back out, and re-upload the file to update prices in bulk.

Load vendor prices from a file, export them back out in the same format, and re-upload to update in bulk.

### **Business Value**

* Loads a whole season's vendor prices in one file.
* Exports the current prices for review outside the system.
* Export, edit and re-upload changes the same rows.
* Rejects the whole file when any row is wrong. Nothing lands half-loaded.
* Names the exact problem on every bad row.

### **Use Cases**

* Purchasing manager loads a new vendor's full price sheet in one upload.
* Cost controller exports the current prices, adjusts them in Excel and re-uploads.
* Buyer searches for one vendor first, then exports only that vendor's prices.

### **How It Works**

| **Where:** Back Office → Purchasing → Price Lists → Upload / Export |
| - |

The Price Lists listing has **Upload** and **Export** buttons. Both use the same columns. A file that comes out of Export can go straight back in through Upload.

Before, the Upload screen did not open and there was no export. Both now work.

#### **File Columns**

The file must be a **`.csv`** or **`.xlsx`** with a header row and these columns:

| Column | What it holds | How it is matched |
| - | - | - |
| **Vendor** | The vendor | By vendor **code** first, then by **name** |
| **Item Number** | The item | By item number |
| **Unit** | The unit the price is quoted in | By unit name |
| **Price** | Price per unit, in base currency | — |
| **Valid From** | First day the price applies | — |
| **Valid To** | Last day the price applies | — |

The columns are also listed in the **Help** section on the Upload page.

#### **Uploading**

1. Open **Price Lists** and click **Upload**.
2. Choose your `.csv` or `.xlsx` file.
3. Submit.

Every row is checked **before anything is saved**. If one row fails, **nothing** is saved. The page then lists each problem line by line. Fix the file and upload it again.

A row that names a **vendor, item and unit that already have a price** updates that price. Otherwise the price is created. You never end up with two prices for the same vendor, item and unit.

On success you return to the listing with a **"N rows processed successfully"** message.

#### **What Gets Rejected**

| Problem | What it means |
| - | - |
| Unknown vendor, item or unit | The value in the file matches nothing in the system. |
| Price is negative or not a number | Prices must be numeric and zero or above. |
| Invalid date | **Valid From** or **Valid To** is not a readable date. |
| **Valid To** before **Valid From** | The validity period runs backwards. |
| Missing required value | A required column is empty on that row. |

A file that cannot be read shows a plain error message, not a server error. That covers the wrong encoding, a file that is not really a csv or xlsx, and corrupt rows. A file with **only a header row** shows a **"No rows found"** warning and leaves you on the Upload page.

#### **Exporting**

**Export** writes the current price lists to a `.csv`, using the same columns Upload expects.

* The export **respects the search filters** on the listing. Search for one vendor first and you export only that vendor's prices.
* There is no separate template download. When the list is empty, the export is just the header row. That is your blank template.

| **Note:** Prices are held in the property's base currency. A vendor quoting in another currency has to be converted before the file is uploaded. |
| - |

See [Vendor Price Lists](/back-office/purchasing/vendor-price-lists) for the screen itself and its search fields.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.