Ottermerce

Bulk catalog import, export
and editing for BigCommerce

Sign in Start free

Guide · Price list import

Price lists

Set customer-group pricing across a catalog from one spreadsheet. Price records are written in batches of up to a thousand, and BigCommerce caps how many of those may run at once — so this is the one import type that deliberately does not run in parallel.

A price list is a named set of prices that can be attached to one or more customer groups. The list itself is one thing; the prices inside it are another, and one row of your file can create either or both.

Commands

Command Description Behaviour
MERGECreate or update.The default. Creates the price list if the store has none by that name, then upserts the price.
NEWSame as MERGE for prices.The records endpoint is an upsert with no create-versus-update distinction, so pretending otherwise would be a fiction.
UPDATEUpdate an existing price.Never creates the price list — a row naming a list that does not exist fails and says so.
DELETERemove one price.Removes the price for that variant in that currency. Needs a Variant ID, or a SKU this app can resolve to one.
IGNORESkip this row.Does nothing, and is recorded as skipped rather than as a success.
REPLACERefused.Fails the row. There is nothing a delete-then-create would achieve that an upsert does not.

Columns

Column Notes
Price ListThe list's name. Unique on BigCommerce, so it identifies one list and travels between stores.
Price List IDWins over the name when both are given.
Price List Activetrue or false. A row carrying only this and a list name switches the list on or off without touching any price.
SKUThe variant's SKU. BigCommerce accepts it in place of a variant id on the upsert, which is what makes this file writable by hand.
Variant IDExact. Preferred over SKU when both are given.
CurrencyRequired on any row that carries a price. Three-letter code, e.g. USD.
PriceThe price for this variant in this list.
Sale Price, Retail Price, MAP PriceOptional, and each is left alone when its cell is blank.
Bulk Pricing Min Quantity, Bulk Pricing Type, Bulk Pricing AmountOne quantity tier per row, the way product bulk pricing works.

A minimal file

Command,Price List,SKU,Currency,Price
MERGE,Wholesale,TSHIRT-M,USD,15.50
MERGE,Wholesale,TSHIRT-L,USD,15.50
MERGE,Wholesale,HOODIE-M,USD,32.00

That creates a price list called Wholesale if the store has none, then sets three prices in it. Running the same file again changes nothing — the endpoint is an upsert, so a re-run is safe.

Why this import does not run in parallel

Everywhere else, this app runs four queue workers because the work is network-bound and BigCommerce allows far more requests than one worker can make. Price lists are the exception, and it is the platform's decision rather than a design choice here.

The practical effect is that a very large price file is steadier but not faster than it would be unchained — which is exactly what BigCommerce asks for, since it also recommends packing as many records into each request as possible. A batch here carries up to 250 records against a documented cap of 1,000.

Deleting a price

The delete endpoint is keyed by variant id and currency, so a row naming only a SKU has to have it resolved first.

Command,Price List,SKU,Currency
DELETE,Wholesale,TSHIRT-M,USD

If the SKU has no price in that list there is nothing to delete, and the row says so rather than reporting a success.

Export

An export writes one row per price record, plus a row for any price list that has no prices in it — otherwise re-importing the file would quietly drop the list itself and you would have to re-create it by hand.