Metafields

Get Product Metafields

GET /catalog/products/{product_id}/metafields

Request

Returns a list of Product Metafields. Optional parameters can be passed in.

Authentication

  • X-Auth-Token in header

Parameters

  • store_hash in path - string
  • Accept in header with default of application/json - string
    required
    The MIME type of the response body.
  • product_id in path - integer
    required

    The ID of the Product to which the resource belongs.

  • page in query - integer

    Specifies the page number in a limited (paginated) list of products.

  • limit in query with default of 50 - integer

    Controls the number of items per page in a limited (paginated) list of products.

  • key in query - string
    Filter based on a metafieldʼs key.
  • namespace in query - string
    Filter based on a metafieldʼs namespaces.
  • include_fields in query - array
    Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
    Type: array[string]

    Allowed: name | type | sku | description | weight | width | depth | height | price | cost_price | retail_price | sale_price | map_price | tax_class_id | product_tax_code | calculated_price | categories | brand_id | option_set_id | option_set_display | inventory_level | inventory_warning_level | inventory_tracking | reviews_rating_sum | reviews_count | total_sold | fixed_cost_shipping_price | is_free_shipping | is_visible | is_featured | related_products | warranty | bin_picking_number | layout_file | upc | mpn | gtin | date_last_imported | search_keywords | availability | availability_description | condition | is_condition_shown | order_quantity_minimum | order_quantity_maximum | page_title | meta_keywords | meta_description | date_created | date_modified | view_count | preorder_release_date | preorder_message | is_preorder_only | is_price_hidden | price_hidden_label | custom_url | base_variant_id | open_graph_type | open_graph_title | open_graph_description | open_graph_use_meta_description | open_graph_use_product_name | open_graph_use_image

  • exclude_fields in query - array
    Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID cannot be excluded.
    Type: array[string]

example

curl --request GET \
--url 'https://api.bigcommerce.com/stores/[store_hash]/v3/catalog/products/[product_id]/metafields' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: {{token}}'

Response

Body

object | application/json
  • data
    array[object]

  • meta
    object

    Data about the response, including pagination and collection totals.

example

{
"data": [
{
"id": 6,
"key": "Location",
"value": "4HG",
"namespace": "Warehouse Locations",
"permission_set": "app_only",
"resource_type": "product",
"resource_id": 111,
"description": "Location in the warehouse",
"date_created": "1973-01-20T21:34:57.903Z",
"date_modified": "1990-12-30T00:29:23.515Z"
},
{
"id": 7,
"key": "Sublocation",
"value": "4HG",
"namespace": "Warehouse Locations",
"permission_set": "read",
"resource_type": "product",
"resource_id": 111,
"description": "Location in the warehouse",
"date_created": "1973-01-20T21:34:57.903Z",

Create a Product Metafield

POST /catalog/products/{product_id}/metafields

Request

Creates a Product Metafield.

Required Fields:

  • permission_set
  • namespace
  • key
  • value

Note: The maxiumum number of metafields allowed on each order, product, category, variant, or brand is 250 per client ID. For more information, see Platform Limits in the Help Center.

Authentication

  • X-Auth-Token in header

Parameters

  • store_hash in path - string
  • Accept in header with default of application/json - string
    required
    The MIME type of the response body.
  • product_id in path - integer
    required

    The ID of the Product to which the resource belongs.

  • Content-Type in header with default of application/json - string
    required
    The MIME type of the request body.

Body

object | application/json
Metafield for products, categories, variants, and brands; the max number of metafields allowed on each is 250. For more information, see Platform Limits in the Help Center.
  • key
    string
    required

    The name of the field, for example: location_id, color. Required for POST.

    >= 1 characters<= 64 characters
    Example: Location
  • value
    string
    required

    The value of the field, for example: 1, blue. You must enter a JSON formatted string for ShipperHQ metafields. Required for POST.

    >= 1 characters<= 65535 characters
    Example: 4HG
  • namespace
    string
    required

    Namespace for the metafield, for organizational purposes. This is set by the developer. Required for POST.

    >= 1 characters<= 64 characters
    Example: Warehouse Locations
  • permission_set
    string
    required

    Determines the visibility and writeability of the field by other API consumers.

    ValueDescription
    app_onlyPrivate to the app that owns the field
    readVisible to other API consumers
    writeOpen for reading and writing by other API consumers
    read_and_sf_accessVisible to other API consumers, including on storefront
    write_and_sf_accessOpen for reading and writing by other API consumers, including on storefront

    Allowed: app_only | read | write | read_and_sf_access | write_and_sf_access

  • description
    string

    Description for the metafields.

    >= 0 characters<= 255 characters
    Example: Location in the warehouse

example

{
"key": "Location",
"value": "4HG",
"namespace": "Warehouse Locations",
"permission_set": "app_only",
"description": "Location in the warehouse"
}

Response

Body

object | application/json
  • data
    object

    Metafield for products, categories, variants, and brands; the max number of metafields allowed on each is 250. For more information, see Platform Limits in the Help Center.
  • meta
    object

    Response metadata.

example

{
"data": {
"id": 8,
"key": "location_id",
"value": "Shelf 3, Bin 5",
"namespace": "Inventory Namespace",
"permission_set": "read",
"resource_type": "product",
"resource_id": 158,
"description": "Where products are located",
"date_created": "2018-09-13T16:42:37+00:00",
"date_modified": "2018-09-13T16:42:37+00:00"
},
"meta": {}
}

Get a Product Metafield

GET /catalog/products/{product_id}/metafields/{metafield_id}

Request

Returns a single Product Metafield. Optional parameters can be passed in.

Authentication

  • X-Auth-Token in header

Parameters

  • store_hash in path - string
  • Accept in header with default of application/json - string
    required
    The MIME type of the response body.
  • product_id in path - integer
    required

    The ID of the Product to which the resource belongs.

  • metafield_id in path - integer
    required

    The ID of the Metafield.

  • include_fields in query - array
    Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
    Type: array[string]

    Allowed: name | type | sku | description | weight | width | depth | height | price | cost_price | retail_price | sale_price | map_price | tax_class_id | product_tax_code | calculated_price | categories | brand_id | option_set_id | option_set_display | inventory_level | inventory_warning_level | inventory_tracking | reviews_rating_sum | reviews_count | total_sold | fixed_cost_shipping_price | is_free_shipping | is_visible | is_featured | related_products | warranty | bin_picking_number | layout_file | upc | mpn | gtin | date_last_imported | search_keywords | availability | availability_description | condition | is_condition_shown | order_quantity_minimum | order_quantity_maximum | page_title | meta_keywords | meta_description | date_created | date_modified | view_count | preorder_release_date | preorder_message | is_preorder_only | is_price_hidden | price_hidden_label | custom_url | base_variant_id | open_graph_type | open_graph_title | open_graph_description | open_graph_use_meta_description | open_graph_use_product_name | open_graph_use_image

  • exclude_fields in query - array
    Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID cannot be excluded.
    Type: array[string]

example

curl --request GET \
--url 'https://api.bigcommerce.com/stores/[store_hash]/v3/catalog/products/[product_id]/metafields/[metafield_id]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: {{token}}'

Response

Body

object | application/json
  • data
    object

    Metafield for products, categories, variants, and brands; the max number of metafields allowed on each is 250. For more information, see Platform Limits in the Help Center.
  • meta
    object

    Response metadata.

example

{
"data": {
"id": 4,
"key": "location_id",
"value": "Shelf 3, Bin 5",
"namespace": "App Namespace",
"permission_set": "app_only",
"resource_type": "product",
"resource_id": 137,
"description": "Where products are located",
"date_created": "2021-08-06T19:15:35+00:00",
"date_modified": "2021-08-06T19:15:35+00:00"
},
"meta": {}
}

Update a Product Metafield

PUT /catalog/products/{product_id}/metafields/{metafield_id}

Request

Updates a Product Metafield.

Required Fields

  • none

Read-Only Fields

  • id
  • These fields can only be modified using the API account that created the metafield:
    • namespace
    • key
    • permission_set
    • value

Usage Notes

  • Attempting to modify the namespace, key, permission_set, or value field using an API account different from the one used to create those metafields will result in a 403 error message.

Authentication

  • X-Auth-Token in header

Parameters

  • store_hash in path - string
  • Accept in header with default of application/json - string
    required
    The MIME type of the response body.
  • product_id in path - integer
    required

    The ID of the Product to which the resource belongs.

  • metafield_id in path - integer
    required

    The ID of the Metafield.

  • Content-Type in header with default of application/json - string
    required
    The MIME type of the request body.

Body

object | application/json
Metafield for products, categories, variants, and brands; the max number of metafields allowed on each is 250. For more information, see Platform Limits in the Help Center.
  • key
    string
    required

    The name of the field, for example: location_id, color. Required for POST.

    >= 1 characters<= 64 characters
    Example: Location
  • value
    string
    required

    The value of the field, for example: 1, blue. You must enter a JSON formatted string for ShipperHQ metafields. Required for POST.

    >= 1 characters<= 65535 characters
    Example: 4HG
  • namespace
    string
    required

    Namespace for the metafield, for organizational purposes. This is set by the developer. Required for POST.

    >= 1 characters<= 64 characters
    Example: Warehouse Locations
  • permission_set
    string
    required

    Determines the visibility and writeability of the field by other API consumers.

    ValueDescription
    app_onlyPrivate to the app that owns the field
    readVisible to other API consumers
    writeOpen for reading and writing by other API consumers
    read_and_sf_accessVisible to other API consumers, including on storefront
    write_and_sf_accessOpen for reading and writing by other API consumers, including on storefront

    Allowed: app_only | read | write | read_and_sf_access | write_and_sf_access

  • description
    string

    Description for the metafields.

    >= 0 characters<= 255 characters
    Example: Location in the warehouse

example

{
"key": "Location",
"value": "4HG",
"namespace": "Warehouse Locations",
"permission_set": "app_only",
"description": "Location in the warehouse"
}

Response

Body

object | application/json
  • data
    object

    Metafield for products, categories, variants, and brands; the max number of metafields allowed on each is 250. For more information, see Platform Limits in the Help Center.
  • meta
    object

    Response metadata.

example

{
"data": {
"id": 4,
"key": "location_id",
"value": "Shelf 3, Bin 5",
"namespace": "App Namespace",
"permission_set": "app_only",
"resource_type": "product",
"resource_id": 137,
"description": "Where products are located",
"date_created": "2021-08-06T19:15:35+00:00",
"date_modified": "2021-08-06T19:15:35+00:00"
},
"meta": {}
}

Delete a Product Metafield

DELETE /catalog/products/{product_id}/metafields/{metafield_id}

Request

Deletes a Product Metafield.

Authentication

  • X-Auth-Token in header

Parameters

  • store_hash in path - string
  • Accept in header with default of application/json - string
    required
    The MIME type of the response body.
  • product_id in path - integer
    required

    The ID of the Product to which the resource belongs.

  • metafield_id in path - integer
    required

    The ID of the Metafield.

example

curl --request DELETE \
--url 'https://api.bigcommerce.com/stores/[store_hash]/v3/catalog/products/[product_id]/metafields/[metafield_id]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: {{token}}'

Response

Did you find what you were looking for?