Introduction

The Catalog refers to a store’s collection of physical and digital products. The Catalog includes all the information about a product such as MPN, warranty, price, and images.

Products are the primary catalog entity, and the primary function of the e-commerce platform is to sell products on the storefront and other selling channels.

Products can either be Simple or Complex.

Products can also be Physical or Digital.

  • Physical products are typically products that exist in a physical form, have a weight, and are being sold by retailers with the intent of shipping them to customers.

  • Digital products, on the other hand, may not have a physical representation in the real world; this includes downloadable products such as computer software, ebooks, music, images, and other digital media. Alternatively, a digital product may be used to sell services such as spa treatments, consulting, and so forth - which also do not require shipping.

Product Creation

Only one Product can be created at a time.

Create a Simple Product

Simple products do not have any options, modifiers, or variants, and therefore cannot be configured or modified before they are added to cart. A simple product is its own variant.

Try It Now
Use this to create your own Simple Product. Replace the test data with your own.
Send requests directly from the browser (CORS must be enabled)
Path Params
1 path param not set
store_hash
$$.env
No $$.env variables are being used in this request.
Creating Options

When options are created via the /products endpoint, the display_type defaults to radio button.


Create a Complex Product

Complex products have at least one option and may have modifiers or variants.

Try It Now
Use this to create your own test product. Replace the test data with your own.
Send requests directly from the browser (CORS must be enabled)
Path Params
1 path param not set
store_hash
$$.env
No $$.env variables are being used in this request.

The /products endpoint supports the creation of multiple variants along with the base product in a single call.


Digital Products

Digital products are purchaseable items that don’t have a physical representation and are not shipped to the customer; for example, manuals, ebooks, or music. A downloadable product file can be associated with a digital product.

Downloadable product files are intended for products of the “digital” type, typically for selling some kind of media file or software. Product dimensions are not required because the item is not shipped.

Files must be added to digital products using the Control Panel or WebDav (attaching via the API is not supported). Additional settings such as a description of the file and maximum downloads can be set in the Control Panel.

Try It Now
Use this to create your own Digital Product. Replace the test data with your own.
Send requests directly from the browser (CORS must be enabled)
Path Params
1 path param not set
store_hash
$$.env
No $$.env variables are being used in this request.

OAuth Scopes


Webhooks Available


Related Endpoints


Object Properties

object

Common Product properties.

name
string

The product name.

minLength: 1
maxLength: 255
example: Smith Journal 13
type
string

The product type. One of: physical - a physical stock unit, digital - a digital download.

Allowed Values: physical, digital
example: physical
sku
string

User defined product code/stock keeping unit (SKU).

minLength: 0
maxLength: 255
example: SM-13
description
string

The product description, which can include HTML formatting.

example: <p><span>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vel metus ac est egestas porta sed quis erat. Integer id nulla massa. Proin vitae enim nisi. Praesent non dignissim nulla. Nulla mattis id massa ac pharetra. Mauris et nisi in dolor aliquam sodales. Aliquam dui nisl, dictum quis leo sit amet, rutrum volutpat metus. Curabitur libero nunc, interdum ac libero non, tristique porttitor metus. Ut non dignissim lorem, in vestibulum leo. Vivamus sodales quis turpis eget.</span></p>
weight
number

Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on the store

format: double
minimum: 0
maximum: 9999999999
example: 1
width
number

Width of the product, which can be used when calculating shipping costs.

format: double
minimum: 0
maximum: 9999999999
example: 4.5
depth
number

Depth of the product, which can be used when calculating shipping costs.

format: double
minimum: 0
maximum: 9999999999
example: 2.6
height
number

Height of the product, which can be used when calculating shipping costs.

format: double
minimum: 0
maximum: 9999999999
example: 2
price
number

The price of the product. The price should include or exclude tax, based on the store settings.

format: double
minimum: 0
example: 25
cost_price
number

The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store.

format: double
minimum: 0
retail_price
number

The retail cost of the product. If entered, the retail cost price will be shown on the product page.

format: double
minimum: 0
sale_price
number

If entered, the sale price will be used instead of value in the price field when calculating the product’s cost.

format: double
minimum: 0
tax_class_id
integer

The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.)

minimum: 0
maximum: 1000000000
product_tax_code
string

Accepts AvaTax System Tax Codes, which identify products and services that fall into special sales-tax categories. By using these codes, merchants who subscribe to BigCommerce’s Avalara Premium integration can calculate sales taxes more accurately. Stores without Avalara Premium will ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive. For details, please see Avalara’s documentation.

minLength: 0
maxLength: 255
categories
array[integer]

An array of IDs for the categories to which this product belongs. When updating a product, if an array of categories is supplied, all product categories will be overwritten. Does not accept more than 1,000 ID values.

brand_id
integer

A product can be added to an existing brand during a product /PUT or /POST.

minimum: 0
maximum: 1000000000
inventory_level
integer

Current inventory level of the product. Simple inventory tracking must be enabled (See the inventory_tracking field) for this to take any effect.

minimum: 0
maximum: 1000000000
inventory_warning_level
integer

Inventory warning level for the product. When the product’s inventory level drops below the warning level, the store owner will be informed. Simple inventory tracking must be enabled (see the inventory_tracking field) for this to take any effect.

minimum: 0
maximum: 1000000000
inventory_tracking
string

The type of inventory tracking for the product. Values are: none - inventory levels will not be tracked; product - inventory levels will be tracked using the inventory_level and inventory_warning_level fields; variant - inventory levels will be tracked based on variants, which maintain their own warning levels and inventory levels.

Allowed Values: none, product, variant
fixed_cost_shipping_price
number

A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal shipping-cost calculation.

format: double
minimum: 0
is_free_shipping
boolean

Flag used to indicate whether the product has free shipping. If true, the shipping cost for the product will be zero.

is_visible
boolean

Flag to determine whether the product should be displayed to customers browsing the store. If true, the product will be displayed. If false, the product will be hidden from view.

is_featured
boolean

Flag to determine whether the product should be included in the featured products panel when viewing the store.

related_products
array[integer]

An array of IDs for the related products.

warranty
string

Warranty information displayed on the product page. Can include HTML formatting.

minLength: 0
maxLength: 65535
bin_picking_number
string

The BIN picking number for the product.

minLength: 0
maxLength: 255
layout_file
string

The layout template file used to render this product category. This field is writable only for stores with a Blueprint theme applied.

minLength: 0
maxLength: 500
upc
string

The product UPC code, which is used in feeds for shopping comparison sites and external channel integrations.

minLength: 0
maxLength: 255
search_keywords
string

A comma-separated list of keywords that can be used to locate the product when searching the store.

minLength: 0
maxLength: 65535
availability
string

Availability of the product. Availability options are: available - the product can be purchased on the storefront; disabled - the product is listed in the storefront, but cannot be purchased; preorder - the product is listed for pre-orders.

Allowed Values: available, disabled, preorder
availability_description
string

Availability text displayed on the checkout page, under the product title. Tells the customer how long it will normally take to ship this product, such as: ‘Usually ships in 24 hours.’

minLength: 0
maxLength: 255
gift_wrapping_options_type
string

Type of gift-wrapping options. Values: any - allow any gift-wrapping options in the store; none - disallow gift-wrapping on the product; list – provide a list of IDs in the gift_wrapping_options_list field.

Allowed Values: any, none, list
gift_wrapping_options_list
array[integer]

A list of gift-wrapping option IDs.

sort_order
integer

Priority to give this product when included in product lists on category pages and in search results. Lower integers will place the product closer to the top of the results.

minimum: -2147483648
maximum: 2147483647
condition
string

The product condition. Will be shown on the product page if the is_condition_shown field’s value is true. Possible values: New, Used, Refurbished.

Allowed Values: New, Used, Refurbished
is_condition_shown
boolean

Flag used to determine whether the product condition is shown to the customer on the product page.

order_quantity_minimum
integer

The minimum quantity an order must contain, to be eligible to purchase this product.

minimum: 0
maximum: 1000000000
order_quantity_maximum
integer

The maximum quantity an order can contain when purchasing the product.

minimum: 0
maximum: 1000000000
page_title
string

Custom title for the product page. If not defined, the product name will be used as the meta title.

minLength: 0
maxLength: 255
meta_keywords
array[string]

Custom meta keywords for the product page. If not defined, the store’s default keywords will be used.

meta_description
string

Custom meta description for the product page. If not defined, the store’s default meta description will be used.

minLength: 0
maxLength: 65535
view_count
integer

The number of times the product has been viewed.

minimum: 0
maximum: 1000000000
preorder_release_date
string

Pre-order release date. See the availability field for details on setting a product’s availability to accept pre-orders.

format: date-time
x-nullable: true
preorder_message
string

Custom expected-date message to display on the product page. If undefined, the message defaults to the storewide setting. Can contain the %%DATE%% placeholder, which will be substituted for the release date.

minLength: 0
maxLength: 255
is_preorder_only
boolean

If set to true then on the preorder release date the preorder status will automatically be removed.
If set to false, then on the release date the preorder status will not be removed. It will need to be changed manually either in the control panel or using the API. Using the API set availability to available.

is_price_hidden
boolean

False by default, indicating that this product’s price should be shown on the product page. If set to true, the price is hidden. (NOTE: To successfully set is_price_hidden to true, the availability value must be disabled.)

price_hidden_label
string

By default, an empty string. If is_price_hidden is true, the value of price_hidden_label is displayed instead of the price. (NOTE: To successfully set a non-empty string value with is_price_hidden set to true, the availability value must be disabled.)

minLength: 0
maxLength: 200
custom_url
object

The custom URL for the product on the storefront.

url
string

Product URL on the storefront.

2 validations
is_customized
boolean

Returns true if the URL has been changed from its default state (the auto-assigned URL that BigCommerce provides).

open_graph_type
string

Type of product, defaults to product.

Allowed Values: product, album, book, drink, food, game, movie, song, tv_show
open_graph_title
string

Title of the product, if not specified the product name will be used instead.

open_graph_description
string

Description to use for the product, if not specified then the meta_description will be used instead.

open_graph_use_meta_description
boolean

Flag to determine if product description or open graph description is used.

open_graph_use_product_name
boolean

Flag to determine if product name or open graph name is used.

open_graph_use_image
boolean

Flag to determine if product image or open graph image is used.

brand_name
string

The brand can be created during a product /PUT or /POST request. If the brand already exists then the product will be added. If not the brand will be created and the product added. If using brand_name it performs a fuzzy match and adds the brand. eg. Common Good and Common good are the same. Brand name does not return as part of a product response. Only the brand_id.

example: Common Good
gtin
string

Global Trade Item Number

mpn
string

Manufacturer Part Number