swagger: "2.0" info: title: BigCommerce API version: 3.0.0b description: A Swagger Document for the BigCommmerce v3 API. termsOfService: "http://www.bigcommerce.com/terms" host: "api.bigcommerce.com" basePath: "/stores/{{store_id}}/v3" tags: - name: Catalog description: BigCommerce Catalog API Definition. - name: Customers description: BigCommerce Customers API Definition. - name: Orders description: BigCommerce Orders API Definition. - name: Themes description: BigCommerce Themes API Definition. - name: PriceLists description: BigCommerce Price Lists API Definition. - name: Script description: BigCommerce Scripts API Definition. schemes: - https produces: - application/json consumes: - application/json paths: /catalog/products: get: tags: - Catalog description: | Returns a paginated collection of `Products` objects from the BigCommerce Catalog. operationId: getProducts parameters: - $ref: "#/parameters/FilterIdParam" - $ref: "#/parameters/FilterNameParam" - $ref: "#/parameters/FilterSkuParam" - $ref: "#/parameters/FilterUpcParam" - $ref: "#/parameters/FilterPriceParam" - $ref: "#/parameters/FilterWeightParam" - $ref: "#/parameters/FilterConditionParam" - $ref: "#/parameters/FilterBrandIdParam" - $ref: "#/parameters/FilterDateModifiedParam" - $ref: "#/parameters/FilterDateLastImportedParam" - $ref: "#/parameters/FilterIsVisibleParam" - $ref: "#/parameters/FilterIsFeaturedParam" - $ref: "#/parameters/FilterIsFreeShippingParam" - $ref: "#/parameters/FilterInventoryLevelParam" - $ref: "#/parameters/FilterInventoryLowParam" - $ref: "#/parameters/FilterOutOfStockParam" - $ref: "#/parameters/FilterTotalSoldParam" - $ref: "#/parameters/ProductFilterTypeParam" - $ref: "#/parameters/FilterCategoriesParam" - $ref: "#/parameters/ProductFilterKeywordParam" - $ref: "#/parameters/ProductFilterKeywordContextParam" - $ref: "#/parameters/FilterStatusParam" - $ref: "#/parameters/FilterIncludeParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" - $ref: "#/parameters/FilterAvailabilityParam" - $ref: "#/parameters/FilterPriceListIdParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/DirectionParam" - $ref: "#/parameters/ProductSortParam" responses: 200: description: | An array of products and metadata. schema: $ref: "#/definitions/ProductCollectionResponse" post: tags: - Catalog description: | Creates a `Product` in the BigCommerce Catalog. operationId: createProduct parameters: - name: product in: body required: true description: | A BigCommerce `Product` object. schema: $ref: "#/definitions/ProductPost" responses: 200: description: | A product. schema: $ref: "#/definitions/ProductResponse" 422: description: | `Product` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 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`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes one or more `Product` objects from the BigCommerce Catalog. operationId: deleteProducts parameters: - $ref: "#/parameters/FilterNameParam" - $ref: "#/parameters/FilterSkuParam" - $ref: "#/parameters/FilterPriceParam" - $ref: "#/parameters/FilterWeightParam" - $ref: "#/parameters/FilterConditionParam" - $ref: "#/parameters/FilterBrandIdParam" - $ref: "#/parameters/FilterDateModifiedParam" - $ref: "#/parameters/FilterDateLastImportedParam" - $ref: "#/parameters/FilterIsVisibleParam" - $ref: "#/parameters/FilterIsFeaturedParam" - $ref: "#/parameters/FilterInventoryLevelParam" - $ref: "#/parameters/FilterTotalSoldParam" - $ref: "#/parameters/ProductFilterTypeParam" - $ref: "#/parameters/FilterCategoriesParam" - $ref: "#/parameters/ProductFilterKeywordParam" responses: 204: description: | An empty response. /catalog/products/{product_id}: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: | Returns a `Product` from the BigCommerce Catalog. operationId: getProductById parameters: - $ref: "#/parameters/FilterIncludeParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" - $ref: "#/parameters/FilterPriceListIdParam" responses: 200: description: | A product. schema: $ref: "#/definitions/ProductResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a `Product` in the BigCommerce Catalog. operationId: updateProduct parameters: - name: product in: body required: true description: | A BigCommerce `Product` object. schema: $ref: "#/definitions/ProductPut" responses: 200: description: | A product. schema: $ref: "#/definitions/ProductResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | `Product` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 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. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a `Product` object from the BigCommerce Catalog. operationId: deleteProductById responses: 204: description: | An empty response. /catalog/products/{product_id}/images: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: | Gets all images on a product. operationId: getProductImages parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | List of product images and metadata. schema: $ref: "#/definitions/ProductImageCollectionResponse" 204: description: | There are not any images on this product. 404: description: | The product ID does not exist. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog description: | Creates an image on a product. Publicly accessible URLs and files (form post) are valid parameters. operationId: createProductImage parameters: - name: productImage in: body required: true description: | A BigCommerce `ProductImage` object. schema: $ref: "#/definitions/ProductImagePost" responses: 200: description: | A product image. schema: $ref: "#/definitions/ProductImageResponse" 404: description: | The product ID does not exist. schema: $ref: "#/definitions/NotFound" /catalog/products/{product_id}/images/{image_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/ImageIdParam" get: tags: - Catalog description: | Gets image on a product. operationId: getProductImageById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of product images and metadata. schema: $ref: "#/definitions/ProductImageResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates an image on a product. Publicly accessible URLs and files (form post) are valid parameters. operationId: updateProductImage parameters: - name: productImage in: body required: true description: | A BigCommerce `ProductImage` object. schema: $ref: "#/definitions/ProductImagePut" responses: 200: description: | A product image. schema: $ref: "#/definitions/ProductImageResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" delete: tags: - Catalog description: | Deletes a `ProductImage` in the BigCommerce Catalog. operationId: deleteProductImage responses: 204: description: | An empty response. /catalog/products/{product_id}/videos: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: | Gets all videos on a product. operationId: getProductVideos parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | List of product videos and metadata. schema: $ref: "#/definitions/ProductVideoCollectionResponse" post: tags: - Catalog description: | Creates a video on a product, using a video ID from a host site. operationId: createProductVideo parameters: - name: productVideo in: body required: true description: | A BigCommerce `ProductVideo` object. schema: $ref: "#/definitions/ProductVideoPost" responses: 200: description: | A product video. schema: $ref: "#/definitions/ProductVideoResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" /catalog/products/{product_id}/videos/{video_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/VideoIdParam" get: tags: - Catalog description: | Gets video on a product. operationId: getProductVideoById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of product videos and metadata. schema: $ref: "#/definitions/ProductVideoResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a video on a product. operationId: updateProductVideo parameters: - name: productVideo in: body required: true description: | A BigCommerce `ProductVideo` object. schema: $ref: "#/definitions/ProductVideoPut" responses: 200: description: | A product video. schema: $ref: "#/definitions/ProductVideoResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" delete: tags: - Catalog description: | Deletes a `ProductVideo` in the BigCommerce Catalog. operationId: deleteProductVideo responses: 204: description: | An empty response. /catalog/products/{product_id}/variants: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: | Returns a `Variant` object list from the BigCommerce Catalog. operationId: getVariantsByProductId parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of variants and metadata. schema: $ref: "#/definitions/VariantCollectionResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog description: Creates a `Variant` object. operationId: createVariant parameters: - name: Variant in: body required: true description: | `Variant` object. schema: $ref: "#/definitions/VariantPost" responses: 200: description: | A variant and metadata. schema: $ref: "#/definitions/VariantResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" /catalog/products/{product_id}/variants/{variant_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/VariantIdParam" get: tags: - Catalog description: Gets a `Variant` object. operationId: getVariantById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A variant and metadata. schema: $ref: "#/definitions/VariantResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: Updates a `Variant` object. operationId: updateVariant parameters: - name: Variant in: body required: true description: | A `Variant` object. schema: $ref: "#/definitions/VariantPut" responses: 200: description: | A variant and metadata. schema: $ref: "#/definitions/VariantResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" delete: tags: - Catalog description: | Deletes a `Variant`. operationId: deleteVariantById responses: 204: description: | An empty response. /catalog/products/{product_id}/variants/{variant_id}/metafields: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/VariantIdParam" get: tags: - Catalog description: | Gets a `Metafield` object list, by `product_id` and `variant_id`. operationId: getVariantMetafieldsByProductIdAndVariantId parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/MetafieldKeyParam" - $ref: "#/parameters/MetafieldNamespaceParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of metafields and metadata. schema: $ref: "#/definitions/MetaFieldCollectionResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog description: Creates a variant `Metafield`. operationId: createVariantMetafield parameters: - name: Metafield in: body required: true description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldPost" responses: 200: description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldResponse" 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. schema: $ref: "#/definitions/ErrorResponse" 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. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/variants/{variant_id}/metafields/{metafield_id}: parameters: - $ref: "#/parameters/MetafieldIdParam" - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/VariantIdParam" get: tags: - Catalog description: | Gets a `Metafield`, by `product_id` and `variant_id`. operationId: getVariantMetafieldByProductIdAndVariantId parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: Updates a `Metafield` object. operationId: updateVariantMetafield parameters: - name: Metafield in: body required: true description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldPut" responses: 200: description: | A metafield and metadata. schema: $ref: "#/definitions/MetafieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" delete: tags: - Catalog description: | Deletes a `Metafield`. operationId: deleteVariantMetafieldById responses: 204: description: | An empty response. /catalog/products/{product_id}/variants/{variant_id}/image: post: tags: - Catalog operationId: createVariantImage parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/VariantIdParam" - $ref: "#/parameters/ImageFileParam" consumes: - multipart/form-data responses: 200: description: | A ResourceImage and metadata. schema: $ref: "#/definitions/ImageResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | Image was not valid. This is the result of a missing `image_file` field or of an incorrect file type. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/options: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: Gets an array of `Option` objects. operationId: getOptions parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of options and metadata. schema: $ref: "#/definitions/OptionCollectionResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog parameters: - name: Option in: body required: true description: | An `Option` object. schema: $ref: "#/definitions/OptionPost" description: Creates an `Option`. operationId: createOption responses: 200: description: | An `Option` object. schema: $ref: "#/definitions/OptionResponse" 422: description: | Option was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | Option was in conflict with another option. This is the result of duplicate unique fields, such as `name`. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/options/{option_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/OptionIdParam" get: tags: - Catalog description: Gets `Option` object by product ID and option ID. operationId: getOptionById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An `Option` object. schema: $ref: "#/definitions/OptionResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a Product's `Option`, based on the `product_id` and `option_id`. operationId: updateOption parameters: - name: option in: body required: true description: | A BigCommerce `Option` object. schema: $ref: "#/definitions/OptionPut" responses: 200: description: | An `Option` object. schema: $ref: "#/definitions/OptionResponse" 422: description: | The `Option` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Option` was in conflict with another option. This is the result of duplicate unique fields, such as `name`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a Product's `Option`, based on the `product_id` and `option_id`. operationId: deleteOptionById responses: 204: description: | An empty response. /catalog/products/{product_id}/options/{option_id}/values: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/OptionIdParam" get: tags: - Catalog description: Gets an array of `OptionValue` objects. operationId: getOptionValues parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of option values and metadata. schema: $ref: "#/definitions/OptionValueCollectionResponse" post: tags: - Catalog description: Creates a `OptionValue`. operationId: createOptionValue parameters: - name: OptionValue in: body required: true description: | A `OptionValue` object. schema: $ref: "#/definitions/OptionValuePost" responses: 200: description: | A `OptionValue` object. schema: $ref: "#/definitions/OptionValueResponse" 422: description: | The `OptionValue` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/options/{option_id}/values/{value_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/OptionIdParam" - $ref: "#/parameters/ValueIdParam" get: tags: - Catalog description: | Gets a `OptionValue` by `product_id`, `option_id`, and `value_id`. operationId: getOptionValueById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `OptionValue` object. schema: $ref: "#/definitions/OptionValueResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a Product's `OptionValue` based on the `product_id`, `option_id`, and `value_id`. operationId: updateOptionValue parameters: - name: OptionValue in: body required: true description: | A BigCommerce `OptionValue` object. schema: $ref: "#/definitions/OptionValuePut" responses: 200: description: | A `OptionValue` object. schema: $ref: "#/definitions/OptionValueResponse" 422: description: | The `OptionValue` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a Product's `OptionValue` based on the `product_id`, `option_id`, and `value_id`. operationId: deleteOptionValueById responses: 204: description: | An empty response. /catalog/products/{product_id}/modifiers: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: Gets an array of `Modifier` objects. operationId: getModifiers parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of modifiers and metadata. schema: $ref: "#/definitions/ModifierCollectionResponse" post: tags: - Catalog description: Creates a `Modifier`. operationId: createModifier parameters: - name: Modifier in: body required: true description: | A `Modifier` object. schema: $ref: "#/definitions/ModifierPost" responses: 200: description: | A `Modifier` object. schema: $ref: "#/definitions/ModifierResponse" 422: description: | The `Modifier` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Modifier` was in conflict with another option. This is the result of duplicate unique fields, such as `name`. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/modifiers/{modifier_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/ModifierIdParam" get: tags: - Catalog description: | Gets a `Modifier` by product_id and modifier_id. operationId: getModifierById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `Modifier` object. schema: $ref: "#/definitions/ModifierResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a Product's `Modifier` based on the `product_id` and `modifier_id`. operationId: updateModifier parameters: - name: modifier in: body required: true description: | A BigCommerce `Modifier` object. schema: $ref: "#/definitions/ModifierPut" responses: 200: description: | A `Modifier` object. schema: $ref: "#/definitions/ModifierResponse" 422: description: | The `Modifier` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Modifier` was in conflict with another modifier or option. This is the result of duplicate unique fields, such as `name`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a Product's `Modifier` based on the `product_id` and `modifier_id`. operationId: deleteModifierById responses: 204: description: | An empty response. /catalog/products/{product_id}/modifiers/{modifier_id}/values: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/ModifierIdParam" get: tags: - Catalog description: Gets an array of `ModifierValue` objects. operationId: getModifierValues parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of modifier values and metadata. schema: $ref: "#/definitions/ModifierValueCollectionResponse" post: tags: - Catalog description: Creates a `ModifierValue`. operationId: createModifierValue parameters: - name: ModifierValue in: body required: true description: | A `ModifierValue` object. schema: $ref: "#/definitions/ModifierValuePost" responses: 200: description: | A `ModifierValue` object. schema: $ref: "#/definitions/ModifierValueResponse" 422: description: | The `ModifierValue` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/modifiers/{modifier_id}/values/{value_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/ModifierIdParam" - $ref: "#/parameters/ValueIdParam" get: tags: - Catalog description: | Gets a `ModifierValue` by `product_id`, `modifier_id`, and `value_id`. operationId: getModifierValueById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `ModifierValue` object. schema: $ref: "#/definitions/ModifierValueResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a Product's `ModifierValue` based on the `product_id`, `modifier_id`, and `value_id`. operationId: updateModifierValue parameters: - name: ModifierValue in: body required: true description: | A BigCommerce `ModifierValue` object. schema: $ref: "#/definitions/ModifierValuePut" responses: 200: description: | A `ModifierValue` object. schema: $ref: "#/definitions/ModifierValueResponse" 422: description: | The `ModifierValue` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a Product's `ModifierValue` based on the `product_id`, `modifier_id`, and `value_id`. operationId: deleteModifierValueById responses: 204: description: | An empty response. /catalog/products/{product_id}/modifiers/{modifier_id}/values/{value_id}/image: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/ModifierIdParam" - name: value_id description: | The ID of the `Modifier`. required: true in: path type: integer post: tags: - Catalog description: Adds an image to a modifier value; the image will show on the storefront when the value is selected. operationId: createModifierImage parameters: - $ref: "#/parameters/ImageFileParam" consumes: - multipart/form-data responses: 200: description: | A ResourceImage and metadata. schema: $ref: "#/definitions/ImageResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | Modifier image was not valid. This is the result of missing `image_file` fields, or of a non-URL value for the `image_file` field. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: Deletes the image that was set to show when the modifier value is selected. operationId: deleteModifierImage responses: 204: description: Image removed from the modifier value. /catalog/products/{product_id}/complex-rules: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: Gets an array of `ComplexRule` objects. operationId: getComplexRules parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of `ComplexRule` objects and metadata. schema: $ref: "#/definitions/ComplexRuleCollectionResponse" post: tags: - Catalog description: Creates a `ComplexRule`. operationId: createComplexRule parameters: - name: ComplexRule in: body required: true description: | `ComplexRule` object. schema: $ref: "#/definitions/ComplexRulePost" responses: 200: description: | A `ComplexRule` object. schema: $ref: "#/definitions/ComplexRuleResponse" 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. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `ComplexRule` was in conflict with another `ComplexRule`. This is the result of duplicate conditions. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/complex-rules/{complex_rule_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/ComplexRuleIdParam" get: tags: - Catalog description: | Gets a `ComplexRule` by product_id. operationId: getComplexRuleById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `Modifier` object. schema: $ref: "#/definitions/ComplexRuleResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a Product's `ComplexRule`, based on the `product_id` and `complex_rule_id`. operationId: updateComplexRule parameters: - name: ComplexRule in: body required: true description: | `ComplexRule` object. schema: $ref: "#/definitions/ComplexRulePut" responses: 200: description: | A `ComplexRule` object. schema: $ref: "#/definitions/ComplexRuleResponse" 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. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `ComplexRule` was in conflict with another `ComplexRule`. This is the result of duplicate conditions. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a Product's `ComplexRule`, based on the `product_id` and `complex_rule_id`. operationId: deleteComplexRuleById responses: 204: description: | An empty response. /catalog/products/{product_id}/configurable-fields: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: Gets an array of `ConfigurableField` objects. operationId: getConfigurableFields parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" responses: 200: description: | An array of `ConfigurableField` objects and metadata. schema: $ref: "#/definitions/ConfigurableFieldCollectionResponse" post: tags: - Catalog description: Creates a `ConfigurableField`. operationId: createConfigurableField parameters: - name: ConfigurableField in: body required: true description: | `ConfigurableField` object. schema: $ref: "#/definitions/ConfigurableFieldPost" responses: 200: description: | A `ConfigurableField` object. schema: $ref: "#/definitions/ConfigurableFieldResponse" 404: description: | The parent resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | The `ConfigurableField` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/configurable-fields/{configurable_field_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/ConfigurableFieldIdParam" get: tags: - Catalog description: | Gets a `ConfigurableField` by `product_id` and `configurable_field_id`. operationId: getConfigurableFieldById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `ConfigurableField` object. schema: $ref: "#/definitions/ConfigurableFieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a Product's `ConfigurableField`, based on the `product_id` and `configurable_field_id`. operationId: updateConfigurableField parameters: - name: ConfigurableField in: body required: true description: | `ConfigurableField` object. schema: $ref: "#/definitions/ConfigurableFieldPut" responses: 200: description: | A `ConfigurableField` object. schema: $ref: "#/definitions/ConfigurableFieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | The `ConfigurableField` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a Product's `ConfigurableField`, based on the `product_id` and `configurable_field_id`. operationId: deleteConfigurableFieldById responses: 204: description: | An empty response. 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" /catalog/products/{product_id}/custom-fields: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: Gets an array of `CustomField` objects. operationId: getCustomFields parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" responses: 200: description: | An array of `CustomField` objects and metadata. schema: $ref: "#/definitions/CustomFieldCollectionResponse" post: tags: - Catalog description: Creates a `CustomField`. operationId: createCustomField parameters: - name: CustomField in: body required: true description: | `CustomField` object. schema: $ref: "#/definitions/CustomFieldPost" responses: 200: description: | A `CustomField` object. schema: $ref: "#/definitions/CustomFieldResponse" 404: description: | The parent resource was not found. schema: $ref: "#/definitions/NotFound" 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. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/custom-fields/{custom_field_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/CustomFieldIdParam" get: tags: - Catalog description: | Gets a `CustomField` by `product_id` and `custom_field_id`. operationId: getCustomFieldById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `CustomField` object. schema: $ref: "#/definitions/CustomFieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a Product's `CustomField`, based on the `product_id` and `custom_field_id`. operationId: updateCustomField parameters: - name: CustomField in: body required: true description: | `CustomField` object. schema: $ref: "#/definitions/CustomFieldPut" responses: 200: description: | A `CustomField` object. schema: $ref: "#/definitions/CustomFieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 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. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a Product's `CustomField`, based on the `product_id` and `custom_field_id`. operationId: deleteCustomFieldById responses: 204: description: | An empty response. 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" /catalog/products/{product_id}/bulk-pricing-rules: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" get: tags: - Catalog description: Gets an array of `BulkPricingRule` objects. operationId: getBulkPricingRules parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of `BulkPricingRule` objects and metadata. schema: $ref: "#/definitions/BulkPricingRuleCollectionResponse" 404: description: | The parent resource was not found. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog description: Creates a `BulkPricingRule`. operationId: createBulkPricingRule parameters: - name: BulkPricingRule in: body required: true description: | `BulkPricingRule` object. schema: $ref: "#/definitions/BulkPricingRulePost" responses: 200: description: | A `BulkPricingRule` object. schema: $ref: "#/definitions/BulkPricingRuleResponse" 404: description: | The parent resource was not found. schema: $ref: "#/definitions/NotFound" 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. schema: $ref: "#/definitions/ErrorResponse" 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. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/bulk-pricing-rules/{bulk_pricing_rule_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/BulkPricingRuleIdParam" get: tags: - Catalog description: | Gets a `BulkPricingRule` by `product_id` and `bulk_pricing_rule_id`. operationId: getBulkPricingRuleById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `BulkPricingRule` object. schema: $ref: "#/definitions/BulkPricingRuleResponse" 404: description: | The resource or parent resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a Product's `BulkPricingRule`, based on the `product_id` and `bulk_pricing_rule_id`. operationId: updateBulkPricingRule parameters: - name: BulkPricingRule in: body required: true description: | `BulkPricingRule` object. schema: $ref: "#/definitions/BulkPricingRulePut" responses: 200: description: | A `BulkPricingRule` object. schema: $ref: "#/definitions/BulkPricingRuleResponse" 404: description: | The resource or parent resource was not found. schema: $ref: "#/definitions/NotFound" 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. schema: $ref: "#/definitions/ErrorResponse" 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. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a Product's `BulkPricingRule`, based on the `product_id` and `bulk_pricing_rule_id`. operationId: deleteBulkPricingRuleById responses: 204: description: | An empty response. 404: description: | The resource or parent resource was not found. schema: $ref: "#/definitions/NotFound" /catalog/products/{product_id}/metafields: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: | Gets a `Metafield` object list, by `product_id`. operationId: getProductMetafieldsByProductId parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/MetafieldKeyParam" - $ref: "#/parameters/MetafieldNamespaceParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of metafields and metadata. schema: $ref: "#/definitions/MetaFieldCollectionResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog description: Creates a product `Metafield`. operationId: createProductMetafield parameters: - name: Metafield in: body required: true description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldPost" responses: 200: description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldResponse" 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. schema: $ref: "#/definitions/ErrorResponse" 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. schema: $ref: "#/definitions/ErrorResponse" /catalog/products/{product_id}/metafields/{metafield_id}: parameters: - $ref: "#/parameters/MetafieldIdParam" - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: | Gets a `Metafield`, by `product_id`. operationId: getProductMetafieldByProductId parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: Updates a `Metafield` object. operationId: updateProductMetafield parameters: - name: Metafield in: body required: true description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldPut" responses: 200: description: | A metafield and metadata. schema: $ref: "#/definitions/MetafieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" delete: tags: - Catalog description: | Deletes a `Metafield`. operationId: deleteProductMetafieldById responses: 204: description: | An empty response. /catalog/products/{product_id}/reviews: parameters: - $ref: "#/parameters/ProductIdParam" get: tags: - Catalog description: | Gets all reviews on a product. operationId: getProductReviews parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" responses: 200: description: | List of product reviews and metadata. schema: $ref: "#/definitions/ProductReviewCollectionResponse" 204: description: | There are no reviews on this product. 404: description: | The product ID does not exist. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog description: | Creates a product review. operationId: createProductReview parameters: - name: productReview in: body required: true description: | A BigCommerce `ProductReview` object. schema: $ref: "#/definitions/ProductReviewPost" responses: 200: description: | A product review. schema: $ref: "#/definitions/ProductReviewResponse" 404: description: | The product ID does not exist. schema: $ref: "#/definitions/NotFound" /catalog/products/{product_id}/reviews/{review_id}: parameters: - $ref: "#/parameters/ProductIdParam" - $ref: "#/parameters/ReviewIdParam" get: tags: - Catalog description: | Gets a product review. operationId: getProductReviewById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of product reviews and metadata. schema: $ref: "#/definitions/ProductReviewResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a product review. operationId: updateProductReview parameters: - name: productReview in: body required: true description: | A BigCommerce `ProductReview` object. schema: $ref: "#/definitions/ProductReviewPut" responses: 200: description: | A product review. schema: $ref: "#/definitions/ProductReviewResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" delete: tags: - Catalog description: | Deletes a `ProductReview` in the BigCommerce Catalog. operationId: deleteProductReview responses: 204: description: | An empty response. /catalog/categories: get: tags: - Catalog description: | Returns a paginated categories collection from the BigCommerce Catalog. operationId: getCategories parameters: - $ref: "#/parameters/FilterNameParam" - $ref: "#/parameters/FilterParentIdParam" - $ref: "#/parameters/FilterPageTitleParam" - $ref: "#/parameters/FilterKeywordParam" - $ref: "#/parameters/FilterIsVisibleParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of category objects and metadata. schema: $ref: "#/definitions/CategoryCollectionResponse" post: tags: - Catalog description: | Creates a `Category` in the BigCommerce Catalog. operationId: createCategory parameters: - name: category in: body required: true description: | A BigCommerce `Category` object. schema: $ref: "#/definitions/CategoryPost" responses: 200: description: | A category object. schema: $ref: "#/definitions/CategoryResponse" 422: description: | The `Category` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Category` was in conflict with another category. This is the result of duplicate unique values, such as `name` or `custom_url`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes one or more `Category` objects from the BigCommerce Catalog. operationId: deleteCategories parameters: - $ref: "#/parameters/FilterNameParam" - $ref: "#/parameters/FilterParentIdParam" - $ref: "#/parameters/FilterPageTitleParam" - $ref: "#/parameters/FilterKeywordParam" - $ref: "#/parameters/FilterIsVisibleParam" responses: 204: description: | An empty response. /catalog/categories/{category_id}: parameters: - $ref: "#/parameters/CategoryIdParam" get: tags: - Catalog description: | Returns a `Category` from the BigCommerce Catalog. operationId: getCategoryById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A category object. schema: $ref: "#/definitions/CategoryResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a `Category` in the BigCommerce Catalog. operationId: updateCategory parameters: - name: category in: body required: true description: | A BigCommerce `Category` object. schema: $ref: "#/definitions/CategoryPut" responses: 200: description: | A category object. schema: $ref: "#/definitions/CategoryResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | The `Category` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Category` was in conflict with another category. This is the result of duplicate unique values, such as `name` or `custom_url`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes one or more `Category` objects from the BigCommerce catalog. operationId: deleteCategoryById responses: 204: description: | An empty response. /catalog/categories/{category_id}/metafields: parameters: - $ref: "#/parameters/CategoryIdParam" get: tags: - Catalog description: | Gets a `Metafield` object list, by category_id. operationId: getCategoryMetafieldsByCategoryId parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/MetafieldKeyParam" - $ref: "#/parameters/MetafieldNamespaceParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of metafields and metadata. schema: $ref: "#/definitions/MetaFieldCollectionResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog description: Creates a product `Metafield`. operationId: createCategoryMetafield parameters: - name: Metafield in: body required: true description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldPost" responses: 200: description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldResponse" 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. schema: $ref: "#/definitions/ErrorResponse" 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. schema: $ref: "#/definitions/ErrorResponse" /catalog/categories/{category_id}/metafields/{metafield_id}: parameters: - $ref: "#/parameters/MetafieldIdParam" - $ref: "#/parameters/CategoryIdParam" get: tags: - Catalog description: | Gets a `Metafield` by category_id. operationId: getCategoryMetafieldByCategoryId parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: Updates a `Metafield` object. operationId: updateCategoryMetafield parameters: - name: Metafield in: body required: true description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldPut" responses: 200: description: | A metafield and metadata. schema: $ref: "#/definitions/MetafieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" delete: tags: - Catalog description: | Deletes a `Metafield`. operationId: deleteCategoryMetafieldById responses: 204: description: | An empty response. /catalog/categories/{category_id}/image: parameters: - $ref: "#/parameters/CategoryIdParam" post: tags: - Catalog parameters: - $ref: "#/parameters/ImageFileParam" consumes: - multipart/form-data description: | Creates an image on a category. Publicly accessible URLs and files (form post) are valid parameters. operationId: createCategoryImage responses: 200: description: | A ResourceImage and metadata. schema: $ref: "#/definitions/ImageResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | Image was not valid. This is the result of a missing `image_file` field or an incorrect file type. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a `Category` image from the BigCommerce Catalog. operationId: deleteCategoryImage responses: 204: description: | An empty response. /catalog/categories/tree: get: tags: - Catalog description: | Returns the categories tree, a nested lineage of the categories with parent->child relationship. The `Category` objects returned are simplified versions of the category objects returned in the rest of this API. operationId: getCategoryTree responses: 200: description: | A array of nested category tree objects and metadata. schema: $ref: "#/definitions/CategoryTreeCollectionResponse" /catalog/brands: get: tags: - Catalog description: | Gets `Brand` objects. operationId: getBrands parameters: - $ref: "#/parameters/FilterNameParam" - $ref: "#/parameters/FilterPageTitleParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of brand objects and metadata. schema: $ref: "#/definitions/BrandCollectionResponse" post: tags: - Catalog description: Creates a `Brand` object. operationId: createBrand parameters: - name: Brand in: body required: true description: | A `Brand` object. schema: $ref: "#/definitions/BrandPost" responses: 200: description: | A `Brand` object. schema: $ref: "#/definitions/BrandResponse" 422: description: | Brand was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | Brand was in conflict with another brand. This is the result of duplicate unique fields such as name. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes one or more `Brand` objects from the BigCommerce Catalog. operationId: deleteBrands parameters: - $ref: "#/parameters/FilterNameParam" - $ref: "#/parameters/FilterPageTitleParam" responses: 204: description: | An empty response. /catalog/brands/{brand_id}: parameters: - $ref: "#/parameters/BrandIdParam" get: tags: - Catalog description: Gets a `Brand` object. operationId: getBrandById parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `Brand` object. schema: $ref: "#/definitions/BrandResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: | Updates a `Brand` in the BigCommerce Catalog. operationId: updateBrand parameters: - name: brand in: body required: true description: | Returns a `Brand` from the BigCommerce Catalog. schema: $ref: "#/definitions/BrandPut" responses: 200: description: | A `Brand` object. schema: $ref: "#/definitions/BrandResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | The `Brand` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Brand` was in conflict with another product. This is the result of duplicate unique values, such as `name`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a `Brand` from the BigCommerce Catalog. operationId: deleteBrandById responses: 204: description: | An empty response. /catalog/brands/{brand_id}/metafields: parameters: - $ref: "#/parameters/BrandIdParam" get: tags: - Catalog description: | Gets a `Metafield` object list, by `brand_id`. operationId: getBrandMetafieldsByBrandId parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/MetafieldKeyParam" - $ref: "#/parameters/MetafieldNamespaceParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of metafields and metadata. schema: $ref: "#/definitions/MetaFieldCollectionResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" post: tags: - Catalog description: Creates a product `Metafield`. operationId: createBrandMetafield parameters: - name: Metafield in: body required: true description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldPost" responses: 200: description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldResponse" 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. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Metafield` was in conflict with another `Metafield`. This can be the result of duplicate unique key combination of the app's client id, namespace, key, resource_type, and resource_id. schema: $ref: "#/definitions/ErrorResponse" /catalog/brands/{brand_id}/metafields/{metafield_id}: parameters: - $ref: "#/parameters/MetafieldIdParam" - $ref: "#/parameters/BrandIdParam" get: tags: - Catalog description: | Gets a `Metafield`, by `category_id`. operationId: getBrandMetafieldByBrandId parameters: - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Catalog description: Updates a `Metafield` object. operationId: updateBrandMetafield parameters: - name: Metafield in: body required: true description: | A `Metafield` object. schema: $ref: "#/definitions/MetafieldPut" responses: 200: description: | A metafield and metadata. schema: $ref: "#/definitions/MetafieldResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" delete: tags: - Catalog description: | Deletes a `Metafield`. operationId: deleteBrandMetafieldById responses: 204: description: | An empty response. /catalog/brands/{brand_id}/image: parameters: - $ref: "#/parameters/BrandIdParam" post: tags: - Catalog description: | Creates an image on a `Brand`. Publicly accessible URLs and files (form post) are valid parameters. operationId: createBrandImage parameters: - $ref: "#/parameters/ImageFileParam" consumes: - multipart/form-data responses: 200: description: | A ResourceImage and metadata. schema: $ref: "#/definitions/ImageResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | Image was not valid. This is the result of a missing `image_file` field, or of an incorrect file type. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Catalog description: | Deletes a `Brand` image from the BigCommerce Catalog. operationId: deleteBrandImage responses: 204: description: Image deleted from the brand. /catalog/variants: get: tags: - Catalog description: | Returns a `Variant` object list from the BigCommerce Catalog. operationId: getVariants parameters: - $ref: "#/parameters/FilterIdParam" - $ref: "#/parameters/FilterSkuParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/FilterIncludeFieldsParam" - $ref: "#/parameters/FilterExcludeFieldsParam" responses: 200: description: | An array of variants and metadata. schema: $ref: "#/definitions/VariantCollectionResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" /catalog/summary: get: tags: - Catalog description: | Returns a lightweight inventory summary from the BigCommerce Catalog. responses: 200: description: | An array of catalog summary and metadata. schema: $ref: "#/definitions/CatalogSummaryResponse" /customers/subscribers: get: tags: - Customers description: | Returns a paginated Subscribers collection. operationId: getSubscribers parameters: - $ref: "#/parameters/FilterEmailParam" - $ref: "#/parameters/FilterFirstNameParam" - $ref: "#/parameters/FilterLastNameParam" - $ref: "#/parameters/FilterSourceParam" - $ref: "#/parameters/FilterOrderIdParam" - $ref: "#/parameters/FilterDateCreatedParam" - $ref: "#/parameters/FilterDateModifiedParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" responses: 200: description: | An array of subscriber objects and metadata. schema: $ref: "#/definitions/SubscriberCollectionResponse" post: tags: - Customers description: | Creates a `Subscriber` object. operationId: createSubscriber parameters: - name: subscriber in: body required: true description: | `Subscriber` object. schema: $ref: "#/definitions/SubscriberPost" responses: 200: description: | A `Subscriber` object. schema: $ref: "#/definitions/SubscriberResponse" 422: description: | The `Subscriber` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Subscriber` was in conflict with another subscriber. This is the result of duplicate unique values, such as email. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Customers description: | Deletes a Subscriber or Subscribers from BigCommerce Customers. operationId: deleteSubscribers parameters: - $ref: "#/parameters/FilterEmailParam" - $ref: "#/parameters/FilterFirstNameParam" - $ref: "#/parameters/FilterLastNameParam" - $ref: "#/parameters/FilterSourceParam" - $ref: "#/parameters/FilterOrderIdParam" - $ref: "#/parameters/FilterDateCreatedParam" - $ref: "#/parameters/FilterDateModifiedParam" responses: 204: description: | An empty response. /customers/subscribers/{subscriber_id}: parameters: - $ref: "#/parameters/SubscriberIdParam" get: tags: - Customers description: Gets `Subscriber` object. operationId: getSubscriberById responses: 200: description: | A `Subscriber` object. schema: $ref: "#/definitions/SubscriberResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" put: tags: - Customers description: | Updates a `Subscriber` object. operationId: updateSubscriber parameters: - name: subscriber in: body required: true description: | Returns a `Subscriber` object. schema: $ref: "#/definitions/SubscriberPut" responses: 200: description: | A `Subscriber` object. schema: $ref: "#/definitions/SubscriberResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | The `Subscriber` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | The `Subscriber` was in conflict with another subscriber. This is the result of duplicate unique values, such as `email`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Customers description: | Deletes a `Subscriber` object. operationId: deleteSubscriberById responses: 204: description: | An empty response. /customers/settings/channels/{channelId}: parameters: - name: "channelId" in: "path" description: "The ID of a Channel that's available through GET /channels" required: true type: "integer" format: "int64" get: tags: - Customers description: | Get customer settings for a channel operationId: getCustomerSettings responses: 200: description: | Success. schema: $ref: "#/definitions/CustomersSettings" put: tags: - Customers description: | Updates customer settings in BigCommerce. operationId: updateCustomerSettings parameters: - name: ChannelSettings in: body required: true description: | A BigCommerce `ChannelSettings` object. schema: $ref: "#/definitions/CustomersSettings" responses: 200: description: | Success. schema: $ref: "#/definitions/CustomersSettings" /customers: get: description: |- Returns a list of Customers. Optional filter parameters can be passed in. **Notes** Attribute names are not available on the customer object. summary: Get All Customers tags: - Customers operationId: CustomersGet deprecated: false parameters: - name: page in: query type: integer description: Page number. `page=1` - in: query type: number name: limit description: Items count per page. `limit=50` - name: 'id:in' in: query type: array description: |- Filter items by id. `id:in=4,5,6` items: type: integer - name: 'company:in' in: query type: array items: type: string description: 'Filter items by company. `company:in=bigcommerce,commongood`' - name: 'customer_group_id:in' in: query type: array description: 'Filter items by customer_group_id. `customer_group_id:in=5,6`' items: type: string - name: date_created in: query type: string description: 'Filter items by date_created. `date_created=2018-09-05T13:43:54`' format: date-time - name: 'date_created:max' in: query type: string description: 'Filter items by maximum date_created. `date_created:max=2018-09-10`' - name: 'date_created:min' in: query type: string description: 'Filter items by date_created. `date_created:min=2018-09-05`' format: date-time - name: date_modified in: query type: string description: 'Filter items by date_modified. `date_modified=2018-09-05T13:45:03`' format: date-time - name: 'date_modified:min' in: query type: string description: 'Filter items by mininum date_modified. `date_modified:min=2019-09-04T:00:00:00` or `date_modified:min=2019-09-04`' - name: 'date_modified:max' in: query type: string format: date-time description: 'Filter items by maximum date_modified `date_modified:max=2018-09-05T13:45:03` or `date_modified:max=2019-09-04`' - name: 'email:in' in: query type: string description: 'Filter items by email. `email:in=janedoe@email.com`' - name: 'name:in' in: query type: array description: Filter items by first_name and last_name. `name=james moriarty` items: type: string - name: 'name:like' in: query type: array description: |- Filter items by substring in first_name and last_name. `name:like=moriarty, sherlock` Concatenates the first_name and last_name fields. items: type: string - name: 'registration_ip_address:in' in: query type: array description: |- Filter items by registration_ip_address. If the customer was created using the API, then registration address is blank. `registration_ip_address:in=12.345.6.789` items: type: integer - name: include in: query type: string description: |- Indicates whether to include customer sub-resources: * `addresses` - customer addresses * `storecredit` - store credit * `attributes` - customer attributes and address attributes * `formfields` - customer and address form fields `include=addresses,storecredit,attributes,formfields` enum: - addresses - storecredit - attributes - formfields - in: query name: sort type: string description: |- Sort items by date_created or last_name: * `date_created:asc` - date created, ascending * `date_created:desc` - date created, descending * `last_name:asc` - last name, ascending * `last_name:desc` - last name, descending Example: `sort=last_name:asc` enum: - 'date_created:asc' - 'date_created:desc' - 'last_name:asc' - 'last_name:desc' responses: 200: schema: $ref: '#/definitions/CustomerCollectionResponse' post: description: |- Creates Customers. Multiple customers can be created in one call. **Required Fields** * last_name * first_name * email **Required Fields Customer Address** * first_name * city * country_code * state_or_province * last_name * address1 * postal_code **Required Fields Attributes** * Attributes must be [created](https://developer.bigcommerce.com/api-reference/customer-subscribers/v3-customers-api/customer-attributes/customersattributespost) **BEFORE** creating a customer. * attribute_id * attribute_value -- This is input as a string, regardless of the [Type](/api-reference/customer-subscribers/v3-customers-api/models/type). summary: Create Customers tags: - Customers operationId: CustomersPost deprecated: false parameters: - name: body in: body required: true description: '' schema: type: array items: title: Customer Post type: object properties: email: description: The email of the customer. Must be unique. type: string minLength: 3 maxLength: 255 first_name: description: The first name of the customer. type: string minLength: 1 maxLength: 100 last_name: description: The last name of the customer. type: string minLength: 1 maxLength: 100 company: description: The company of the customer. type: string minLength: 0 maxLength: 255 phone: description: The phone number of the customer. type: string minLength: 0 maxLength: 50 notes: description: The customer notes. type: string tax_exempt_category: description: The tax exempt category code for the customer. type: string minLength: 0 maxLength: 255 customer_group_id: description: Id of the group which this customer belongs to. type: integer format: int32 addresses: description: Array of customer addresses. Limited to 10 type: array maxItems: 10 items: title: Address For Customer example: address1: Addr 1 address2: '' address_type: residential city: San Francisco company: History country_code: US first_name: Ronald last_name: Swimmer phone: '707070707' postal_code: '33333' state_or_province: California type: object properties: first_name: description: The first name of the customer address. type: string minLength: 1 maxLength: 255 last_name: description: The last name of the customer address. type: string minLength: 1 maxLength: 255 company: description: The company of the customer address. type: string minLength: 0 maxLength: 255 address1: description: The address 1 line. type: string address2: description: The address 2 line. type: string city: description: The city of the customer address. type: string minLength: 0 maxLength: 100 state_or_province: description: The state or province name type: string minLength: 0 maxLength: 100 postal_code: description: The postal code of the customer address. type: string minLength: 0 maxLength: 30 country_code: description: The country code of the customer address. type: string minLength: 2 maxLength: 2 phone: description: The phone number of the customer address. type: string minLength: 0 maxLength: 50 address_type: title: Address Type description: The address type. Residential or Commercial example: residential type: string enum: - residential - commercial required: - first_name - last_name - address1 - city - state_or_province - postal_code - country_code attributes: description: Array of customer attributes. Limited to 10 type: array maxItems: 10 items: title: Customer Attribute Value For Customer example: attribute_id: 55 value: string value type: object properties: attribute_id: description: Attribute ID. type: integer format: int32 attribute_value: description: 'Attribute value. This will always be a string, regardless of the attributes type.' type: string minLength: 0 maxLength: 255 required: - attribute_id - attribute_value authentication: title: Customer Authentication type: object properties: force_password_reset: description: 'If `true`, this customer will be forced to change password on next login.' type: boolean new_password: description: New password for customer. Write only field type: string accepts_product_review_abandoned_cart_emails: type: boolean description: It determines if the customer is signed up to receive either product review or abandoned cart emails or recieve both emails. store_credit_amounts: $ref: '#/definitions/storeCreditAmounts' required: - email - first_name - last_name responses: 200: schema: $ref: '#/definitions/CustomerCollectionResponse' 422: description: The *Customer* was not valid. This is the result of missing required fields or trying to edit a read only field. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" put: description: |- Updates Customers. Subresource updates are not supported. Multiple customers can be updated in one call. **Required Fields** * id -- ID of the *Customer* This must be included in the request body **Read Only Fields** * id * registration_ip_address * date_created * date_modified **Notes** Attributes Values can not be updated using Update a Customer. Use the Update a [Customer Attribute Values](https://developer.bigcommerce.com/api-reference/customer-subscribers/v3-customers-api/customer-attribute-values/customersattributevaluesput) endpoint. summary: Update Customers tags: - Customers operationId: CustomersPut deprecated: false parameters: - name: body in: body required: true description: '' schema: type: array items: title: Customer Put type: object properties: email: description: The email of the customer. Must be unique. type: string minLength: 3 maxLength: 255 first_name: description: The first name of the customer. type: string minLength: 1 maxLength: 100 last_name: description: The last name of the customer. type: string minLength: 1 maxLength: 100 company: description: The company of the customer. type: string minLength: 0 maxLength: 255 phone: description: The phone number of the customer. type: string minLength: 0 maxLength: 50 registration_ip_address: description: The IP address from which this customer was registered. type: string minLength: 0 maxLength: 30 notes: description: The customer notes. type: string tax_exempt_category: description: The tax exempt category code for the customer. type: string minLength: 0 maxLength: 255 customer_group_id: description: Id of the group which this customer belongs to. type: integer format: int32 id: description: The unique numeric ID of the customer. type: integer format: int32 authentication: title: Customer Authentication type: object properties: force_password_reset: description: 'If `true`, this customer will be forced to change password on next login.' type: boolean new_password: description: New password for customer. Write only field type: string accepts_product_review_abandoned_cart_emails: type: boolean description: It determines if the customer is signed up to receive either product review or abandoned cart emails or recieve both emails. store_credit_amounts: $ref: '#/definitions/storeCreditAmounts' required: - id responses: 200: schema: $ref: '#/definitions/CustomerCollectionResponse' 422: description: | The `Customer` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" delete: description: |- Deletes Customers. **Required Query** * id:in -- ID of the customer **Notes** A query is required to delete customers. If not provided, a 204 is returned, with no changes to the data. summary: Delete Customers tags: - Customers operationId: CustomersDelete deprecated: false parameters: - in: query name: 'id:in' type: array items: type: integer description: |- Filter items by id. `id:in=4,5,6` required: true responses: 204: description: '' headers: {} /orders/{order_id}/transactions: parameters: - $ref: "#/parameters/OrderIdParam" get: tags: - Orders description: | Returns a collection of `Transaction` objects related to a BigCommerce Order. operationId: getTransactions responses: 200: description: | An array of transactions. schema: $ref: "#/definitions/TransactionCollectionResponse" 204: description: | No content found to fulfill request. schema: $ref: "#/definitions/NoContent" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" post: tags: - Orders description: | Creates a new `Transaction` related to a BigCommerce Order. operationId: createTransaction parameters: - name: transaction in: body required: true description: | A BigCommerce `Transaction` object. schema: $ref: "#/definitions/TransactionPost" responses: 200: description: | Successful transaction object created call schema: $ref: "#/definitions/TransactionResponse" 204: description: | No content found to fulfill request. schema: $ref: "#/definitions/NoContent" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" /themes: get: tags: - Themes operationId: getStoreThemes summary: Gets all store themes. responses: 200: description: Returns all themes associated with the BigCommerce store. schema: $ref: "#/definitions/ThemesCollectionResponse" default: description: Error message. schema: $ref: "#/definitions/ErrorResponse" post: tags: - Themes operationId: uploadTheme summary: Uploads a new theme to a BigCommerce store. consumes: - multipart/form-data parameters: - name: file description: The file. in: formData type: file required: true responses: 201: description: Job ID for the background job processing the theme upload. schema: $ref: "#/definitions/JobId" default: description: Error message. schema: $ref: "#/definitions/ErrorResponse" /themes/{theme_id}: get: tags: - Themes operationId: getStoreTheme summary: Gets a specified store theme. parameters: - $ref: "#/parameters/ThemeIdParam" responses: 200: description: The theme. schema: $ref: "#/definitions/ThemeResponse" default: description: Error message. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - Themes operationId: deleteStoreTheme summary: Deletes a specified store theme. parameters: - $ref: "#/parameters/ThemeIdParam" responses: 204: description: | No content found to fulfill the request. schema: $ref: "#/definitions/NoContent" default: description: Error message. schema: $ref: "#/definitions/ErrorResponse" /themes/{theme_id}/actions/download: parameters: - $ref: "#/parameters/ThemeIdParam" post: tags: - Themes operationId: downloadTheme summary: Downloads a specified store theme. parameters: - name: which in: body required: true description: | A BigCommerce object specifying which theme to download. One of: `original`: the original Marketplace or uploaded custom theme; `last_activated`: the theme version most recently applied to the store; `last_created`: the theme version most recently created. If `which` is missing or invalid in the request, its value will default to `last_activated`. schema: $ref: "#/definitions/WhichThemeToDownload" responses: 200: description: | Job ID for the background job processing the download. schema: $ref: "#/definitions/JobId" default: description: Error message. schema: $ref: "#/definitions/ErrorResponse" /themes/actions/activate: post: tags: - Themes operationId: activateStoreTheme summary: Activates a store theme. parameters: - name: body description: Request parameters. in: body required: true schema: $ref: "#/definitions/Activate" responses: 204: description: | No content found to fulfill the request. schema: $ref: "#/definitions/NoContent" default: description: Error message. schema: $ref: "#/definitions/ErrorResponse" /themes/jobs/{job_id}: get: tags: - Themes operationId: getJob summary: Gets a specified job. parameters: - $ref: "#/parameters/JobIdParam" responses: 200: description: The job. schema: $ref: "#/definitions/JobResponse" default: description: Error message. schema: $ref: "#/definitions/ErrorResponse" /pricelists: get: tags: - PriceLists description: | Returns a paginated collection of `Price List` objects from BigCommerce. operationId: getPriceListCollection parameters: - $ref: "#/parameters/FilterIdParam" - $ref: "#/parameters/FilterNameParam" - $ref: "#/parameters/FilterDateCreatedParam" - $ref: "#/parameters/FilterDateModifiedParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" responses: 200: description: | An array of Price Lists and metadata. schema: $ref: "#/definitions/PriceListCollectionResponse" post: tags: - PriceLists description: | Creates a `Price List` in BigCommerce. operationId: createPriceList parameters: - name: PriceList in: body required: true description: | A BigCommerce `PriceList` object. schema: $ref: "#/definitions/PriceListPost" responses: 200: description: | A Price List. schema: $ref: "#/definitions/PriceListResponse" 422: description: | `Price List` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | `Price List` was in conflict with another Price List. This is the result of duplicate unique values, such as `name`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - PriceLists description: | Deletes a set of `Price List` objects from BigCommerce using a filter. Also removes all associated Price Recordss. operationId: deletePriceListsByFilter parameters: - $ref: "#/parameters/FilterIdParam" - $ref: "#/parameters/FilterNameParam" responses: 204: description: | An empty response. /pricelists/{price_list_id}: parameters: - $ref: "#/parameters/PriceListIdParam" get: tags: - PriceLists description: | Returns a `Price List` object from BigCommerce. operationId: getPriceList responses: 200: description: | An array of Price Lists and metadata. schema: $ref: "#/definitions/PriceListResponse" put: tags: - PriceLists description: | Updates a single `Price List` object. operationId: updatePriceList parameters: - name: PriceList in: body required: true description: | A BigCommerce `Price List` object. schema: $ref: "#/definitions/PriceListPut" responses: 200: description: | A Price List. schema: $ref: "#/definitions/PriceListResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | `Price List` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | `Price List` was in conflict with another Price List. This is the result of duplicate unique values, such as `name`. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - PriceLists description: | Deletes one `Price List` object from BigCommerce by its ID. Also removes all associated Price Records. operationId: deletePriceList responses: 204: description: | An empty response. /pricelists/{price_list_id}/records: parameters: - $ref: "#/parameters/PriceListIdParam" get: tags: - PriceLists description: | Fetches the `Price Records` associated with a particular Price List, using a filter. operationId: getPriceListRecordCollection parameters: - $ref: "#/parameters/FilterVariantIdParam" - $ref: "#/parameters/FilterProductIdParam" - $ref: "#/parameters/FilterCurrencyParam" - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/FilterIncludePriceRecordParam" - $ref: "#/parameters/FilterPriceParam" - $ref: "#/parameters/FilterSalePriceParam" - $ref: "#/parameters/FilterRetailPriceParam" - $ref: "#/parameters/FilterMapPriceParam" - $ref: "#/parameters/FilterCalculatedPriceParam" - $ref: "#/parameters/FilterDateCreatedParam" - $ref: "#/parameters/FilterDateModifiedParam" - $ref: "#/parameters/FilterSkuParam" responses: 200: description: | An array of prices and metadata. schema: $ref: "#/definitions/PriceRecordCollectionResponse" put: tags: - PriceLists description: | Creates or updates a batch of `Price Records` associated with a particular Price List. operationId: setPriceListRecordCollection parameters: - name: X-Strict-Mode in: header type: integer required: false default: 0 description: | Header that determines whether the Batch API operates in strict mode or not. Strict mode will reject the entire request if any item in the batch has an error. - name: PriceRecordBatch in: body required: true description: | A BigCommerce `Price Record` request. schema: $ref: "#/definitions/PriceRecordCollectionPut" responses: 200: description: | Success response for batch PUT of `Price Records`. schema: $ref: "#/definitions/SuccessBatchResponse" 422: description: | Error response for batch PUT of `Price Records`. May include errors during partial update in non-strict mode. schema: $ref: "#/definitions/PriceRecordBatchErrorResponse" delete: tags: - PriceLists description: | Deletes one or more `Price Record` objects from BigCommerce using a filter. operationId: deletePriceListRecordsByFilter parameters: - $ref: "#/parameters/FilterVariantIdParam" responses: 204: description: | An empty response. schema: $ref: "#/definitions/NoContent" /pricelists/{price_list_id}/records/{variant_id}: parameters: - $ref: "#/parameters/PriceListIdParam" - $ref: "#/parameters/VariantIdParam" get: tags: - PriceLists description: | Fetches an array of `Price Records` matching a particular Price List and Variant ID. Will contain any set price records by currency. operationId: getPriceListRecordsByVariantId responses: 200: description: | An array of prices and metadata. schema: $ref: "#/definitions/PriceRecordCollectionResponse" delete: tags: - PriceLists description: | Deletes the collection of `Price Record` objects associated with a certain price list and variant ID. operationId: deletePriceListRecordsByVariantId responses: 204: description: | An empty response. /pricelists/{price_list_id}/records/{variant_id}/{currency_code}: parameters: - $ref: "#/parameters/PriceListIdParam" - $ref: "#/parameters/VariantIdParam" - $ref: "#/parameters/PriceRecordCurrencyParam" get: tags: - PriceLists description: | Returns a `Price Record` object from BigCommerce. operationId: getPriceListRecord parameters: - $ref: "#/parameters/FilterIncludePriceRecordParam" responses: 200: description: | An array of prices and metadata. schema: $ref: "#/definitions/PriceRecordResponse" put: tags: - PriceLists description: | Creates or updates a single `Price Record` object. operationId: setPriceListRecord parameters: - name: PriceRecord in: body required: true description: | A BigCommerce `Price Record` object. schema: $ref: "#/definitions/PriceRecordPut" responses: 200: description: | A price record. schema: $ref: "#/definitions/PriceRecordResponse" 404: description: | The resource was not found. schema: $ref: "#/definitions/NotFound" 422: description: | `Price Record` was not valid. This is the result of missing required fields, or of invalid data. See the response for more details. schema: $ref: "#/definitions/ErrorResponse" 409: description: | `Price Record` was in conflict with another price record. This is the result of duplicate unique values. schema: $ref: "#/definitions/ErrorResponse" delete: tags: - PriceLists description: | Deletes one `Price Record` object from BigCommerce, by `variant_id`. operationId: deletePriceListRecord responses: 204: description: | An empty response. /content/scripts: post: tags: - Script summary: Creates a script. operationId: createScript parameters: - name: scriptBody in: body required: true schema: $ref: "#/definitions/ScriptPost" responses: 200: schema: $ref: "#/definitions/ScriptResponse" description: | Success. 422: schema: $ref: "#/definitions/ErrorResponse" description: | This is the result of missing required fields, or of invalid data. See the response for more details. get: tags: - Script summary: Gets all scripts. operationId: getScripts parameters: - $ref: "#/parameters/PageParam" - $ref: "#/parameters/LimitParam" - $ref: "#/parameters/ScriptsSortKeyParam" - $ref: "#/parameters/DirectionParam" responses: 200: schema: $ref: "#/definitions/ScriptsResponse" description: | Success. 422: schema: $ref: "#/definitions/ErrorResponse" description: | This is the result of missing required fields, or of invalid data. See the response for more details. /content/scripts/{uuid}: get: tags: - Script summary: Gets a script. operationId: getScript parameters: - $ref: "#/parameters/ScriptUUID" responses: 200: schema: $ref: "#/definitions/ScriptResponse" description: Success 404: description: | The resource was not found. schema: $ref: "#/definitions/ErrorResponse" 422: schema: $ref: "#/definitions/ErrorResponse" description: | This is the result of missing required fields, or of invalid data. See the response for more details. put: tags: - Script summary: Updates a script. operationId: updateScript parameters: - $ref: "#/parameters/ScriptUUID" - name: scriptBody in: body required: true schema: $ref: "#/definitions/ScriptPut" responses: 200: schema: $ref: "#/definitions/ScriptResponse" description: Success 404: description: | The resource was not found. schema: $ref: "#/definitions/ErrorResponse" 422: schema: $ref: "#/definitions/ErrorResponse" description: | This is the result of missing required fields, or of invalid data. See the response for more details. delete: tags: - Script summary: Deletes a script. operationId: deleteScript parameters: - $ref: "#/parameters/ScriptUUID" responses: 204: description: An empty response. 404: description: | The resource was not found. schema: $ref: "#/definitions/ErrorResponse" 422: schema: $ref: "#/definitions/ErrorResponse" description: | This is the result of missing required fields, or of invalid data. See the response for more details. parameters: TemplateUUID: name: uuid description: The identifier for a specific template. required: true in: path type: string format: uuid FilterTemplateFileParam: in: query name: template_file description: "The template file, for example: `pages/home`." type: string required: false RequiredTemplateFile: in: query name: templateFile description: "The template file, for example: `pages/home`." type: string required: true ScriptUUID: name: uuid description: The identifier for a specific script. required: true in: path type: string format: uuid FilterIdParam: name: id description: | Filter items by id. required: false in: query type: integer FilterSkuParam: name: sku description: | Filter items by sku. required: false in: query type: string FilterNameParam: name: name description: | Filter items by name. required: false in: query type: string FilterEmailParam: name: email description: | Filter items by email. required: false in: query type: string FilterFirstNameParam: name: first_name description: | Filter items by first_name. required: false in: query type: string FilterLastNameParam: name: last_name description: | Filter items by last_name. required: false in: query type: string FilterSourceParam: name: source description: | Filter items by source. required: false in: query type: string FilterOrderIdParam: name: order_id description: | Filter items by order_id. required: false in: query type: integer FilterUpcParam: name: upc description: | Filter items by upc. required: false in: query type: string FilterPriceParam: name: price description: | Filter items by price. required: false in: query type: number FilterSalePriceParam: name: sale_price description: | Filter items by sale_price. required: false in: query type: number FilterRetailPriceParam: name: retail_price description: | Filter items by retail_price. required: false in: query type: number FilterMapPriceParam: name: map_price description: | Filter items by map_price. required: false in: query type: number FilterCalculatedPriceParam: name: calculated_price description: | Filter items by calculated_price. required: false in: query type: number FilterWeightParam: name: weight description: | Filter items by weight. required: false in: query type: number FilterConditionParam: name: condition description: | Filter items by condition. required: false in: query type: integer FilterBrandIdParam: name: brand_id description: | Filter items by brand_id. required: false in: query type: integer FilterDateModifiedParam: name: date_modified description: | Filter items by date_modified. required: false in: query type: string format: date-time FilterDateCreatedParam: name: date_created description: | Filter items by date_created. required: false in: query type: string format: date-time FilterDateLastImportedParam: name: date_last_imported description: | Filter items by date_last_imported. required: false in: query type: string format: date-time FilterIsVisibleParam: name: is_visible description: | Filter items by is_visible. required: false in: query type: integer FilterIsFeaturedParam: name: is_featured description: | Filter items by is_featured. required: false in: query type: integer FilterIsFreeShippingParam: name: is_free_shipping description: | Filter items by is_free_shipping. required: false in: query type: integer FilterInventoryLevelParam: name: inventory_level description: | Filter items by inventory_level. required: false in: query type: integer FilterInventoryLowParam: name: inventory_low description: | Filter items by inventory_low. Values: 1, 0. required: false in: query type: integer FilterOutOfStockParam: name: out_of_stock description: | Filter items by out_of_stock. To enable the filter, pass `out_of_stock`=`1`. required: false in: query type: integer FilterTotalSoldParam: name: total_sold description: | Filter items by total_sold. required: false in: query type: integer ProductFilterTypeParam: name: type description: | Filter items by type: `physical` or `digital`. required: false in: query type: string FilterCategoriesParam: name: categories description: | Filter items by categories. required: false in: query type: integer FilterKeywordParam: name: keyword description: | Filter items by keywords. required: false in: query type: string ProductFilterKeywordParam: name: keyword description: | Filter items by keywords found in the `name`, `description`, or `sku` fields, or in the brand name. required: false in: query type: string ProductFilterKeywordContextParam: name: keyword_context description: | Set context for a product search. required: false in: query type: string enum: - shopper - merchant FilterStatusParam: name: status description: | Filter items by status. required: false in: query type: integer FilterIncludeParam: name: include description: | Sub-resources to include on a product, in a comma-separated list. Valid expansions currently include `variants`, `images`, 'primary_image`, `custom_fields`, and `bulk_pricing_rules`. required: false in: query type: string enum: - variants - images - custom_fields - bulk_pricing_rules - primary_image FilterIncludePriceRecordParam: name: include description: | Sub-resources to include on a price record, in a comma-separated list. Valid expansions currently include `bulk_pricing_tiers` and `sku`. Other valies will be ignored. required: false in: query type: string enum: - bulk_pricing_tiers - sku FilterIncludeFieldsParam: name: include_fields description: | Fields to include, in a comma-separated list. The ID and the specified fields will be returned. required: false in: query type: string FilterExcludeFieldsParam: name: exclude_fields description: | Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID cannot be excluded. required: false in: query type: string FilterParentIdParam: name: parent_id description: | Filter items by parent_id. required: false in: query type: integer FilterPageTitleParam: name: page_title description: | Filter items by page_title. required: false in: query type: string FilterAvailabilityParam: name: availability description: | Filter items by availability. Values are: available, disabled, preorder. required: false in: query type: string enum: - available - disabled - preorder FilterPriceListIdParam: name: price_list_id description: | The ID of the `Price List`. required: false in: query type: integer FilterProductIdParam: type: string name: product_id in: query required: false description: | A comma-separated list of ids of `Product`s whose prices were requested. FilterVariantIdParam: type: integer name: variant_id in: query required: false description: | The ID of the `Variant` whose prices were requested. FilterCurrencyParam: name: currency description: | Filter items by currency. required: false in: query type: string format: ISO-4217 PageParam: name: page description: | Specifies the page number in a limited (paginated) list of products. required: false in: query type: integer LimitParam: name: limit description: | Controls the number of items per page in a limited (paginated) list of products. required: false in: query type: integer ScriptsSortKeyParam: name: sort description: | Scripts field name to sort by. required: false in: query type: string enum: - name - description - date_created - date_modified DirectionParam: name: direction description: | Sort direction. Acceptable values are: `asc`, `desc`. required: false in: query type: string enum: - asc - desc ProductSortParam: name: sort description: | Field name to sort by. required: false in: query type: string enum: - id - name - sku - price - date_modified - date_last_imported - inventory_level - is_visible - total_sold ProductIdParam: name: product_id in: path description: | The ID of the `Product` to which the resource belongs. required: true type: integer ReviewIdParam: name: review_id description: | The ID of the `review` that is being operated on. required: true in: path type: integer ImageIdParam: name: image_id description: | The ID of the `Image` that is being operated on. required: true in: path type: integer VideoIdParam: name: video_id description: | The ID of the `Video` that is being operated on. required: true in: path type: string ComplexRuleIdParam: name: complex_rule_id description: | The ID of the `ComplexRule`. required: true in: path type: integer ConfigurableFieldIdParam: name: configurable_field_id description: | The ID of the `ConfigurableField`. required: true in: path type: integer CustomFieldIdParam: name: custom_field_id description: | The ID of the `CustomField`. required: true in: path type: integer BulkPricingRuleIdParam: name: bulk_pricing_rule_id description: | The ID of the `BulkPricingRule`. required: true in: path type: integer ModifierIdParam: name: modifier_id description: | The ID of the `Modifier`. required: true in: path type: integer ValueIdParam: name: value_id description: | The ID of the `Modifier/Option Value`. required: true in: path type: integer OptionIdParam: name: option_id description: | The ID of the `Option`. required: true in: path type: integer SubscriberIdParam: name: subscriber_id in: path description: | The ID of the `Subscriber` requested. required: true type: integer VariantIdParam: name: variant_id in: path description: | ID of the variant on a product, or on an associated Price List Record. required: true type: integer CategoryIdParam: name: category_id in: path description: | The ID of the `Category` to which the resource belongs. required: true type: integer BrandIdParam: name: brand_id in: path description: | The ID of the `Brand` to which the resource belongs. required: true type: integer MetafieldIdParam: name: metafield_id in: path description: | The ID of the `Metafield`. required: true type: integer MetafieldKeyParam: name: key in: query description: | Filter based on a metafield's key. required: false type: string MetafieldNamespaceParam: name: namespace in: query description: | Filter based on a metafield's key. required: false type: string ImageFileParam: name: image_file description: | An image file. Supported MIME types include GIF, JPEG, and PNG. required: true in: formData type: file OrderIdParam: name: order_id in: path description: | The ID of the `Order` to which the transactions belong. required: true type: integer JobIdParam: name: job_id description: The job identifier. in: path type: string required: true ThemeIdParam: name: theme_id description: The theme identifier. in: path type: string required: true PriceListIdParam: type: integer name: price_list_id in: path description: | The ID of the `Price List` requested. required: true PriceRecordCurrencyParam: name: currency_code type: string in: path description: | The currency code associated with the price record being acted upon. required: true format: ISO-4217 definitions: Script: type: object properties: uuid: type: string format: uuid description: The primary identifier. name: type: string description: The user-friendly name. description: type: string description: The user-friendly description. html: type: string description: An html string containing exactly one `script` tag. Only present if `kind` is `script_tag` src: type: string description: The `src` attribute of the script to load. Only present if `kind` is `src`. auto_uninstall: type: boolean description: Whether to uninstall this script when the app associated with it is removed. load_method: type: string description: The load method to use for the script. Values are `default`, `async`, or `defer`. enum: - default - async - defer location: type: string description: Where on the page to place the script. Values are `head` or `footer`. enum: - head - footer visibility: type: string description: Which set of pages the script should load on. The values allowed for this parameter are `storefront`, `all_pages`, `checkout` and `order_confirmation`. Please note that you need to have `Checkout content` scope to use `all_pages` and `checkout`. enum: - storefront - all_pages - checkout - order_confirmation kind: type: string description: What type of script this is. Values are `src` - a `script` tag will be generated with its `src` attribute set to the value of `src`; `script_tag` - The value of `html` will be injected directly onto the page. enum: - src - script_tag api_client_id: type: string description: The client id of the API user that created this script, or blank if created by other means. date_created: type: string format: date-time description: The date on which this object was initially created. date_modified: type: string format: date-time description: The date on which this object was last updated. example: uuid: 2bf40be2-e57a-4bc8-860a-5bf45edd3795 name: jQuery description: The Write Less, Do More, JavaScript Library. src: https://code.jquery.com/jquery-3.2.1.min.js auto_uninstall: true load_method: defer location: head visibility: storefront kind: src api_client_id: d1j42k5q76xsm15fa3g8sp2egytoixo date_created: '2017-12-05T23:37:45.506Z' date_modified: '2017-12-05T23:37:45.506Z' ScriptPost: required: - name properties: name: type: string description: The user-friendly name. minLength: 1 maxLength: 255 description: type: string description: The user-friendly description. maxLength: 255 html: type: string description: An html string containing exactly one `script` tag. Required if `kind` is `script_tag`. maxLength: 65535 src: type: string description: The `src` attribute of the script to load. Required if `kind` is `src`. Must be in `https` format. maxLength: 255 auto_uninstall: type: boolean description: Whether to uninstall this script when the app associated with it is removed. default: true load_method: type: string description: The load method to use for the script. Acceptable values are `default`, `async`, or `defer`. default: defer enum: - default - async - defer location: type: string description: Where on the page to place the script. Acceptable values are `head` or `footer`. default: footer enum: - head - footer visibility: type: string description: Which set of pages the script should load on. The values allowed for this parameter are `storefront`, `all_pages`, `checkout` and `order_confirmation`. Please note that you need to have `Checkout content` scope to use `all_pages` and `checkout`. default: storefront enum: - storefront - all_pages - checkout - order_confirmation kind: type: string description: What type of script this is. Acceptable values are `src` - a `script` tag will be generated with its `src` attribute set to the value of `src`; `script_tag` - The value of `html` (which must contain a single `script` tag) will be injected directly onto the page. default: src enum: - src - html example: name: jQuery description: The Write Less, Do More, JavaScript Library. src: https://code.jquery.com/jquery-3.2.1.min.js auto_uninstall: true load_method: defer location: head visibility: storefront kind: src ScriptPut: properties: name: type: string description: The user-friendly name. minLength: 1 maxLength: 255 description: type: string description: The user-friendly description. maxLength: 255 html: type: string description: An html string containing exactly one `script` tag. Required if `kind` is included and equal to `script_tag`. maxLength: 65535 src: type: string description: The `src` attribute of the script to load. Required if `kind` is included and equal to `src`. Must be in `https` format. maxLength: 255 auto_uninstall: type: boolean description: Whether to uninstall this script when the app associated with it is removed. default: true load_method: type: string description: The load method to use for the script. Acceptable values are `default`, `async`, or `defer`. default: defer enum: - default - async - defer location: type: string description: Where on the page to place the script. Acceptable values are `head` or `footer`. default: footer enum: - head - footer visibility: type: string description: Which set of pages the script should load on. The values allowed for this parameter are `storefront`, `all_pages`, `checkout` and `order_confirmation`. Please note that you need to have `Checkout content` scope to use `all_pages` and `checkout`. default: storefront enum: - storefront - all_pages - checkout - order_confirmation kind: type: string description: What type of script this is. Acceptable values are `src` - a `script` tag will be generated with its `src` attribute set to the value of `src`; `script_tag` - The value of `html` (which must contain a single `script` tag) will be injected directly onto the page. default: src enum: - src - html example: name: jQuery description: The Write Less, Do More, JavaScript Library. src: https://code.jquery.com/jquery-3.2.1.min.js auto_uninstall: true load_method: defer location: head visibility: storefront kind: src ScriptResponse: type: object properties: data: $ref: "#/definitions/Script" ScriptsResponse: type: object properties: data: type: array items: $ref: "#/definitions/Script" meta: $ref: "#/definitions/CollectionMeta" ModifierCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/Modifier" meta: $ref: "#/definitions/CollectionMeta" ModifierResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Modifier" meta: $ref: "#/definitions/Meta" ModifierBase: type: object description: | Common Modifier properties. 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`. For reference, the former v2 API values are: D = date, C = checkbox, F = file, T = text, MT = multi_line_text, N = numbers_only_text, RB = radio_buttons, RT = rectangles, S = dropdown, P = product_list, PI = product_list_with_images, CS = swatch. 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. x-required: - post sort_order: type: integer description: The order the modifiers display on the product detail page. config: $ref: "#/definitions/OptionConfig" option_values: type: array items: $ref: "#/definitions/ModifierValue" Modifier: type: object allOf: - $ref: "#/definitions/ModifierBase" - type: object properties: id: type: integer description: | The unique numeric ID of the modifier; increments sequentially. product_id: type: integer description: | The unique numeric ID of the product to which the option belongs. name: type: string description: | The unique option name. Auto-generated from the display name, a timestamp, and the product ID. display_name: type: string description: | The name of the option shown on the storefront. ModifierPost: type: object description: | The model for a POST to create a modifier on a product. allOf: - $ref: "#/definitions/ModifierBase" - type: object properties: display_name: type: string description: | The name of the option shown on the storefront. x-required: - post ModifierPut: type: object description: | The model for a PUT to update a modifier on a product. allOf: - $ref: "#/definitions/ModifierBase" ModifierValueCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/ModifierValue" meta: $ref: "#/definitions/CollectionMeta" ModifierValueResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/ModifierValue" meta: $ref: "#/definitions/Meta" ModifierValueBase: type: object allOf: - $ref: "#/definitions/OptionValueBase" - type: object properties: adjusters: type: object properties: price: $ref: "#/definitions/Adjuster" weight: $ref: "#/definitions/Adjuster" image_url: type: string description: | The URL for an image displayed on the storefront when the modifier value is selected. 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`. ModifierValue: type: object allOf: - $ref: "#/definitions/ModifierValueBase" - type: object properties: id: type: integer description: | The unique numeric ID of the value; increments sequentially. ModifierValuePost: type: object description: | The model for a POST to create a modifier value on a product. allOf: - $ref: "#/definitions/ModifierValueBase" ModifierValuePut: type: object description: | The model for a PUT to update a modifier value on a product. allOf: - $ref: "#/definitions/ModifierValueBase" - type: object properties: id: type: integer description: | The unique numeric ID of the value; increments sequentially. x-required: - put OptionCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/Option" meta: $ref: "#/definitions/CollectionMeta" OptionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Option" meta: $ref: "#/definitions/Meta" OptionBase: type: object description: Common Option properties. properties: id: type: integer description: | The unique numerical ID of the option, increments sequentially. x-nullable: true product_id: type: integer description: | The unique numerical ID of the product to which the option belongs. x-required: - post - put display_name: type: string description: | The name of the option shown on the storefront. x-required: - post - put minLength: 1 maxLength: 255 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 sort_order: type: integer description: The order the modifiers display on the product detail page. config: $ref: "#/definitions/OptionConfig" option_values: type: array items: $ref: "#/definitions/OptionValue" x-required: - post - put minItems: 1 Option: type: object allOf: - $ref: "#/definitions/OptionBase" - type: object properties: name: type: string description: | The unique option name, auto-generated from the display name, a timestamp, and the product ID. OptionPost: type: object description: | The model for a POST to create options on a product. allOf: - $ref: "#/definitions/OptionBase" OptionPut: type: object description: | The model for a PUT to update options on a product. allOf: - $ref: "#/definitions/OptionBase" CategoryTreeCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/CategoryNode" meta: $ref: "#/definitions/CollectionMeta" CategoryNode: type: object description: | A BigCommerce category node object. Used to reflect parent <> child category relationships. properties: id: type: integer description: | The unique numeric ID of the category; increments sequentially. parent_id: type: integer description: | The unique numeric ID of the category's parent. This field controls where the category sits in the tree of categories that organize the catalog. name: type: string description: | The name displayed for the category. Name is unique with respect to the category's siblings. is_visible: type: boolean description: | Flag to determine whether the product should be displayed to customers browsing the store. If `true`, the category will be displayed. If `false`, the category will be hidden from view. url: type: string description: | The custom URL for the category on the storefront. children: type: array description: | The list of children of the category. items: $ref: "#/definitions/CategoryNode" CategoryCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/Category" meta: $ref: "#/definitions/CollectionMeta" CategoryResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Category" meta: $ref: "#/definitions/Meta" CategoryBase: type: object description: | Common Category properties. properties: parent_id: type: integer description: | The unique numeric ID of the category's parent. This field controls where the category sits in the tree of categories that organize the catalog. x-required: - post name: type: string description: | The name displayed for the category. Name is unique with respect to the category's siblings. x-required: - post minLength: 1 maxLength: 50 description: type: string description: | The product description, which can include HTML formatting. views: type: integer description: | Number of views the category has on the storefront. sort_order: type: integer description: | Priority this category will be given when included in the menu and category pages. The lower the number, the closer to the top of the results the category will be. minimum: -2147483648 maximum: 2147483647 page_title: type: string description: | Custom title for the category page. If not defined, the category name will be used as the meta title. minLength: 0 maxLength: 255 search_keywords: type: string description: | A comma-separated list of keywords that can be used to locate the category when searching the store. minLength: 0 maxLength: 65535 meta_keywords: type: array description: | Custom meta keywords for the category page. If not defined, the store's default keywords will be used. Must post as an array like: ["awesome","sauce"]. items: type: string meta_description: type: string description: | Custom meta description for the category page. If not defined, the store's default meta description will be used. minLength: 0 maxLength: 65535 layout_file: type: string description: | The layout template file used to render this category. minLength: 0 maxLength: 500 is_visible: type: boolean description: | Flag to determine whether the product should be displayed to customers browsing the store. If `true`, the category will be displayed. If `false`, the category will be hidden from view. default_product_sort: type: string description: | Determines how the products are sorted on category page load. enum: - use_store_settings - featured - newest - best_selling - alpha_asc - alpha_desc - avg_customer_review - price_asc - price_desc image_url: type: string description: | Image URL used for this category on the storefront. Images can be uploaded via form file post to `/categories/{categoryId}/image`, or by providing a publicly accessible URL in this field. x-url: true custom_url: $ref: "#/definitions/CustomUrlCategory" Category: type: object description: | A BigCommerce category object. allOf: - $ref: "#/definitions/CategoryBase" - type: object properties: id: type: integer description: | The unique numeric ID of the category; increments sequentially. CategoryPost: type: object description: | The model for a POST to create category. allOf: - $ref: "#/definitions/CategoryBase" CategoryPut: type: object description: | The model for a PUT to update category. allOf: - $ref: "#/definitions/CategoryBase" BrandCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/Brand" meta: $ref: "#/definitions/CollectionMeta" BrandResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Brand" meta: $ref: "#/definitions/Meta" BrandBase: type: object description: | Common Brand properties. properties: name: type: string description: | The name of the brand. Must be unique. x-required: - post - put minLength: 1 maxLength: 255 page_title: type: string description: | The title shown in the browser while viewing the brand. minLength: 0 maxLength: 255 meta_keywords: type: array items: type: string description: | Comma-separated list of meta keywords to include in the HTML. meta_description: type: string description: | A meta description to include. minLength: 0 maxLength: 65535 search_keywords: type: string description: | A comma-separated list of keywords that can be used to locate this brand. minLength: 0 maxLength: 65535 image_url: type: string description: | Image URL used for this category on the storefront. Images can be uploaded via form file post to `/brands/{brandId}/image`, or by providing a publicly accessible URL in this field. x-url: true custom_url: $ref: "#/definitions/CustomUrlBrand" Brand: type: object allOf: - $ref: "#/definitions/BrandBase" - type: object properties: id: type: integer description: | The unique numeric ID of the brand; increments sequentially. x-nullable: true BrandPost: type: object description: | The model for a POST to create brand. allOf: - $ref: "#/definitions/BrandBase" BrandPut: type: object description: | The model for a PUT to update brand. allOf: - $ref: "#/definitions/BrandBase" - type: object properties: id: type: integer description: | The unique numeric ID of the brand; increments sequentially. x-nullable: true SubscriberCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/Subscriber" meta: $ref: "#/definitions/CollectionMeta" SubscriberResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Subscriber" meta: $ref: "#/definitions/Meta" SubscriberBase: type: object description: Common Subscriber properties. properties: id: type: integer description: | The unique numeric ID of the subscriber; increments sequentially. x-required: - put email: type: string description: | The email of the subscriber. Must be unique. x-required: - post first_name: type: string description: | The first name of the subscriber. minLength: 0 maxLength: 255 last_name: type: string description: | The last name of the subscriber. minLength: 0 maxLength: 255 source: type: string description: | The source of the subscriber. Values are: `storefront`, `order`, or `custom`. minLength: 0 maxLength: 255 order_id: type: integer description: | The ID of the source order, if source was an order. x-nullable: true minimum: 1 maximum: 2147483647 Subscriber: type: object allOf: - $ref: "#/definitions/SubscriberBase" - type: object properties: date_modified: type: string format: date-time description: | The date on which the subscriber was modified. date_created: type: string format: date-time description: | The date of which the subscriber was created. SubscriberPost: type: object description: | The model for a POST to create a subscriber. allOf: - $ref: "#/definitions/SubscriberBase" SubscriberPut: type: object description: | The model for a PUT to update a subscriber. allOf: - $ref: "#/definitions/SubscriberBase" VariantCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/Variant" meta: $ref: "#/definitions/CollectionMeta" VariantResponse: description: | Successful response. type: object properties: data: $ref: "#/definitions/Variant" meta: $ref: "#/definitions/Meta" VariantBase: type: object description: Common Variant properties. properties: cost_price: type: number format: double description: The cost price of the variant. Not affected by Price List prices. x-nullable: true minimum: 0 price: type: number format: double 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. x-nullable: true minimum: 0 sale_price: type: number format: double 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. x-nullable: true minimum: 0 retail_price: type: number format: double 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. x-nullable: true minimum: 0 weight: type: number format: double 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. x-nullable: true minimum: 0 width: type: number format: double 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. x-nullable: true minimum: 0 height: type: number format: double 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. x-nullable: true minimum: 0 depth: type: number format: double 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. x-nullable: true minimum: 0 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: type: number format: double description: | A fixed shipping cost for the variant. If defined, this value will be used during checkout instead of normal shipping-cost calculation. x-nullable: true minimum: 0 purchasing_disabled: type: boolean description: If `true`, this variant will not be purchasable on the storefront. purchasing_disabled_message: type: string description: If `purchasing_disabled` is `true`, this message should show on the storefront when the variant is selected. minLength: 0 maxLength: 255 image_url: type: string description: The image that will be displayed when this variant is selected on the storefront. When updating a SKU image, send the publicly accessible URL. Supported image formats are JPEG, PNG, and GIF. Generic product images not specific to the variant should be stored on the product. x-url: true upc: type: string description: The UPC code used in feeds for shopping comparison sites and external channel integrations. x-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`. x-nullable: true inventory_warning_level: type: integer description: When the variant hits this inventory level, it is considered low stock. x-nullable: true bin_picking_number: type: string description: Identifies where in a warehouse the variant is located. x-nullable: true minLength: 0 maxLength: 255 Variant: type: object allOf: - $ref: "#/definitions/VariantBase" - type: object properties: id: type: integer product_id: type: integer sku: type: string sku_id: type: integer description: Read-only reference to v2 API's SKU ID. Null if it is a base variant. x-nullable: true option_values: type: array items: $ref: "#/definitions/OptionValueVariant" 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. calculated_price: type: number format: double 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. VariantPost: type: object description: | The model for a POST to create variants on a product. allOf: - $ref: "#/definitions/VariantBase" - type: object properties: product_id: type: integer x-required: - post sku: type: string x-required: - post minLength: 1 maxLength: 255 option_values: type: array items: $ref: "#/definitions/OptionValueVariantPost" 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. x-required: - post VariantPut: type: object description: | The model for a PUT to update variants on a product. allOf: - $ref: "#/definitions/VariantBase" - type: object properties: id: type: integer x-required: - put VariantProductPost: type: object description: | The model for a POST to create variants on a product. allOf: - $ref: "#/definitions/VariantBase" - type: object properties: product_id: type: integer sku: type: string x-required: - post minLength: 1 maxLength: 255 option_values: type: array items: $ref: "#/definitions/OptionValueProductPost" x-required: - post VariantProductPut: type: object description: | The model for a PUT to update variants on a product. allOf: - $ref: "#/definitions/VariantBase" - type: object properties: product_id: type: integer sku: type: string minLength: 1 maxLength: 255 OptionValueProductBase: type: object description: Common OptionValueProduct properties. properties: option_display_name: type: string description: | The name of the option. x-required: - post minLength: 1 maxLength: 255 label: type: string description: | The label of the option value. x-required: - post minLength: 1 maxLength: 255 OptionValueProductPost: type: object description: | The model for a POST to create option values on a product. allOf: - $ref: "#/definitions/OptionValueProductBase" OptionValueVariant: type: object allOf: - $ref: "#/definitions/OptionValueProductBase" - type: object properties: id: type: integer option_id: type: integer OptionValueVariantPost: type: object description: | The model for a POST to create option values on a variant. properties: id: type: integer x-required: - post option_id: type: integer x-required: - post OptionValueCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/OptionValue" meta: $ref: "#/definitions/CollectionMeta" OptionValueResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/OptionValue" meta: $ref: "#/definitions/Meta" OptionValueBase: type: object description: Common OptionValue properties. 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. label: type: string description: | The text display identifying the value on the storefront. x-required: - post sort_order: type: integer description: | The order in which the value will be displayed on the product page. minimum: -2147483648 maximum: 2147483647 x-required: - post value_data: type: object 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. OptionValue: type: object allOf: - $ref: "#/definitions/OptionValueBase" - type: object properties: id: type: integer description: | The unique numeric ID of the value; increments sequentially. OptionValuePost: type: object description: | The model for a POST to create option values on a product. allOf: - $ref: "#/definitions/OptionValueBase" OptionValuePut: type: object description: | The model for a PUT to update option values on a product. allOf: - $ref: "#/definitions/OptionValueBase" - type: object properties: id: type: integer description: | The unique numeric ID of the value; increments sequentially. x-required: - put ProductImageCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/ProductImage" meta: $ref: "#/definitions/CollectionMeta" ProductImageResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/ProductImage" meta: $ref: "#/definitions/Meta" ProductImageBase: type: object description: | Common ProductImage properties. properties: is_thumbnail: description: | Flag for identifying whether the image is used as the product's thumbnail. type: boolean sort_order: 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. minimum: -2147483648 maximum: 2147483647 description: description: | The description for the image. type: string ProductImage: type: object description: | The full ProductImage model. allOf: - $ref: "#/definitions/ProductImageBase" - type: object properties: id: description: | The unique numeric ID of the image; increments sequentially. type: integer product_id: description: | The unique numeric identifier for the product with which the image is associated. type: integer image_file: description: | The local path to the original image file uploaded to BigCommerce. type: string url_zoom: description: | The zoom URL for this image. By default, this is used as the zoom image on product pages when zoom images are enabled. type: string url_standard: description: | The standard URL for this image. By default, this is used for product-page images. type: string url_thumbnail: description: | The thumbnail URL for this image. By default, this is the image size used on the category page and in side panels. type: string url_tiny: 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. type: string date_modified: format: date-time description: | The date on which the product image was modified. type: string ProductImagePost: type: object description: | The model for a POST to create an image on a product. allOf: - $ref: "#/definitions/ProductImageBase" - type: object properties: image_url: description: | Must be a fully qualified URL path, including protocol. type: string image_file: description: | Must be sent as a multipart/form-data field in the request body. type: string ProductImagePut: type: object description: | The model for a PUT to update applicable ProductImage fields. allOf: - $ref: "#/definitions/ProductImageBase" ProductVideoCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/ProductVideo" meta: $ref: "#/definitions/CollectionMeta" ProductVideoResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/ProductVideo" meta: $ref: "#/definitions/Meta" ProductVideoBase: type: object description: Common ProductVideo properties. properties: title: type: string description: | The title for the video. If left blank, this will be filled in according to data on a host site. minLength: 0 maxLength: 255 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: 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. minimum: -2147483648 maximum: 2147483647 type: type: string description: | The video type (a short name of a host site). enum: - youtube ProductVideo: type: object description: | A product video model. allOf: - $ref: "#/definitions/ProductVideoBase" - type: object properties: id: type: integer description: | The unique numeric ID of the product video; increments sequentially. video_id: description: | The ID of the video on a host site. type: string product_id: description: | The unique numeric identifier for the product with which the image is associated. type: integer length: description: | Length of the video. This will be filled in according to data on a host site. type: string ProductVideoPost: type: object description: | The model for a POST to create a video on a product. allOf: - $ref: "#/definitions/ProductVideoBase" - type: object properties: video_id: type: string description: | The ID of the video on a host site. x-required: - post minLength: 0 maxLength: 25 ProductVideoPut: type: object description: | The model for a PUT to update a video on a product. allOf: - $ref: "#/definitions/ProductVideoBase" - type: object properties: id: type: integer description: | The unique numeric ID of the product video; increments sequentially. x-required: - put ProductReviewCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/ProductReview" meta: $ref: "#/definitions/CollectionMeta" ProductReviewResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/ProductReview" meta: $ref: "#/definitions/Meta" ProductReviewBase: type: object description: Common ProductReview properties. properties: title: type: string description: | The title for the product review. minLength: 0 maxLength: 255 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: type: string description: The name of the reviewer. minLength: 0 maxLength: 255 date_reviewed: type: string format: date-time description: | Date the product was reviewed. ProductReview: type: object description: | A product review model. allOf: - $ref: "#/definitions/ProductReviewBase" - type: object properties: id: description: | The unique numeric ID of the product review; increments sequentially. type: integer product_id: description: | The unique numeric identifier for the product with which the review is associated. type: integer date_created: type: string format: date-time description: | Date the product review was created. date_modified: type: string format: date-time description: | Date the product review was modified. ProductReviewPost: type: object description: | The model for a POST to create a product review. allOf: - $ref: "#/definitions/ProductReviewBase" ProductReviewPut: type: object description: | The model for a PUT to update a product review. allOf: - $ref: "#/definitions/ProductReviewBase" ImageResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/ResourceImage" meta: $ref: "#/definitions/Meta" ResourceImage: type: object description: | An object containing a publicly accessible image URL, or a form post that contains an image file. properties: image_url: type: string description: | A public URL for a GIF, JPEG, or PNG image. ProductCollectionResponse: type: object description: | Response payload for the BigCommerce API. properties: data: type: array items: $ref: "#/definitions/Product" meta: $ref: "#/definitions/CollectionMeta" ProductResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Product" meta: $ref: "#/definitions/Meta" ProductBase: type: object description: | Common Product properties. properties: name: type: string description: | The product name. x-required: - post minLength: 1 maxLength: 255 type: type: string description: | The product type. One of: `physical` - a physical stock unit, `digital` - a digital download. x-required: - post enum: - physical - digital sku: type: string description: | User defined product code/stock keeping unit (SKU). minLength: 0 maxLength: 255 description: type: string description: | The product description, which can include HTML formatting. weight: type: number format: double description: | Weight of the product, which can be used when calculating shipping costs. x-required: - post minimum: 0 maximum: 9999999999 width: type: number format: double description: | Width of the product, which can be used when calculating shipping costs. minimum: 0 maximum: 9999999999 depth: type: number format: double description: | Depth of the product, which can be used when calculating shipping costs. minimum: 0 maximum: 9999999999 height: type: number format: double description: | Height of the product, which can be used when calculating shipping costs. minimum: 0 maximum: 9999999999 price: type: number format: double description: | The price of the product. The price should include or exclude tax, based on the store settings. x-required: - post minimum: 0 cost_price: type: number format: double description: | The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store. minimum: 0 retail_price: type: number format: double description: | The retail cost of the product. If entered, the retail cost price will be shown on the product page. minimum: 0 sale_price: type: number format: double description: | If entered, the sale price will be used instead of value in the price field when calculating the product's cost. minimum: 0 tax_class_id: type: integer description: | The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.) minimum: 0 maximum: 1000000000 product_tax_code: type: string description: | Accepts AvaTax System Tax Codes, which identify products and services that fall into special sales-tax categories. By using these codes, merchants who subscribe to BigCommerce's Avalara Premium integration can calculate sales taxes more accurately. Stores without Avalara Premium will ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive. For details, please see Avalara's documentation. minLength: 0 maxLength: 255 categories: 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. items: type: integer x-required: - post brand_id: type: integer description: | The ID associated with the product's brand. minimum: 0 maximum: 1000000000 inventory_level: type: integer description: | Current inventory level of the product. Simple inventory tracking must be enabled (See the `inventory_tracking` field) for this to take any effect. minimum: 0 maximum: 1000000000 inventory_warning_level: 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. minimum: 0 maximum: 1000000000 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: type: number format: double description: | A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal shipping-cost calculation. minimum: 0 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: type: string description: | Warranty information displayed on the product page. Can include HTML formatting. minLength: 0 maxLength: 65535 bin_picking_number: type: string description: | The BIN picking number for the product. minLength: 0 maxLength: 255 layout_file: type: string description: | The layout template file used to render this product. minLength: 0 maxLength: 500 upc: type: string description: | The product UPC code, which is used in feeds for shopping comparison sites and external channel integrations. minLength: 0 maxLength: 255 search_keywords: type: string description: | A comma-separated list of keywords that can be used to locate the product when searching the store. minLength: 0 maxLength: 65535 availability: type: string enum: - available - disabled - preorder description: | Availability of the product. Availability options are: `available` - the product can be purchased on the storefront; `disabled` - the product is listed in the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders. availability_description: 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.' minLength: 0 maxLength: 255 gift_wrapping_options_type: type: string enum: - any - none - list 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. gift_wrapping_options_list: type: array description: | A list of gift-wrapping option IDs. 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. minimum: -2147483648 maximum: 2147483647 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: type: integer description: | The minimum quantity an order must contain, to be eligible to purchase this product. minimum: 0 maximum: 1000000000 order_quantity_maximum: type: integer description: | The maximum quantity an order can contain when purchasing the product. minimum: 0 maximum: 1000000000 page_title: type: string description: | Custom title for the product page. If not defined, the product name will be used as the meta title. minLength: 0 maxLength: 255 meta_keywords: type: array description: | Custom meta keywords for the product page. If not defined, the store's default keywords will be used. items: type: string meta_description: type: string description: | Custom meta description for the product page. If not defined, the store's default meta description will be used. minLength: 0 maxLength: 65535 view_count: type: integer description: | The number of times the product has been viewed. minimum: 0 maximum: 1000000000 preorder_release_date: type: string format: date-time description: | Pre-order release date. See the `availability` field for details on setting a product's availability to accept pre-orders. x-nullable: true preorder_message: 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. minLength: 0 maxLength: 255 is_preorder_only: type: boolean description: | If set to `false`, the product will not change its availability from `preorder` to `available` on the release date. Otherwise, on the release date the product's availability/status will change 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: 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`.) minLength: 0 maxLength: 200 custom_url: $ref: "#/definitions/CustomUrlProduct" 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. Product: type: object description: | A BigCommerce Product object describes a single purchasable unit or a collection of purchasable units. allOf: - $ref: "#/definitions/ProductBase" - type: object properties: id: type: integer description: | The unique numeric ID of the product; increments sequentially. calculated_price: type: number format: double description: | The price of the product as seen on the storefront. It will be equal to the `sale_price`, if set, and the `price` if there is not a `sale_price`. reviews_rating_sum: type: integer description: | The total rating for the product. reviews_count: type: integer description: | The number of times the product has been rated. total_sold: type: integer description: | The total quantity of this product sold. custom_fields: type: array items: $ref: "#/definitions/CustomField" bulk_pricing_rules: type: array items: $ref: "#/definitions/BulkPricingRule" date_created: type: string format: date-time description: | The date on which the product was created. date_modified: type: string format: date-time description: | The date on which the product was modified. images: type: array items: $ref: "#/definitions/ProductImage" videos: type: array items: $ref: "#/definitions/ProductVideo" variants: type: array items: $ref: "#/definitions/Variant" options: type: array items: $ref: "#/definitions/Option" modifiers: type: array items: $ref: "#/definitions/Modifier" 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. ProductPost: type: object description: | The model for a POST to create a product. allOf: - $ref: "#/definitions/ProductBase" - type: object properties: custom_fields: type: array items: $ref: "#/definitions/CustomFieldPost" bulk_pricing_rules: type: array items: $ref: "#/definitions/BulkPricingRulePost" variants: type: array items: $ref: "#/definitions/VariantProductPost" ProductPut: type: object description: | The model for a PUT to update a product. allOf: - $ref: "#/definitions/ProductBase" - type: object properties: id: type: integer description: | The unique numerical ID of the product; increments sequentially. x-required: - put custom_fields: type: array items: $ref: "#/definitions/CustomField" bulk_pricing_rules: type: array items: $ref: "#/definitions/BulkPricingRule" variants: type: array items: $ref: "#/definitions/VariantProductPut" CatalogSummaryResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/CatalogSummary" meta: $ref: "#/definitions/Meta" CatalogSummary: type: object description: | A BigCommerce Catalog Summary object describes a lightweight summary of the catalog. properties: inventory_count: type: integer description: | A count of all inventory items in the catalog. inventory_value: type: number format: double description: | Total value of store's inventory. primary_category_id: type: integer description: | ID of the category containing the most products. primary_category_name: type: string description: | Name of the category containing the most products. MetaFieldCollectionResponse: type: object description: | Response payload for the BigCommerce API. properties: data: type: array items: $ref: "#/definitions/Metafield" meta: $ref: "#/definitions/CollectionMeta" MetafieldResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Metafield" meta: $ref: "#/definitions/Meta" MetafieldBase: type: object description: | Common Metafield properties. properties: permission_set: type: string description: | Determines whether the field is completely private to the app that owns the field (`app_only`), or visible to other API consumers (`read`), or completely open for reading and writing to other apps (`write`). enum: - app_only - read - write x-required: - post namespace: type: string description: | Namespace for the metafield, for organizational purposes. x-required: - post minLength: 1 maxLength: 64 key: type: string description: | The name of the field, for example: `location_id`, `color`. x-required: - post minLength: 1 maxLength: 64 value: type: string description: | The value of the field, for example: `1`, `blue`. x-required: - post minLength: 1 maxLength: 65535 description: type: string description: | Description for the metafields. minLength: 0 maxLength: 255 resource_type: type: string description: | The type of resource with which the metafield is associated. enum: - category - brand - product - variant x-required: - post resource_id: type: integer description: | The unique identifier for the resource with which the metafield is associated. x-required: - post minimum: 0 maximum: 10000000000 Metafield: type: object description: | Allows app partners to write custom data to various resources in the API. allOf: - $ref: "#/definitions/MetafieldBase" - type: object properties: id: type: integer description: | The unique identifier for the metafields. created_at: type: string format: date-time description: | Date and time of the metafield's creation. updated_at: type: string format: date-time description: | Date and time when the metafield was last updated. MetafieldPost: type: object description: | The model for a POST to create metafield. allOf: - $ref: "#/definitions/MetafieldBase" MetafieldPut: type: object description: | The model for a PUT to update metafield. allOf: - $ref: "#/definitions/MetafieldBase" - type: object properties: id: type: integer description: | The unique identifier for the metafields. x-required: - put minimum: 0 maximum: 10000000000 ComplexRuleCollectionResponse: type: object description: | Response payload for the BigCommerce API. properties: data: type: array items: $ref: "#/definitions/ComplexRule" meta: $ref: "#/definitions/CollectionMeta" ComplexRuleResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/ComplexRule" meta: $ref: "#/definitions/Meta" ComplexRuleBase: type: object description: | Common ComplexRule properties. properties: product_id: type: integer description: | The unique numeric ID of the product with which the rule is associated; increments sequentially. x-nullable: true x-required: - post - put sort_order: type: integer description: | The priority to give this rule when making adjustments to the product properties. minimum: -2147483648 maximum: 2147483647 enabled: type: boolean description: | Flag for determining whether the rule is to be used when adjusting a product's price, weight, image, or availabilty. 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: type: string description: | Message displayed on the storefront when a rule disables the purchasing of a product. minLength: 0 maxLength: 255 purchasing_hidden: type: boolean description: | Flag for determining whether the rule should hide purchasing of a product when the conditions are applied. price_adjuster: $ref: "#/definitions/Adjuster" weight_adjuster: $ref: "#/definitions/Adjuster" ComplexRule: type: object description: | Apply price, weight, image, or availabilty adjustments to product, based on a set of conditions. A complex rule's condition must either contain more than one modifier value, or else contain a modifier value and a variant ID. allOf: - $ref: "#/definitions/ComplexRuleBase" - type: object properties: id: type: integer description: | The unique numeric ID of the rule; increments sequentially. image_url: type: string description: | The URL for an image displayed on the storefront when the conditions are applied. conditions: type: array items: $ref: "#/definitions/ComplexRuleCondition" ComplexRulePost: type: object description: | The model for a POST to create a complex rule on a product. allOf: - $ref: "#/definitions/ComplexRuleBase" - type: object properties: conditions: type: array items: $ref: "#/definitions/ComplexRuleConditionPost" x-required: - post ComplexRulePut: type: object description: | The model for a PUT to update a complex rule on a product. allOf: - $ref: "#/definitions/ComplexRuleBase" - type: object properties: id: type: integer description: | The unique numeric ID of the rule; increments sequentially. x-required: - put conditions: type: array items: $ref: "#/definitions/ComplexRuleConditionPut" ConfigurableFieldCollectionResponse: type: object description: | Response payload for the BigCommerce configurable fields API. properties: data: type: array items: $ref: "#/definitions/ConfigurableField" meta: $ref: "#/definitions/CollectionMeta" ConfigurableFieldResponse: description: | Response payload for the BigCommerce single configurable field API. type: object properties: data: $ref: "#/definitions/ConfigurableField" meta: $ref: "#/definitions/Meta" CustomFieldCollectionResponse: type: object description: | Response payload for the BigCommerce API. properties: data: type: array items: $ref: "#/definitions/CustomField" meta: $ref: "#/definitions/CollectionMeta" CustomFieldResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/CustomField" meta: $ref: "#/definitions/Meta" ConfigurableFieldBase: type: object description: | Common ConfigurableField properties. properties: name: type: string description: | The name for the configurable field. Will display on the storefront and can be used as a reference point in the Orders API. x-required: - post minLength: 1 maxLength: 255 type: type: string description: | The type of the configurable field, which determines what sort of information the field is intended to collect on the storefront. Supported types in include a text input, a multi-line textarea, a checkbox, a file upload, and a dropdown selection. enum: - text - textarea - checkbox - file - select x-required: - post file_allowed_types: type: array items: type: string description: | For fields of "file" type, this controls the allowed file types for upload. x-nullable: true file_max_size: type: array items: type: integer description: | For fields of "file" type, this controls the maximum file size. The platform has a maximum file size of 512MB for all uploads regardless of this setting. minimum: 0 x-nullable: true select_options: type: array items: type: string description: | For fields of "select" type, this is an array of the options which should be presented in the dropdown. x-nullable: true required: type: boolean description: | Controls whether the field is required to have some input before a product may be added to cart. x-required: - post sort_order: type: integer description: | Controls the sort order of this field relative to other configurable fields on the product, for purposes of ordering them on the storefront. minimum: -2147483648 maximum: 2147483647 x-required: - post ConfigurableField: type: object description: | A configurable field, which is a means of collecting information from a shopper about how they'd like their product configured. This information is then stored alongside the product when added to cart and is reference-able on the order for fulfillment purposes. NOTE: Configurable fields are deprecated, as their complete set of functionality is available via Product Options. They may be removed in a future release. allOf: - $ref: "#/definitions/ConfigurableFieldBase" - type: object properties: id: type: integer description: | The unique numeric ID of the configurable field; increments sequentially. minimum: 1 x-required: - put ConfigurableFieldPost: type: object description: | The model for a POST to create a configurable field on a product. allOf: - $ref: "#/definitions/ConfigurableFieldBase" ConfigurableFieldPut: type: object description: | The model for a PUT to update a configurable field on a product. allOf: - $ref: "#/definitions/ConfigurableField" CustomFieldBase: type: object description: | Common CustomField properties. properties: name: type: string description: | The name of the field, shown on the storefront, orders, etc. x-required: - post minLength: 1 maxLength: 250 value: type: string description: | The name of the field, shown on the storefront, orders, etc. x-required: - post minLength: 1 maxLength: 250 CustomField: type: object 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. allOf: - $ref: "#/definitions/CustomFieldBase" - type: object properties: id: type: integer description: | The unique numeric ID of the custom field; increments sequentially. minimum: 1 x-required: - put CustomFieldPost: type: object description: | The model for a POST to create a custom field on a product. allOf: - $ref: "#/definitions/CustomFieldBase" CustomFieldPut: type: object description: | The model for a PUT to update a custom field on a product. allOf: - $ref: "#/definitions/CustomField" ComplexRuleConditionBase: type: object description: | Common ComplexRuleCondition properties. properties: id: type: integer description: | The unique numeric ID of the rule condition; increments sequentially. x-nullable: true rule_id: type: integer description: | The unique numeric ID of the rule with which the condition is associated. x-nullable: true modifier_id: type: integer description: | The unique numeric ID of the modifier with which the rule condition is associated. x-nullable: true modifier_value_id: type: integer description: | The unique numeric ID of the modifier value with which the rule condition is associated. x-nullable: true variant_id: type: integer description: | The unique numeric ID of the variant with which the rule condition is associated. x-nullable: true ComplexRuleCondition: type: object 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`. allOf: - $ref: "#/definitions/ComplexRuleConditionBase" - type: object properties: 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. ComplexRuleConditionPost: type: object description: | The model for a POST to create conditions on a complex rule. allOf: - $ref: "#/definitions/ComplexRuleConditionBase" ComplexRuleConditionPut: type: object description: | The model for a PUT to update conditions on a complex rule. allOf: - $ref: "#/definitions/ComplexRuleConditionBase" CustomUrlProduct: type: object description: | The custom URL for the product on the storefront. properties: url: type: string description: | Product URL on the storefront. 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). CustomUrlBrand: type: object description: | The custom URL for the brand on the storefront. properties: url: type: string description: | Brand URL on the storefront. 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). CustomUrlCategory: type: object description: | The custom URL for the category on the storefront. properties: url: type: string description: | Category URL on the storefront. x-required: - post - put x-url: true minLength: 0 maxLength: 255 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 BulkPricingRuleCollectionResponse: type: object description: | Response payload for the BigCommerce bulk pricing rules API. properties: data: type: array items: $ref: "#/definitions/BulkPricingRule" meta: $ref: "#/definitions/CollectionMeta" BulkPricingRuleResponse: description: | Response payload for the BigCommerce single bulk pricing rule API. type: object properties: data: $ref: "#/definitions/BulkPricingRule" meta: $ref: "#/definitions/Meta" BulkPricingRuleBase: type: object description: | Common BulkPricingRule properties properties: quantity_min: type: integer description: | The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. x-required: - post minimum: 0 quantity_max: 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. x-required: - post minimum: 0 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. x-required: - post enum: - price - percent - fixed amount: type: number format: double description: | The value of the adjustment by the bulk pricing rule. x-required: - post minimum: 0 BulkPricingRule: type: object description: | Rules that offer price discounts based on quantity breaks. allOf: - $ref: "#/definitions/BulkPricingRuleBase" - type: object properties: id: type: integer description: | The ID of the bulk pricing rule. minimum: 1 x-required: - put BulkPricingRulePost: type: object description: | The model for a POST to create bulk pricing rules on a product. allOf: - $ref: "#/definitions/BulkPricingRuleBase" BulkPricingRulePut: type: object description: | The model for a PUT to update bulk pricing rules on a product. allOf: - $ref: "#/definitions/BulkPricingRule" OptionConfig: 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. enum: - earliest - range - latest date_earliest_value: type: string format: date description: | (date) The earliest date allowed to be entered on the date option, as an ISO-8601 formatted string. date_latest_value: type: string format: date description: | (date) The latest date allowed to be entered on the date option, as an ISO-8601 formatted string. 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. 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 file_types_other: type: array description: | (file) A list of other file types allowed with the file upload option. items: type: string file_max_size: type: integer description: | (file) The maximum size for a file that can be used with the file upload option. 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. text_max_length: type: integer description: | (text, multi_line_text) The maximum length allowed for a text or multi line text option. text_lines_limited: type: boolean description: | (multi_line_text) Flag to validate the maximum number of lines allowed on a multi-line text input. text_max_lines: type: integer description: | (multi_line_text) The maximum number of lines allowed on a multi-line text input. number_limited: type: boolean description: | (numbers_only_text) Flag to limit the value of a number option. number_limit_mode: type: string description: | (numbers_only_text) The type of limit on values entered for a number option. 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. 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. 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. enum: - none - weight - package 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 x-nullable: true 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. PriceListCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/PriceList" meta: $ref: "#/definitions/CollectionMeta" PriceListResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/PriceList" meta: $ref: "#/definitions/Meta" PriceListBase: type: object description: | Common Price List properties. properties: name: type: string description: | The unique name of the Price List. x-required: - post active: type: boolean description: | Whether or not this `Price List` and its prices are active. Defaults to `true`. PriceList: type: object allOf: - type: object properties: id: type: integer description: | The unique numeric ID of the `Price List`; increments sequentially. date_created: type: string format: date-time description: | The date on which the `Price List` was created. date_modified: type: string format: date-time description: | The date on which the `Price List` was created. - $ref: "#/definitions/PriceListBase" PriceListPost: type: object allOf: - $ref: "#/definitions/PriceListBase" required: - name PriceListPut: type: object allOf: - $ref: "#/definitions/PriceListBase" PriceRecordCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/PriceRecord" meta: $ref: "#/definitions/CollectionMeta" PriceRecordResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/PriceRecord" meta: $ref: "#/definitions/Meta" PriceRecordBase: type: object description: | Common Price Record properties. properties: price: type: number format: double description: | The list price for the variant mapped in a Price List. Overrides any existing or Catalog list price for the variant/product. x-required: - put sale_price: type: number format: double description: | The sale price for the variant mapped in a Price List. Overrides any existing or Catalog sale price for the variant/product. If empty, the sale price will be treated as not being set on this variant. retail_price: type: number format: double description: | The retail price for the variant mapped in a Price List. Overrides any existing or Catalog retail price for the variant/product. If empty, the retail price will be treated as not being set on this variant. map_price: type: number format: double description: | The MAP (Manufacturer's Advertised Price) for the variant mapped in a Price List. Overrides any existing or Catalog MAP price for the variant/product. If empty, the MAP price will be treated as not being set on this variant. bulk_pricing_tiers: type: array items: $ref: "#/definitions/BulkPricingTier" sku: type: string description: | The SKU code associated with this `Price Record` if requested and it exists. PriceRecord: type: object description: | The comprehensive Price Record object. allOf: - type: object properties: calculated_price: type: number format: double description: | The price of the variant as seen on the storefront if a price record is in effect. It will be equal to the `sale_price`, if set, and the `price` if there is not a `sale_price`. Read only. date_created: type: string format: date-time description: | The date on which the Price entry was created. date_modified: type: string format: date-time description: | The date on which the Price entry was created. product_id: type: integer description: | The id of the `Product` this `Price Record`'s variant_id is associated with. Read only. - $ref: "#/definitions/PriceRecordBase" - $ref: "#/definitions/PriceRecordIdentifiers" BulkPricingTier: type: object properties: quantity_min: type: integer description: | The minimum quantity of associated variant in the cart needed to qualify for this tiers pricing. quantity_max: type: integer description: | The maximum allowed quantity of associated variant in the cart to qualify for this tiers pricing. type: type: string enum: - fixed - price - percent description: | The type of adjustment that is made. Acceptable 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. amount: type: number format: double description: | The price adjustment amount. This value along with the type will decide the price per variant for the pricing tier. PriceRecordPut: type: object allOf: - $ref: "#/definitions/PriceRecordBase" PriceRecordCollectionPut: type: array items: $ref: "#/definitions/PriceRecordBatchItem" PriceRecordBatchItem: type: object description: | `Price Record` object used in batch create or update. allOf: - type: object properties: variant_id: type: integer description: | The variant with which this price set is associated. Either variant_id or sku is required. sku: type: string description: | The sku for the variant with which this price set is associated. Either sku or variant_id is required. currency: type: string format: ISO-4217 description: | The 3-letter currency code with which this price set is associated. - $ref: "#/definitions/PriceRecordBase" PriceRecordIdentifiers: type: object description: | `Price Record` object used in batch create or update. allOf: - type: object properties: price_list_id: type: integer description: | The Price List with which this price set is associated. variant_id: type: integer description: | The variant with which this price set is associated. Either variant_id or sku is required. sku: type: string description: | The variant with which this price set is associated. Either sku or variant_id is required. currency: type: string format: ISO-4217 description: | The 3-letter currency code with which this price set is associated. SuccessBatchResponse: type: object description: Empty object for Success case for Batch API. PriceRecordBatchErrorResponse: description: | Errors during batch usage for the BigCommerce API. type: object properties: batch_errors: type: array items: $ref: "#/definitions/PriceRecordBatchErrorSet" PriceRecordBatchErrorSet: description: | Error during `Price Record` batch PUT. Includes data sent in the request and errors. type: object properties: data: $ref: "#/definitions/PriceRecordIdentifiers" field_errors: $ref: "#/definitions/DetailedErrors" CollectionMeta: type: object description: | Data about the response, including pagination and collection totals. properties: pagination: $ref: "#/definitions/Pagination" Pagination: type: object description: | Data about the response, including pagination and collection totals. properties: total: type: integer description: | Total number of items in the result set. count: type: integer description: | Total number of items in the collection response. per_page: type: integer description: | The amount of items returned in the collection per page, controlled by the limit parameter. current_page: type: integer description: | The page you are currently on within the collection. total_pages: type: integer description: | The total number of pages in the collection. links: type: object description: | Pagination links for the previous and next parts of the whole collection. 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. next: type: string description: | Link to the next page returned in the response. Meta: type: object description: Empty meta object; may be used later. ErrorResponse: allOf: - $ref: "#/definitions/BaseError" - type: object properties: errors: $ref: "#/definitions/DetailedErrors" 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 DetailedErrors: type: object additionalProperties: type: string NotFound: description: | Error payload for the BigCommerce API. type: object properties: status: description: | 404 HTTP status code. type: integer title: description: The error title describing the particular error. type: string type: type: string instance: type: string TransactionPost: type: object description: | Payload to create a transaction in BigCommerce. required: - event - amount - currency - gateway - method properties: event: type: string description: | Store event that created the transaction. enum: - purchase - authorization - capture - refund - void - pending - settled method: type: string description: | The payment method: `credit_card` - a credit-card transaction; `electronic_wallet` - an online wallet; `store_credit` - a transaction using store credit; `gift_certificate` - a transaction using a gift certificate; `custom` - manual payment methods; `token` - payment token; `nonce` - temporary payment token; `offsite` - online payment off the site (e.g., PayPal); `offline` - payment method that takes place offline. enum: - credit_card - electronic_wallet - gift_certificate - store_credit - apple_pay_card - apple_pay_token - token - custom - offsite - offline - nonce amount: type: number format: float description: | Amount of money in the transaction. currency: type: string format: ISO-4217 description: | Currency used for the transaction. gateway: type: string description: | The payment gateway, where applicable. enum: - 2checkout - adyen - amazon - authorizenet - bankdeposit - braintree - cheque - cod - custom - firstdatagge4 - giftcertificate - hps - instore - klarna - migs - moneyorder - nmi - paypalexpress - paypalpaymentsprous - paypalpaymentsprouk - plugnpay - qbmsv2 - securenet - square - storecredit - stripe - testgateway - usaepay gateway_transaction_id: description: | The transaction ID returned by the payment gateway for this transaction item. type: string date_created: description: | The datetime of the transaction. type: string format: date-time test: type: boolean description: | True if the transaction performed was a test, or if the gateway is in test mode. status: type: string description: | Status of the transaction. enum: - ok - error fraud_review: type: boolean description: | Result of gateway fraud review, if any. Default is `false`. reference_transaction_id: type: integer description: | Identifier for an existing transaction upon which this transaction acts. offline: $ref: "#/definitions/Offline" custom: $ref: "#/definitions/Custom" TransactionResponse: type: object description: | Response payload for the BigCommerce Order Transactions API single transaction. properties: data: $ref: "#/definitions/Transaction" meta: type: object description: May be used in the future TransactionCollectionResponse: type: object description: | Response payload for the BigCommerce Order Transactions API. properties: data: type: array items: $ref: "#/definitions/Transaction" meta: $ref: "#/definitions/CollectionMeta" Transaction: type: object description: | A BigCommerce Transaction object describes a single transaction. allOf: - $ref: "#/definitions/TransactionPost" - type: object properties: id: type: integer description: | Unique identifier for the transaction. order_id: type: string description: | Identifier for the BigCommerce Order with which this transaction is associated. date_created: description: | The datetime of the transaction. type: string format: date-time payment_instrument_token: type: string description: | Token for an existing stored Credit Card used for this transaction, if any. avs_result: $ref: "#/definitions/AVSResult" cvv_result: $ref: "#/definitions/CVVResult" credit_card: $ref: "#/definitions/CreditCard" gift_certificate: $ref: "#/definitions/GiftCertificate" store_credit: $ref: "#/definitions/StoreCredit" CreditCard: type: object description: | A credit-card model. properties: card_type: description: | The credit-card type: Visa, MasterCard, etc. type: string card_iin: description: | The IIN of a credit-card number. type: string card_last4: description: | The last 4 digits of a credit-card number. type: string StoreCredit: type: object description: | A store credit model. properties: remaining_balance: description: | Remaining balance of shopper's store credit. type: string Custom: type: object description: | Custom payment from manual order. properties: payment_method: description: | Text entered for the payment method in the control panel. type: string Offline: type: object description: | Offline payment (e.g., check or purchase order). properties: display_name: description: | Display name for the offline payment. type: string GiftCertificate: type: object description: | A gift-certificate model. properties: code: description: | The gift-certificate code. type: string original_balance: description: | The balance on a gift certificate when it was purchased. type: number format: float starting_balance: description: | The balance on a gift certificate at the time of this purchase. type: number format: float remaining_balance: description: | The remaining balance on a gift certificate. type: number format: float status: description: | The status of a gift certificate: `active` - gift certificate is active; `pending` - gift certificate purchase is pending; `disabled` - gift certificate is disabled; `expired` - gift certificate is expired. type: string enum: - active - pending - disabled - expired AVSResult: description: Address Verification Service (AVS) result from the payment gateway. type: object properties: code: description: AVS code. type: string message: description: AVS message. type: string street_match: description: AVS Code for street matching result. type: string postal_match: description: AVS Code for postal matching result. type: string CVVResult: description: Card Verification Value result from the payment gateway. type: object properties: code: description: CVV code. type: string message: description: CVV message. type: string NoContent: description: | No-content response for the BigCommerce API. type: object properties: status: description: | 204 HTTP status code. type: integer title: description: The error title describing the situation. type: string type: type: string instance: type: string Job: description: A job. type: object properties: errors: description: The errors. type: array items: type: object properties: error: description: The error. type: string message: description: The message. type: string id: description: The identifier. type: string percent_complete: description: The percent complete. type: number result: description: The result. type: object additionalProperties: type: string status: description: The status. type: string time: description: The time. type: string warnings: description: The warnings. type: array items: type: object properties: message: description: The message. type: string warning: description: The warning. type: string Theme: description: A theme. type: object properties: variations: description: The variations. type: array items: $ref: "#/definitions/Variation" uuid: description: The identifier. type: string name: description: The theme name identifier. type: string is_private: description: Flag to identify private themes. type: boolean Variation: description: A variation. type: object properties: description: description: The description. type: string external_id: description: The external identifier. type: string name: description: The name. type: string uuid: description: The identifier. type: string JobId: description: The job identifier. type: object properties: job_id: description: The job identifier. type: string Activate: description: Request definition for activation endpoint. required: - variation_id - which properties: variation_id: description: The identifier for the variation to activate. type: string which: description: Which configuration to use. type: string enum: - original - last_activated - last_created ThemesCollectionResponse: description: | Response payload for the BigCommerce API. type: object properties: data: type: array items: $ref: "#/definitions/Theme" meta: $ref: "#/definitions/CollectionMeta" ThemeResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Theme" meta: $ref: "#/definitions/Meta" JobResponse: description: | Response payload for the BigCommerce API. type: object properties: data: $ref: "#/definitions/Job" meta: $ref: "#/definitions/Meta" WhichThemeToDownload: type: object description: | An object specifying which theme to download. One of: `original`: the original Marketplace or uploaded custom theme; `last_activated`: the theme version most recently applied to the store; `last_created`: the theme version most recently created. allOf: - type: object properties: which: description: Which revision to use. type: string enum: - original - last_activated - last_created CustomersSettings: title: ChannelSettings type: object properties: data: type: object properties: privacy_settings: type: object properties: ask_shopper_for_tracking_consent: type: boolean policy_url: type: string ask_shopper_for_tracking_consent_on_checkout: type: boolean customer_group_settings: type: object properties: guest_customer_group_id: type: integer default_customer_group_id: type: integer allow_global_logins: type: boolean CustomerCollectionResponse: description: Customer Collection Response type: object properties: data: type: array items: $ref: '#/definitions/Customer' meta: $ref: '#/definitions/CollectionMeta' Customer: title: Customer type: object properties: email: description: The email of the customer. Must be unique. type: string minLength: 3 maxLength: 255 first_name: description: The first name of the customer. type: string minLength: 1 maxLength: 100 last_name: description: The last name of the customer. type: string minLength: 1 maxLength: 100 company: description: The company of the customer. type: string minLength: 0 maxLength: 255 phone: description: The phone number of the customer. type: string minLength: 0 maxLength: 50 registration_ip_address: description: The IP address from which this customer was registered. type: string minLength: 0 maxLength: 30 notes: description: The customer notes. type: string tax_exempt_category: description: The tax exempt category code for the customer. type: string minLength: 0 maxLength: 255 customer_group_id: description: Id of the group which this customer belongs to. type: integer format: int32 id: description: The unique numeric ID of the customer. type: integer format: int32 date_modified: description: The date on which the customer was modified. type: string format: date-time date_created: description: The date of which the customer was created. type: string format: date-time address_count: description: Total number of customer addresses type: integer format: int32 attribute_count: description: Total number of customer attributes type: integer format: int32 authentication: title: Customer Authentication Base example: force_password_reset: true type: object properties: force_password_reset: description: 'If `true`, this customer will be forced to change password on next login.' type: boolean addresses: description: Array of customer addresses. Limited to 10 type: array maxItems: 10 items: title: Address type: object properties: first_name: description: The first name of the customer address. type: string minLength: 1 maxLength: 255 last_name: description: The last name of the customer address. type: string minLength: 1 maxLength: 255 company: description: The company of the customer address. type: string minLength: 0 maxLength: 255 address1: description: The address 1 line. type: string address2: description: The address 2 line. type: string city: description: The city of the customer address. type: string minLength: 0 maxLength: 100 state_or_province: description: The state or province name type: string minLength: 0 maxLength: 100 postal_code: description: The postal code of the customer address. type: string minLength: 0 maxLength: 30 country_code: description: The country code of the customer address. type: string minLength: 2 maxLength: 2 phone: description: The phone number of the customer address. type: string minLength: 0 maxLength: 50 address_type: title: Address Type description: The address type. Residential or Commercial example: residential type: string enum: - residential - commercial customer_id: description: The customer ID. type: integer format: int32 id: description: The unique numeric ID of the address. type: integer format: int32 country: description: The country name of the customer address. type: string form_fields: description: Array of form fields. Controlled by `formfields` parameter. type: array items: title: 'Form Field Value' type: object required: - first_name - last_name - address1 - city - state_or_province - postal_code - country_code - customer_id - id attributes: description: Array of customer attributes. Limited to 10 type: array maxItems: 10 items: title: Customer Attribute Value type: object properties: attribute_id: description: Attribute ID. type: integer format: int32 value: description: 'Attribute value. This will always be a string, regardless of the attributes type.' type: string minLength: 0 maxLength: 255 id: description: Attribute value ID. type: integer format: int32 customer_id: description: Customer ID. type: integer format: int32 date_modified: description: The date on which the customer attribute value was modified. type: string format: date-time date_created: description: The date of which the customer attribute value was created. type: string format: date-time required: - attribute_id - value - customer_id form_fields: description: Array of form fields. Controlled by `formfields` parameter. type: array items: title: 'Form Field Value' type: object store_credit_amounts: $ref: '#/definitions/storeCreditAmounts' accepts_product_review_abandoned_cart_emails: type: boolean description: It determines if the customer is signed up to receive either product review or abandoned cart emails or recieve both emails. channel_ids: $ref: '#/definitions/customerChannelIds' storeCreditAmounts: description: 'Store credit.' type: array format: double items: type: object properties: amount: type: number format: float example: 43.18 customerChannelIds: type: array title: customerChannelIds description: Array of channel ids the Customer has access to. items: type: integer