Ottermerce

Bulk catalog import, export
and editing for BigCommerce

Sign in Start free

Guide · Blog posts import

Blog posts

Blog posts are the only resource on BigCommerce's v2 API, and v2 is fussier: one accepted date format, tags as a list rather than a string, and a summary field that refuses to be written.

1. Commands

Command Description Behaviour
NEWCreate a new blog post.Fails if a post with the same title already exists.
UPDATEUpdate an existing post.Uses Post ID if given, otherwise finds the post by title. If two posts share the title, the row fails and names their ids rather than editing the wrong one.
MERGECreate or update.The default. If the post exists it updates; otherwise it creates.
DELETEDelete a blog post.Uses Post ID if given, otherwise finds it by title — and refuses if the title matches more than one post.
REPLACERefused for blog posts.Fails the row. Re-creating a post would give it a new id and a new URL, breaking every link to and share of it. Use UPDATE.
IGNORESkip this row.Does nothing, and is recorded as skipped rather than as a success.

2. All supported columns

CSV column BigCommerce field Required Description
CommandOptionalNEW | MERGE | UPDATE | DELETE | IGNORE. Default MERGE.
Post IDidOptionalBigCommerce blog post id. Provide it for UPDATE/DELETE to avoid the title lookup.
TitletitleRequiredBlog post title.
BodybodyRequiredFull HTML content of the post.
Is Publishedis_publishedOptionaltrue published, false draft. Default false.
Published Datepublished_dateOptionalWrite it however you like — 2026-04-14, 14 Apr 2026 08:00, or the full form. It is converted to the one format BigCommerce accepts.
AuthorauthorOptionalAuthor display name.
URLurlOptionalCustom URL slug, e.g. /blog/my-post. Generated from the title if omitted.
Thumbnail Paththumbnail_pathOptionalWebDAV path to a thumbnail, e.g. /product_images/blog/thumb.jpg.
TagstagsOptionalComma-separated, e.g. "news,tips,ecommerce". New tags are created for you. Note that the whole list replaces the post's tags.
Meta Keywordsmeta_keywordsOptionalSEO keywords.
Meta Descriptionmeta_descriptionOptionalSEO meta description.

3. Tags

Tags are plain strings — there is no separate create step. Importing a post with Tags = "news,tips" creates the news and tips tags if the blog does not have them.

To see every existing tag and which posts use them, run an export of blog posts filtered by tag.

Note that the list is a replacement, not an addition: a row supplying Tags sets the post's tags to exactly that list.

4. The published date

BigCommerce accepts exactly one format here, and it is not the format it hands back on a read. So write the date any way a human would — 2026-04-14, 14 Apr 2026 08:00, or the full RFC 2822 form — and the importer converts it.

If you omit the column, BigCommerce uses the moment the post is published.

5. Example file

Command,Post ID,Title,Body,Is Published,Published Date,Author,Tags,Meta Description
NEW,,My First Post,"<h1>Hello</h1><p>Welcome to our blog!</p>",true,"Mon, 14 Apr 2026 08:00:00 -0000",John,,First blog post
MERGE,,Tips & Tricks,"<p>Here are our top tips...</p>",true,,Admin,"tips,howto",Tips for customers
UPDATE,101,,,false,,,,
DELETE,102,,,,,,,
IGNORE,,Draft Post,Work in progress,false,,,,

6. Things worth knowing

  • There is no Summary column. BigCommerce writes the summary itself from the start of the body and refuses to be told one — a Summary column would fail the whole post, so the importer ignores it and the file check tells you it is being ignored.
  • Titles are not unique. Two posts may share one. When they do, a row identified only by Title fails and lists the matching ids, so put the Post ID of the one you mean. That matters most for DELETE.
  • The whole blog is searched when a row has no id. There is no title filter on this endpoint, so finding a post by title means walking the posts. It is correct on a large blog, where reading only the first page used to report "not found" — and then MERGE created a duplicate.
  • Blank cells never overwrite. A column you leave out, or leave empty, is not sent; a cell holding only spaces counts as empty.
  • Check before you run. The file check flags any column that would be ignored, and a dry run previews every row without writing anything.