---
title: "Import locations from a CSV file"
description: "Update many locations at once from a spreadsheet, with the columns to use and how rows are matched to your existing stores."
product: "Shoppy Find in Store"
section: "Locations"
url: https://help.shoppyconnect.com/find-in-store/locations/import-locations-from-a-csv-file
markdown_url: https://help.shoppyconnect.com/find-in-store/locations/import-locations-from-a-csv-file.md
last_updated: 2026-11-05
tags: ["locations", "import", "csv", "spreadsheet", "bulk update", "store id"]
---

# Import locations from a CSV file

> Update many locations at once from a spreadsheet, with the columns to use and how rows are matched to your existing stores.

Use a CSV file to update the details of many locations at once, such as their email addresses, phone numbers, tags, or status.

> **Import from Shopify first.** A new location created from a CSV file isn't linked to a Shopify location, so the widget can't show stock for it. Import your stores from Shopify, then use a CSV file to fill in their details. See [Import locations from Shopify](https://help.shoppyconnect.com/find-in-store/locations/import-locations-from-shopify.md).

## How rows are matched

For each row, the app looks for an existing location:

1. If **StoreID** is filled in, it updates the location with that ID.
2. If not, it updates the location with exactly the same **StoreName**.
3. If nothing matches, it creates a new location.

So to update a store you imported from Shopify, use its name exactly as it shows on the **Locations** page, including capitals.

## Columns

Download the sample file from the import window to start with the right columns. The first row must have these column names:

| Column             | Required | What to put                                                                                                       |
| ------------------ | -------- | ----------------------------------------------------------------------------------------------------------------- |
| `StoreID`          | No       | The ID of the location to update. Leave empty to match by name. See [Find a location's ID](#find-a-locations-id). |
| `StoreName`        | Yes      | The store name, for example `Urban Stitch Brisbane`.                                                              |
| `Handle`           | No       | A short web-friendly name. Made from the store name if empty.                                                     |
| `Address`          | Yes      | The street address, for example `91 Queen Street`.                                                                |
| `City`             | Yes      | For example `Brisbane`.                                                                                           |
| `State`            | Yes      | For example `QLD`.                                                                                                |
| `Zip`              | Yes      | The postcode, for example `4000`.                                                                                 |
| `Country`          | Yes      | For example `Australia`.                                                                                          |
| `Email`            | No       | For example `brisbane@example.com`.                                                                               |
| `Website`          | No       | Not imported at the moment. Leave it empty.                                                                       |
| `PhoneCountryCode` | No       | For example `+61`. Added in front of the phone number.                                                            |
| `PhoneNumber`      | No       | For example `730000000`.                                                                                          |
| `ShortDescription` | No       | Not imported at the moment. Leave it empty.                                                                       |
| `Description`      | No       | Not imported at the moment. Leave it empty.                                                                       |
| `Status`           | Yes      | `active` or `inactive`.                                                                                           |
| `Tags`             | No       | Separate tags with a pipe, for example `Flagship\|Alterations`.                                                   |

The app looks up each address to place the store on the map. If it can't find one, the store shows in the **Not on map** tab, and you can fix it by hand.

There are no columns for trading hours. New locations from a CSV file start with the standard hours of Monday to Sunday, 9:00 AM to 5:00 PM. Updated locations keep their hours.

### Find a location's ID

Open the location in the app. The ID is the number at the end of the page address in your browser, for example `128` in `.../app/locations/128`.

## Import the file

1. Go to **Locations**.
2. Click **Import** › **Import from CSV**.
3. Click **Add file**, or drop your `.csv` file in the window. The file can be up to 1 MB.
4. Click **Upload and import**.

The import runs in the background. Refresh the **Locations** page after a minute to see the changes.

## Tips

- **Updating replaces the details in the file.** Fill in every column you want to keep for the stores you're updating. An empty phone number, for example, clears the store's phone number.
- **Check your file in a spreadsheet app first.** Save it as **CSV UTF-8** so names with accents come through correctly.
- **Rows with mistakes are skipped**, such as a missing required column or a `Status` that isn't `active` or `inactive`. Fix the row and import the file again.

## Related guides

- [Import locations from Shopify](https://help.shoppyconnect.com/find-in-store/locations/import-locations-from-shopify.md)
- [Find, filter, and bulk edit locations](https://help.shoppyconnect.com/find-in-store/locations/find-filter-and-bulk-edit-locations.md)
