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.
Try it: drag a column onto a field.
Row 1 of 4
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.
No saved sources match.
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.
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.

Updates
Update only what you choose.
Pick the fields an update may change. Everything else keeps its current value in Shopify.
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.
When off, Shopify products missing from this file remain unchanged.
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.
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.
Use 24-hour time in HH:MM format.
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.
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.
Failed and pending products are processed again. Products that already succeeded are not repeated.
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.
- 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
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.