Quick start
Five minutes, one real import, no CSV writing. We'll create three metafield definitions on your products using the template ImportKit generates for you.
Imports can't be undone. On a Shopify development store, credit purchases are test charges, so this walkthrough costs you nothing. More on testing safely →
1. Install the app
Install ImportKit from the Shopify App Store and approve the permissions. Shopify will drop you straight into the app.
The left nav has four items: Home, Import, Credits and Jobs. Home shows your credit balance and recent imports.
The app home page, just after installing
Credit Balance card showing 0 available, with the empty recent-imports state and the left nav visible.
assets/screenshots/home-empty.png
2. Get a template
- Go to Import.
- Under Content type, choose Metafield definitions.
- In the “Don't have a file yet?” panel, click Download template.
You now have metafield_definitions-template.csv on your machine.
It looks roughly like this — a correct header row plus example rows, each
demonstrating a different situation:
name,key,type,ownerType,namespace,description,pin,validations,storefrontAccess
Care guide,care_guide,multi_line_text_field,PRODUCT,custom,How to care for this product,true,,PUBLIC_READ
Highlights,highlights,list.single_line_text_field,PRODUCT,custom,Key selling points,false,,PUBLIC_READ
Reading time,reading_time,number_integer,ARTICLE,custom,Minutes to read,true,min:1;max:120,PUBLIC_READ
You can import it exactly as it is. If you'd rather use your own field names,
open it in a spreadsheet and edit the name,
key and description values — just leave the header
row alone.
Download column guide gives you a second CSV that explains every column, whether it's required, and what each example row is demonstrating. Handy to keep open in another tab.
3. Upload it
Drag the file onto the drop zone, or click to browse. ImportKit reads the header row and lists your columns.
Step 1 — Upload CSV, with a file selected
Content type set to Metafield definitions, the file name shown in the drop zone, and the Continue button enabled.
assets/screenshots/quickstart-upload.png
4. Confirm the mapping
Because you used the template, every column is recognised and mapped for you. Have a look anyway — this is the screen where you'd correct anything, or set a column to Ignore if you didn't want it imported.
Columns marked required must be mapped to something before you can continue.
For metafield definitions those are name, key,
type and ownerType.
5. Run the pre-import check
This is the step that makes bulk imports survivable. The check reads every row and compares it against what's already in your store, then reports a verdict for each one:
| Verdict | Meaning | Costs a credit? |
|---|---|---|
| Create | Nothing like it exists yet, so it will be created. | Yes |
| Update | It exists and will be patched with this row's values. | Yes |
| Skip | It exists and will be left completely alone. | No |
| Conflict | It exists but is incompatible with this row. | No |
| Error | The row itself is invalid and can never import. | No |
On a fresh store you should see 3 to create and “3 of 3 rows will be written”. That number is exactly what the import will cost in credits.
The check writes nothing and costs nothing. Run it as many times as you like.
Step 3 — Check against existing definitions
“3 to create” badge, “3 of 3 rows will be written”, the conflict-mode selector, and the three rows listed with their labels.
assets/screenshots/quickstart-check.png
6. Buy credits
One credit imports one row, and you have three rows. If your balance is zero, the import step will tell you and link you to Credits.
- Open Credits.
- Pick the Starter Pack — 50 credits for $1.99.
- Approve the charge on Shopify's confirmation screen.
You land back on the Credits page with the balance updated. On a development store this is a test charge and nothing is actually billed.
7. Import
Back on Import, go to the last step and press Start Import.
The job runs on our servers, so you can close the tab if you want — but for three rows it'll be done before you can. You'll see a progress bar, live counts, and a Cancel button.
Step 4 — Import complete
Finished state showing 3 succeeded, 0 failed, 3 credits used, with the Retry / Start over buttons.
assets/screenshots/quickstart-done.png
8. Check your work
Two places to look:
- In ImportKit — open Jobs and click the job. You get the totals, plus every row with its outcome and the Shopify ID of what was created.
- In Shopify — Settings → Custom data → Products. Your new definitions are there. Open any product and you'll find the fields waiting to be filled in.
9. The interesting bit: import it again
Upload the same file a second time and run the check. Now every row reports Skip, the credit cost is 0, and nothing in your store changes.
That's the default conflict mode doing its job. Switch it to Update it with this row's values and the same rows become updates instead. Switch it to Report it as an error and they become conflicts. Nothing is charged in the check either way.
Read more about conflict handling →
Where to go next
You've now done the whole loop. The obvious next step is to put values into the fields you just created:
Import metafield values
Fill in custom.care_guide on real products, referencing them by handle.
Read the guide →
Getting started
The concepts behind all five import types, and a checklist before you import into a live store.
Take the tour →
Preparing your own CSV
Encoding, quoting, lists, blank cells and the size limits — for when you stop using templates.
File rules →
Copy this to your live store
Now that it works on a dev store, move the same custom data to production in the right order.
Migration guide →