Importing Files

The Files import adds assets to your store's media library (Content → Files) from a CSV/Excel file, a Google Sheet, or directly from another connected store. You provide a public URL for each file and Shopify downloads and hosts its own copy — the same mechanism product and article images use. Files have no handle, so they're matched by filename: re-importing the same file updates its alt text instead of creating a duplicate.

For the wizard itself — uploading, mapping, dry runs, schedules — see Importing into EcomSolo.

Columns

ColumnNotes
File URLA publicly reachable URL to the asset (image, video, PDF, …). Required to create a file — Shopify pulls the bytes from here.
Alt textAccessibility / SEO description. This is the field a re-import updates.
FilenameThe name to store the file under, and the match key. Leave it blank and it's derived from the URL's last path segment (e.g. .../wow-banner.jpgwow-banner.jpg).
Content typeIMAGE, VIDEO, EXTERNAL_VIDEO, MODEL_3D, or FILE (generic). Leave blank to infer from the file extension.
On duplicate filenameWhat happens if a file with the same filename already exists on a create: REPLACE (default — no duplicate), APPEND_UUID (keep both), or RAISE_ERROR.

Common export headers map automatically: URL / Image Src / Source → File URL, Alt → Alt text, File Name → Filename.

How files are matched

Every row is matched to an existing file by filename on the target store. What happens on a match depends on the operation you pick for the run:

OperationOn an existing filenameOn a new filename
Upsert (default)Updates its alt textCreates it from the File URL
CreateFails the rowCreates it from the File URL
UpdateUpdates its alt textFails the row
MergeUpdates its alt textFails the row
DeleteDeletes itSkips the row

Matching first checks EcomSolo's synced file list, then falls back to a live Shopify lookup — so re-runs and store-to-store targets recognize existing files even before the next sync. On a create, the On duplicate filename option (default REPLACE) prevents duplicates if a same-named file slips past the lookup.

Deleting files

Choose the Delete operation to remove files. A delete file needs only the Filename (the identity column) of each file to remove — no URL. Deletes are permission-gated (file write access) and irreversible, so the dry run always shows the count first. A filename that no longer exists is quietly skipped, so re-running the same delete file is safe (idempotent).

Importing from another store

On the wizard's Source step, pick From another store to copy files from a connected store — each source file's hosted URL is handed to the target, which downloads its own copy, carrying alt text and filename. Matched by filename, so re-runs update alt in place. Combined with a schedule this becomes a recurring one-way file sync.

Results and freshness

Files are created/updated in Shopify immediately and EcomSolo's Files dashboard refreshes within seconds of the run. One caveat: files process asynchronously, so a brand-new image that's still processing when the run finishes may show without its preview/dimensions until the next sync fills them in — the file itself (name + alt) appears right away.

Sample file

A ready-to-run example ships as files-sample.csv:

File URL,Alt text,Filename
https://picsum.photos/seed/wowbanner/1600/600.jpg,Wow storewide banner,wow-banner.jpg
https://picsum.photos/seed/wowlookbook/1200/1200.jpg,Wow spring lookbook cover,wow-lookbook.jpg
https://picsum.photos/seed/wowicon/512/512.jpg,Wow app icon,wow-icon.jpg

Dry run: will create 3 (or update for filenames that already exist). Re-run the same file and it becomes update 3 — the alt text is refreshed, no duplicates.

Troubleshooting

Error in the reportWhat it means / what to do
row requires a Filename or a File URLA row needs either an explicit filename or a URL to derive one from.
row would create a new file but has no File URLCreating a file needs a public source URL.
URL / download errorsThe URL must be publicly reachable and point at a real file. URLs behind a login, or links to a web page rather than the file itself, are rejected by Shopify at run time.
… access scope / missing permissionThe store isn't connected with file write access — reconnect it from its settings, then re-run.

FAQ

Will re-importing create duplicates? No — rows match by filename and default to REPLACE, so re-runs update the alt text in place.

Can I import videos or PDFs? Yes — set Content type to VIDEO or FILE (or leave it blank to infer from the extension).

Can I delete files? Yes — run the file with the Delete operation and a column of filenames. It's permission-gated and irreversible, and missing filenames are skipped. See Deleting files.