Update Shipping Method

Updates a *Shipping Method* in a zone. Real Time Carrier Connections are also supported by this endpoint. **Read Only Fields** * id ### Settings Objects A shipping methodʼs `type` and `settings` properties can match one of the following models: #### perorder Object – Properties Object model for flat-rate shipping quotes per order. | Property | Type | Description | | - | - | - | | rate | number | Flat rate per order. | Example response: ```json { "name": "Flat Rate per Order", "type": "perorder", "settings": { "rate": 7 } }, ``` #### peritem Object – Properties Object model for flat-rate shipping quotes per item ordered. | Property | Type | Description | | - | - | - | | rate | number | Flat rate per item. | Example response: ```json { "name": "Flat Rate per Item", "type": "peritem", "settings": { "rate": 8 } }, ``` #### weight Object – Properties Object model for shipping quotes by weight. | Property | Type | Description | | - | - | - | | default_cost | number | null | Default shipping cost, applied either as a percentage of the orderʼs total value or as a fixed amount. If default cost is not required, you can supply a value of null. | | default_cost_type | string | How the default shipping cost is calculated; either `percentage_of_total` or `fixed_amount`. | | range | number | Array of [range](#range-object--properties) objects. The units for these ranges' `lower_limit` and `upper_limit` properties depend on the default units set in the storeʼs control panel. | Example response: ```json { "name": "Rate per Weight", "type": "weight", "settings": { "default_cost": 12, "default_cost_type": "fixed_amount", "range": [ { "lower_limit": 0, "upper_limit": 20, "shipping_cost": 8 }, { "lower_limit": 20, "upper_limit": 40, "shipping_cost": 12 } ] } } ``` #### total Object – Properties Object model for shipping quotes by orderʼs total value. | Property | Type | Description | | - | - | - | | default_cost | number | null | Default shipping cost, applied either as a percentage of the orderʼs total value or as a fixed amount. If default cost is not required, you can supply a value of null. | | default_cost_type | string | How the default shipping cost is calculated; either `percentage_of_total` or `fixed_amount`. | | range | number | Array of [range](#range-object--properties) objects. The units for these ranges' `lower_limit` and `upper_limit` properties are values in the storeʼs currency. | Example response: This example sets free shipping above a certain order total: ```json { "name": "Per Total or Free", "type": "total", "settings": { "default_cost": 12, "default_cost_type": "fixed_amount", "range": [ { "lower_limit": 0, "upper_limit": 5, "shipping_cost": 5 }, { "lower_limit": 5, "upper_limit": 10, "shipping_cost": 8 }, { "lower_limit": 10, "upper_limit": 20, "shipping_cost": 10 }, { "lower_limit": 20, "upper_limit": 49.99, "shipping_cost": 15 }, { "lower_limit": 50, "upper_limit": 100000, "shipping_cost": 0 } ] } } ``` #### Range Object – Properties Object model to define ranges for shipping quotes. Units are defined in the parent object. | Property | Type | Description | | - | - | - | | lower_limit | number | Lower limit for order total. | | upper_limit | number | Upper limit for order total. | | shipping_cost | number | Shipping cost for orders whose total falls between the lower and upper limits. | Example response: ```json { "lower_limit": 0, "upper_limit": 20, "shipping_cost": 8 } ``` ### Channels Example request body: ```json { "name": "Method associated to channels 1, 3", "type": "peritem", "settings": { "rate": 5 }, "channel_ids": [1, 3] } ``` | Property | Type | Description | | - | - | - | | channel_ids | array | Channels associated with the method as an array of integers. |

Authentication

X-Auth-Tokenstring
### OAuth scopes | UI Name | Permission | Parameter | |:--------|:-----------|:----------| | Information & Settings | modify | `store_v2_information` | | Information & Settings | read-only | `store_v2_information_read_only` | ### Authentication header | Header | Argument | Description | | - | - | - | | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/developer/docs/overview/api-accounts#api-accounts). | ### Further reading For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/developer/docs/overview/api-accounts#x-auth-token-header-example-requests). For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/developer/docs/overview/api-accounts#oauth-scopes). For a list of API status codes, see [API Status Codes](/developer/api-reference/rest/overview#rest-http-status-codes).

Path parameters

zone_idstringRequired
method_idstringRequired

Request

This endpoint expects an object.
namestringOptional
Display name for shipping method.
typeenumOptional
settingsobjectOptional

Depends on the shipping method type. See the supported settings object.

enabledbooleanOptional
Whether or not this shipping zone method is enabled.
handling_feesobjectOptional
is_fallbackbooleanOptional
Whether or not this shipping method is a fallback method used when advanced shipping rules are unavailable.
channel_idslist of integersOptional

List of channels associated to a method. When creating a new method, all available channels are associated by default. (Optional)

Response

channel_idslist of integers

List of channels associated to a method. When creating a new method, all available channels are associated by default. (Optional)

enabledboolean
Whether or not this shipping zone method is enabled.
handling_feesobject
idintegerRead-only

Shipping method ID. Read-only.

is_fallbackboolean
Whether or not this shipping method is a fallback method used when advanced shipping rules are unavailable.
namestring
Display name for shipping method.
settingsobject

Depends on the shipping method type. See the supported settings object.

typeenum