Ottermerce

Bulk catalog import, export
and editing for BigCommerce

Sign in Start free

For BigCommerce merchants and agencies

See every write before it happens.

Move nine kinds of store data in and out as CSV or Excel — or skip the spreadsheet and change prices, swatch colours, image order, variants and metafields across hundreds of products straight from the browser. Either way, you read the whole run first.

No card. The free plan is a working plan, not a countdown.

Dry run — nothing written spring-catalog.xlsx
Row 2   would update   SKU SLCTBS       price 49.00 → 53.90
Row 3   would create   SKU TWL-CHM-02   under Home / Linens
Row 4   would update   variant 4231      stock 12 → 40
Row 5   would delete   image 265         (Image ID matched)
Row 6   will fail      "Vintage Mug" matches 3 products —
                       name is not unique, so nothing is guessed
6 rows 4 items 1 failure 0 writes
Fig. 1 The report a merchant reads before deciding. Every row is listed, not a sample, and nothing has been sent to the store.
The fear Will this file destroy my store?

BigCommerce has no undo. One wrong column on 4,000 rows is a weekend of manual repair.

What others answer We validate your file

A separate checker guesses at your columns. It can pass a file the real import then chokes on.

What we answer We run your file

Same code, writes recorded instead of executed. If the preview is clean, the run is the same run.

01 The dry run

One pipeline, two endings

Most tools validate your file. Ottermerce runs it — the same mapper, the same product lookup, the same errors — and records what it would have written instead of writing it.

Your file
Every run, dry or real, goes through exactly this
detect encoding parse rows map columns look up products resolve categories validate
Dry run Writes recorded

0 writes sent · full per-row report

Real run Writes executed

same rows · same failures · same report

The branch is the last step, not the first. That is the whole trick, and it is why row 6 fails identically in both — a preview and a run are the same event with one switch flipped at the end.

  • Every row previewed, not a sample
  • Ambiguous matches named, never guessed
  • Unknown columns flagged with a spelling suggestion
  • Checks your API token can reach the resource before queueing anything
  • A dry run never counts against your daily limit
Analyze one GET
file         spring-catalog.xlsx  2.4 MB
rows         1,284    items  412 products

recognised   38 columns
unknown      "Modifer Name"
             did you mean "Modifier Name"?

token        can reach Products, Categories, Brands
plan         412 of 25,000 items — within Growth
Fig. 2 The file check that runs before anything is queued. A misspelt column is named with the correction rather than silently dropped.
02 What it moves

Nine kinds of store data, one file format

Every export is written with the exact column names the importer reads, so a file that comes out can be edited in Excel and put straight back in. Round trips were tested against a live store until the counts came back identical.

01

Products

Pass-through fields, custom fields, metafields, images, videos, bulk pricing tiers, modifiers.

A name matching three products fails the row and lists their ids rather than editing one.

02

Variants

Options and swatches, per-variant SKU, price, stock, identifiers and metafields.

Two variants given the same SKU stop the whole apply, before anything is written.

03

Categories

Full paths, renames, moves, metafields. Parents are created before their children.

BigCommerce deletes a category's whole subtree with it, so a delete is refused unless Cascade says otherwise.

04

Pages

Parent by name rather than raw id, so a file works in a second store too.

A page is never re-created to change it — that would issue a new URL and break every link.

05

Blog posts

Bodies, tags and publish dates, with the date format BigCommerce actually accepts.

Titles are not unique: a row identified only by title fails and names the matches.

06

Redirects

URL and entity redirects, written as one batch per file.

Upsert on From Path, so re-running a file cannot leave duplicates behind.

07

Brands

SEO title, meta, search keywords, image and URL. Created on demand when a product names one.

Deleting a brand leaves its products alone rather than taking them with it.

08

Customers

Several addresses per customer, groups by name, custom attributes.

Force Password Reset is the one column that mails anyone, and an export never writes it.

09

Customer groups

Category access and discount rules, with amounts trimmed so a round trip does not drift.

Access set to specific with no category ids fails, rather than hiding every category.

03 Bulk edit

Edit hundreds of products from the browser

Filter your catalog, pick an operation, preview it, apply it. Adjust prices by a percentage, set a brand, add or remove categories, add or delete metafields and custom fields.

A bulk edit is an import.

Same pipeline · same preview · same history

It generates the file and runs it through the same pipeline, so you get the same per-row results — and the generated file is kept as the audit trail.

  • Per-product editors for variants, images, options and fields
  • Drag to reorder images and set the thumbnail
  • Swatch colours checked before the request, not after a 422
  • Refuses edits that would silently delete something you never saw
Why an edit can be refused If the store has a field the page never displayed, the change is stopped and the field is named. Deleting data you did not know about is the worst thing a bulk tool can do, so it is treated as an error rather than a side effect.
Excel or CSV Encoding and delimiter are detected for you — UTF-8, BOM, Windows-1252, UTF-16, comma, semicolon, tab or pipe. Exports open cleanly in Excel, and a SKU like 0012345 keeps its leading zeros.
01

Variants

SKU, price, sale and cost price, stock, weight, UPC and MPN, purchasing state — across every variant of a product at once.

Clearing a field is refused rather than quietly ignored, because a blank cell means "leave alone" everywhere else.

02

Images

Drag to reorder, promote any image to the thumbnail, matched by BigCommerce's own image id rather than by filename.

Leaving an image out of the list is refused — positions are absolute, so the omitted one would collide with whatever took its place.

03

Options & swatches

Switch an option between dropdown, radio, rectangles and swatch, and set the colour chip for every value.

A swatch needs a colour for every value or BigCommerce rejects the lot, so a missing one is named before the request is sent.

04

Metafields & custom fields

Add, rename, retype and remove them, one product at a time or across everything a filter matches.

If the store has gained a field your page never displayed, the whole change stops and names it.

04 Pricing

Limits are the trial

Limits are per import and per day. A dry run never counts against them — finding out a file is too big should not cost you the day's quota.

Rate card · monthly, cancel any time
Plan FreeEvaluate StarterOne store GrowthMost stores ScaleAgencies
Per month $0 $39/mo $59/mo $99/mo
Items per import 100 5,000 25,000 200,000
File size 5 MB 25 MB 100 MB 500 MB
Imports per day 3 15 50 Unlimited
Exports All types All types All types All types
Queue Low Standard Standard Priority
Start free Choose Starter Choose Growth Choose Scale

An item is a product, not a row — a product with twenty variants counts once. Prices exclude any tax that applies where you are.

05 Questions

Questions worth answering first

Do you store my catalog?

No. BigCommerce stays the source of truth. Ottermerce holds your import files, the results of each run and your store credentials — nothing else.

How do I connect a store?

Paste a store hash and an API token in Settings, or install the app from your BigCommerce control panel. Either way the app behaves identically.

What happens if a row fails?

That row fails and the rest continue. Every row gets a result you can read on screen or download as a CSV annotated with the original line numbers.

Can I undo an import?

No — and no tool honestly can, because BigCommerce has no undo. That is exactly why the dry run exists and why it takes the real code path.

Will it email my customers?

Only if you fill in the Force Password Reset column, which is the one field that makes BigCommerce send mail. Exports never write it, so a round trip cannot trigger it by accident.

What API permissions does it need?

Four scopes, and no more: Products (which also covers categories and brands), Customers (customers and groups), Content (pages and blog posts) and Sites & Routes (redirects). Nothing touches orders, carts, checkout or payments.

Can I connect more than one store?

One store per account today. An agency running several stores needs an account per store — say so when you write in and we will sort it out rather than leave you paying four times.

Can imports run on a schedule?

No. Every run is started by a person looking at a preview, which is deliberate: an unattended import is one nobody read the dry run for. If you want a nightly sync from a feed URL, tell us what you are syncing — it is a different product and worth building properly.

Does it work with Shopify or WooCommerce?

Not today — BigCommerce only. The file format and the whole preview pipeline are platform-neutral by design, so another platform is a new set of API clients rather than a rewrite, but nothing is claimed until it is tested against a real store.

What if an import stops halfway?

Rows already written stay written — there is no rollback, because BigCommerce offers none. The results record exactly which rows completed, so you can cut the file down to what is left and run the remainder. This is the other reason to read a dry run first.

How long does a large import take?

The ceiling is BigCommerce's API rather than us: an import is thousands of individual calls and they are rate limited at their end. Work runs across four parallel workers, and a product with twenty variants costs far more calls than twenty simple products — so row count alone does not predict it.

Is there a contract?

No. The free plan does not expire, and paid plans are monthly.

Try it on a file you are afraid of

Upload it, run a dry run, read every row. Nothing is written until you say so.

Start free