# Import from Shopify

Run the import wizard, read the preview before anything is written, and know which fields come across

Source: https://getolet.com/resources/help/integrations/import-from-shopify/
Updated: 2026-10-15

The import brings your Shopify products into your OLET catalog, and shows you exactly what will happen before anything is written.

You can run it as often as you like. It's not a one-shot migration.

This is a different thing from the spreadsheet import on the product list. If you want to load products from a file you've built yourself, use [Import products from a CSV](/resources/help/catalog/import-products-from-a-csv/) instead.

## Start an import

Go to **Integrations > Shopify** and select the **Settings** tab. In the **Products** card, select **Import products**.

Under the button, a note says "Import products brings in your whole Shopify catalog. Products you deleted in Olet come back as new products." A product you deleted in OLET is never restored as it was. Only an import brings it back, and it comes back as a new product.

OLET takes a fresh copy of your Shopify catalog first, then opens the **Import catalog** wizard on it. That's deliberate: an import that read a copy taken days ago would quietly write out-of-date prices. There's no separate "fetch" button to remember.

The first time you connect a store, the setup wizard runs this same import for you: see [Connect Shopify](/resources/help/integrations/connect-shopify/). The wizard below is for every import after that.

The wizard has four steps. **Back to Shopify** in the top right leaves it.

### 1. What to import

- **Products** is always on. That covers products, variants, barcodes, categories and tags.
- **Inventory isn't part of the import.** It brings your products, not your quantities. Inventory is copied by inventory sync, which you turn on in Settings. See [Shopify stock sync](/resources/help/integrations/shopify-stock-sync/).
- **Product images** is on by default and is the slowest part of the import. Turning it off now doesn't stop you running an import later just for images, without redoing anything else.

### 2. Field mapping

The step says "Choose how each field is kept up to date. You can change this later in Settings." Select **Run preview** to continue. The table is covered in the next section.

### 3. Confirm

Nothing has been written yet. The preview counts every product and tells you what would happen to it:

| Count | What it means |
|---|---|
| Products found | How many Shopify products were read |
| New | Products OLET doesn't have and would create |
| Linked to existing | Shopify products matched to an OLET product you already had, by SKU or barcode. Nothing is duplicated |
| Unchanged | Already in OLET and identical, so nothing to do |
| Skipped | Something stopped this one. The list underneath says what |
| Images to download | Shown only if you left images on, so the cost of that choice is a number and not a guess |

Underneath, **What would be skipped** lists every product the preview couldn't handle, with the reason. It appears only when something would be skipped. Fixing those in Shopify and running the preview again is usually quicker than fixing them in OLET afterwards.

Notices you may see here:

- **Existing products will be updated.** Products you already have in OLET that match a Shopify product take Shopify's values for every field set to **Keep updated**. The notice names the fields and says "To keep Olet's values, set those fields to New products only."
- **Generated SKUs.** Products with no SKU in Shopify get one from OLET, in the form `PRD-` followed by a code. You can rename them to anything you like afterwards. Nothing depends on the generated value.
- **Registers will re-sync.** If you're importing more than 50 products, your registers re-sync their catalog afterwards. That happens on its own and can take a few minutes on a slow connection.

Select **Import** when the numbers look right.

### 4. Results

The import runs on OLET's side, not in your browser. **You can leave the page and it keeps going.** When it finishes, the step says "Import complete" with a summary, such as how many products were created, linked to existing, updated, unchanged and skipped. Anything that went wrong is listed under **Issues from this import**, and the same items stay on the Activity tab. Select **View products** to go to your catalog.

## Choose how each field is kept up to date

The same table appears in three places: the setup wizard, the import wizard, and the **Products** card on the **Settings** tab. A change on one is a change on all of them.

| Shopify field | Olet field | Updates |
|---|---|---|
| Product title | Product name | Your choice |
| Price | Retail price | Your choice |
| SKU | SKU (generated when blank) | Always |
| Barcode | Barcode | Always |
| Cost | Supply price | New products only |
| Product type | Category | Your choice |
| Vendor | Brand | Your choice |
| Tags | Tags | Your choice |

SKU and barcode are how OLET matches a Shopify product to one you already have, so they always come across. Cost sets the supply price on a new product and leaves it alone on a product OLET already has.

For the five rows with a choice, open the dropdown and pick:

- **Keep updated.** The default. The value is copied on every import, and on every change in Shopify while **Keep products in sync** is on.
- **New products only.** The value is set when OLET creates the product, and never touched again.
- **Don't import.** Not offered for the product name or retail price, which every product needs. Available for category, brand and tags if you organize that dimension differently in OLET. See [Categories](/resources/help/catalog/product-categories/), [Brands and suppliers](/resources/help/catalog/brands-and-suppliers/), and [Product tags and product sets](/resources/help/catalog/product-tags-and-product-sets/).

On the **Settings** tab, a choice saves as soon as you make it, with a "Settings saved" confirmation. The **Keep products in sync** switch above the table keeps new and changed Shopify products flowing in with the note "Changes made in Shopify reach Olet within seconds." With the switch off, the table only applies to imports, and the page says "These apply to imports. Turn on sync to keep products updated."

## What comes across, and what doesn't

Comes across:

- Products and their variants, with names, retail prices, SKUs and barcodes. Barcodes are what make a product scannable at the register: see [Barcode scanners](/resources/help/hardware/barcode-scanners/).
- Supply price, but **only when the product is created**. On a product OLET already has, your supply price is left alone.
- Categories, brands and tags, unless you set them to **Don't import**.
- Product images, if you left them on.

Doesn't come across:

- Inventory quantities. Use [Shopify stock sync](/resources/help/integrations/shopify-stock-sync/) for those.
- Customers, orders, discounts, gift cards, or anything about how your online store looks.
- Suppliers and purchase orders. Shopify's Vendor field becomes an OLET brand, not a supplier.
- Composite or bundled products.

## What gets skipped, and why

The skipped list names the product and the fix. The common ones, as OLET words them:

| What you'll see | Why, and what to do |
|---|---|
| The price "*value*" isn't an amount Olet can store (more than 2 decimal places?) | OLET stores two decimal places. A price like `19.999` can't be imported. Round it in Shopify |
| Has no regular price, so it wasn't imported | The product has no price set in Shopify yet. Add one and it comes in on the next update |
| The price is in *currency*, but this Olet store sells in USD | Your OLET store sells in US dollars. Nothing to fix on this row |
| This SKU is used by more than one Shopify product variation | Only the first was imported. Make the SKUs unique in Shopify, then retry |
| SKUs must be 100 characters or fewer | Shorten it in Shopify |
| An existing Olet product already uses this SKU and couldn't be linked automatically | OLET found a clash it couldn't resolve on its own. Change one of the two SKUs |
| Matches Olet product *a* by barcode and *b* by SKU. Link it manually | OLET won't guess between two candidates. Fix the duplicate in OLET or Shopify, then retry |
| Matches a composite Olet product, which can't be synced | OLET won't link a Shopify product to a bundle. If the match was by accident, change the SKU or barcode on one side |
| Matches an Olet product of a different type (one has variants, the other doesn't) | Make the two products the same shape, then retry |
| The matching Olet product is already linked to a different Shopify item | Another Shopify product already owns that OLET product. Fix the duplicate, then retry |
| *n* variants exceeds Olet's limit of 200, or *n* options exceeds Olet's limit of 3 | The product was skipped. See [Product variants](/resources/help/catalog/product-variants/) |
| Barcode *code* is already used by another Olet product, so the barcode wasn't imported. The product was | A warning, not a skip. **The product was imported**, without that barcode |
| That image format isn't supported (PNG, JPEG, and WebP only) | Use one of those formats in Shopify |
| Couldn't download the product image | Usually a temporary failure at Shopify's end. Retry it |

Retrying and dismissing are covered in [Shopify activity and issues](/resources/help/integrations/shopify-activity-and-issues/).

## Running it again

Importing a second time doesn't duplicate anything. Products OLET already has are matched and updated, and products that haven't changed are counted as **Unchanged** and left alone.

That's what makes it safe to import images later, or to fix a handful of prices in Shopify and pull them across without touching the rest of your catalog. See [Products overview](/resources/help/catalog/products-overview/) for what you can edit in OLET afterwards.
