Guide · Pages import
Web pages
Web pages are identified by name, which BigCommerce keeps unique — so a spreadsheet can address a page without knowing its id, and a file exported from one store imports into another.
1. Page types
| Type | Description | Extra fields |
|---|---|---|
page | Standard HTML content page. | Nothing else needed |
contact_form | Built-in contact form page. | Contact Fields, Contact Email |
link | Navigation entry that sends visitors somewhere else. | Link URL is required |
raw | Raw HTML with no storefront wrapper. | Body is required |
These four are the only types BigCommerce accepts on a write. Friendly spellings are understood — "Contact Form", contact-form, "Raw HTML" — and anything else fails the row before the API call, naming the allowed values.
2. Commands
| Command | Description | Behaviour |
|---|---|---|
| NEW | Create a new page. | Fails if a page with the same name already exists. |
| UPDATE | Update an existing page. | Uses Page ID if provided, otherwise searches by name. Fails if not found. |
| MERGE | Create or update. | The default. If the page exists, by id or name, it updates; otherwise it creates. |
| DELETE | Delete a page. | Uses Page ID if provided, otherwise searches by name. |
| REPLACE | Refused for pages. | Fails the row. Re-creating a page would give it a new id and a new URL — breaking every link to it — and move its child pages to the top level. Use UPDATE. |
| IGNORE | Skip this row. | Does nothing, and is recorded as skipped rather than as a success. |
3. All supported columns
| CSV column | BigCommerce field | Required | Description |
|---|---|---|---|
Command | — | Optional | NEW | MERGE | UPDATE | DELETE | IGNORE. Default MERGE. |
Page ID | id | Optional | BigCommerce page id. Provide it for UPDATE/DELETE to skip the name lookup — and it stays reliable when page names change, which a name cannot. |
Name | name | Required | Page name, 1–100 characters. BigCommerce keeps it unique, which is why a page can be found by name alone. |
Type | type | Optional | page | link | contact_form | raw. Default page. |
Body | body | Optional | HTML content, for the page and raw types. Wrap the value in double quotes if it contains commas or line breaks. |
Link URL | link | Optional | Destination URL, for type link. |
Is Visible | is_visible | Optional | true or false. Default true. |
Is Homepage | is_homepage | Optional | true or false. Sets the store homepage. Default false. |
Is Customers Only | is_customers_only | Optional | true or false. Restricts the page to logged-in customers. Default false. |
Parent ID | parent_id | Optional | BigCommerce id of the parent page. Only useful within one store, since ids differ between stores. |
Parent Name | parent_id | Optional | The parent named instead of numbered — resolved for you, and portable between stores. Parent ID wins if you give both. The parent may be created by an earlier row in the same file; the order you write them in does not matter. |
Sort Order | sort_order | Optional | Display order in navigation. Lower comes first. |
URL | url | Optional | Relative storefront URL, e.g. /about-us. |
Meta Title | meta_title | Optional | SEO title tag. |
Meta Keywords | meta_keywords | Optional | SEO keywords, comma-separated. |
Meta Description | meta_description | Optional | SEO meta description. |
Search Keywords | search_keywords | Optional | Storefront search keywords. |
Channel ID | channel_id | Optional | BigCommerce channel (storefront) id. Default 1. |
Contact Fields | contact_fields | Optional | contact_form only: fullname, phone, email, companyname, orderno, rma. |
Contact Email | email | Optional | contact_form only: the email address that receives form submissions. |
4. Example file
Command,Page ID,Name,Type,Body,Link URL,Is Visible,URL,Meta Title
NEW,,About Us,page,"<h1>About Us</h1><p>Our story...</p>",,true,/about-us,About Our Company
NEW,,Contact Us,contact_form,,,true,/contact,Contact Us
NEW,,Careers,link,,https://jobs.example.com,true,,
UPDATE,101,About Us,,,,,,About Us - Updated Title
DELETE,102,,,,,,,
5. Building a page hierarchy
Parent Name exists because a raw parent id is unusable in a spreadsheet and meaningless in another store — an export of store A could never be imported into store B. Page names are unique, so a name resolves to exactly one page.
Because a Parent Name makes rows depend on each other, a file carrying that column is ordered parents-first for you and its jobs run in sequence. Write the rows deepest-first if you like; a grandchild, child and parent in any order all build correctly. A row naming a parent that does not exist anywhere fails saying so.
Without that column, page rows are independent and run in parallel instead.
6. Things worth knowing
- A type change must bring its field. Switching a page to
linkneedsLink URLin the same row, and torawneedsBody— BigCommerce rejects the change otherwise, even when the page already has one stored. Typeis required to create a page, so a file with noTypecolumn could not create one at all. It is defaulted topageon the create path only: an update stays silent about it, because a partial update merges and naming a type the page cannot have is refused.- The Blog page is special. Your store's blog index is reported with a type BigCommerce will not accept back, so an export leaves its
Typecell blank and says so in the export warning. Leave it blank and the page re-imports fine. Is Homepageis exclusive. Setting it on one page moves it off whichever page had it — BigCommerce handles that itself, so only ever settrue.- Deleting a parent does not delete its children. They survive and move to the top level. Categories behave the opposite way.
- Blank cells never overwrite. A column you leave out, or leave empty, is not sent — and a cell holding only spaces counts as empty, so it cannot wipe a stored value.
- Only one page can be the homepage at a time.
- Check before you run. The file check flags any column that would be ignored, with a suggestion for a likely typo, and a dry run previews every row without writing anything.