Importing Pages

The Pages import creates and updates your store's Online Store pages (About, Contact, FAQ, policy pages, …) from a CSV/Excel file, a Google Sheet, or directly from another connected store. Rows are matched by handle, so running the same file twice updates the same pages instead of creating duplicates.

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

Columns

ColumnNotes
HandleThe page's URL handle — the identity used to match and create pages. Required.
TitleThe page title. Required when creating a new page (Shopify won't create a page without one); optional on updates.
Body (HTML)The page content, with HTML markup.
Publishedtrue / false (also accepts yes/no). Controls whether the page is visible. Leave blank to keep the current state on an update.
Template suffixThe theme template to render with (e.g. contact); blank uses the default page template.

How pages are matched

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

OperationOn an existing pageOn a new handle
Upsert (default)Updates itCreates it (Title required)
CreateFails the rowCreates it (Title required)
UpdateUpdates itFails the row
MergeUpdates itFails the row
DeleteDeletes itSkips the row

On an update, only the columns you provide change — blank cells leave the existing value alone. The dry run shows the create / update / delete split before anything is written.

Deleting pages

Choose the Delete operation to remove pages. A delete file needs only the Handle — the identity column — of each page to remove; content columns are ignored. Deletes are permission-gated (the store must be connected with content write access) and irreversible, so the dry run always shows the count first. A handle that no longer exists is quietly skipped, which makes re-running the same delete file safe (idempotent).

Importing from another store

On the wizard's Source step, pick From another store to copy pages from a connected store — no file needed. Title, body, publish state, and template come across, matched by handle. Combined with a schedule this becomes a recurring one-way page sync. The rows come from EcomSolo's synced data for the source store; sync it first if it hasn't run recently.

Results and freshness

Pages you create or update are visible in Shopify admin immediately, and EcomSolo's Pages dashboard refreshes within seconds of the run finishing.

Sample file

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

Handle,Title,Body,Published,Template suffix
wow-about,About the Wow Store,<p>We sell wow things.</p>,true,
wow-contact,Contact Us,<p>Reach the wow team any time.</p>,true,contact
wow-coming-soon,Coming Soon,<p>Something wow is on the way.</p>,false,

Dry run: will create 3 (or update for handles that already exist).

Troubleshooting

Error in the reportWhat it means / what to do
row requires a HandleEvery row needs a handle — it's how pages are matched and created.
row would create a new page but has no TitleNew pages need a title. Add one, or use an existing handle to update instead.
Handle has already been takenAnother page already uses that handle — pick a unique handle.

FAQ

Will re-importing create duplicates? No — rows match by handle, and the default Upsert operation updates in place.

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

Can I schedule it? Yes — ideal with a Google Sheet or a store-to-store source whose content changes between runs.