Product import for Shopify

Files in. Products out.

Create and update Shopify products from CSV files, URLs and FTP servers. See every change before your store does.

Coming soon to the Shopify App StoreGet help

Try it: drag a column onto a field.

ImportJoyProduct import0 of 4 mapped
Import fields

Row 1 of 4

Basic details
Title
Media
Media
Organization
Product type
Inventory
Quantity
Harbor GoodsProducts
Products
Map Title to create products

Sources

Bring the file from wherever it lives.

Upload a CSV, fetch it from a link, or connect to an FTP, FTPS or SFTP server. Every file you import is saved as a source, so next time you pick it from a list.

ImportJoyProduct import
Add product data
Product CSV

Variants

Rows become variants.

Group rows into products by parent SKU, by title, by a group identifier, or expand every variant from one row. Up to three options, like Size and Color.

ImportJoyProduct import
Product variants
One row per productProducts do not have variation options.
Preview5 products
Merino Crew SweaterSize: S, M, L · Color: Oat, Navy3 variants
Merino Crew SweaterSize: S · Color: / Oat€96.00
Merino Crew SweaterSize: M · Color: / Oat€96.00
Merino Crew SweaterSize: L · Color: / Navy€104.00
Waxed Field JacketSize: M, L · Color: Olive2 variants
Waxed Field JacketSize: M · Color: / Olive€120.00
Waxed Field JacketSize: L · Color: / Olive€120.00

Formulas

Type @ for a column, / for a function.

In any field, @ searches your columns and their values. / adds a function: math for prices, str_replace to change text, if_equal to choose a value. Mistakes are flagged as you type.

ImportJoyProduct import
Map fields
Type @ or / in a field
Title
Price
Product status
Harbor GoodsProducts
Active

Updates

Update only what you choose.

Pick the fields an update may change. Everything else keeps its current value in Shopify.

ImportJoyProduct import
Choose data to update
Harbor GoodsProductsMerino Crew Sweater
After this import
TitleMerino Crew Sweater
DescriptionSoft merino, crew neck.
Price€96.00
Inventory quantity24
Tagsknitwear

Missing products

Decide what happens to products that left the file.

Set them to draft, archive them, set their inventory to 0, or delete them. Only products this import created or updated are affected.

ImportJoyProduct import
What do you want to do with those Shopify products?
Harbor GoodsProducts
Merino Crew SweaterActive24 in stock
Waxed Field JacketActive8 in stock
Canvas ToteNot in harbor-goods.csvActive41 in stock

Review

See every change before your store does.

The review counts what will be created, updated, skipped or blocked, with the reason for each blocked row. Nothing changes in Shopify until you start the import.

ImportJoyProduct import
Review import changes
Preflight plan
Products4
Create2
Update2
Missing0
Skip0
Blocked0
The import plan is ready

ImportJoy found no blocking conflicts or invalid products. Nothing has been changed in Shopify yet.

Products to create or update (4)
Merino Crew SweaterUpdate3 variants
Waxed Field JacketUpdate2 variants
Canvas ToteCreateSingle product
Wool BeanieCreateSingle product

Schedules

Imports that run on their own.

If a supplier publishes a product, price or stock file every day or week, set the import up once and schedule it. Pick the date, time and time zone, and repeat it every few days, weeks or months. Each run downloads the latest file from the URL or server and imports it with the same mapping and settings. If a download fails, the run is retried later and nothing changes in Shopify. Pause, resume or cancel a schedule at any time.

ImportJoyProduct import
Schedule and repeat this import

Use 24-hour time in HH:MM format.

Every

Templates

Same kind of file? Skip the mapping.

If you import the same export or supplier file again and again, save its mappings and settings as a template the first time. Next time, choose the template on Map fields and every field fills in. A template only applies to a file with the same columns, so a file whose columns changed is never mapped by mistake.

ImportJoyProduct import
Map fields
harbor-goods-october.csv · this month’s file
TitleProduct title
MediaDrop media columns or enter media URLs
Product typeClothing
Quantity100

Retries

Fix what failed, not everything.

If some products fail, retry only the failed and pending ones; products that already succeeded are not repeated. Run again replays the whole import with the original file and settings.

ImportJoyImportsharbor-goods.csv
harbor-goods.csv
Completed with errors
Products in this run3
Succeeded2
Failed / mismatched1
This import needs attention
Merino Crew SweaterUpdateSucceeded
Waxed Field JacketCreateFailed
Canvas ToteCreateSucceeded

In Shopify admin

Built into Shopify admin.

ImportJoy runs inside your Shopify admin and uses its design, so every screen looks like the rest of Shopify.

ImportJoyProduct import
1. Add file2. Preview3. Map fields4. Settings
Filter data
Show filters
3 of 3 rows
Preview product data
01-simple-products.csv · 3 rows · 9 columnsShowing the first five matching rows. Scroll sideways to see all 9 columns.
TitleDescriptionVendorProduct TypeTagsSKU
Ceramic Pour-Over Dripper<p>Hand-glazed ceramic dripper for one or two cups.</p>Harbor GoodsCoffee Gearcoffee, ceramicHG-DRIP-01
Linen Tea Towel<p>Stonewashed linen towel. 50 x 70 cm.</p>Harbor GoodsKitchenlinen, kitchenHG-TOWEL-01
Walnut Serving Board<p>Oiled walnut board with a juice groove.</p>Harbor GoodsKitchenwood, servingHG-BOARD-01
← Back→ Map fields
1. Add file2. Preview3. Map fields4. Settings
Use template
Basic details
TitleTitle
DescriptionDescription
VendorTheme templateGift cardGift card templateSelling plan
Media
MediaDrop media columns or enter media URLsMap one or more image columns. A cell can hold several URLs separated by a comma, semicolon or pipe (|).
Organization
Product typeProduct Type
CategoryCollectionsTags
Import fields
Row 1 of 3
Search import fieldsSearch fields (press /)
TitleMappedCeramic Pour-Over Dripper
DescriptionMapped<p>Hand-glazed ceramic dripper fo…
VendorHarbor Goods
Product TypeMappedCoffee Gear
Tagscoffee, ceramic
SKUMappedHG-DRIP-01
← BackSave templateImport settings →
1. Add file2. Preview3. Map fields4. Settings
Review import settings
Choose what this file can create or change before reviewing the import plan.
Save template
Import details
Import name (optional)0/120Shown in import history. The filename is used when left blank.
What should this import do?
Choose how products in this file affect your store
Add new Shopify products and update existing productsCreate products from unmatched rows and update products found by the selected identifier.
Add new Shopify products onlyCreate products from unmatched rows. Existing Shopify products remain unchanged.
Update existing Shopify products onlyUpdate matched products. Rows without a Shopify match are skipped.
Match existing products
Match products bySKU — MappedUse a value that is unique in this file and Shopify. Titles are not used because they can be duplicated.
SKU is mapped. Ambiguous or duplicate matches are blocked before Shopify changes.
Import review
01-simple-products.csv477 B
Rows
3 rows
Mode
Import new and update existing
Match existing by
SKU
Update fields
All mapped fields
Variants
Update and add
Product status
New active; existing unchanged
Sales channels
New products are not published; existing availability preserved
If media fails
Continue without media
Missing products
Leave unchanged
Schedule
Run now
BackReview changes

Pricing

Free.

No plans, trials or usage charges. Files up to 25 MB per import.

Questions

What kind of CSV can I import?

Any CSV with a header row. You map its columns to Shopify fields, so the column names and their order don’t matter.

Does anything change before I confirm?

No. The review shows every change first. Nothing in your store changes until you start the import.

Will running an import again create duplicates?

Not when you match existing products. Choose SKU, handle or barcode under Match existing products, and products already in Shopify are updated instead of created again.

Where is my file kept?

With your import history, so you can review, run again and retry. It’s deleted 48 hours after you uninstall. Read the privacy policy.

Does it access my customers or orders?

No. ImportJoy only asks for access to products, inventory, locations, sales channels and files.

How big can a file be?

Up to 25 MB per import.

Your next import, reviewed before it runs.

Coming soon to the Shopify App Store