openapi: 3.0.0 info: title: BigCommerce Abandoned Cart Emails Products API version: 3.0.0 termsOfService: https://www.bigcommerce.com/terms description: Abandoned Cart Emails V3 API managing Handlebars-based emails. contact: name: BigCommerce url: https://www.bigcommerce.com email: support@bigcommerce.com servers: - url: https://api.bigcommerce.com/stores/{store_hash}/v3 variables: store_hash: default: store_hash description: Permanent ID of the BigCommerce store. description: BigCommerce API Gateway security: - X-Auth-Token: [] tags: - name: Products paths: /catalog/products: parameters: - $ref: '#/components/parameters/Accept' get: tags: - Products summary: BigCommerce Get All Products description: Returns a list of **Products**. Optional filter parameters can be passed in. operationId: getProducts parameters: - name: id in: query description: 'Filter items by ID. ' schema: type: integer - name: id:in in: query style: form explode: false schema: type: array items: type: integer - name: id:not_in in: query style: form explode: false schema: type: array items: type: integer - name: id:min in: query style: form explode: false schema: type: array items: type: integer - name: id:max in: query style: form explode: false schema: type: array items: type: integer - name: id:greater in: query style: form explode: false schema: type: array items: type: integer - name: id:less in: query style: form explode: false schema: type: array items: type: integer - name: name in: query description: 'Filter items by name. ' schema: type: string - name: mpn in: query description: 'Filter items by Manufacturer Part Number (MPN). ' schema: type: string - name: upc in: query description: 'Filter items by UPC. ' schema: type: string - name: price in: query description: 'Filter items by price. ' schema: type: number - name: weight in: query description: 'Filter items by weight. ' schema: type: number - name: condition in: query description: 'Filter items by condition. ' schema: type: string enum: - new - used - refurbished - name: brand_id in: query description: 'Filter items by brand_id. ' schema: type: integer - name: date_modified in: query description: 'Filter items by `date_modified`. ' schema: type: string format: date-time - name: date_modified:max in: query description: Filter items by `date_modified`. For example, `date_modified:max=2020-06-15`. schema: type: string - name: date_modified:min in: query description: Filter items by `date_modified`. For example, `date_modified:min=2018-06-15`. schema: type: string - name: date_last_imported in: query description: Filter items by date_last_imported. schema: type: string format: date-time - name: date_last_imported:not in: query description: Filter items by date_last_imported. For example, `date_last_imported:not=2015-08-21T22%3A53%3A23%2B00%3A00`. schema: type: string - name: date_last_imported:max in: query description: Filter items by date_last_imported. For example, `date_last_imported:max=2015-08-21T22%3A53%3A23%2B00%3A00`. schema: type: string - name: date_last_imported:min in: query description: Filter items by date_last_imported. For example, `date_last_imported:min=2015-08-21T22%3A53%3A23%2B00%3A00`. schema: type: string - name: is_visible in: query description: Filter items based on whether the product is currently visible on the storefront. schema: type: boolean - name: is_featured in: query description: Filter items by is_featured. `1` for true, `0` for false. schema: type: integer enum: - 1 - 0 - name: is_free_shipping in: query description: Filter items by is_free_shipping. `1` for true, `0` for false. schema: type: integer - name: inventory_level in: query description: 'Filter items by inventory_level. ' schema: type: integer - name: inventory_level:in in: query schema: type: integer - name: inventory_level:not_in in: query schema: type: integer - name: inventory_level:min in: query schema: type: integer - name: inventory_level:max in: query schema: type: integer - name: inventory_level:greater in: query schema: type: integer - name: inventory_level:less in: query schema: type: integer - name: inventory_low in: query description: 'Filter items by inventory_low. Values: 1, 0. ' schema: type: integer - name: out_of_stock in: query description: 'Filter items by out_of_stock. To enable the filter, pass `out_of_stock`=`1`. ' schema: type: integer - name: total_sold in: query description: 'Filter items by total_sold. ' schema: type: integer - name: type in: query description: Filter items by type. schema: type: string enum: - digital - physical - name: categories in: query description: "Filter items by categories.\n If a product is in more than one category, using this query will not return the product. Instead use `categories:in=12`." schema: type: integer - name: keyword in: query description: Filter items by keywords found in the `name` or `sku` fields schema: type: string - name: keyword_context in: query description: Set context used by the search algorithm to return results targeted towards the specified group. Use `merchant` to help merchants search their own catalog. Use `shopper` to return shopper-facing search results. schema: type: string enum: - shopper - merchant - name: status in: query description: 'Filter items by status. ' schema: type: integer - name: include in: query description: "Sub-resources to include on a product, in a comma-separated list. If `options` or `modifiers` is used, results are limited to 10 per page.\n\n**Note:** The following sub-resources include:\n * variants\n * images\n * custom_fields\n * bulk_pricing_rules\n * primary_image\n * modifiers\n * options\n * videos" explode: false schema: type: array items: type: string enum: - variants - images - custom_fields - bulk_pricing_rules - primary_image - modifiers - options - videos - name: include_fields in: query description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned. schema: type: string - name: exclude_fields in: query description: Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID cannot be excluded. schema: type: string - name: availability in: query description: 'Filter items by availability. Values are: available, disabled, preorder. ' schema: type: string enum: - available - disabled - preorder - name: page in: query description: Specifies the page number in a limited (paginated) list of products. schema: type: integer - name: limit in: query description: Controls the number of items per page in a limited (paginated) list of products. The default product limit is 50 with a maximum limit of 250. schema: type: integer - name: direction in: query description: 'Sort direction. Acceptable values are: `asc`, `desc`. ' schema: type: string enum: - asc - desc - name: sort in: query description: 'Field name to sort by. Note: Since `id` increments when new products are added, you can use that field to sort by product create date. ' schema: type: string enum: - id - name - sku - price - date_modified - date_last_imported - inventory_level - is_visible - total_sold - name: categories:in in: query description: Filter items by categories. Use for products in multiple categories. For example, `categories:in=12,15`. style: form explode: false schema: type: array items: type: integer - name: sku in: query description: 'Filter items by main SKU. To filter by variant SKU, see [Get All Variants](/docs/rest-catalog/product-variants#get-all-product-variants). ' schema: type: string - name: sku:in in: query description: Filter items by SKU. style: form explode: false schema: type: array items: type: string responses: '200': description: '' content: application/json: schema: title: Get All Products Response type: object properties: data: type: array items: $ref: '#/components/schemas/product_Full' meta: $ref: '#/components/schemas/metaCollection_Full' put: tags: - Products summary: BigCommerce Update Products (Batch) description: 'Updates products in batches. Batches are limited to 10 products. **Required Fields** * `id` - product `id` is required for batch updates to products. **Read-Only Fields** - `id` - `date_created` - `date_modified` - `calculated_price` - `base_variant_id`' operationId: updateProducts parameters: - $ref: '#/components/parameters/ContentType' - name: include_fields in: query description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned. schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/product_Put_Collection' examples: example-1: value: - id: 0 name: Smith Journal 13 type: physical sku: SM-13 description:

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.

weight: 0 width: 0 depth: 0 height: 0 price: 0 cost_price: 0 retail_price: 0 sale_price: 0 map_price: 0 tax_class_id: 0 product_tax_code: string categories: - 0 brand_id: 0 inventory_level: 0 inventory_warning_level: 0 inventory_tracking: none fixed_cost_shipping_price: 0 is_free_shipping: true is_visible: true is_featured: true related_products: - 0 warranty: string bin_picking_number: string layout_file: string upc: string search_keywords: string availability: available availability_description: string gift_wrapping_options_type: any gift_wrapping_options_list: - 0 sort_order: -2147483648 condition: New is_condition_shown: true order_quantity_minimum: 0 order_quantity_maximum: 0 page_title: string meta_keywords: - string meta_description: string view_count: 0 preorder_release_date: '2019-08-24T14:15:22Z' preorder_message: string is_preorder_only: true is_price_hidden: true price_hidden_label: string custom_url: url: string is_customized: true open_graph_type: product open_graph_title: string open_graph_description: string open_graph_use_meta_description: true open_graph_use_product_name: true open_graph_use_image: true brand_name: Common Good gtin: string mpn: string date_last_imported: '2015-07-03T18:16:02+00:00' reviews_rating_sum: 3 reviews_count: 4 total_sold: 80 custom_fields: - id: 6 name: ISBN value: '1234567890123' bulk_pricing_rules: - id: 0 quantity_min: 10 quantity_max: 50 type: price amount: 10 images: - image_file: string is_thumbnail: true sort_order: -2147483648 description: string image_url: string id: 0 product_id: 0 url_zoom: string url_standard: string url_thumbnail: string url_tiny: string date_modified: '2019-08-24T14:15:22Z' videos: - title: Writing Great Documentation description: A video about documentation. sort_order: 1 type: youtube video_id: z3fRu9pkuXE id: 0 product_id: 0 length: string required: false responses: '200': description: '' content: application/json: schema: title: Update Products (Batch) Success Response type: object properties: data: type: array items: $ref: '#/components/schemas/product_Full' meta: $ref: '#/components/schemas/metaCollection_Full' examples: example-1: value: data: - id: 1 name: Smith Journal 13 type: physical sku: SM-13 description:

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.

weight: 0 width: 0 depth: 0 height: 0 price: 0 cost_price: 0 retail_price: 0 sale_price: 0 map_price: 0 tax_class_id: 0 product_tax_code: string categories: - 0 brand_id: 0 inventory_level: 0 inventory_warning_level: 0 inventory_tracking: none fixed_cost_shipping_price: 0 is_free_shipping: true is_visible: true is_featured: true related_products: - 0 warranty: string bin_picking_number: string layout_file: string upc: string search_keywords: string availability: available availability_description: string gift_wrapping_options_type: any gift_wrapping_options_list: - 0 sort_order: -2147483648 condition: New is_condition_shown: true order_quantity_minimum: 0 order_quantity_maximum: 0 page_title: string meta_keywords: - string meta_description: string view_count: 0 preorder_release_date: '2019-08-24T14:15:22Z' preorder_message: string is_preorder_only: true is_price_hidden: true price_hidden_label: string custom_url: url: string is_customized: true open_graph_type: product open_graph_title: string open_graph_description: string open_graph_use_meta_description: true open_graph_use_product_name: true open_graph_use_image: true brand_name: Common Good gtin: string mpn: string date_last_imported: '2015-07-03T18:16:02+00:00' reviews_rating_sum: 3 reviews_count: 4 total_sold: 80 custom_fields: - id: 6 name: ISBN value: '1234567890123' bulk_pricing_rules: - id: 0 quantity_min: 10 quantity_max: 50 type: price amount: 10 images: - image_file: string is_thumbnail: true sort_order: -2147483648 description: string image_url: string id: 0 product_id: 0 url_zoom: string url_standard: string url_thumbnail: string url_tiny: string date_modified: '2019-08-24T14:15:22Z' videos: - title: Writing Great Documentation description: A video about documentation sort_order: 1 type: youtube video_id: z3fRu9pkuXE id: 0 product_id: 0 length: string date_created: '2018-08-15T14:49:05+00:00' date_modified: '2018-08-24T14:41:00+00:00' base_variant_id: 0 calculated_price: 0 options: - id: 55 product_id: 4 display_name: Add-a-$5-Donation1535042499-187 type: radio_buttons config: default_value: string checked_by_default: true checkbox_label: string date_limited: true date_limit_mode: range date_earliest_value: '2019-08-24' date_latest_value: '2019-08-24' file_types_mode: specific file_types_supported: - images, documents, other file_types_other: - pdf file_max_size: 5 text_characters_limited: true text_min_length: 1 text_max_length: 55 text_lines_limited: true text_max_lines: 4 number_limited: true number_limit_mode: lowest number_lowest_value: 100 number_highest_value: 0 number_integers_only: false product_list_adjusts_inventory: true product_list_adjusts_pricing: true product_list_shipping_calc: weight sort_order: 1 option_values: - is_default: false label: Green sort_order: 0 value_data: {} id: 0 modifiers: - type: date required: true sort_order: 0 config: default_value: string checked_by_default: true checkbox_label: string date_limited: true date_limit_mode: range date_earliest_value: '2019-08-24' date_latest_value: '2019-08-24' file_types_mode: specific file_types_supported: - images, documents, other file_types_other: - pdf file_max_size: 5 text_characters_limited: true text_min_length: 1 text_max_length: 55 text_lines_limited: true text_max_lines: 4 number_limited: true number_limit_mode: lowest number_lowest_value: 100 number_highest_value: 0 number_integers_only: false product_list_adjusts_inventory: true product_list_adjusts_pricing: true product_list_shipping_calc: weight display_name: string id: 12 product_id: 77 name: Add-a-$5-Donation1535039590-191 option_values: - is_default: false label: Green sort_order: 0 value_data: {} adjusters: price: adjuster: relative adjuster_value: 5 weight: adjuster: relative adjuster_value: 5 image_url: https://cdn8.bigcommerce.com/s-{{store_hash}}/products/184/images/445/naturalcanvascart2_1024x1024__92347__29648.1534344533.1280.1280.jpg?c=2 purchasing_disabled: status: true message: string id: 0 option_id: 0 option_set_id: 0 option_set_display: string variants: - cost_price: 0 price: 0 sale_price: 0 retail_price: 0 weight: 0 width: 0 height: 0 depth: 0 is_free_shipping: true fixed_cost_shipping_price: 0 purchasing_disabled: true purchasing_disabled_message: string upc: string inventory_level: 0 inventory_warning_level: 0 bin_picking_number: string mpn: string gtin: 012345678905 id: 0 product_id: 0 sku: string sku_id: 0 option_values: - option_display_name: Color label: Beige id: 146 option_id: 151 calculated_price: 0 calculated_weight: 0 meta: pagination: total: 36 count: 36 per_page: 50 current_page: 1 total_pages: 1 links: previous: string current: ?page=1&limit=50 next: string '207': description: "Multi-status. Typically indicates that a partial failure has occurred, such as when a POST or PUT request is successful, but saving one of the attributes has failed.\n\nFor example, the product information was updated successfully, but the inventory data failed to update or saving the URL failed. \n\nIf inventory data failed to update, verify that the inventory-related updates are well-formed and correct; for example, that they donʼt result in negative stock levels. Then consider updating the inventory data again.\n\nIf the URL failed to update, check that the URL uses Latin letters, is no more than 255 characters, and is not taken by any other entity." content: application/json: schema: title: Update Products (Batch) Multi-status Response type: object properties: data: type: array items: $ref: '#/components/schemas/product_Full' errors: $ref: '#/components/schemas/errorMultiStatus' meta: $ref: '#/components/schemas/metaCollection_Full' '404': description: The resource was not found. content: application/json: schema: title: Not Found type: object properties: status: type: integer description: '404 HTTP status code. ' title: type: string description: The error title describing the particular error. type: type: string instance: type: string description: Error payload for the BigCommerce API. '409': description: '`Product` was in conflict with another product. This is the result of duplicate unique values such as name or SKU; a missing or invalid `category_id`, `brand_id`, or `tax_class id`; or a conflicting `bulk_pricing_rule`.' content: application/json: schema: $ref: '#/components/schemas/errorResponse_409' '413': description: 413 Request Entity Too Large content: application/json: schema: $ref: '#/components/schemas/error_Base' example: errors: {} status: 413 title: The request payload is too large. The maximum items allowed in the array is 10. type: /api-docs/getting-started/api-status-codes '422': description: '`Product` was not valid. This is the result of missing required fields or invalid data. See the response for more details.' content: application/json: schema: $ref: '#/components/schemas/errorResponse_422' x-codegen-request-body-name: products post: tags: - Products summary: BigCommerce Create a Product description: 'Creates a *Product*. Only one product can be created at a time; however, you can create multiple product variants using the `variants` array. **Required Fields:** - `name` - `type` - `weight` - `price` **Read-Only Fields** - `id` - `date_created` - `date_modified` - `calculated_price` - `base_variant_id` **Limits** - 250 characters product name length. - A product can have up to 1000 images. Each image file or image uploaded by URL can be up to 8 MB. **Usage Notes** * You can create multiple product variants using the `variants` array. * This endpoint accepts a `video` array. To create a product video that accepts a `video` object, see [Create a Product Video](/docs/rest-catalog/products/videos#create-a-product-video) for information.' operationId: createProduct parameters: - $ref: '#/components/parameters/ContentType' - name: include_fields in: query description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned. schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/product_Base' required: true responses: '200': description: '' content: application/json: schema: title: Product Response type: object properties: data: $ref: '#/components/schemas/product_Full' meta: $ref: '#/components/schemas/metaEmpty_Full' example-1: example: '207': null name: Smith Journal 13 type: physical sku: SM-13 description:

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.

weight: 0 width: 0 depth: 0 height: 0 price: 0 cost_price: 0 retail_price: 0 sale_price: 0 map_price: 0 tax_class_id: 0 product_tax_code: string categories: - 0 brand_id: 0 inventory_level: 0 inventory_warning_level: 0 inventory_tracking: none fixed_cost_shipping_price: 0 is_free_shipping: true is_visible: true is_featured: true related_products: - 0 warranty: string bin_picking_number: string layout_file: string upc: string search_keywords: string availability: available availability_description: string gift_wrapping_options_type: any gift_wrapping_options_list: - 0 sort_order: -2147483648 condition: New is_condition_shown: true order_quantity_minimum: 0 order_quantity_maximum: 0 page_title: string meta_keywords: - string meta_description: string view_count: 0 preorder_release_date: '2019-08-24T14:15:22+00:00' preorder_message: string is_preorder_only: true is_price_hidden: true price_hidden_label: string custom_url: url: string is_customized: true open_graph_type: product open_graph_title: string open_graph_description: string open_graph_use_meta_description: true open_graph_use_product_name: true open_graph_use_image: true brand_name: Common Good gtin: string mpn: string date_last_imported: '2015-07-03T18:16:02+00:00' reviews_rating_sum: 3.2 reviews_count: 4 total_sold: 80 custom_fields: - id: 6 name: ISBN value: '1234567890123' bulk_pricing_rules: - id: 0 quantity_min: 10 quantity_max: 50 type: price amount: 10 images: - image_file: string is_thumbnail: true sort_order: -2147483648 description: string image_url: string id: 0 product_id: 0 url_zoom: string url_standard: string url_thumbnail: string url_tiny: string date_modified: '2019-08-24T14:15:22+00:00' videos: - title: string description: string sort_order: -2147483648 type: youtube video_id: string id: 0 product_id: 0 length: string date_created: '2018-08-15T14:49:05+00:00' date_modified: '2018-08-24T14:41:00+00:00' id: 1 base_variant_id: 0 calculated_price: 0 options: - id: 55 product_id: 4 display_name: Add-a-$5-Donation1535042499-187 type: radio_buttons config: default_value: string checked_by_default: true checkbox_label: string date_limited: true date_limit_mode: range date_earliest_value: '2019-08-24T00:00:00+00:00' date_latest_value: '2019-08-24T00:00:00+00:00' file_types_mode: specific file_types_supported: - images, documents, other file_types_other: - pdf file_max_size: 5 text_characters_limited: true text_min_length: 1 text_max_length: 55 text_lines_limited: true text_max_lines: 4 number_limited: true number_limit_mode: lowest number_lowest_value: 100 number_highest_value: 0 number_integers_only: false product_list_adjusts_inventory: true product_list_adjusts_pricing: true product_list_shipping_calc: weight sort_order: 1 option_values: is_default: false label: Green sort_order: 0 value_data: {} id: 0 modifiers: - type: date required: true sort_order: 0 config: default_value: string checked_by_default: true checkbox_label: string date_limited: true date_limit_mode: range date_earliest_value: '2019-08-24T00:00:00+00:00' date_latest_value: '2019-08-24T00:00:00+00:00' file_types_mode: specific file_types_supported: - images, documents, other file_types_other: - pdf file_max_size: 5 text_characters_limited: true text_min_length: 1 text_max_length: 55 text_lines_limited: true text_max_lines: 4 number_limited: true number_limit_mode: lowest number_lowest_value: 100 number_highest_value: 0 number_integers_only: false product_list_adjusts_inventory: true product_list_adjusts_pricing: true product_list_shipping_calc: weight display_name: string id: 12 product_id: 77 name: Add-a-$5-Donation1535039590-191 option_values: - is_default: false label: Green sort_order: 0 value_data: {} adjusters: price: adjuster: relative adjuster_value: 5 weight: adjuster: relative adjuster_value: 5 image_url: https://cdn8.bigcommerce.com/s-{{store_hash}}/products/184/images/445/naturalcanvascart2_1024x1024__92347__29648.1534344533.1280.1280.jpg?c=2 purchasing_disabled: status: true message: string id: 0 option_id: 0 option_set_id: 0 option_set_display: string variants: - cost_price: 0 price: 0 sale_price: 0 retail_price: 0 weight: 0 width: 0 height: 0 depth: 0 is_free_shipping: true fixed_cost_shipping_price: 0 purchasing_disabled: true purchasing_disabled_message: string upc: string inventory_level: 0 inventory_warning_level: 0 bin_picking_number: string mpn: string gtin: 012345678905 id: 0 product_id: 0 sku: string sku_id: 0 option_values: - option_display_name: Color label: Beige id: 146 option_id: 151 calculated_price: 0 calculated_weight: 0 meta: {} '207': description: "Multi-status. Typically indicates that a partial failure has occurred, such as when a POST or PUT request is successful, but saving one of the attributes has failed.\n\nFor example, the product information was updated successfully, but the inventory data failed to update or saving the URL failed. \n\nIf inventory data failed to update, verify that the inventory-related updates are well-formed and correct; for example, that they donʼt result in negative stock levels. Then consider updating the inventory data again.\n\nIf the URL failed to update, check that the URL uses Latin letters, is no more than 255 characters, and is not taken by any other entity." content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/product_Full' errors: $ref: '#/components/schemas/errorMultiStatus' meta: $ref: '#/components/schemas/metaCollection_Full' '409': description: '`Product` was in conflict with another product. This is the result of duplicate unique values, such as name or SKU; a missing or invalid `category_id`, `brand_id`, or `tax_class id`; or a conflicting `bulk_pricing_rule`. ' content: application/json: schema: title: Error Response type: object properties: errors: title: Detailed Errors type: object properties: {} additionalProperties: true instance: type: string status: type: integer description: 'The HTTP status code. ' title: type: string description: 'The error title describing the particular error. ' type: type: string '422': description: '`Product` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. ' content: application/json: schema: title: Error Response type: object properties: errors: title: Detailed Errors type: object properties: {} additionalProperties: true instance: type: string status: type: integer description: 'The HTTP status code. ' title: type: string description: 'The error title describing the particular error. ' type: type: string x-codegen-request-body-name: product delete: tags: - Products summary: BigCommerce Delete Products description: 'To delete *Product* objects, you must include a filter. This prevents inadvertently deleting all *Product* objects in a store. > #### Note > The maximum number of products you can delete at one time is 250. **Example**: To delete products with IDs 1,2 and 3, use `DELETE /v3/catalog/products?id:in=1,2,3`.' operationId: deleteProducts parameters: - name: name in: query description: 'Filter items by name. ' schema: type: string - name: sku in: query description: 'Filter items by SKU. ' schema: type: string - name: price in: query description: 'Filter items by price. ' schema: type: number - name: weight in: query description: 'Filter items by weight. ' schema: type: number - name: condition in: query description: 'Filter items by condition. ' schema: type: string enum: - new - used - refurbished - name: brand_id in: query description: 'Filter items by brand_id. ' schema: type: integer - name: date_modified in: query description: Filter items by date_modified. For example `v3/catalog/products?date_modified:min=2018-06-15` schema: type: string format: date-time - name: date_last_imported in: query description: Filter items by date_last_imported. For example `v3/catalog/products?date_last_imported:min=2015-08-21T22%3A53%3A23%2B00%3A00` schema: type: string format: date-time - name: is_visible in: query description: 'Filter items by if visible on the storefront. ' schema: type: boolean - name: is_featured in: query description: 'Filter items by is_featured. ' schema: type: integer - name: id:in in: query description: Filter by product ID(s). style: form explode: false schema: type: array items: type: integer - name: inventory_level in: query description: 'Filter items by inventory_level. ' schema: type: integer - name: total_sold in: query description: 'Filter items by total_sold. ' schema: type: integer - name: type in: query description: 'Filter items by type: `physical` or `digital`.' schema: type: string enum: - digital - physical - name: categories in: query description: "Filter items by categories.\n If a product is in more than one category, using this query will not return the product. Instead use `categories:in=12`." schema: type: integer - name: keyword in: query description: 'Filter items by keywords found in the `name`, `description`, or `sku` fields, or in the brand name. ' schema: type: string responses: '204': description: '' content: {} /catalog/products/{product_id}: parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' get: tags: - Products summary: BigCommerce Get a Product description: Returns a single *Product*. Optional parameters can be passed in. operationId: getProduct parameters: - name: include in: query description: Sub-resources to include on a product, in a comma-separated list. If `options` or `modifiers` is used, results are limited to 10 per page. explode: false schema: type: array items: type: string enum: - variants - images - custom_fields - bulk_pricing_rules - primary_image - modifiers - options - videos - name: include_fields in: query description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned. schema: type: string - name: exclude_fields in: query description: Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID cannot be excluded. schema: type: string responses: '200': description: '' content: application/json: schema: title: Product Response type: object properties: data: $ref: '#/components/schemas/product_Full' meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: id: 174 name: 1L Le Parfait Jar type: physical sku: '' description:

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.

weight: 1 width: 0 depth: 0 height: 0 price: 7.95 cost_price: 0 retail_price: 10 sale_price: 0 map_price: 0 tax_class_id: 0 product_tax_code: '' calculated_price: 7.95 categories: - 23 - 21 brand_id: 36 option_set_id: 55 option_set_display: right inventory_level: 0 inventory_warning_level: 0 inventory_tracking: none reviews_rating_sum: 0 reviews_count: 0 total_sold: 7 fixed_cost_shipping_price: 0 is_free_shipping: false is_visible: true is_featured: false related_products: - -1 warranty: '' bin_picking_number: '' layout_file: product.html upc: '' mpn: '' gtin: '' search_keywords: jar, glass availability: available availability_description: '' gift_wrapping_options_type: any gift_wrapping_options_list: [] sort_order: 0 condition: New is_condition_shown: false order_quantity_minimum: 0 order_quantity_maximum: 0 page_title: '' meta_keywords: [] meta_description: '' date_created: '2018-08-15T14:48:46+00:00' date_modified: '2018-09-05T20:42:07+00:00' view_count: 10 preorder_release_date: '2018-09-05T20:42:07+00:00' preorder_message: '' is_preorder_only: false is_price_hidden: false price_hidden_label: '' custom_url: url: /all/1l-le-parfait-jar/ is_customized: true base_variant_id: 345 open_graph_type: product open_graph_title: '' open_graph_description: '' open_graph_use_meta_description: true open_graph_use_product_name: true open_graph_use_image: true meta: {} '404': description: 'The resource was not found. ' content: application/json: schema: title: Not Found type: object properties: status: type: integer description: '404 HTTP status code. ' title: type: string description: The error title describing the particular error. type: type: string instance: type: string description: Error payload for the BigCommerce API. put: tags: - Products summary: BigCommerce Update a Product description: 'Updates a *Product*. **Limits** - A product can have up to 1000 images. Each image file or image uploaded by URL can be up to 8 MB. **Read-Only Fields** - id - date_created - date_modified - calculated_price - base_variant_id ' operationId: updateProduct parameters: - $ref: '#/components/parameters/ContentType' - name: include_fields in: query description: Sub-resources to include on a product, in a comma-separated list. If `options` or `modifiers` is used, results are limited to 10 per page. The ID and the specified fields will be returned. schema: type: string enum: - variants - images - custom_fields - bulk_pricing_rules - primary_image - modifiers - options - videos requestBody: content: application/json: schema: $ref: '#/components/schemas/product_Put' required: true responses: '200': description: '' content: application/json: schema: title: Product Response type: object properties: data: $ref: '#/components/schemas/product_Full' meta: $ref: '#/components/schemas/metaEmpty_Full' example-1: example: name: Smith Journal 13 type: physical sku: SM-13 description:

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.

weight: 0 width: 0 depth: 0 height: 0 price: 0 cost_price: 0 retail_price: 0 sale_price: 0 map_price: 0 tax_class_id: 0 product_tax_code: string categories: - 0 brand_id: 0 inventory_level: 0 inventory_warning_level: 0 inventory_tracking: none fixed_cost_shipping_price: 0 is_free_shipping: true is_visible: true is_featured: true related_products: - 0 warranty: string bin_picking_number: string layout_file: string upc: string search_keywords: string availability: available availability_description: string gift_wrapping_options_type: any gift_wrapping_options_list: - 0 sort_order: -2147483648 condition: New is_condition_shown: true order_quantity_minimum: 0 order_quantity_maximum: 0 page_title: string meta_keywords: - string meta_description: string view_count: 0 preorder_release_date: '2019-08-24T14:15:22+00:00' preorder_message: string is_preorder_only: true is_price_hidden: true price_hidden_label: string custom_url: url: string is_customized: true open_graph_type: product open_graph_title: string open_graph_description: string open_graph_use_meta_description: true open_graph_use_product_name: true open_graph_use_image: true brand_name: Common Good gtin: string mpn: string reviews_rating_sum: 3.2 reviews_count: 4 total_sold: 80 custom_fields: - id: 6 name: ISBN value: '1234567890123' bulk_pricing_rules: - id: 0 quantity_min: 10 quantity_max: 50 type: price amount: 10 images: - image_file: string is_thumbnail: true sort_order: -2147483648 description: string image_url: string id: 0 product_id: 0 url_zoom: string url_standard: string url_thumbnail: string url_tiny: string date_modified: '2019-08-24T14:15:22+00:00' videos: - title: string description: string sort_order: -2147483648 type: youtube video_id: string id: 0 product_id: 0 length: string date_created: '2018-08-15T14:49:05+00:00' date_modified: '2018-08-24T14:41:00+00:00' id: 1 base_variant_id: 0 calculated_price: 0 options: - id: 55 product_id: 4 display_name: Add-a-$5-Donation1535042499-187 type: radio_buttons config: default_value: string checked_by_default: true checkbox_label: string date_limited: true date_limit_mode: range date_earliest_value: '2019-08-24T00:00:00+00:00' date_latest_value: '2019-08-24T00:00:00+00:00' file_types_mode: specific file_types_supported: - images, documents, other file_types_other: - pdf file_max_size: 5 text_characters_limited: true text_min_length: 1 text_max_length: 55 text_lines_limited: true text_max_lines: 4 number_limited: true number_limit_mode: lowest number_lowest_value: 100 number_highest_value: 0 number_integers_only: false product_list_adjusts_inventory: true product_list_adjusts_pricing: true product_list_shipping_calc: weight sort_order: 1 option_values: is_default: false label: Green sort_order: 0 value_data: {} id: 0 modifiers: - type: date required: true sort_order: 0 config: default_value: string checked_by_default: true checkbox_label: string date_limited: true date_limit_mode: range date_earliest_value: '2019-08-24T00:00:00+00:00' date_latest_value: '2019-08-24T00:00:00+00:00' file_types_mode: specific file_types_supported: - images, documents, other file_types_other: - pdf file_max_size: 5 text_characters_limited: true text_min_length: 1 text_max_length: 55 text_lines_limited: true text_max_lines: 4 number_limited: true number_limit_mode: lowest number_lowest_value: 100 number_highest_value: 0 number_integers_only: false product_list_adjusts_inventory: true product_list_adjusts_pricing: true product_list_shipping_calc: weight display_name: string id: 12 product_id: 77 name: Add-a-$5-Donation1535039590-191 option_values: - is_default: false label: Green sort_order: 0 value_data: {} adjusters: price: adjuster: relative adjuster_value: 5 weight: adjuster: relative adjuster_value: 5 image_url: https://cdn8.bigcommerce.com/s-{{store_hash}}/products/184/images/445/naturalcanvascart2_1024x1024__92347__29648.1534344533.1280.1280.jpg?c=2 purchasing_disabled: status: true message: string id: 0 option_id: 0 option_set_id: 0 option_set_display: string variants: - cost_price: 0 price: 0 sale_price: 0 retail_price: 0 weight: 0 width: 0 height: 0 depth: 0 is_free_shipping: true fixed_cost_shipping_price: 0 purchasing_disabled: true purchasing_disabled_message: string upc: string inventory_level: 0 inventory_warning_level: 0 bin_picking_number: string mpn: string gtin: 12345678905 id: 0 product_id: 0 sku: string sku_id: 0 option_values: - option_display_name: Color label: Beige id: 146 option_id: 151 calculated_price: 0 calculated_weight: 0 meta: {} '201': description: Created content: application/json: schema: type: object properties: {} '207': description: "Multi-status. Typically indicates that a partial failure has occurred, such as when a POST or PUT request is successful, but saving one of the attributes has failed.\n\nFor example, the product information was updated successfully, but the inventory data failed to update or saving the URL failed. \n\nIf inventory data failed to update, verify that the inventory-related updates are well-formed and correct; for example, that they donʼt result in negative stock levels. Then consider updating the inventory data again.\n\nIf the URL failed to update, check that the URL uses Latin letters, is no more than 255 characters, and is not taken by any other entity." content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/product_Full' errors: $ref: '#/components/schemas/errorMultiStatus' meta: $ref: '#/components/schemas/metaCollection_Full' '404': description: 'The resource was not found. ' content: application/json: schema: title: Not Found type: object properties: status: type: integer description: '404 HTTP status code. ' title: type: string description: The error title describing the particular error. type: type: string instance: type: string description: Error payload for the BigCommerce API. '409': description: '`Product` was in conflict with another product. This is caused by: duplicate unique values, such as name or SKU; a missing category, brand, or tax_class with which the product is being associated; or a conflicting bulk pricing rule. ' content: application/json: schema: title: Error Response type: object properties: errors: title: Detailed Errors type: object properties: {} additionalProperties: true instance: type: string status: type: integer description: 'The HTTP status code. ' title: type: string description: 'The error title describing the particular error. ' type: type: string '422': description: '`Product` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. ' content: application/json: schema: title: Error Response type: object properties: errors: title: Detailed Errors type: object properties: {} additionalProperties: true instance: type: string status: type: integer description: 'The HTTP status code. ' title: type: string description: 'The error title describing the particular error. ' type: type: string x-codegen-request-body-name: product delete: tags: - Products summary: BigCommerce Delete a Product description: Deletes a *Product*. operationId: deleteProduct responses: '204': description: '' content: {} /pricing/products: post: tags: - Products summary: BigCommerce Get Prices (Batch) description: 'Calculate batch pricing for products for a specific channel, currency, and customer group. **Limits** * Limit of 50 concurrent requests.' operationId: getPrices requestBody: content: application/json: schema: required: - channel_id - currency_code - customer_group_id - items type: object properties: channel_id: type: integer description: The channel ID that pricing evaluates within. The default BigCommerce storefront is channel 1. example: 1 currency_code: type: string description: The currency code of prices this request returns. example: USD customer_group_id: type: integer description: The customer group ID that's relevant for any customer group pricing, tax values, etc. items: type: array description: The items for which to fetch prices. items: type: object properties: product_id: type: integer description: The (required) product ID of the item. variant_id: type: number description: The (optional) variant ID of the item. options: type: array description: The option configuration of the product (optional); might be partially configured for estimates. items: type: object properties: option_id: type: integer description: The ID of the variant option or modifier option that is being configured for this product. value_id: type: integer description: "The ID of the value matching the option that's being configured. \n\n**Note:*** This must be the ID, not the value." description: Details/configuration for the product to request a price for. required: true responses: '200': description: OK content: application/json: schema: type: object description: Note that a storeʼs [tax settings](/docs/rest-management/tax-settings) may affect the calculations for `tax_inclusive` and `tax_exclusive` prices. properties: data: type: array items: type: object properties: product_id: type: integer description: The (required) product ID of the item. variant_id: type: integer description: The (optional) variant ID of the item. options: type: array description: The optional product option configuration for which this price was generated. items: type: object properties: option_id: type: integer description: The ID of the variant option or modifier option configured for this price. value_id: type: integer description: The selected value ID for the configured option. retail_price: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The (optional) RRP/retail price configured for this product. Used for price comparison and storefront display purposes. sale_price: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The merchant-entered sale price for a product overwrites the default price. The sale_price is optional. minimum_advertised_price: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The minimum advertised price (MAP) allowed to be shown on a storefront. A value supplied by the merchant and used for display purposes. price: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The merchant-entered price for a product could be including or excluding tax. Price must be defined when creating a product and serves as the default price. calculated_price: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The shopper price for a product including modifier, option, and option set rules. The `calculated_price` may include or exclude estimates for tax. price_range: type: object properties: minimum: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The price for a product including estimates for tax. maximum: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The price for a product including estimates for tax. description: The minimum and maximum price that will typically apply to this product. Only used for complex products (products with variants). retail_price_range: type: object properties: minimum: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The price for a product including estimates for tax. maximum: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. entered_inclusive: type: boolean description: Determines whether the `as_entered` price is inclusive or exclusive of tax, based on the stores tax jurisdiction. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. description: The price for a product including estimates for tax. description: The productʼs variants that will typically apply to this product. bulk_pricing: type: array items: $ref: '#/components/schemas/BulkPricingTier' meta: type: object properties: {} additionalProperties: true description: Response metadata. example: data: - product_id: 1 variant_id: 1 options: - option_id: 1 value_id: 1 retail_price: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 sale_price: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 minimum_advertised_price: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 price: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 calculated_price: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 price_range: minimum: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 maximum: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 retail_price_range: minimum: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 maximum: as_entered: 1.5 entered_inclusive: true tax_exclusive: 1.1 tax_inclusive: 1.5 bulk_pricing: - minimum: 1 maximum: 1 discount_amount: 1 discount_type: percent tax_discount_amount: - as_entered: 10 tax_inclusive: 10 tax_exclusive: 10 entered_inclusive: false meta: {} components: schemas: productVideo_Full: title: productVideo_Full description: 'A product video model. ' allOf: - $ref: '#/components/schemas/productVideo_Base' - type: object properties: id: type: integer description: 'The unique numeric ID of the product video; increments sequentially. ' product_id: type: integer description: 'The unique numeric identifier for the product with which the image is associated. ' length: type: string description: 'Length of the video. This will be filled in according to data on a host site. ' x-internal: false BulkPricingTier: type: object properties: minimum: type: integer description: The minimum quantity required to trigger this bulk pricing discount. maximum: type: integer description: The maximum quantity (or 0 for unlimited) to trigger this bulk pricing discount. discount_amount: type: number discount_type: type: string enum: - price - percent - fixed tax_discount_amount: type: array description: Formats the `bulk_pricing.discount_amount` into the tax price amounts. items: type: object properties: as_entered: type: number description: The price provided by the merchant as entered in their catalog/price list; may include or exclude tax. tax_inclusive: type: number description: The estimated tax inclusive price for this product based on the provided customer group. tax_exclusive: type: number description: The estimated tax exclusive price for this product based on the provided customer group. entered_inclusive: type: boolean description: Determines whether the 'as_entered' price is inclusive or exclusive of tax based on the store's tax jurisdiction. x-internal: false productImage_Full: title: productImage_Full description: Common ProductImage properties. allOf: - $ref: '#/components/schemas/productImage_Base' - title: productImage type: object properties: id: type: integer description: 'The unique numeric ID of the image; increments sequentially. ' product_id: type: integer description: 'The unique numeric identifier for the product with which the image is associated. ' url_zoom: readOnly: true type: string description: 'The zoom URL for this image. By default, this is used as the zoom image on product pages when zoom images are enabled. You should provide an image smaller than 1280x1280; otherwise, the API returns a resized image. ' url_standard: readOnly: true type: string description: 'The standard URL for this image. By default, this is used for product-page images. ' url_thumbnail: readOnly: true type: string description: 'The thumbnail URL for this image. By default, this is the image size used on the category page and in side panels. ' url_tiny: readOnly: true type: string description: 'The tiny URL for this image. By default, this is the image size used for thumbnails beneath the product image on a product page. ' date_modified: type: string description: 'The date on which the product image was modified. ' format: date-time description: Common ProductImage properties. x-internal: false metaEmpty_Full: type: object title: Response meta properties: {} additionalProperties: true description: Response metadata. productImage_Base: title: productImage_Base type: object properties: image_file: type: string description: 'The local path to the original image file uploaded to BigCommerce. Use image_url when creating a product. Must be sent as a `multipart/form-data` field in the request body. Limit of 8 MB per file. ' is_thumbnail: type: boolean description: 'Flag for identifying whether the image is used as the productʼs thumbnail. ' sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: 'The order in which the image will be displayed on the product page. Higher integers give the image a lower priority. When updating, if the image is given a lower priority, all images with a `sort_order` the same as or greater than the imageʼs new `sort_order` value will have their `sort_order`s reordered. ' description: type: string description: 'The description for the image. ' image_url: type: string description: Must be a fully qualified URL path, including protocol. Limit of 8MB per file. description: Common ProductImage properties. x-internal: false productVariantOptionValue_Full: title: productVariantOptionValue_Full allOf: - type: object properties: option_display_name: maxLength: 255 minLength: 1 type: string description: 'The name of the option. ' example: Color x-required: - post label: maxLength: 255 minLength: 1 type: string description: 'The label of the option value. ' example: Beige x-required: - post required: - option_display_name - label x-internal: false productModifier_Full: title: productModifier_Full description: Product Modifier allOf: - $ref: '#/components/schemas/productModifier_Base' - type: object properties: id: type: integer description: 'The unique numeric ID of the modifier; increments sequentially. ' example: 12 product_id: type: integer description: 'The unique numeric ID of the product to which the option belongs. ' example: 77 name: type: string description: 'The unique option name. Auto-generated from the display name, a timestamp, and the product ID. ' example: Add-a-$5-Donation1535039590-191 option_values: type: array items: $ref: '#/components/schemas/productModifierOptionValue_Full' x-internal: false pagination_Full: title: pagination_Full type: object properties: total: type: integer description: 'Total number of items in the result set. ' example: 36 count: type: integer description: 'Total number of items in the collection response. ' example: 36 per_page: type: integer description: 'The amount of items returned in the collection per page, controlled by the limit parameter. ' example: 50 current_page: type: integer description: 'The page you are currently on within the collection. ' example: 1 total_pages: type: integer description: 'The total number of pages in the collection. ' example: 1 links: type: object properties: previous: type: string description: 'Link to the previous page returned in the response. ' current: type: string description: 'Link to the current page returned in the response. ' example: ?page=1&limit=50 next: type: string description: 'Link to the next page returned in the response. ' description: 'Pagination links for the previous and next parts of the whole collection. ' description: Data about the response, including pagination and collection totals. x-internal: false productVariant_Base: title: productVariant_Base type: object properties: cost_price: minimum: 0 type: number description: The cost price of the variant. Not affected by Price List prices. format: double nullable: true price: minimum: 0 type: number description: This variant’s base price on the storefront. If a Price List ID is used, the Price List value will be used. If a Price List ID is not used, and this value is `null`, the product’s default price (set in the Product resource’s `price` field) will be used as the base price. format: double nullable: true sale_price: minimum: 0 type: number description: This variant’s sale price on the storefront. If a Price List ID is used, the Price List value will be used. If a Price List ID is not used, and this value is null, the product’s sale price (set in the Product resource’s `price` field) will be used as the sale price. format: double nullable: true retail_price: minimum: 0 type: number description: This variant’s retail price on the storefront. If a Price List ID is used, the Price List value will be used. If a Price List ID is not used, and this value is null, the product’s retail price (set in the Product resource’s `price` field) will be used as the retail price. format: double nullable: true weight: minimum: 0 type: number description: This variant’s base weight on the storefront. If this value is null, the product’s default weight (set in the Product resource’s weight field) will be used as the base weight. format: double nullable: true width: minimum: 0 type: number description: 'Width of the variant, which can be used when calculating shipping costs. If this value is `null`, the productʼs default width (set in the Product resourceʼs `width` field) will be used as the base width. ' format: double nullable: true height: minimum: 0 type: number description: 'Height of the variant, which can be used when calculating shipping costs. If this value is `null`, the productʼs default height (set in the Product resourceʼs `height` field) will be used as the base height. ' format: double nullable: true depth: minimum: 0 type: number description: 'Depth of the variant, which can be used when calculating shipping costs. If this value is `null`, the productʼs default depth (set in the Product resourceʼs `depth` field) will be used as the base depth. ' format: double nullable: true is_free_shipping: type: boolean description: 'Flag used to indicate whether the variant has free shipping. If `true`, the shipping cost for the variant will be zero. ' fixed_cost_shipping_price: minimum: 0 type: number description: 'A fixed shipping cost for the variant. If defined, this value will be used during checkout instead of normal shipping-cost calculation. ' format: double nullable: true purchasing_disabled: type: boolean description: If `true`, this variant will not be purchasable on the storefront. purchasing_disabled_message: maxLength: 255 minLength: 0 type: string description: If `purchasing_disabled` is `true`, this message should show on the storefront when the variant is selected. upc: type: string description: The UPC code used in feeds for shopping comparison sites and external channel integrations. nullable: true inventory_level: type: integer description: "Inventory level for the variant, which is used when the product’s inventory_tracking is set to `variant`. The Catalog API returns the inventory for only the default location.\n \nThe inventory for a variant cannot exceed 2,147,483,647 in the catalog. The sum of the variant inventories, or the total inventory for a product, cannot exceed 2,147,483,647. \n \nIf you exceed the limit, the store sets the variant inventory to the limit if no other variant inventories are set. If other variant inventories are set, the store does not save the variant inventory rather than setting the variant inventory to the remaining limit.\n\nThe Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit handling](/docs/store-operations/catalog/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api). " nullable: true maximum: 2147483647 inventory_warning_level: type: integer description: When the variant hits this inventory level, it is considered low stock. nullable: true maximum: 2147483647 bin_picking_number: maxLength: 255 minLength: 0 type: string description: Identifies where in a warehouse the variant is located. nullable: true mpn: type: string description: The Manufacturer Part Number (MPN) for the variant. gtin: type: string example: 012345678905 description: Common Variant properties. x-internal: false x-examples: example-1: cost_price: 0 price: 0 sale_price: 0 retail_price: 0 weight: 0 width: 0 height: 0 depth: 0 is_free_shipping: true fixed_cost_shipping_price: 0 purchasing_disabled: true purchasing_disabled_message: string upc: string inventory_level: 0 inventory_warning_level: 0 bin_picking_number: string mpn: string gtin: 012345678905 adjuster_Full: title: adjuster_Full type: object properties: adjuster: type: string description: 'The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on the storefront. ' nullable: true enum: - relative - percentage adjuster_value: type: number description: 'The numeric amount by which the adjuster will change either the price or the weight of the variant, when the modifier value is selected on the storefront. ' example: 5 description: Adjuster for Complex Rules. x-internal: false errorResponse_409: title: errorResponse_409 allOf: - type: object properties: code: type: integer status: type: integer title: type: string description: The error title describing the particular error. type: type: string - type: object properties: errors: $ref: '#/components/schemas/DetailedErrors' x-internal: false metaCollection_Full: title: metaCollection_Full type: object properties: pagination: $ref: '#/components/schemas/pagination_Full' description: Data about the response, including pagination and collection totals. x-internal: false productVariant_Full: title: productVariant_Full allOf: - $ref: '#/components/schemas/productVariant_Base' - type: object properties: product_id: type: integer description: Product ID id: type: integer description: Variant ID sku: type: string option_values: type: array description: Array of option and option values IDs that make up this variant. Will be empty if the variant is the productʼs base variant. items: $ref: '#/components/schemas/productVariantOptionValue_Full' calculated_price: type: number description: 'The price of the variant as seen on the storefront. This price takes into account `sale_price` and any price adjustment rules that are applicable to this variant. ' format: double calculated_weight: type: number required: - sku - id - product_id x-internal: false description: '' x-examples: example-1: cost_price: 0 price: 0 sale_price: 0 retail_price: 0 weight: 0 width: 0 height: 0 depth: 0 is_free_shipping: true fixed_cost_shipping_price: 0 purchasing_disabled: true purchasing_disabled_message: string upc: string inventory_level: 0 inventory_warning_level: 0 bin_picking_number: string mpn: string gtin: 012345678905 id: 0 product_id: 0 sku: string sku_id: 0 option_values: - option_display_name: Color label: Beige id: 146 option_id: 151 calculated_price: 0 calculated_weight: 0 product_Put_Collection: title: product_Put_Collection description: The model for batch updating products. x-internal: false items: allOf: - type: object properties: id: type: integer description: Unique ID of the *Product*. Read-Only. readOnly: true required: - id - $ref: '#/components/schemas/product_Base' x-examples: example-1: - id: 0 name: Smith Journal 13 type: physical sku: SM-13 description:

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.

weight: 0 width: 0 depth: 0 height: 0 price: 0 cost_price: 0 retail_price: 0 sale_price: 0 map_price: 0 tax_class_id: 0 product_tax_code: string categories: - 0 brand_id: 0 inventory_level: 0 inventory_warning_level: 0 inventory_tracking: none fixed_cost_shipping_price: 0 is_free_shipping: true is_visible: true is_featured: true related_products: - 0 warranty: string bin_picking_number: string layout_file: string upc: string search_keywords: string availability: available availability_description: string gift_wrapping_options_type: list gift_wrapping_options_list: - 0 sort_order: -2147483648 condition: New is_condition_shown: true order_quantity_minimum: 0 order_quantity_maximum: 0 page_title: string meta_keywords: - string meta_description: string view_count: 0 preorder_release_date: '2019-08-24T14:15:22Z' preorder_message: string is_preorder_only: true is_price_hidden: true price_hidden_label: string custom_url: url: string is_customized: true open_graph_type: product open_graph_title: string open_graph_description: string open_graph_use_meta_description: true open_graph_use_product_name: true open_graph_use_image: true brand_name: Common Good gtin: string mpn: string date_last_imported: '2015-07-03T18:16:02+00:00' reviews_rating_sum: 3.2 reviews_count: 4 total_sold: 80 custom_fields: - id: 6 name: ISBN value: '1234567890123' bulk_pricing_rules: - id: 0 quantity_min: 10 quantity_max: 50 type: price amount: 10 images: - image_file: string is_thumbnail: true sort_order: -2147483648 description: string image_url: string id: 0 product_id: 0 url_zoom: string url_standard: string url_thumbnail: string url_tiny: string date_modified: '2019-08-24T14:15:22Z' videos: - title: Writing Great Documentation description: A video about documenation sort_order: 1 type: youtube video_id: z3fRu9pkuXE id: 0 product_id: 0 length: string type: array productModifierOptionValue_Base: title: productModifierOptionValue_Base required: - label - sort_order type: object properties: is_default: type: boolean description: 'The flag for preselecting a value as the default on the storefront. This field is not supported for swatch options/modifiers. ' example: false label: type: string description: 'The text display identifying the value on the storefront. Required in a /POST. ' example: Green x-required: - post sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: 'The order in which the value will be displayed on the product page. Required in a /POST. ' example: 0 x-required: - post value_data: type: object properties: {} description: 'Extra data describing the value, based on the type of option or modifier with which the value is associated. The `swatch` type option can accept an array of `colors`, with up to three hexidecimal color keys; or an `image_url`, which is a full image URL path including protocol. The `product list` type option requires a `product_id`. The `checkbox` type option requires a boolean flag, called `checked_value`, to determine which value is considered to be the checked state. If no data is available, returns `null`. ' nullable: true adjusters: $ref: '#/components/schemas/adjusters_Full' description: Common Product Modifer `option_value` properties. x-internal: false productOption_Base: title: productOption_Base type: object properties: id: type: integer description: 'The unique numerical ID of the option, increments sequentially. ' nullable: true example: 55 product_id: type: integer description: 'The unique numerical ID of the product to which the option belongs. ' example: 4 x-required: - post - put display_name: maxLength: 255 minLength: 1 type: string description: 'The name of the option shown on the storefront. ' example: Add-a-$5-Donation1535042499-187 x-required: - post - put type: type: string description: 'The type of option, which determines how it will display on the storefront. Acceptable values: `radio_buttons`, `rectangles`, `dropdown`, `product_list`, `product_list_with_images`, `swatch`. For reference, the former v2 API values are: RB = radio_buttons, RT = rectangles, S = dropdown, P = product_list, PI = product_list_with_images, CS = swatch. ' enum: - radio_buttons - rectangles - dropdown - product_list - product_list_with_images - swatch x-required: - post - put config: $ref: '#/components/schemas/productOptionConfig_Full' sort_order: type: integer description: 'Order in which the option is displayed on the storefront. ' example: 1 option_values: type: array items: $ref: '#/components/schemas/productOptionOptionValue_Full' description: Common Option properties. x-internal: false productVideo_Base: title: productVideo_Base type: object description: 'The model for a POST to create a video on a product. ' x-internal: false properties: title: type: string maxLength: 255 minLength: 0 description: 'The title for the video. If left blank, this will be filled in according to data on a host site. ' example: Writing Great Documentation description: type: string description: 'The description for the video. If left blank, this will be filled in according to data on a host site. ' example: A video about documenation sort_order: type: integer maximum: 2147483647 minimum: -2147483648 description: 'The order in which the video will be displayed on the product page. Higher integers give the video a lower priority. When updating, if the video is given a lower priority, all videos with a `sort_order` the same as or greater than the videoʼs new `sort_order` value will have their `sort_order`s reordered. ' example: 1 type: type: string description: 'The video type (a short name of a host site). ' enum: - youtube video_id: type: string description: The ID of the video on a host site. example: z3fRu9pkuXE productModifier_Base: title: productModifier_Base required: - required - type type: object properties: type: type: string description: 'BigCommerce API, which determines how it will display on the storefront. Acceptable values: `date`, `checkbox`, `file`, `text`, `multi_line_text`, `numbers_only_text`, `radio_buttons`, `rectangles`, `dropdown`, `product_list`, `product_list_with_images`, `swatch`. Required in a /POST. ' enum: - date - checkbox - file - text - multi_line_text - numbers_only_text - radio_buttons - rectangles - dropdown - product_list - product_list_with_images - swatch x-required: - post required: type: boolean description: 'Whether or not this modifer is required or not at checkout. Required in a /POST. ' x-required: - post sort_order: type: integer description: The order the modifiers display on the product detail page. config: $ref: '#/components/schemas/config_Full' display_name: type: string description: The name of the option shown on the storefront. description: Common Modifier properties. x-internal: false errorMultiStatus: title: errorMultiStatus type: object properties: status: type: integer minLength: 3 maxLength: 3 description: The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) of the failure or partial success. title: type: string description: A summary of the failure or partial success. type: type: string description: A BigCommerce-defined error signifier. errors: $ref: '#/components/schemas/DetailedErrors' product_Base: title: product_Base type: object description: 'Shared `Product` properties used in: * `POST` * `PUT` * `GET`' x-internal: false x-examples: example-1: id: 0 name: Smith Journal 13 type: physical sku: SM-13 description:

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.

weight: 0 width: 0 depth: 0 height: 0 price: 0 cost_price: 0 retail_price: 0 sale_price: 0 map_price: 0 tax_class_id: 0 product_tax_code: string categories: - 0 brand_id: 0 inventory_level: 0 inventory_warning_level: 0 inventory_tracking: none fixed_cost_shipping_price: 0 is_free_shipping: true is_visible: true is_featured: true related_products: - 0 warranty: string bin_picking_number: string layout_file: string upc: string search_keywords: string availability_description: string availability: available gift_wrapping_options_type: any gift_wrapping_options_list: - 0 sort_order: -2147483648 condition: New is_condition_shown: true order_quantity_minimum: 0 order_quantity_maximum: 0 page_title: string meta_keywords: - string meta_description: string view_count: 0 preorder_release_date: '2019-08-24T14:15:22Z' preorder_message: string is_preorder_only: true is_price_hidden: true price_hidden_label: string custom_url: url: string is_customized: true open_graph_type: product open_graph_title: string open_graph_description: string open_graph_use_meta_description: true open_graph_use_product_name: true open_graph_use_image: true brand_name: Common Good gtin: string mpn: string date_last_imported: '2015-07-03T18:16:02+00:00' reviews_rating_sum: 3.2 reviews_count: 4 total_sold: 80 custom_fields: - id: 6 name: ISBN value: '1234567890123' bulk_pricing_rules: - id: 0 quantity_min: 10 quantity_max: 50 type: price amount: 10 images: - image_file: string is_thumbnail: true sort_order: -2147483648 description: string image_url: string id: 0 product_id: 0 url_zoom: string url_standard: string url_thumbnail: string url_tiny: string date_modified: '2019-08-24T14:15:22Z' videos: - title: Writing Great Documentation description: A video about documenation sort_order: 1 type: youtube video_id: z3fRu9pkuXE id: 0 product_id: 0 length: string properties: name: maxLength: 250 minLength: 1 type: string description: 'A unique product name. ' example: Smith Journal 13 x-required: - post type: type: string description: 'The product type. One of: `physical` - a physical stock unit, `digital` - a digital download. ' example: physical enum: - physical - digital x-required: - post sku: maxLength: 255 minLength: 0 type: string description: 'A unique user-defined alphanumeric product code/stock keeping unit (SKU). ' example: SM-13 description: type: string description: 'The product description, which can include HTML formatting. ' example:

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.

weight: maximum: 9999999999 minimum: 0 type: number description: 'Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on the store ' format: float width: maximum: 9999999999 minimum: 0 type: number description: 'Width of the product, which can be used when calculating shipping costs. ' format: float depth: maximum: 9999999999 minimum: 0 type: number description: 'Depth of the product, which can be used when calculating shipping costs. ' format: float height: maximum: 9999999999 minimum: 0 type: number description: 'Height of the product, which can be used when calculating shipping costs. ' format: float price: minimum: 0 type: number description: 'The price of the product. The price should include or exclude tax, based on the store settings. ' format: float cost_price: minimum: 0 type: number description: 'The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store. ' format: float retail_price: minimum: 0 type: number description: 'The retail cost of the product. If entered, the retail cost price will be shown on the product page. ' format: float sale_price: minimum: 0 type: number description: 'If entered, the sale price will be used instead of value in the price field when calculating the productʼs cost. ' format: float map_price: type: number description: Minimum Advertised Price tax_class_id: maximum: 255 minimum: 0 type: number description: 'The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.) ' product_tax_code: maxLength: 255 minLength: 0 type: string description: 'Tax Codes, such as AvaTax System Tax Codes, identify products and services that fall into special sales-tax categories. By using these codes, merchants who subscribe to a tax provider integration, such as BigCommerceʼs Avalara Premium, can calculate sales taxes more accurately. Stores without a tax provider will ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive. For details, please see the tax providerʼs documentation. ' categories: type: array description: '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. ' x-required: - post items: type: number maximum: 1000 minimum: 0 brand_id: maximum: 1000000000 minimum: 0 type: integer description: 'You can add a product to an existing brand during a product /PUT or /POST. Use either the `brand_id` or the `brand_name` field. The response body can include `brand_id`. ' brand_name: type: string description: You can create the brand during a product PUT or POST request. If the brand already exists, the product /PUT or /POST request adds the product to the brand. If not, the product /PUT or /POST request creates the brand and then adds the product to the brand. Brand name is not case-sensitive; "Common Good" and "Common good" are the same. Use either the `brand_id` or the `brand_name` field. The response body does not include `brand_name`. example: Common Good inventory_level: maximum: 2147483647 minimum: 0 type: integer description: 'Current inventory level of the product. You must track inventory by _product_ for this to take effect (see the `inventory_tracking` field). The Catalog API returns the inventory for only the default location. The inventory for a product cannot exceed 2,147,483,647 in the catalog. If you exceed the limit, the store sets the inventory level to the limit. The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit handling](/docs/store-operations/catalog/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api). ' inventory_warning_level: maximum: 2147483647 minimum: 0 type: integer description: '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. ' inventory_tracking: type: string description: '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. ' enum: - none - product - variant fixed_cost_shipping_price: minimum: 0 type: number description: 'A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal shipping-cost calculation. ' format: float is_free_shipping: type: boolean description: 'Flag used to indicate whether the product has free shipping. If `true`, the shipping cost for the product will be zero. ' is_visible: type: boolean description: '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: type: boolean description: 'Flag to determine whether the product should be included in the `featured products` panel when viewing the store. ' related_products: type: array description: 'An array of IDs for the related products. ' items: type: integer warranty: maxLength: 65535 minLength: 0 type: string description: 'Warranty information displayed on the product page. Can include HTML formatting. ' bin_picking_number: maxLength: 255 minLength: 0 type: string description: 'The BIN picking number for the product. ' layout_file: maxLength: 500 minLength: 0 type: string description: 'The layout template file used to render this product category. This field is writable only for stores with a Blueprint theme applied. For stores with a Stencil theme applied, see [Custom Template Associations](/docs/rest-content/custom-template-associations). ' upc: type: string maxLength: 32 minLength: 0 description: 'The product UPC code, which is used in feeds for shopping comparison sites and external channel integrations. ' search_keywords: maxLength: 65535 minLength: 0 type: string description: 'A comma-separated list of keywords that can be used to locate the product when searching the store. ' availability_description: maxLength: 255 minLength: 0 type: string description: '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.'' ' availability: type: string description: 'Availability of the product. (Corresponds to the productʼs [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections) section in the control panel.) Supported values: `available` - the product is available for purchase; `disabled` - the product is listed on the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders. ' enum: - available - disabled - preorder gift_wrapping_options_type: type: string description: '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. Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query parameters. ' enum: - any - none - list gift_wrapping_options_list: type: array description: 'A list of gift-wrapping option IDs. Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query parameters. ' items: type: integer sort_order: type: integer description: '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. ' maximum: 2147483647 minimum: -2147483648 condition: type: string description: '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`. ' enum: - New - Used - Refurbished is_condition_shown: type: boolean description: 'Flag used to determine whether the product condition is shown to the customer on the product page. ' order_quantity_minimum: maximum: 1000000000 minimum: 0 type: integer description: 'The minimum quantity an order must contain, to be eligible to purchase this product. ' order_quantity_maximum: maximum: 1000000000 minimum: 0 type: integer description: 'The maximum quantity an order can contain when purchasing the product. ' page_title: maxLength: 255 minLength: 0 type: string description: 'Custom title for the product page. If not defined, the product name will be used as the meta title. ' meta_keywords: type: array maxLength: 65535 minLength: 0 description: 'Custom meta keywords for the product page. If not defined, the storeʼs default keywords will be used. ' items: type: string meta_description: maxLength: 65535 minLength: 0 type: string description: 'Custom meta description for the product page. If not defined, the storeʼs default meta description will be used. ' view_count: maximum: 1000000000 minimum: 0 type: integer description: 'The number of times the product has been viewed. ' deprecated: true preorder_release_date: type: string description: 'Pre-order release date. See the `availability` field for details on setting a productʼs availability to accept pre-orders. ' format: date-time nullable: true preorder_message: maxLength: 255 minLength: 0 type: string description: '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. ' is_preorder_only: type: boolean description: '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: type: boolean description: '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: maxLength: 200 minLength: 0 type: string description: '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`.) ' custom_url: $ref: '#/components/schemas/customUrl_Full' open_graph_type: type: string description: 'Type of product, defaults to `product`. ' enum: - product - album - book - drink - food - game - movie - song - tv_show open_graph_title: type: string description: 'Title of the product, if not specified the product name will be used instead. ' open_graph_description: type: string description: 'Description to use for the product, if not specified then the meta_description will be used instead. ' open_graph_use_meta_description: type: boolean description: 'Flag to determine if product description or open graph description is used. ' open_graph_use_product_name: type: boolean description: 'Flag to determine if product name or open graph name is used. ' open_graph_use_image: type: boolean description: 'Flag to determine if product image or open graph image is used. ' gtin: type: string description: Global Trade Item Number mpn: type: string description: Manufacturer Part Number date_last_imported: type: string description: the date when the Product had been imported reviews_rating_sum: type: integer description: 'The total (cumulative) rating for the product. ' example: 3 reviews_count: type: integer description: 'The number of times the product has been rated. ' example: 4 total_sold: type: integer description: 'The total quantity of this product sold. ' example: 80 custom_fields: type: array minimum: 0 maximum: 255 description: 200 maximum custom fields per product. 255 maximum characters per custom field. The default rate limit for this endpoint is 40 concurrent requests. items: $ref: '#/components/schemas/productCustomField_Put' bulk_pricing_rules: type: array items: allOf: - type: object properties: id: type: integer description: Unique ID of the *Bulk Pricing Rule*. Read-Only. readOnly: true required: - id - $ref: '#/components/schemas/bulkPricingRule_Full' images: type: array items: $ref: '#/components/schemas/productImage_Full' videos: type: array items: $ref: '#/components/schemas/productVideo_Full' variants: type: array items: $ref: '#/components/schemas/productVariant_Full' required: - name - type - weight - price customUrl_Full: title: customUrl_Full type: object properties: url: maxLength: 255 minLength: 0 type: string description: 'Product URL on the storefront. ' x-required: - post - put x-url: true is_customized: type: boolean description: 'Returns `true` if the URL has been changed from its default state (the auto-assigned URL that BigCommerce provides). ' x-required: - post - put create_redirect: type: boolean description: 'Optional field. This field automatically creates a dynamic 301 redirect when a product URL change occurs with a PUT request. Existing dynamic redirects will automatically update to a new URL to avoid a loop. ' description: The custom URL for the product on the storefront. x-internal: false productModifierOptionValue_Full: title: productModifierOptionValue_Full description: Product Modifer `option_value`. allOf: - $ref: '#/components/schemas/productModifierOptionValue_Base' - type: object properties: id: type: integer description: 'The unique numeric ID of the value; increments sequentially. ' option_id: type: integer x-internal: false productOptionOptionValue_Full: title: productOptionOptionValue_Full description: Product Option `option_value`. allOf: - $ref: '#/components/schemas/productOptionOptionValue_Base' - type: object properties: id: type: integer description: 'The unique numeric ID of the value; increments sequentially. ' x-internal: false config_Full: title: config_Full type: object properties: default_value: type: string description: '(date, text, multi_line_text, numbers_only_text) The default value. Shown on a date option as an ISO-8601–formatted string, or on a text option as a string. ' checked_by_default: type: boolean description: '(checkbox) Flag for setting the checkbox to be checked by default. ' checkbox_label: type: string description: '(checkbox) Label displayed for the checkbox option. ' date_limited: type: boolean description: '(date) Flag to limit the dates allowed to be entered on a date option. ' date_limit_mode: type: string description: '(date) The type of limit that is allowed to be entered on a date option. ' example: range enum: - earliest - range - latest date_earliest_value: type: string description: '(date) The earliest date allowed to be entered on the date option, as an ISO-8601 formatted string. ' format: date date_latest_value: type: string description: '(date) The latest date allowed to be entered on the date option, as an ISO-8601 formatted string. ' format: date file_types_mode: type: string description: '(file) The kind of restriction on the file types that can be uploaded with a file upload option. Values: `specific` - restricts uploads to particular file types; `all` - allows all file types. ' example: specific enum: - specific - all file_types_supported: type: array description: "(file) The type of files allowed to be uploaded if the `file_type_option` is set to `specific`. Values:\n `images` - Allows upload of image MIME types (`bmp`, `gif`, `jpg`, `jpeg`, `jpe`, `jif`, `jfif`, `jfi`, `png`, `wbmp`, `xbm`, `tiff`). `documents` - Allows upload of document MIME types (`txt`, `pdf`, `rtf`, `doc`, `docx`, `xls`, `xlsx`, `accdb`, `mdb`, `one`, `pps`, `ppsx`, `ppt`, `pptx`, `pub`, `odt`, `ods`, `odp`, `odg`, `odf`).\n `other` - Allows file types defined in the `file_types_other` array. \n" items: type: string example: images, documents, other file_types_other: type: array description: '(file) A list of other file types allowed with the file upload option. ' items: type: string example: pdf file_max_size: type: integer description: '(file) The maximum size for a file that can be used with the file upload option. This will still be limited by the server. ' example: 5 text_characters_limited: type: boolean description: '(text, multi_line_text) Flag to validate the length of a text or multi-line text input. ' text_min_length: type: integer description: '(text, multi_line_text) The minimum length allowed for a text or multi-line text option. ' example: 1 text_max_length: type: integer description: '(text, multi_line_text) The maximum length allowed for a text or multi line text option. ' example: 55 text_lines_limited: type: boolean description: '(multi_line_text) Flag to validate the maximum number of lines allowed on a multi-line text input. ' example: true text_max_lines: type: integer description: '(multi_line_text) The maximum number of lines allowed on a multi-line text input. ' example: 4 number_limited: type: boolean description: '(numbers_only_text) Flag to limit the value of a number option. ' example: true number_limit_mode: type: string description: '(numbers_only_text) The type of limit on values entered for a number option. ' example: lowest enum: - lowest - highest - range number_lowest_value: type: number description: '(numbers_only_text) The lowest allowed value for a number option if `number_limited` is true. ' example: 100 number_highest_value: type: number description: '(numbers_only_text) The highest allowed value for a number option if `number_limited` is true. ' number_integers_only: type: boolean description: '(numbers_only_text) Flag to limit the input on a number option to whole numbers only. ' example: false product_list_adjusts_inventory: type: boolean description: '(product_list, product_list_with_images) Flag for automatically adjusting inventory on a product included in the list. ' product_list_adjusts_pricing: type: boolean description: '(product_list, product_list_with_images) Flag to add the optional productʼs price to the main productʼs price. ' product_list_shipping_calc: type: string description: '(product_list, product_list_with_images) How to factor the optional productʼs weight and package dimensions into the shipping quote. Values: `none` - donʼt adjust; `weight` - use shipping weight only; `package` - use weight and dimensions. ' example: weight enum: - none - weight - package description: The values for option config can vary based on the Modifier created. x-internal: false productCustomField_Put: title: productCustomField_Put required: - name - value type: object properties: id: minimum: 1 type: integer description: 'The unique numeric ID of the custom field; increments sequentially. Required to update existing custom field in /PUT request. Read-Only' example: 6 name: maxLength: 250 minLength: 1 type: string description: 'The name of the field, shown on the storefront, orders, etc. Required for /POST ' example: ISBN x-required: - post value: maxLength: 250 minLength: 1 type: string description: 'The name of the field, shown on the storefront, orders, etc. Required for /POST ' example: '1234567890123' x-required: - post description: The model for a PUT to update a custom field on a product. x-internal: false adjusters_Full: title: adjusters_Full type: object properties: price: $ref: '#/components/schemas/adjuster_Full' weight: $ref: '#/components/schemas/adjuster_Full' image_url: type: string description: 'The URL for an image displayed on the storefront when the modifier value is selected.Limit of 8MB per file. ' example: https://cdn8.bigcommerce.com/s-{{store_hash}}/products/184/images/445/naturalcanvascart2_1024x1024__92347__29648.1534344533.1280.1280.jpg?c=2 purchasing_disabled: type: object properties: status: type: boolean description: 'Flag for whether the modifier value disables purchasing when selected on the storefront. This can be used for temporarily disabling a particular modifier value. ' message: type: string description: 'The message displayed on the storefront when the purchasing disabled status is `true`. ' x-internal: false product_Put: title: product_Put description: The model for a PUT to update a product. allOf: - $ref: '#/components/schemas/product_Base' - type: object x-internal: false productOptionOptionValue_Base: title: productOptionOptionValue_Base required: - label - sort_order type: object properties: is_default: type: boolean description: 'The flag for preselecting a value as the default on the storefront. This field is not supported for swatch options/modifiers. ' example: false label: type: string description: 'The text display identifying the value on the storefront. Required in a /POST. ' example: Green x-required: - post sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: 'The order in which the value will be displayed on the product page. Required in a /POST. ' example: 0 x-required: - post value_data: type: object properties: {} description: 'Extra data describing the value, based on the type of option or modifier with which the value is associated. The `swatch` type option can accept an array of `colors`, with up to three hexidecimal color keys; or an `image_url`, which is a full image URL path including protocol. The `product list` type option requires a `product_id`. The `checkbox` type option requires a boolean flag, called `checked_value`, to determine which value is considered to be the checked state. If no data is available, returns `null`. ' nullable: true description: Common Product Option `option_value` properties. x-internal: false errorResponse_422: title: errorResponse_422 allOf: - type: object properties: code: type: integer status: type: integer title: type: string description: The error title describing the particular error. type: type: string - type: object properties: errors: $ref: '#/components/schemas/DetailedErrors' x-internal: false productOptionConfig_Full: title: productOptionConfig_Full type: object properties: default_value: type: string description: '(date, text, multi_line_text, numbers_only_text) The default value. Shown on a date option as an ISO-8601–formatted string, or on a text option as a string. ' checked_by_default: type: boolean description: '(checkbox) Flag for setting the checkbox to be checked by default. ' checkbox_label: type: string description: '(checkbox) Label displayed for the checkbox option. ' date_limited: type: boolean description: '(date) Flag to limit the dates allowed to be entered on a date option. ' date_limit_mode: type: string description: '(date) The type of limit that is allowed to be entered on a date option. ' example: range enum: - earliest - range - latest date_earliest_value: type: string description: '(date) The earliest date allowed to be entered on the date option, as an ISO-8601 formatted string. ' format: date date_latest_value: type: string description: '(date) The latest date allowed to be entered on the date option, as an ISO-8601 formatted string. ' format: date file_types_mode: type: string description: '(file) The kind of restriction on the file types that can be uploaded with a file upload option. Values: `specific` - restricts uploads to particular file types; `all` - allows all file types. ' example: specific enum: - specific - all file_types_supported: type: array description: "(file) The type of files allowed to be uploaded if the `file_type_option` is set to `specific`. Values:\n `images` - Allows upload of image MIME types (`bmp`, `gif`, `jpg`, `jpeg`, `jpe`, `jif`, `jfif`, `jfi`, `png`, `wbmp`, `xbm`, `tiff`). `documents` - Allows upload of document MIME types (`txt`, `pdf`, `rtf`, `doc`, `docx`, `xls`, `xlsx`, `accdb`, `mdb`, `one`, `pps`, `ppsx`, `ppt`, `pptx`, `pub`, `odt`, `ods`, `odp`, `odg`, `odf`).\n `other` - Allows file types defined in the `file_types_other` array.\n" items: type: string example: images, documents, other file_types_other: type: array description: '(file) A list of other file types allowed with the file upload option. ' items: type: string example: pdf file_max_size: type: integer description: '(file) The maximum size for a file that can be used with the file upload option. This will still be limited by the server. ' example: 5 text_characters_limited: type: boolean description: '(text, multi_line_text) Flag to validate the length of a text or multi-line text input. ' text_min_length: type: integer description: '(text, multi_line_text) The minimum length allowed for a text or multi-line text option. ' example: 1 text_max_length: type: integer description: '(text, multi_line_text) The maximum length allowed for a text or multi line text option. ' example: 55 text_lines_limited: type: boolean description: '(multi_line_text) Flag to validate the maximum number of lines allowed on a multi-line text input. ' example: true text_max_lines: type: integer description: '(multi_line_text) The maximum number of lines allowed on a multi-line text input. ' example: 4 number_limited: type: boolean description: '(numbers_only_text) Flag to limit the value of a number option. ' example: true number_limit_mode: type: string description: '(numbers_only_text) The type of limit on values entered for a number option. ' example: lowest enum: - lowest - highest - range number_lowest_value: type: number description: '(numbers_only_text) The lowest allowed value for a number option if `number_limited` is true. ' example: 100 number_highest_value: type: number description: '(numbers_only_text) The highest allowed value for a number option if `number_limited` is true. ' number_integers_only: type: boolean description: '(numbers_only_text) Flag to limit the input on a number option to whole numbers only. ' example: false product_list_adjusts_inventory: type: boolean description: '(product_list, product_list_with_images) Flag for automatically adjusting inventory on a product included in the list. ' product_list_adjusts_pricing: type: boolean description: '(product_list, product_list_with_images) Flag to add the optional productʼs price to the main productʼs price. ' product_list_shipping_calc: type: string description: '(product_list, product_list_with_images) How to factor the optional productʼs weight and package dimensions into the shipping quote. Values: `none` - donʼt adjust; `weight` - use shipping weight only; `package` - use weight and dimensions. ' example: weight enum: - none - weight - package description: The values for option config can vary based on the Modifier created. x-internal: false product_Full: title: product_Full allOf: - type: object properties: id: minimum: 1 type: integer description: ID of the product. Read-Only. readOnly: true - $ref: '#/components/schemas/product_Base' - type: object properties: date_created: type: string description: 'The date on which the product was created. ' format: date-time example: '2018-08-15T14:49:05+00:00' date_modified: type: string description: 'The date on which the product was modified. ' format: date-time example: '2018-08-24T14:41:00+00:00' base_variant_id: type: integer description: The unique identifier of the base variant associated with a simple product. This value is `null` for complex products. calculated_price: type: number description: The calculated_price is derived from the default price and sale price of the product. It is equal to the sale price if set or the default price if there is not a sale price present. Depending on your store settings and customer group, or channel-specific pricing, this value may or may not be equal to the price seen on the storefront. format: float options: type: array items: $ref: '#/components/schemas/productOption_Base' modifiers: type: array items: $ref: '#/components/schemas/productModifier_Full' map_price: type: number description: Minimum Advertised Price. option_set_id: type: integer description: Indicates that the product is in an Option Set (legacy V2 concept). option_set_display: type: string description: Legacy template setting which controls if the option set shows up to the side of or below the product image and description. x-internal: false bulkPricingRule_Full: title: bulkPricingRule_Full type: object description: Common Bulk Pricing Rule properties x-internal: false properties: quantity_min: minimum: 0 type: integer description: 'The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For `fixed` rules, the minimum quantity canʼt be less than two. Required in /POST. ' example: 10 x-required: - post quantity_max: minimum: 0 type: integer description: 'The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min` value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this rule. Required in /POST.' example: 50 x-required: - post type: type: string description: 'The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product. Required in /POST.' example: price enum: - price - percent - fixed x-required: - post amount: oneOf: - type: number example: 10 - type: string example: '.10' description: "You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response will return a number for `price` and `fixed` adjustments.\nDivide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as “.10”. The response will return a float value for both `price` and `percentage` adjustments. \nRequired in /POST." required: - quantity_min - quantity_max - type - amount DetailedErrors: title: DetailedErrors description: Each key-value pair describes a failure or partial success case. type: object properties: {} additionalProperties: true x-internal: false error_Base: title: error_Base type: object properties: status: type: integer description: 'The HTTP status code. ' title: type: string description: 'The error title describing the particular error. ' type: type: string instance: type: string description: 'Error payload for the BigCommerce API. ' x-internal: false parameters: Accept: name: Accept in: header required: true description: The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response body. schema: type: string default: application/json ProductIdParam: name: product_id in: path description: 'The ID of the `Product` to which the resource belongs. ' required: true schema: type: integer ContentType: name: Content-Type in: header required: true description: The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the request body. schema: type: string default: application/json securitySchemes: X-Auth-Token: name: X-Auth-Token description: '### OAuth scopes | UI Name | Permission | Parameter | |:--|:--|:-| | Information & Settings | read-only | `store_v2_information_read_only`| | Information & Settings | modify | `store_v2_information` | ### Authentication header | Header | Argument | Description | |:-|:|:| | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/docs/start/authentication/api-accounts). | ### Further reading For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/docs/start/authentication#x-auth-token-header-example-requests). For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/docs/start/authentication/api-accounts#oauth-scopes). For a list of API status codes, see [API Status Codes](/docs/start/about/status-codes).' type: apiKey in: header