openapi: '3.0.3' info: title: Catalog - Products description: |- > The Catalog API manages products, categories, brands, bulk pricing rules, and more. To learn more about catalog resources, see the [Catalog Overview](/docs/store-operations/catalog). Our Catalog Products endpoints let you [create products](/docs/rest-catalog/products#create-a-product), perform [batch operations on existing products](/docs/rest-catalog/products#update-products-batch) and work with [reviews](/docs/rest-catalog/products/reviews), [images](/docs/rest-catalog/products/images), and [videos](/docs/rest-catalog/products/videos). Note that after a product is created initially, you can manage the nuances of its variations using the [Product Modifier](/docs/rest-catalog/product-modifiers), [Product Variant](/docs/rest-catalog/product-variants), and [Product Variant Options](/docs/rest-catalog/product-variant-options) endpoints. Other core product endpoints focus on [bulk pricing](/docs/rest-catalog/products/bulk-pricing-rules), [complex rules](/docs/rest-catalog/products/complex-rules), [custom fields](/docs/rest-catalog/products/custom-fields), and [metafields](/docs/rest-catalog/products/metafields). Product Variant objects also contain [their own metafields](/docs/rest-catalog/product-variants/metafields). For [MSF-enabled](/docs/storefront/multi-storefront) stores, the product object also contains product [channel assignments](/docs/rest-catalog/products/channel-assignments) and [category assignments](/docs/rest-catalog/products/category-assignments); read more about [products in the MSF context](/docs/storefront/multi-storefront/guide#products). This API family also contains an endpoint to [Get a catalog summary](/docs/rest-catalog/products/summary). > To learn more about authenticating Catalog endpoints, locate the **Authentication** section at the top of each endpoint, then click **Show Details**. ## Resources ### Webhooks * [Product webhook events](/docs/integrations/webhooks/events#products) * [Product assignment webhook events](/docs/integrations/webhooks/events/channels#product-assignments) ### Additional Catalog endpoints * [Brands](/docs/rest-catalog/brands) * [Categories](/docs/rest-catalog/categories) * [Category Trees](/docs/rest-catalog/category-trees) * [Product Modifiers](/docs/rest-catalog/product-modifiers) * [Product Variants](/docs/rest-catalog/product-variants) * [Product Variant Options](/docs/rest-catalog/product-variant-options) termsOfService: 'https://www.bigcommerce.com/terms' contact: name: BigCommerce url: 'https://www.bigcommerce.com' email: support@bigcommerce.com version: '' 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 - name: Bulk Pricing Rules - name: Complex Rules - name: Custom Fields - name: Images - name: Metafields - name: Reviews - name: Videos - name: Channel Assignments - name: Category Assignments - name: Summary paths: '/catalog/products': get: tags: - Products summary: 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: 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:max' in: query description: 'Filter items by date_last_imported. For example, `date_last_imported:max=2020-06-15`.' schema: type: string - name: 'date_last_imported:min' in: query description: 'Filter items by date_last_imported. For example, `date_last_imported:min=2018-06-15`.' 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. 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. **Note:** The following sub-resources include: * variants * images * custom_fields * bulk_pricing_rules * primary_images * modifiers * options * 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`.' schema: 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: type: object properties: data: type: array items: $ref: '#/components/schemas/product_Full' meta: $ref: '#/components/schemas/metaCollection_Full' put: tags: - Products summary: 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 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: 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 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. The product information was updated successfully, but the 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. 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' '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: Create a Product description: |- Creates a *Product*. Only one product can be created at a time. **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** * 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: 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: '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': '207': description: |- Multi-status. The product information was updated successfully, but the 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. 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: 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 the id's of 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=2018-06-15`' 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. 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: {} parameters: - $ref: '#/components/parameters/Accept' '/catalog/products/{product_id}': get: tags: - Products summary: Get a Product description: Returns a single *Product*. Optional parameters can be passed in. operationId: getProductById 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: 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. The product information was updated successfully, but the 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. 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: Delete a Product description: Deletes a *Product*. operationId: deleteProductById responses: '204': description: '' content: {} parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' '/catalog/products/{product_id}/images': get: tags: - Images summary: Get All Product Images description: Returns a list of *Product Images*. Optional parameters can be passed in. operationId: getProductImages parameters: - 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. schema: type: integer - 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 Image Collection Response type: object properties: data: type: array items: $ref: '#/components/schemas/productImage_Full' meta: $ref: '#/components/schemas/metaCollection_Full' description: | Response payload for the BigCommerce API. example: data: - id: 382 product_id: 158 is_thumbnail: true sort_order: 0 description: '' image_file: a/521/foglinenbeigestripetowel1b_1024x1024__83011__60806.jpg url_zoom: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/382/foglinenbeigestripetowel1b_1024x1024__83011__60806.1534344511.1280.1280.jpg?c=2' url_standard: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/382/foglinenbeigestripetowel1b_1024x1024__83011__60806.1534344511.560.850.jpg?c=2' url_thumbnail: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/382/foglinenbeigestripetowel1b_1024x1024__83011__60806.1534344511.330.500.jpg?c=2' url_tiny: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/382/foglinenbeigestripetowel1b_1024x1024__83011__60806.1534344511.66.100.jpg?c=2' date_modified: '2018-08-15T14:48:31+00:00' - id: 383 product_id: 158 is_thumbnail: false sort_order: 0 description: '' image_file: k/050/foglinenbeigestripetowel2b_1024x1024__16082__46564.jpg url_zoom: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/383/foglinenbeigestripetowel2b_1024x1024__16082__46564.1534344511.1280.1280.jpg?c=2' url_standard: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/383/foglinenbeigestripetowel2b_1024x1024__16082__46564.1534344511.560.850.jpg?c=2' url_thumbnail: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/383/foglinenbeigestripetowel2b_1024x1024__16082__46564.1534344511.330.500.jpg?c=2' url_tiny: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/383/foglinenbeigestripetowel2b_1024x1024__16082__46564.1534344511.66.100.jpg?c=2' date_modified: '2018-08-15T14:48:31+00:00' meta: pagination: total: 2 count: 2 per_page: 50 current_page: 1 total_pages: 1 links: current: '?page=1&limit=50' '204': description: | There are not any images on this product. content: {} '404': description: | The product ID does not exist. 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. post: tags: - Images summary: Create a Product Image description: |- Creates a *Product Image*. **Required Fields** - `image_file`, or - `image_url` **Usage Notes** - `image_url` - `255` character limit - For file uploads, use the `multipart/form-data` media type. - You can create only one image at a time. A product can have up to 1000 images. - Supported image file types are BMP, GIF, JPEG, PNG, WBMP, XBM, and WEBP. - Each image file or image uploaded by URL can be up to 8 MB. operationId: createProductImage parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: title: Product Image Post description: The model for a POST to create an image on a product. allOf: - title: Product Image Base type: object properties: 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. 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 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. description: Common ProductImage properties. - type: object properties: image_url: type: string description: | Must be a fully qualified URL path, including protocol. Limit of 8MB per file. image_file: type: string description: | The local path to the original image file uploaded to BigCommerce. A `multipart/form-data` media type. Must be sent as a `multipart/form-data` field in the request body. Limit of 8 MB per file. multipart/form-data: schema: title: Product Image Post description: The model for a POST to create an image on a product. allOf: - title: Product Image Base 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. 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 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. description: Common ProductImage properties. - type: object properties: image_url: type: string description: | Must be a fully qualified URL path, including protocol. Limit of 8MB per file. image_file: type: string description: | The local path to the original image file uploaded to BigCommerce. A `multipart/form-data` media type. Must be sent as a multipart/form-data field in the request body. Limit of 8 MB per file. required: true responses: '200': description: Success content: application/json: schema: title: Product Image Response type: object properties: data: title: Product Image type: object allOf: - title: Product Image Base 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. 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 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. description: Common ProductImage properties. - 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. image_file: type: string description: |- The local path to the original image file uploaded to BigCommerce. Use image_url when creating a product. A `multipart/form-data` media type. Must be sent as a multipart/form-data field in the request body. Limit of 8 MB per file. 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. 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 image_url: type: string description: |- Publically available URL. Use the image_url when creating a product. example: 'https://upload.wikimedia.org/wikipedia/commons/7/7f/Anglel_Bless_Legendary_Hills_1_m%C4%9Bs%C3%ADc_st%C3%A1%C5%99%C3%AD.jpg' meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: data: id: 485 product_id: 158 is_thumbnail: false sort_order: 1 description: '' image_file: o/381/product-image__98178.png url_zoom: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.1280.1280.png?c=2' url_standard: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.560.850.png?c=2' url_thumbnail: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.330.500.png?c=2' url_tiny: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.66.100.png?c=2' date_modified: '2018-09-13T15:57:07+00:00' meta: {} '400': description: Bad Request. The requested resource could not be downloaded and may be invalid. Possible reasons include malformed request syntax or the file host blocking requests. content: application/json: schema: type: object properties: {} '404': description: | The product ID does not exist. 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. '422': description: |- Unprocessable Entity. May occur if the `Content-Type` header is set to `multipart/form-data` rather than `application/json` when creating a product image using `image_url`. content: application/json: schema: required: - status - title - type type: object properties: status: type: number title: minLength: 1 type: string type: minLength: 1 type: string description: '' example: status: 422 title: image_url must be present if uploading by url type: /api-docs/getting-started/api-status-codes x-codegen-request-body-name: productImage parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' '/catalog/products/{product_id}/images/{image_id}': get: tags: - Images summary: Get a Product Image description: Returns a single *Product Image*. Optional parameters can be passed in. operationId: getProductImageById parameters: - 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 Image Response type: object properties: data: $ref: '#/components/schemas/productImage_Full' meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: data: id: 485 product_id: 158 is_thumbnail: false sort_order: 1 description: '' image_file: o/381/product-image__98178.png url_zoom: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.1280.1280.png?c=2' url_standard: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.560.850.png?c=2' url_thumbnail: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.330.500.png?c=2' url_tiny: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.66.100.png?c=2' date_modified: '2018-09-13T15:57:07+00:00' 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: - Images summary: Update a Product Image description: |- Updates a *Product Image*. **Usage Notes** - `image_url` - `255` character limit - Each image file or image uploaded by URL can be up to 8 MB. - For file uploads, send a POST request using the `multipart/form-data` media type operationId: updateProductImage parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/productImage_Put' required: true responses: '200': description: '' content: application/json: schema: title: Product Image Response type: object properties: data: title: Product Image type: object allOf: - title: Product Image Base 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. 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 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. description: Common ProductImage properties. - 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. 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. 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. 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 image_url: type: string description: |- Publically available URL. Use the image_url when creating a product. example: 'https://upload.wikimedia.org/wikipedia/commons/7/7f/Anglel_Bless_Legendary_Hills_1_m%C4%9Bs%C3%ADc_st%C3%A1%C5%99%C3%AD.jpg' meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: data: id: 485 product_id: 158 is_thumbnail: false sort_order: 1 description: '' image_file: o/381/product-image__98178.png url_zoom: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.1280.1280.png?c=2' url_standard: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.560.850.png?c=2' url_thumbnail: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.330.500.png?c=2' url_tiny: 'https://cdn8.bigcommerce.com/s-id30h7ohwf/products/158/images/485/product-image__98178.1536854227.66.100.png?c=2' date_modified: '2018-09-13T15:57:07+00:00' meta: {} '201': description: Created content: application/json: schema: type: object properties: {} '400': description: Bad Request. The requested resource could not be downloaded and may be invalid. Possible reasons include malformed request syntax or the file host blocking requests. content: application/json: schema: type: object properties: {} '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. x-codegen-request-body-name: productImage delete: tags: - Images summary: Delete a Product Image description: Deletes a *Product Image*. operationId: deleteProductImage responses: '204': description: '' content: {} parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' - $ref: '#/components/parameters/ImageIdParam' '/catalog/products/{product_id}/videos': get: tags: - Videos summary: Get All Product Videos description: Returns a list of *Product Videos*. Optional parameters can be passed in. operationId: getProductVideos parameters: - 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: 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. schema: type: integer responses: '200': description: '' content: application/json: schema: title: Product Video Collection Response type: object properties: data: type: array items: $ref: '#/components/schemas/productVideo_Full' meta: $ref: '#/components/schemas/metaCollection_Full' example: data: - id: 6 type: youtube video_id: PqBTp23RLhI product_id: 192 sort_order: 1 title: Creating and Editing Banners | BigCommerce Tutorials description: 'Learn how to create and edit marketing banners. Marketing banners are a great way to advertise sales, display coupon codes, and add design elements. Let’s take a look at how you can leverage banners to convert your store’s visitors into paying customers.' length: '01:54' - id: 7 type: youtube video_id: EhYBjzqd-nI product_id: 192 sort_order: 2 title: BigCommerce Company Values description: |- These are the core principles upon which BigCommerce was built, guiding what we do and how we do it. Each employee learns them, loves them and lives them. Our merchants benefit from them every time they use our product or get help from our support team. Join the BigCommerce team and help us build software that changes lives! https://www.bigcommerce.com/careers/ length: '03:30' - id: 8 type: youtube video_id: vAUdo4kRjrU product_id: 192 sort_order: 3 title: TOP WORKPLACES 2016 - Austin American Statesman + BigCommerce description: |- We've been named one of Austin American-Statesman's Top WorkPlaces for the 5th year in a row! Here's what some employees have to say: “I am given the freedom and trust to make a difference.” “Everyone believes in the product and growing the company.” “I'm appreciated for the work I do and there is room to grown within the company.” Work With Us! http://www.bigcommerce.com/careers.php length: '01:37' meta: pagination: total: 3 count: 3 per_page: 50 current_page: 1 total_pages: 1 links: current: '?page=1&limit=50' post: tags: - Videos summary: Create a Product Video description: |- Creates a *Product Video*. **Required Fields** * video_id **Read-Only Fields** * id Publicly accessible URLs are valid parameters. Videos must be loaded through YouTube at this time. operationId: createProductVideo parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: title: Product Video Post description: | The model for a POST to create a video on a product. allOf: - title: Product Video Base description: Common Product Video properties. properties: title: maxLength: 255 minLength: 0 type: string example: Writing Great Documentation description: | The title for the video. If left blank, this will be filled in according to data on a host site. description: type: string example: A video about documenation description: | The description for the video. If left blank, this will be filled in according to data on a host site. sort_order: maximum: 2147483647 minimum: -2147483648 example: 1 type: integer 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. type: type: string description: | The video type (a short name of a host site). enum: - youtube - properties: video_id: type: string maxLength: 25 minLength: 0 description: | The ID of the video on a host site. x-required: - post example: z3fRu9pkuXE type: object required: true responses: '200': description: '' content: application/json: schema: title: Product Video Response type: object properties: data: title: Product Video type: object description: | A product video model. allOf: - title: Product Video Base type: object properties: title: maxLength: 255 minLength: 0 type: string description: | The title for the video. If left blank, this will be filled in according to data on a host site. description: type: string description: | The description for the video. If left blank, this will be filled in according to data on a host site. sort_order: maximum: 2147483647 minimum: -2147483648 type: integer 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. type: type: string description: | The video type (a short name of a host site). enum: - youtube description: Common Product Video properties. - type: object properties: id: type: integer description: | The unique numeric ID of the product video; increments sequentially. video_id: type: string description: | The ID of the video on a host site. 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. meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: title: Your Video description: Company Values sort_order: 1 type: youtube video_id: 123345AA '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. x-codegen-request-body-name: productVideo parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' '/catalog/products/{product_id}/videos/{id}': get: tags: - Videos summary: Get a Product Video description: Returns a single *Product Video*. Optional parameters can be passed in. operationId: getProductVideoById parameters: - 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 Video Response type: object properties: data: $ref: '#/components/schemas/productVideo_Full' meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: title: Your Video description: Company Values sort_order: 1 type: youtube video_id: 123345AA '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: - Videos summary: Update a Product Video description: |- Updates a *Product Video. **Required Fields** * none **Read-Only Fields** * id operationId: updateProductVideo parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: title: Product Video Put description: | The model for a PUT to update a video on a product. allOf: - title: Product Video Base type: object properties: title: maxLength: 255 minLength: 0 type: string description: | The title for the video. If left blank, this will be filled in according to data on a host site. description: type: string description: | The description for the video. If left blank, this will be filled in according to data on a host site. sort_order: maximum: 2147483647 minimum: -2147483648 type: integer 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. type: type: string description: | The video type (a short name of a host site). enum: - youtube description: Common Product Video properties. - type: object properties: id: type: integer description: | The unique numeric ID of the product video; increments sequentially. x-required: - put required: true responses: '200': description: '' content: application/json: schema: title: Product Video Response type: object properties: data: title: Product Video type: object description: | A product video model. allOf: - title: Product Video Base type: object properties: title: maxLength: 255 minLength: 0 type: string description: | The title for the video. If left blank, this will be filled in according to data on a host site. description: type: string description: | The description for the video. If left blank, this will be filled in according to data on a host site. sort_order: maximum: 2147483647 minimum: -2147483648 type: integer 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. type: type: string description: | The video type (a short name of a host site). enum: - youtube description: Common Product Video properties. - type: object properties: id: type: integer description: | The unique numeric ID of the product video; increments sequentially. video_id: type: string description: | The ID of the video on a host site. 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. meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: title: Your Video description: Company Values sort_order: 1 type: youtube video_id: 123345AA '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. x-codegen-request-body-name: productVideo delete: tags: - Videos summary: Delete a Product Video description: Deletes a *Product Video*. operationId: deleteProductVideo responses: '204': description: '' content: {} parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' - $ref: '#/components/parameters/VideoIdParam' '/catalog/products/{product_id}/complex-rules': get: tags: - Complex Rules summary: Get Complex Rules description: Returns a list of all product *Complex Rules*. Optional parameters may be passed in. operationId: getComplexRules parameters: - 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: 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. schema: type: integer responses: '200': description: '' content: application/json: schema: title: Complex Rule Collection Response type: object properties: data: type: array items: $ref: '#/components/schemas/complexRule_Base' meta: $ref: '#/components/schemas/metaCollection_Full' description: Complex Rule Response example: data: - id: 82 product_id: 195 sort_order: 0 enabled: true stop: false price_adjuster: adjuster: relative adjuster_value: 8 weight_adjuster: {} purchasing_disabled: false purchasing_disabled_message: '' purchasing_hidden: false image_url: '' conditions: - rule_id: 82 modifier_id: 221 modifier_value_id: 175 variant_id: 1 combination_id: 0 - id: 83 product_id: 195 sort_order: 1 enabled: true stop: false price_adjuster: {} weight_adjuster: adjuster: relative adjuster_value: 3 purchasing_disabled: false purchasing_disabled_message: '' purchasing_hidden: false image_url: '' conditions: - rule_id: 83 modifier_id: 221 modifier_value_id: 174 variant_id: 1 combination_id: 0 meta: pagination: total: 2 count: 2 per_page: 50 current_page: 1 total_pages: 1 links: current: '?page=1&limit=50' post: tags: - Complex Rules summary: Create a Complex Rule description: |- Creates a product *Complex Rule*. **Required Fields** - modifier_id - modifier_value_id - variant_id **Read-Only Fields** - complex_rule_id - conditions_id - rule_id - combination_id - id operationId: createComplexRule parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: title: Complex Rule type: object properties: product_id: type: integer description: | The unique numeric ID of the product with which the rule is associated; increments sequentially. nullable: true example: 67 x-required: - post - put sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: | The priority to give this rule when making adjustments to the product properties. example: 0 enabled: type: boolean description: | Flag for determining whether the rule is to be used when adjusting a product's price, weight, image, or availabilty. example: true stop: type: boolean description: | Flag for determining whether other rules should not be applied after this rule has been applied. purchasing_disabled: type: boolean description: | Flag for determining whether the rule should disable purchasing of a product when the conditions are applied. purchasing_disabled_message: maxLength: 255 minLength: 0 type: string description: | Message displayed on the storefront when a rule disables the purchasing of a product. example: This product is not available at this time. purchasing_hidden: type: boolean description: | Flag for determining whether the rule should hide purchasing of a product when the conditions are applied. image_url: type: string description: | The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file. example: 'https://cdn8.bigcommerce.com/s-123456/product_images/d/fakeimage.png' price_adjuster: title: Adjuster 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. weight_adjuster: title: Adjuster 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. conditions: type: array items: title: Complex Rule Condition required: - modifier_id - modifier_value_id - variant_id type: object properties: modifier_id: type: integer description: |- The unique numeric ID of the modifier with which the rule condition is associated. Required in /POST. nullable: true example: 55 modifier_value_id: type: integer description: |- The unique numeric ID of the modifier value with which the rule condition is associated. Required in /POST. nullable: true example: 256 variant_id: type: integer description: |- The unique numeric ID of the variant with which the rule condition is associated. Required in /POST. nullable: true example: 1 description: Common ComplexRule properties. required: true responses: '200': description: '' content: application/json: schema: type: object properties: data: title: Complex Rule type: object properties: id: type: integer description: |- The unique numeric ID of the rule; increments sequentially. Read-Only example: 5 product_id: type: integer description: | The unique numeric ID of the product with which the rule is associated; increments sequentially. nullable: true example: 67 x-required: - post - put sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: | The priority to give this rule when making adjustments to the product properties. example: 0 enabled: type: boolean description: | Flag for determining whether the rule is to be used when adjusting a product's price, weight, image, or availabilty. example: true stop: type: boolean description: | Flag for determining whether other rules should not be applied after this rule has been applied. purchasing_disabled: type: boolean description: | Flag for determining whether the rule should disable purchasing of a product when the conditions are applied. purchasing_disabled_message: maxLength: 255 minLength: 0 type: string description: | Message displayed on the storefront when a rule disables the purchasing of a product. example: This product is not available at this time. purchasing_hidden: type: boolean description: | Flag for determining whether the rule should hide purchasing of a product when the conditions are applied. image_url: type: string description: | The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file. example: 'https://cdn8.bigcommerce.com/s-123456/product_images/d/fakeimage.png' price_adjuster: title: Adjuster 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. weight_adjuster: title: Adjuster 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. conditions: type: array items: title: Complex Rule Condition required: - modifier_id - modifier_value_id - variant_id type: object properties: id: type: integer description: | The unique numeric ID of the rule condition; increments sequentially. Read-Only nullable: true example: 3 rule_id: type: integer description: |- The unique numeric ID of the rule with which the condition is associated. Read-Only nullable: true example: 4 modifier_id: type: integer description: |- The unique numeric ID of the modifier with which the rule condition is associated. Required in /POST. nullable: true example: 55 modifier_value_id: type: integer description: |- The unique numeric ID of the modifier value with which the rule condition is associated. Required in /POST. nullable: true example: 256 variant_id: type: integer description: |- The unique numeric ID of the variant with which the rule condition is associated. Required in /POST. nullable: true example: 1 combination_id: type: integer description: | (READ-ONLY:) The unique numeric ID of the SKU (v2 API), or Combination, with which the rule condition is associated. This is to maintain cross-compatibility between v2 and v3. description: 'Complex rules may return with conditions that apply to one or more variants, or with a single modifier value (if the rules were created using the v2 API or the control panel). Complex rules created or updated in the v3 API must have conditions that either reference multiple `modifier_value_id`’s, or else reference a `modifier_value_id` and a `variant_id`.' description: Common ComplexRule properties. meta: $ref: '#/components/schemas/metaEmpty_Full' '409': description: | The `ComplexRule` was in conflict with another `ComplexRule`. This is the result of duplicate conditions. 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: | The `ComplexRule` 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: ComplexRule parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' '/catalog/products/{product_id}/complex-rules/{complex_rule_id}': get: tags: - Complex Rules summary: Get a Complex Rule description: Returns a single *Complex Rule*. Optional parameters can be passed in. operationId: getComplexRuleById parameters: - 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: type: object properties: data: title: Complex Rule type: object properties: id: type: integer description: |- The unique numeric ID of the rule; increments sequentially. Read-Only example: 5 product_id: type: integer description: | The unique numeric ID of the product with which the rule is associated; increments sequentially. example: 67 x-required: - post - put sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: | The priority to give this rule when making adjustments to the product properties. example: 0 enabled: type: boolean description: | Flag for determining whether the rule is to be used when adjusting a product's price, weight, image, or availabilty. example: true stop: type: boolean description: | Flag for determining whether other rules should not be applied after this rule has been applied. purchasing_disabled: type: boolean description: | Flag for determining whether the rule should disable purchasing of a product when the conditions are applied. purchasing_disabled_message: maxLength: 255 minLength: 0 type: string description: | Message displayed on the storefront when a rule disables the purchasing of a product. example: This product is not available at this time. purchasing_hidden: type: boolean description: | Flag for determining whether the rule should hide purchasing of a product when the conditions are applied. image_url: type: string description: | The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file. example: 'https://cdn8.bigcommerce.com/s-123456/product_images/d/fakeimage.png' price_adjuster: title: Adjuster 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. 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. weight_adjuster: title: Adjuster 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. 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. conditions: type: array items: title: Complex Rule Condition required: - modifier_id - modifier_value_id - variant_id type: object properties: id: type: integer description: | The unique numeric ID of the rule condition; increments sequentially. Read-Only example: 3 rule_id: type: integer description: |- The unique numeric ID of the rule with which the condition is associated. Read-Only example: 4 modifier_id: type: integer description: |- The unique numeric ID of the modifier with which the rule condition is associated. Required in /POST. example: 55 modifier_value_id: type: integer description: |- The unique numeric ID of the modifier value with which the rule condition is associated. Required in /POST. example: 256 variant_id: type: integer description: |- The unique numeric ID of the variant with which the rule condition is associated. Required in /POST. example: 1 combination_id: type: integer description: | (READ-ONLY:) The unique numeric ID of the SKU (v2 API), or Combination, with which the rule condition is associated. This is to maintain cross-compatibility between v2 and v3. description: 'Complex rules may return with conditions that apply to one or more variants, or with a single modifier value (if the rules were created using the v2 API or the control panel). Complex rules created or updated in the v3 API must have conditions that either reference multiple `modifier_value_id`’s, or else reference a `modifier_value_id` and a `variant_id`.' description: Common ComplexRule properties. meta: $ref: '#/components/schemas/metaEmpty_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. put: tags: - Complex Rules summary: Update a Complex Rule description: |- Updates a *Complex Rule*. **Required Fields**: - none **Read-Only Fields**: - complex_rule_id - conditions_id - rule_id - combination_id - id operationId: updateComplexRule parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: title: Complex Rule type: object properties: product_id: type: integer description: | The unique numeric ID of the product with which the rule is associated; increments sequentially. nullable: true example: 67 x-required: - post - put sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: | The priority to give this rule when making adjustments to the product properties. example: 0 enabled: type: boolean description: | Flag for determining whether the rule is to be used when adjusting a product's price, weight, image, or availabilty. example: true stop: type: boolean description: | Flag for determining whether other rules should not be applied after this rule has been applied. purchasing_disabled: type: boolean description: | Flag for determining whether the rule should disable purchasing of a product when the conditions are applied. purchasing_disabled_message: maxLength: 255 minLength: 0 type: string description: | Message displayed on the storefront when a rule disables the purchasing of a product. example: This product is not available at this time. purchasing_hidden: type: boolean description: | Flag for determining whether the rule should hide purchasing of a product when the conditions are applied. image_url: type: string description: | The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file. example: 'https://cdn8.bigcommerce.com/s-123456/product_images/d/fakeimage.png' price_adjuster: title: Adjuster 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. weight_adjuster: title: Adjuster 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. conditions: type: array items: title: Complex Rule Condition required: - modifier_id - modifier_value_id - variant_id type: object properties: modifier_id: type: integer description: |- The unique numeric ID of the modifier with which the rule condition is associated. Required in /POST. nullable: true example: 55 modifier_value_id: type: integer description: |- The unique numeric ID of the modifier value with which the rule condition is associated. Required in /POST. nullable: true example: 256 variant_id: type: integer description: |- The unique numeric ID of the variant with which the rule condition is associated. Required in /POST. nullable: true example: 1 description: Common ComplexRule properties. required: true responses: '200': description: '' content: application/json: schema: type: object properties: data: title: Complex Rule type: object properties: id: type: integer description: |- The unique numeric ID of the rule; increments sequentially. Read-Only example: 5 product_id: type: integer description: | The unique numeric ID of the product with which the rule is associated; increments sequentially. example: 67 x-required: - post - put sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: | The priority to give this rule when making adjustments to the product properties. example: 0 enabled: type: boolean description: | Flag for determining whether the rule is to be used when adjusting a product's price, weight, image, or availabilty. example: true stop: type: boolean description: | Flag for determining whether other rules should not be applied after this rule has been applied. purchasing_disabled: type: boolean description: | Flag for determining whether the rule should disable purchasing of a product when the conditions are applied. purchasing_disabled_message: maxLength: 255 minLength: 0 type: string description: | Message displayed on the storefront when a rule disables the purchasing of a product. example: This product is not available at this time. purchasing_hidden: type: boolean description: | Flag for determining whether the rule should hide purchasing of a product when the conditions are applied. image_url: type: string description: | The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file. example: 'https://cdn8.bigcommerce.com/s-123456/product_images/d/fakeimage.png' price_adjuster: title: Adjuster 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. 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. weight_adjuster: title: Adjuster 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. 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. conditions: type: array items: title: Complex Rule Condition required: - modifier_id - modifier_value_id - variant_id type: object properties: id: type: integer description: | The unique numeric ID of the rule condition; increments sequentially. Read-Only example: 3 rule_id: type: integer description: |- The unique numeric ID of the rule with which the condition is associated. Read-Only example: 4 modifier_id: type: integer description: |- The unique numeric ID of the modifier with which the rule condition is associated. Required in /POST. example: 55 modifier_value_id: type: integer description: |- The unique numeric ID of the modifier value with which the rule condition is associated. Required in /POST. example: 256 variant_id: type: integer description: |- The unique numeric ID of the variant with which the rule condition is associated. Required in /POST. example: 1 combination_id: type: integer description: | (READ-ONLY:) The unique numeric ID of the SKU (v2 API), or Combination, with which the rule condition is associated. This is to maintain cross-compatibility between v2 and v3. description: 'Complex rules may return with conditions that apply to one or more variants, or with a single modifier value (if the rules were created using the v2 API or the control panel). Complex rules created or updated in the v3 API must have conditions that either reference multiple `modifier_value_id`’s, or else reference a `modifier_value_id` and a `variant_id`.' description: Common ComplexRule properties. meta: $ref: '#/components/schemas/metaEmpty_Full' '409': description: | The `ComplexRule` was in conflict with another `ComplexRule`. This is the result of duplicate conditions. 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: | The `ComplexRule` 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: ComplexRule delete: tags: - Complex Rules summary: Delete a Complex Rule description: Deletes a product *Complex Rule*. operationId: deleteComplexRuleById responses: '204': description: '' content: {} parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' - $ref: '#/components/parameters/ComplexRuleIdParam' '/catalog/products/{product_id}/custom-fields': get: tags: - Custom Fields summary: Get Custom Fields description: |- Returns a list of product *Custom Fields*. Optional parameters can be passed in. **Note:** The default rate limit for this endpoint is 40 concurrent requests. operationId: getCustomFields parameters: - 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: 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. schema: type: integer responses: '200': description: '' content: application/json: schema: type: object properties: data: type: array items: title: Custom Field required: - name - value type: object properties: id: minimum: 1 type: integer description: |- The unique numeric ID of the custom field; increments sequentially. 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: 'Gets custom fields associated with a product. These allow you to specify additional information that will appear on the product’s page, such as a book’s ISBN or a DVD’s release date.' meta: $ref: '#/components/schemas/metaCollection_Full' example: data: - name: Release year value: '1987' id: 1 meta: pagination: total: 1 count: 1 per_page: 50 current_page: 1 total_pages: 1 links: previous: '?page=1&limit=50' current: '?page=1&limit=50' next: '?page=1&limit=50' post: tags: - Custom Fields summary: Create a Custom Fields description: |- Creates a *Custom Field*. **Required Fields:** - name - value **Read-Only:** - id **Note:** The default rate limit for this endpoint is 40 concurrent requests. operationId: createCustomField parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: title: Custom Field required: - name - value type: object properties: 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: 'Gets custom fields associated with a product. These allow you to specify additional information that will appear on the product’s page, such as a book’s ISBN or a DVD’s release date.' required: true responses: '200': description: '' content: application/json: schema: type: object properties: data: title: Custom Field required: - name - value type: object properties: id: minimum: 1 type: integer description: |- The unique numeric ID of the custom field; increments sequentially. 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: 'Gets custom fields associated with a product. These allow you to specify additional information that will appear on the product’s page, such as a book’s ISBN or a DVD’s release date.' meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: name: Release Year value: '1976' id: 2 meta: {} '404': description: | The parent 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. '422': description: | The `CustomField` 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: CustomField parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' '/catalog/products/{product_id}/custom-fields/{custom_field_id}': get: tags: - Custom Fields summary: Get a Custom Field description: Returns a single *Custom Field*. Optional parameters can be passed in. operationId: getCustomFieldById parameters: - 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: type: object properties: data: $ref: '#/components/schemas/productCustomField_Base' meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: name: Release Year value: '1976' id: 2 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: - Custom Fields summary: Update a Custom Field description: |- Updates a *Custom Field*. **Required Fields** - none **Read-Only** - id operationId: updateCustomField parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: title: Custom Field required: - name - value type: object properties: id: minimum: 1 type: integer description: |- The unique numeric ID of the custom field; increments sequentially. 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: 'Gets custom fields associated with a product. These allow you to specify additional information that will appear on the product’s page, such as a book’s ISBN or a DVD’s release date.' required: true responses: '200': description: '' content: application/json: schema: type: object properties: data: title: Custom Field required: - name - value type: object properties: id: minimum: 1 type: integer description: |- The unique numeric ID of the custom field; increments sequentially. 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: 'Gets custom fields associated with a product. These allow you to specify additional information that will appear on the product’s page, such as a book’s ISBN or a DVD’s release date.' meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: name: Release Year value: '1976' id: 2 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. '422': description: | The `CustomField` 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: CustomField delete: tags: - Custom Fields summary: Delete a Custom Field description: |- Deletes a product *Custom Field*. **Note:** The default rate limit for this endpoint is 40 concurrent requests. operationId: deleteCustomFieldById responses: '204': description: '`204 No Content`. Action has been enacted and no further information is to be supplied. `null` is returned.' content: {} '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. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' - $ref: '#/components/parameters/CustomFieldIdParam' '/catalog/products/{product_id}/bulk-pricing-rules': get: tags: - Bulk Pricing Rules summary: Get All Bulk Pricing Rules description: Returns a list of *Bulk Pricing Rules*. Optional parameters can be passed in. operationId: getBulkPricingRules parameters: - 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: 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. schema: type: integer responses: '200': description: '' content: application/json: schema: type: object properties: data: 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' meta: $ref: '#/components/schemas/metaCollection_Full' example: data: - id: 83 quantity_min: 1 quantity_max: 3 type: price amount: 1 - id: 84 quantity_min: 4 quantity_max: 0 type: price amount: 1 meta: pagination: total: 2 count: 2 per_page: 50 current_page: 1 total_pages: 1 links: current: '?page=1&limit=50' '404': description: | The parent 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. post: tags: - Bulk Pricing Rules summary: Create a Bulk Pricing Rule description: |- Creates a *Bulk Pricing Rule*. **Required Fields** - quantity_min - quantity_max - type - amount **Read-Only Fields** - id **Limits** - 50 bulk pricing rule per product limit. operationId: createBulkPricingRule parameters: - $ref: '#/components/parameters/ContentType' - 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. schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/bulkPricingRule_Full' required: true responses: '200': description: '' content: application/json: schema: type: object properties: data: 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' meta: title: Meta type: object description: Empty meta object; may be used later. example: data: id: 83 quantity_min: 1 quantity_max: 3 type: price amount: 1 meta: {} '404': description: | The parent 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: | The `BulkPricingRule` was in conflict with another bulk pricing rule. This is the result of quantity range overlapping with existing bulk pricing rules. 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: | The `BulkPricingRule` 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: BulkPricingRule parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' '/catalog/products/{product_id}/bulk-pricing-rules/{bulk_pricing_rule_id}': get: tags: - Bulk Pricing Rules summary: Get a Bulk Pricing Rule description: Returns a single *Bulk Pricing Rule*. Optional parameters can be passed in. operationId: getBulkPricingRuleById parameters: - 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: type: object properties: data: 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' meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: id: 83 quantity_min: 1 quantity_max: 3 type: price amount: 1 meta: {} '404': description: | The resource or parent 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: - Bulk Pricing Rules summary: Update a Bulk Pricing Rule description: |- Updates a *Bulk Pricing Rule*. **Required Fields** * none **Read-Only Fields** - id operationId: updateBulkPricingRule parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: 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' required: true responses: '200': description: '' content: application/json: schema: type: object properties: data: title: Bulk Pricing Rule required: - amount - quantity_max - quantity_min - type type: object properties: id: type: integer description: Unique ID of the *Bulk Pricing Rule*. Read-Only. readOnly: true 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. 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: type: integer description: |- The discount can be a fixed dollar amount or a percentage. For a fixed dollar amount enter it as an integer and the response will return as an integer. For percentage enter the amount as the percentage divided by 100 using string format. For example 10% percent would be “.10”. The response will return as an integer. Required in /POST. description: Common BulkPricingRule properties meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: id: 83 quantity_min: 1 quantity_max: 3 type: price amount: 1 meta: {} '404': description: | The resource or parent 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: | The `BulkPricingRule` was in conflict with another bulk pricing rule. This is the result of quantity range overlapping with existing bulk pricing rules. 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: | The `BulkPricingRule` 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: BulkPricingRule delete: tags: - Bulk Pricing Rules summary: Delete a Bulk Pricing Rule description: Deletes a *Bulk Pricing Rule*. operationId: deleteBulkPricingRuleById responses: '204': description: '' content: {} '404': description: | The resource or parent 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. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' - $ref: '#/components/parameters/BulkPricingRuleIdParam' '/catalog/products/{product_id}/metafields': get: tags: - Metafields summary: Get All Product Metafields description: Returns a list of *Product Metafields*. Optional parameters can be passed in. operationId: getProductMetafieldsByProductId parameters: - 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. schema: type: integer - name: key in: query description: | Filter based on a metafield's key. schema: type: string - name: namespace in: query description: Filter based on a metafield's namespace. schema: type: string - 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: Meta Field Collection Response type: object properties: data: type: array items: $ref: '#/components/schemas/metafield_Full' meta: $ref: '#/components/schemas/metaCollection_Full' example: data: - id: 6 key: Location value: 4HG namespace: Warehouse Locations permission_set: app_only resource_type: product resource_id: 111 description: Location in the warehouse date_created: '1973-01-20T21:34:57.903Z' date_modified: '1990-12-30T00:29:23.515Z' - id: 7 key: Sublocation value: 4HG namespace: Warehouse Locations permission_set: read resource_type: product resource_id: 111 description: Location in the warehouse date_created: '1973-01-20T21:34:57.903Z' date_modified: '1990-12-30T00:29:23.515Z' meta: pagination: total: 2 count: 2 per_page: 50 current_page: 1 total_pages: 1 links: current: '?page=1&limit=50' '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. post: tags: - Metafields summary: Create a Product Metafield description: |- Creates a *Product Metafield*. **Required Fields:** * permission_set * namespace * key * value **Note:** The maxiumum number of metafields allowed on each order, product, category, variant, or brand is 250 per client ID. For more information, see [Platform Limits](https://support.bigcommerce.com/s/article/Platform-Limits) in the Help Center. operationId: createProductMetafield parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/metafield_Base' required: true responses: '200': description: '' content: application/json: schema: title: Metafield Response type: object properties: data: $ref: '#/components/schemas/metafield_Full' meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: id: 8 key: location_id value: 'Shelf 3, Bin 5' namespace: Inventory Namespace permission_set: read resource_type: product resource_id: 158 description: Where products are located date_created: '2018-09-13T16:42:37+00:00' date_modified: '2018-09-13T16:42:37+00:00' meta: {} '409': description: | The `Metafield` was in conflict with another `Metafield`. This can be the result of duplicate unique key combinations of the app's client ID, namespace, key, resource_type, and resource_id. 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: | The `Metafield` 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 parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' '/catalog/products/{product_id}/metafields/{metafield_id}': get: tags: - Metafields summary: Get a Product Metafield description: Returns a single *Product Metafield*. Optional parameters can be passed in. operationId: getProductMetafieldByProductId parameters: - 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: Metafield Response type: object properties: data: $ref: '#/components/schemas/metafield_Full' meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: id: 4 key: location_id value: 'Shelf 3, Bin 5' namespace: App Namespace permission_set: app_only resource_type: product resource_id: 137 description: Where products are located date_created: '2021-08-06T19:15:35+00:00' date_modified: '2021-08-06T19:15:35+00:00' 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: - Metafields summary: Update a Product Metafield description: "Updates a *Product Metafield*.\n\n**Required Fields**\n* none\n\n**Read-Only Fields**\n* id\n* These fields can only be modified using the API account that created the metafield:\n\t* `namespace`\n\t* `key`\n\t* `permission_set`\n\t* `value`\n\n**Usage Notes**\n* Attempting to modify the `namespace`, `key`, `permission_set`, or `value` field using an API account different from the one used to create those metafields will result in a `403` error message. " operationId: updateProductMetafield parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/metafield_Base' required: true responses: '200': description: '' content: application/json: schema: title: Metafield Response type: object properties: data: $ref: '#/components/schemas/metafield_Full' meta: $ref: '#/components/schemas/metaEmpty_Full' example: data: id: 4 key: location_id value: 'Shelf 3, Bin 5' namespace: App Namespace permission_set: app_only resource_type: product resource_id: 137 description: Where products are located date_created: '2021-08-06T19:15:35+00:00' date_modified: '2021-08-06T19:15:35+00:00' 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. x-codegen-request-body-name: Metafield delete: tags: - Metafields summary: Delete a Product Metafield description: Deletes a *Product Metafield*. operationId: deleteProductMetafieldById responses: '204': description: '' content: {} parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' - $ref: '#/components/parameters/MetafieldIdParam' '/catalog/products/{product_id}/reviews': get: tags: - Reviews summary: Get Product Reviews description: Returns a list of all *Product Reviews*. Optional parameters can be passed in. operationId: getProductReviews parameters: - 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: 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. schema: type: integer - name: status in: query description: 'Filter items by status. `1` for approved, `0` for pending.' schema: type: integer responses: '200': description: '' content: application/json: schema: title: Product Review Collection Response type: object properties: data: type: array items: title: Product Review type: object description: | A product review model. allOf: - title: Product Review Base required: - date_reviewed - title type: object properties: title: maxLength: 255 minLength: 0 type: string description: |- The title for the product review. Required in /POST. text: type: string description: | The text for the product review. status: type: string description: | The status of the product review. Must be one of `approved`, `disapproved` or `pending`. rating: type: integer description: 'The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.' email: type: string description: 'The email of the reviewer. Must be a valid email, or an empty string.' name: maxLength: 255 minLength: 0 type: string description: The name of the reviewer. date_reviewed: type: string description: | Date the product was reviewed. Required in /POST. format: date-time - type: object properties: id: type: integer description: | The unique numeric ID of the product review; increments sequentially. product_id: type: integer description: | The unique numeric identifier for the product with which the review is associated. date_created: type: string description: | Date the product review was created. format: date-time date_modified: type: string description: | Date the product review was modified. format: date-time meta: $ref: '#/components/schemas/metaCollection_Full' '204': description: | There are no reviews on this product. content: {} '404': description: | The product ID does not exist. 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. post: tags: - Reviews summary: Create a Product Review description: |- Creates a *Product Review*. **Required Fields** - title - date_reviewed **Read-Only Fields** * id operationId: createProductReview parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: title: Product Review Post description: | The model for a POST to create a product review. allOf: - title: Product Review Base required: - date_reviewed - title type: object properties: title: maxLength: 255 minLength: 0 type: string description: |- The title for the product review. Required in /POST. text: type: string description: | The text for the product review. status: type: string description: | The status of the product review. Must be one of `approved`, `disapproved` or `pending`. rating: type: integer description: 'The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.' email: type: string description: 'The email of the reviewer. Must be a valid email, or an empty string.' name: maxLength: 255 minLength: 0 type: string description: The name of the reviewer. date_reviewed: type: string description: | Date the product was reviewed. Required in /POST. format: date-time required: true responses: '200': description: '' content: application/json: schema: title: Product Review Response type: object properties: data: title: Product Review type: object description: | A product review model. allOf: - title: Product Review Base required: - date_reviewed - title type: object properties: title: maxLength: 255 minLength: 0 type: string description: |- The title for the product review. Required in /POST. text: type: string description: | The text for the product review. status: type: string description: | The status of the product review. Must be one of `approved`, `disapproved` or `pending`. rating: type: integer description: 'The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.' email: type: string description: 'The email of the reviewer. Must be a valid email, or an empty string.' name: maxLength: 255 minLength: 0 type: string description: The name of the reviewer. date_reviewed: type: string description: | Date the product was reviewed. Required in /POST. format: date-time - type: object properties: id: type: integer description: | The unique numeric ID of the product review; increments sequentially. product_id: type: integer description: | The unique numeric identifier for the product with which the review is associated. date_created: type: string description: | Date the product review was created. format: date-time date_modified: type: string description: | Date the product review was modified. format: date-time meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: data: title: irur text: anim aute status: Lorem ad sed voluptate rating: 3 email: esse Lorem laborum aute name: 'ut in ' date_reviewed: '2011-12-31T13:40:42.971Z' id: 82495037 product_id: 22609026 date_created: '1985-01-17T07:37:20.439Z' date_modified: '2004-09-28T14:38:21.973Z' meta: {} '404': description: | The product ID does not exist. 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. x-codegen-request-body-name: productReview parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' '/catalog/products/{product_id}/reviews/{review_id}': get: tags: - Reviews summary: Get a Product Review description: Returns a single *Product Review*. Optional parameters maybe passed in. operationId: getProductReviewById parameters: - 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 Review Response type: object properties: data: title: Product Review type: object description: | A product review model. allOf: - title: Product Review Base required: - date_reviewed - title type: object properties: title: maxLength: 255 minLength: 0 type: string description: |- The title for the product review. Required in /POST. text: type: string description: | The text for the product review. status: type: string description: | The status of the product review. Must be one of `approved`, `disapproved` or `pending`. rating: type: integer description: 'The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.' email: type: string description: 'The email of the reviewer. Must be a valid email, or an empty string.' name: maxLength: 255 minLength: 0 type: string description: The name of the reviewer. date_reviewed: type: string description: | Date the product was reviewed. Required in /POST. format: date-time - type: object properties: id: type: integer description: | The unique numeric ID of the product review; increments sequentially. date_created: type: string description: | Date the product review was created. format: date-time date_modified: type: string description: | Date the product review was modified. format: date-time meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: data: title: irur text: anim aute status: Lorem ad sed voluptate rating: 3 email: esse Lorem laborum aute name: 'ut in ' date_reviewed: '2011-12-31T13:40:42.971Z' id: 82495037 product_id: 22609026 date_created: '1985-01-17T07:37:20.439Z' date_modified: '2004-09-28T14:38:21.973Z' 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: - Reviews summary: Update a Product Review description: |- Updates a *Product Review*. **Required Fields** * none **Read-Only Fields** * id operationId: updateProductReview parameters: - $ref: '#/components/parameters/ContentType' requestBody: description: | A BigCommerce `ProductReview` object. content: application/json: schema: title: Product Review Put description: | The model for a PUT to update a product review. allOf: - title: Product Review Base required: - date_reviewed - title type: object properties: title: maxLength: 255 minLength: 0 type: string description: |- The title for the product review. Required in /POST. text: type: string description: | The text for the product review. status: type: string description: | The status of the product review. Must be one of `approved`, `disapproved` or `pending`. rating: type: integer description: 'The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.' email: type: string description: 'The email of the reviewer. Must be a valid email, or an empty string.' name: maxLength: 255 minLength: 0 type: string description: The name of the reviewer. date_reviewed: type: string description: | Date the product was reviewed. Required in /POST. format: date-time required: true responses: '200': description: '' content: application/json: schema: title: Product Review Response type: object properties: data: title: Product Review type: object description: | A product review model. allOf: - title: Product Review Base required: - date_reviewed - title type: object properties: title: maxLength: 255 minLength: 0 type: string description: |- The title for the product review. Required in /POST. text: type: string description: | The text for the product review. status: type: string description: | The status of the product review. Must be one of `approved`, `disapproved` or `pending`. rating: type: integer description: 'The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.' email: type: string description: 'The email of the reviewer. Must be a valid email, or an empty string.' name: maxLength: 255 minLength: 0 type: string description: The name of the reviewer. date_reviewed: type: string description: | Date the product was reviewed. Required in /POST. format: date-time - type: object properties: id: type: integer description: | The unique numeric ID of the product review; increments sequentially. product_id: type: integer description: | The unique numeric identifier for the product with which the review is associated. date_created: type: string description: | Date the product review was created. format: date-time date_modified: type: string description: | Date the product review was modified. format: date-time meta: $ref: '#/components/schemas/metaEmpty_Full' description: | Response payload for the BigCommerce API. example: data: title: irur text: anim aute status: Lorem ad sed voluptate rating: 3 email: esse Lorem laborum aute name: 'ut in ' date_reviewed: '2011-12-31T13:40:42.971Z' id: 82495037 product_id: 22609026 date_created: '1985-01-17T07:37:20.439Z' date_modified: '2004-09-28T14:38:21.973Z' 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. x-codegen-request-body-name: productReview delete: tags: - Reviews summary: Delete a Product Review description: Deletes a *Product Review*. operationId: deleteProductReview responses: '204': description: '' content: {} parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ProductIdParam' - $ref: '#/components/parameters/ReviewIdParam' '/catalog/products/channel-assignments': get: summary: Get Products Channel Assignments description: Returns a list of products channel assignments. operationId: GetProductsChannelAssignments tags: - Channel Assignments parameters: - name: page in: query schema: type: integer - name: limit in: query schema: type: integer - name: 'product_id:in' in: query schema: type: string - name: 'channel_id:in' in: query schema: type: string responses: '200': description: Collection of channel assignments. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProductChannelAssignment' meta: $ref: '#/components/schemas/MetaPaginationObject' put: summary: Create Products Channel Assignments description: Creates products channel assignments. operationId: CreateProductsChannelAssignments parameters: - $ref: '#/components/parameters/ContentType' tags: - Channel Assignments requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/ProductChannelAssignment' responses: '204': description: Updated '422': description: Error response for batch PUT of Channel Assignments. Includes the errors for each reference id. content: application/json: schema: $ref: '#/components/schemas/beta5ErrorResponse' delete: summary: Delete Products Channel Assignments description: Delete products channel assignments. A filter must be supplied. operationId: DeleteProductsChannelAssignments tags: - Channel Assignments parameters: - name: 'product_id:in' in: query schema: type: string - name: 'channel_id:in' in: query schema: type: string responses: '204': description: Deleted '422': description: At least one filter must be provided in order to delete channel assignments content: application/json: schema: $ref: '#/components/schemas/beta5ErrorResponse' parameters: - $ref: '#/components/parameters/Accept' '/catalog/products/category-assignments': get: summary: Get Products Category Assignments description: Returns a list of products category assignments. operationId: GetProductsCategoryAssignments tags: - Category Assignments parameters: - name: page in: query schema: type: integer - name: limit in: query schema: type: integer - name: 'product_id:in' in: query schema: type: string - name: 'category_id:in' in: query schema: type: string responses: '200': description: Collection of category assignments. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProductCategoryAssignment' meta: $ref: '#/components/schemas/MetaPaginationObject' put: summary: Create Products Category Assignments. description: Creates products category assignments. operationId: CreateProductsCategoryAssignments parameters: - $ref: '#/components/parameters/ContentType' tags: - Category Assignments requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/ProductCategoryAssignment' responses: '204': description: Updated '422': description: Error response for batch PUT of Category Assignments. Includes the errors for each reference id. content: application/json: schema: $ref: '#/components/schemas/beta5ErrorResponse' delete: summary: Delete Products Category Assignments description: Deletes products category assignments. A filter must be supplied. operationId: DeleteProductsCategoryAssignments tags: - Category Assignments parameters: - name: 'product_id:in' in: query schema: type: string - name: 'category_id:in' in: query schema: type: string responses: '204': description: Deleted '422': description: At least one filter must be provided in order to delete category assignments content: application/json: schema: $ref: '#/components/schemas/beta5ErrorResponse' parameters: - $ref: '#/components/parameters/Accept' '/catalog/summary': get: tags: - Summary summary: Get a Catalog Summary description: |- Returns a lightweight inventory summary from the BigCommerce Catalog. The inventory summary includes: * "inventory_count" * "variant_count" * "inventory_value" * "highest_variant_price" * "average_variant_price" * "lowest_variant_price" * "oldest_variant_date" * "newest_variant_date" * "primary_category_id" * "primary_category_name" operationId: getCatalogSummary responses: '200': description: '' content: application/json: schema: title: Catalog Summary Response type: object properties: data: title: Catalog Summary type: object properties: inventory_count: type: integer description: | A count of all inventory items in the catalog. example: 2000 inventory_value: type: number description: | Total value of store's inventory. format: double example: 267000 primary_category_id: type: integer description: | ID of the category containing the most products. example: 23 primary_category_name: type: string description: | Name of the category containing the most products. example: Shop All variant_count: type: integer description: Total number of variants example: 46 highest_variant_price: type: number description: Highest priced variant format: double example: 249 average_variant_price: type: number description: Average price of all variants format: double example: 83.07978261 lowest_variant_price: type: string description: Lowest priced variant in the store example: '7' oldest_variant_date: type: string example: '2018-08-15T00:00:00+00:00' newest_variant_date: type: string example: '2018-08-16T00:00:00+00:00' description: Catalog Summary object describes a lightweight summary of the catalog. meta: $ref: '#/components/schemas/metaEmpty_Full' parameters: - $ref: '#/components/parameters/Accept' components: schemas: 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 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 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 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 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 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. The 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. If 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. 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). 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' productVariant_Full: title: productVariant_Full allOf: - $ref: '#/components/schemas/productVariant_Base' - type: object properties: product_id: type: integer 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 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 productVariant_Put_Product: title: productVariant_Put_Product 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. The 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. If 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. 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). 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 product_id: type: integer description: Product ID id: type: integer description: Variant ID sku: maxLength: 255 minLength: 1 type: string description: | The model for a PUT to update variants on a product. required: - product_id - id 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 productVariantOptionValue_Base: title: productVariantOptionValue_Base type: object properties: id: type: integer description: '`option_value` ID.' example: 146 option_id: type: integer description: '`option` ID.' example: 151 description: Common Product Variant Option properties. 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 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 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 productImage_Put: title: productImage_Put description: The model for a PUT to update applicable Product Image fields. allOf: - title: Product Image Base type: object properties: 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. 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. description: Common ProductImage properties. - $ref: '#/components/schemas/productImage_Base' 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 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 product_Put: title: product_Put description: The model for a PUT to update a product. allOf: - $ref: '#/components/schemas/product_Base' - type: object properties: variants: type: array items: $ref: '#/components/schemas/productVariant_Put_Product' x-internal: false metafield_Base: title: metafield_Base type: object description: 'Metafield for products, categories, variants, and brands; the max number of metafields allowed on each is 50. For more information, see [Platform Limits](https://support.bigcommerce.com/s/article/Platform-Limits) in the Help Center.' x-internal: false properties: key: maxLength: 64 minLength: 1 type: string description: | The name of the field, for example: `location_id`, `color`. Required for POST. example: Location x-required: - post value: maxLength: 65535 minLength: 1 type: string description: | The value of the field, for example: `1`, `blue`. Required for POST. example: 4HG x-required: - post namespace: maxLength: 64 minLength: 1 type: string description: | Namespace for the metafield, for organizational purposes. This is set by the developer. Required for POST. example: Warehouse Locations x-required: - post permission_set: type: string description: |- Determines the visibility and writeability of the field by other API consumers. |Value|Description |-|-| |`app_only`|Private to the app that owns the field| |`read`|Visible to other API consumers| |`write`|Open for reading and writing by other API consumers| |`read_and_sf_access`|Visible to other API consumers, including on storefront| |`write_and_sf_access`|Open for reading and writing by other API consumers, including on storefront| enum: - app_only - read - write - read_and_sf_access - write_and_sf_access description: maxLength: 255 minLength: 0 type: string description: | Description for the metafields. example: Location in the warehouse required: - permission_set - namespace - key - value complexRule_Base: title: complexRule_Base type: object properties: id: type: integer description: |- The unique numeric ID of the rule; increments sequentially. Read-Only example: 5 product_id: type: integer description: | The unique numeric ID of the product with which the rule is associated; increments sequentially. nullable: true example: 67 x-required: - post - put sort_order: maximum: 2147483647 minimum: -2147483648 type: integer description: | The priority to give this rule when making adjustments to the product properties. example: 0 enabled: type: boolean description: | Flag for determining whether the rule is to be used when adjusting a product's price, weight, image, or availabilty. example: true stop: type: boolean description: | Flag for determining whether other rules should not be applied after this rule has been applied. purchasing_disabled: type: boolean description: | Flag for determining whether the rule should disable purchasing of a product when the conditions are applied. purchasing_disabled_message: maxLength: 255 minLength: 0 type: string description: | Message displayed on the storefront when a rule disables the purchasing of a product. example: This product is not available at this time. purchasing_hidden: type: boolean description: | Flag for determining whether the rule should hide purchasing of a product when the conditions are applied. image_url: type: string description: | The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file. example: 'https://cdn8.bigcommerce.com/s-123456/product_images/d/fakeimage.png' price_adjuster: $ref: '#/components/schemas/adjuster_Full' weight_adjuster: $ref: '#/components/schemas/adjuster_Full' conditions: type: array items: $ref: '#/components/schemas/complexRuleConditionBase' description: Common ComplexRule properties. x-internal: false productCustomField_Base: title: productCustomField_Base required: - name - value type: object properties: id: minimum: 1 type: integer description: |- The unique numeric ID of the custom field; increments sequentially. 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: 'Gets custom fields associated with a product. These allow you to specify additional information that will appear on the product’s page, such as a book’s ISBN or a DVD’s release date.' 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 complexRuleConditionBase: title: complexRuleConditionBase required: - modifier_id - modifier_value_id - variant_id type: object properties: id: type: integer description: | The unique numeric ID of the rule condition; increments sequentially. Read-Only nullable: true example: 3 rule_id: type: integer description: |- The unique numeric ID of the rule with which the condition is associated. Read-Only nullable: true example: 4 modifier_id: type: integer description: |- The unique numeric ID of the modifier with which the rule condition is associated. Required in /POST. nullable: true example: 55 modifier_value_id: type: integer description: |- The unique numeric ID of the modifier value with which the rule condition is associated. Required in /POST. nullable: true example: 256 variant_id: type: integer description: |- The unique numeric ID of the variant with which the rule condition is associated. Required in /POST. nullable: true example: 1 combination_id: type: integer description: | (READ-ONLY:) The unique numeric ID of the SKU (v2 API), or Combination, with which the rule condition is associated. This is to maintain cross-compatibility between v2 and v3. description: 'Complex rules may return with conditions that apply to one or more variants, or with a single modifier value (if the rules were created using the v2 API or the control panel). Complex rules created or updated in the v3 API must have conditions that either reference multiple `modifier_value_id`’s, or else reference a `modifier_value_id` and a `variant_id`.' x-internal: false 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 description: The custom URL for the product on the storefront. 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. Divide 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. Required in /POST. required: - quantity_min - quantity_max - type - amount 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: `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`). `other` - Allows file types defined in the `file_types_other` array. 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 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 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 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 metaEmpty_Full: type: object title: Response meta properties: {} additionalProperties: true description: Response metadata. 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 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' DetailedErrors: title: DetailedErrors description: Each key-value pair describes a failure or partial success case. type: object properties: {} additionalProperties: true 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. variants: type: array items: $ref: '#/components/schemas/productVariant_Full' 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. 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 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 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 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: `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`). `other` - Allows file types defined in the `file_types_other` array. 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 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_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 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 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 metafield_Full: title: metafield_Full allOf: - type: object properties: id: type: integer description: Unique ID of the *Metafield*. Read-Only. readOnly: true example: 6 - $ref: '#/components/schemas/metafield_Base' - type: object properties: resource_type: type: string description: | The type of resource with which the metafield is associated. example: product enum: - category - brand - product - variant x-required: - post resource_id: maximum: 10000000000 minimum: 0 type: integer description: | The ID of the resource with which the metafield is associated. example: 111 x-required: - post date_created: type: string description: | Date and time of the metafield's creation. Read-Only. readOnly: true format: date-time example: '2018-05-07T20:14:17+00:00' date_modified: type: string description: | Date and time when the metafield was last updated. Read-Only. readOnly: true format: date-time example: '2018-05-07T20:14:17+00:00' 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 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 MetaPaginationObject: type: object properties: pagination: type: object properties: total: type: integer example: 246 minimum: 0 count: type: integer example: 5 minimum: 0 per_page: type: integer example: 5 minimum: 0 current_page: type: integer example: 1 minimum: 1 total_pages: type: integer example: 50 minimum: 0 links: type: object properties: next: type: string example: '?limit=5&page=2' current: type: string example: '?limit=5&page=1' x-tags: - Models BaseError: type: object description: | Error payload for the BigCommerce API. properties: status: description: | The HTTP status code. type: integer title: description: | The error title describing the particular error. type: string type: type: string instance: type: string x-tags: - Models ProductChannelAssignment: properties: product_id: type: integer channel_id: type: integer x-tags: - Models ProductCategoryAssignment: properties: product_id: type: integer category_id: type: integer x-tags: - Models beta5DetailedErrors: type: object properties: {} additionalProperties: true x-tags: - Models beta5ErrorResponse: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: errors: $ref: '#/components/schemas/beta5DetailedErrors' x-tags: - Models parameters: ProductIdParam: name: product_id in: path description: | The ID of the `Product` to which the resource belongs. required: true schema: type: integer ReviewIdParam: name: review_id description: | The ID of the `review` that is being operated on. required: true in: path schema: type: integer ImageIdParam: name: image_id description: | The ID of the `Image` that is being operated on. required: true in: path schema: type: integer MetafieldIdParam: name: metafield_id in: path description: | The ID of the `Metafield`. required: true schema: type: integer VideoIdParam: name: id description: The BigCommerce ID of the `Video` required: true in: path schema: type: integer ComplexRuleIdParam: name: complex_rule_id description: | The ID of the `ComplexRule`. required: true in: path schema: type: integer CustomFieldIdParam: name: custom_field_id description: | The ID of the `CustomField`. required: true in: path schema: type: integer BulkPricingRuleIdParam: name: bulk_pricing_rule_id description: | The ID of the `BulkPricingRule`. required: true in: path schema: type: integer 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' 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 | |:--------|:-----------|:----------| | Products | modify | `store_v2_products` | | Products | read-only | `store_v2_products_read_only` | ### 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