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

# Upload Products

> Upload product data to create or update vendor products

# Upload Products

Upload products lets vendors add product data from a file instead of creating every product manually.

This is useful when you already have a price list, product catalog, or inventory export.

## What is product upload?

Product upload is the process of importing product data into Mathership from a file.

Vendors can use it to create or update products in their vendor catalog.

Typical uploaded product data includes:

* Product name
* Product number
* Packaging
* Stock
* Price
* Product description

## Who can upload products?

Product uploads are available to vendor users.

A vendor can only upload products for their own vendor company.

<Warning>
  Vendors cannot upload products into another vendor company.
</Warning>

## Supported upload format

Product upload is based on a CSV file.

The file should contain product data in columns.

Mathership reads the file and uses a field mapping to understand which column belongs to which product field.

<Note>
  The exact CSV delimiter can vary. Mathership can detect common delimiters such as semicolon, comma, tab, or space.
</Note>

## Required fields

The upload requires certain fields so products can be created correctly.

| Field          | Required                | Meaning                                     |
| -------------- | ----------------------- | ------------------------------------------- |
| Product name   | Yes                     | Name of the product                         |
| Packaging      | Yes                     | Packaging or order unit shown to customers  |
| Product number | Usually yes for vendors | Vendor article number or product identifier |

## Optional fields

Optional fields can improve the product catalog.

| Field               | Meaning                        |
| ------------------- | ------------------------------ |
| Stock               | Current stock value            |
| Price               | Product price                  |
| Product description | Additional product information |

If stock or price is missing, Mathership can save the value as `0`.

## Field mapping

Before importing the file, Mathership needs to know which CSV column matches which product field.

Example:

| Product field       | CSV column    |
| ------------------- | ------------- |
| Product name        | Artikelname   |
| Product number      | Artikelnummer |
| Packaging           | Gebinde       |
| Stock               | Lagerbestand  |
| Price               | Preis         |
| Product description | Beschreibung  |

This mapping helps Mathership import files with different column names.

## Product numbers

Product numbers help identify products during upload.

If a product number already exists for the vendor company, the existing product can be updated.

If no matching product number exists, a new product can be created.

<Note>
  Product numbers are especially important when using uploads to update an existing catalog.
</Note>

## Products without product numbers

If no product number is available, Mathership can still create a product using a fallback product number.

This is useful for simple catalogs, but it can make future updates less precise.

<Warning>
  For reliable future uploads, use stable product numbers whenever possible.
</Warning>

## Updating existing products

Product upload can update existing products when the product number matches an existing product in the same vendor company.

This can update fields such as:

* Product name
* Packaging
* Stock
* Price
* Product description

## Creating new products

If the uploaded product does not match an existing product number, Mathership can create a new product.

The new product is assigned to the vendor company used for the upload.

## Upload result

After the upload, Mathership can return an import result.

The result can include:

| Result field  | Meaning                              |
| ------------- | ------------------------------------ |
| Success count | Number of rows successfully imported |
| Errors        | Rows that could not be imported      |
| Row number    | The row where an error happened      |
| Error message | What went wrong                      |

## Partial success

Product upload can partially succeed.

This means some rows are imported, while other rows contain errors.

<Note>
  A few invalid rows do not necessarily prevent all other rows from being imported.
</Note>

## Example: Simple product upload

A vendor uploads a CSV file with these columns:

| Artikelnummer | Artikelname  | Gebinde        | Preis |
| ------------- | ------------ | -------------- | ----: |
| 1001          | Tomato juice | Crate 12 x 1 L | 18.50 |
| 1002          | Orange juice | Crate 12 x 1 L | 19.20 |

The vendor maps:

| Product field  | CSV column    |
| -------------- | ------------- |
| Product number | Artikelnummer |
| Product name   | Artikelname   |
| Packaging      | Gebinde       |
| Price          | Preis         |

Mathership can then create or update the products.

## Example: Upload with stock

| Artikelnummer | Artikelname    | Gebinde           | Lagerbestand |
| ------------- | -------------- | ----------------- | -----------: |
| 2001          | Mineral water  | Crate 12 x 0.75 L |           50 |
| 2002          | Apple spritzer | Crate 12 x 1 L    |           35 |

The stock value can be saved with the product and used in the vendor catalog.

## Example: Missing price

If a product row has no price, Mathership can still import the product.

| Artikelnummer | Artikelname      | Gebinde | Preis |
| ------------- | ---------------- | ------- | ----- |
| 3001          | Seasonal product | Box     |       |

The product can be created with a price value of `0`.

## Common problems

### Upload file is missing

Check that a file was selected before starting the upload.

### Mapping is missing

Check that all required product fields are mapped to CSV columns.

### Required value is empty

Check that required columns contain values in every row.

Required fields usually include product name and packaging.

### Product number is missing

Use stable product numbers whenever possible.

Without product numbers, future updates can be harder to match.

### Price or stock is not imported correctly

Check that price and stock values use a clear number format.

Avoid text such as currency symbols, units, or extra comments in numeric columns.

### Wrong products were updated

Check whether product numbers are reused incorrectly in the CSV file.

Product numbers should identify one product clearly within the vendor company.

## Best practices

### Clean the file before uploading

Remove empty rows, old test rows, duplicate products, and unnecessary columns.

### Use stable product numbers

Stable product numbers make future catalog updates safer.

### Map fields carefully

Review the mapping before starting the upload.

### Start with a small test file

Upload a small sample first if the catalog is large or the file structure is new.

### Review errors after upload

Check failed rows and correct them before uploading again.

### Review the catalog after upload

Open the product list and confirm that names, packaging, prices, and stock values look correct.

## Related pages

<CardGroup cols={2}>
  <Card title="Adding Products" icon="plus" href="/en/vendors/products/add-products">
    Add products manually to the vendor catalog.
  </Card>

  <Card title="Bulk Product Upload" icon="file-arrow-up" href="/en/vendors/products/bulk-upload">
    Import or update many products from a CSV file.
  </Card>

  <Card title="Edit Products" icon="pen-to-square" href="/en/vendors/products/edit-products">
    Update product data after upload.
  </Card>

  <Card title="Product Images" icon="image" href="/en/vendors/products/product-images">
    Add or manage product images.
  </Card>

  <Card title="Availability" icon="toggle-on" href="/en/vendors/products/availability">
    Mark uploaded products as available or not available.
  </Card>

  <Card title="Packaging Levels" icon="boxes-stacked" href="/en/vendors/products/packaging-levels">
    Define product packaging structures.
  </Card>
</CardGroup>
