> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # AddDeliveryRegion # Package: shippingDelivery # Namespace: DeliveryProfiles # Method link: https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/add-delivery-region.md ## Permission Scopes: Manage eCommerce - all permissions: SCOPE.DC-ECOM-MEGA.MANAGE-ECOM ## Introduction Adds a delivery region to an existing delivery profile. --- ## REST API ### Schema ``` Method: addDeliveryRegion Description: Adds a delivery region to an existing delivery profile. URL: https://www.wixapis.com/ecom/v1/delivery-profiles/{deliveryProfileId}/delivery-region Method: POST # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: deliveryRegion, deliveryRegion.name, deliveryRegion.destinations.countryCode Method parameters: param name: deliveryRegion | type: DeliveryRegion | description: A delivery region defines a geographic area and its associated delivery carriers. Each region specifies destinations (countries and subdivisions) where products can be shipped and the carriers available for those deliveries. During the eCommerce onboarding flow, an "International" region with empty destinations is automatically created. This serves as a "Rest of World" configuration that applies to destinations not explicitly defined in other regions. | required: true - name: name | type: string | description: Delivery region name. For example, `"Domestic"` or `"International"`. | required: true - name: active | type: boolean | description: Whether this delivery region is active and available during checkout. Default: `true` - name: destinations | type: array | description: Geographic destinations covered by this region. If empty, the region applies globally (Rest of World). A site can have up to 250 destinations across all delivery profiles. - name: countryCode | type: string | description: 2-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format. - name: subdivisions | type: array | description: Subdivision codes in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. For example, `"US-CA"` for California. If empty, the delivery region applies to the entire country. The following countries don't support subdivision-level delivery and require an empty `subdivisions` list. Sending subdivisions for these countries fails with `SUBDIVISIONS_UNSUPPORTED_FOR_COUNTRY`: `AT`, `BE`, `BS`, `CH`, `CI`, `CZ`, `DO`, `GR`, `NO`, `PL`, `RS`, `SD`, `SI`, `SK`, `SN`. param name: revision | type: revision | description: Delivery profile revision. Return type: AddDeliveryRegionResponse - name: deliveryProfile | type: DeliveryProfile | description: Updated delivery profile with the new delivery region. - name: id | type: string | description: Delivery profile GUID. - name: name | type: string | description: Delivery profile name. - name: default | type: boolean | description: Whether this is the default delivery profile. > **Notes:** > > - The first delivery profile is automatically created and marked as default when the Wix Stores, Wix Bookings, Wix Events, or Wix Restaurants business solutions are installed on a site. > - Default status can't be changed or transferred to another profile. > - The default profile can't be deleted because every site requires one for core delivery functionality. - name: deliveryRegions | type: array | description: Delivery regions in this profile. - name: id | type: string | description: Delivery region GUID. - name: name | type: string | description: Delivery region name. For example, `"Domestic"` or `"International"`. - name: active | type: boolean | description: Whether this delivery region is active and available during checkout. Default: `true` - name: deliveryCarriers | type: array | description: Delivery carriers assigned to this region. Carriers are managed using the [Add Delivery Carrier](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/add-delivery-carrier.md), [Update Delivery Carrier](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/update-delivery-carrier.md), and [Remove Delivery Carrier](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/remove-delivery-carrier.md) methods. - name: appId | type: string | description: Carrier app GUID. Get app GUIDs from the [app dashboard](https://dev.wix.com/dc3/my-apps/), or by calling [List Installed Delivery Carriers](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/list-installed-delivery-carriers.md). - name: backupRate | type: BackupRate | description: Backup rate to use when the carrier doesn't return a rate for a specific shipping option. When `active` is `false` and the carrier doesn't return a rate, the carrier's shipping options aren't shown to customers. - name: title | type: string | description: Title displayed for the backup rate. For example, `"Standard Shipping"`. - name: amount | type: string | description: Backup rate amount. - name: active | type: boolean | description: Whether the backup rate is active. The backup rate is used in the following situations: + When `active` is `true`. + When the carrier does not return a cost for any reason. If active, and no cost is returned by the carrier, the backup rate will be displayed to customers as the shipping option. Default: `false` - name: additionalCharges | type: array | description: Additional charges to add to the delivery rate. These charges are combined with the carrier's rate into a single shipping cost and itemized in order details. - name: description | type: string | description: Description of the additional charge. For example, `"Handling fee of $5 applied for gift wrapping"`. - name: amount | type: string | description: Additional fixed charge amount to add to the delivery rate. For example, `"12.50"`. - name: destinations | type: array | description: Geographic destinations covered by this region. If empty, the region applies globally (Rest of World). A site can have up to 250 destinations across all delivery profiles. - name: countryCode | type: string | description: 2-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format. - name: subdivisions | type: array | description: Subdivision codes in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. For example, `"US-CA"` for California. If empty, the delivery region applies to the entire country. The following countries don't support subdivision-level delivery and require an empty `subdivisions` list. Sending subdivisions for these countries fails with `SUBDIVISIONS_UNSUPPORTED_FOR_COUNTRY`: `AT`, `BE`, `BS`, `CH`, `CI`, `CZ`, `DO`, `GR`, `NO`, `PL`, `RS`, `SD`, `SI`, `SK`, `SN`. - name: createdDate | type: string | description: Date and time the delivery region was created. - name: createdBy | type: CreatedBy | description: Information about who created the delivery profile. Currently only for use with Wix Restaurants. - ONE-OF: - name: appId | type: string | description: App GUID, when the delivery profile was created by an external application or Wix service. - name: userId | type: string | description: Wix user GUID, when the delivery profile was created by a Wix user using the dashboard or an API call. - name: revision | type: string | description: Revision number, which increments by 1 each time the delivery profile is updated. To prevent conflicting changes, the current revision must be passed when updating the delivery profile. Ignored when creating a delivery profile. - name: createdDate | type: string | description: Date and time the delivery profile was created. - name: updatedDate | type: string | description: Date and time the delivery profile was last updated. - name: extendedFields | type: ExtendedFields | description: Custom field data for the delivery profile object. [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md) must be configured in the app dashboard before they can be accessed with API calls. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). Possible Errors: HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: DELIVERY_REGION_NAME_ALREADY_EXISTS | Description: A delivery region with this name already exists. HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: DELIVERY_PROFILE_NOT_FOUND | Description: Couldn't find the delivery profile. HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: SUBDIVISIONS_UNSUPPORTED_FOR_COUNTRY | Description: Returned when a `destinations` entry sets `subdivisions` for a country that doesn't support subdivision-level delivery. Remove `subdivisions` from the destination, or use a supported country. HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: DELIVERY_CARRIER_MISSING_BACKUP_RATE | Description: The delivery carrier requires a `backupRate` to be set. HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: UNKNOWN_DELIVERY_CARRIER | Description: The specified `appId` of one or more delivery carriers doesn't exist. HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: DESTINATIONS_COLLISION | Description: One or more destinations already exist in another delivery region within this profile. ``` ### Examples ### Add delivery region Adds a delivery region to an existing delivery profile ```curl curl -X POST \ 'https://www.wixapis.com/ecom/v1/delivery-profiles/8046df3c-7575-4098-a5ab-c91ad8f33c47/delivery-region' \ -H 'Authorization: ' \ -H 'Content-Type: application/json' \ -d '{ "deliveryRegion": { "name": "North America", "active": true, "destinations": [ { "countryCode": "US", "subdivisions": ["US-CA", "US-NY", "US-TX"] }, { "countryCode": "CA", "subdivisions": ["CA-ON", "CA-BC", "CA-QC"] } ], "deliveryCarriers": [ { "appId": "45c44b27-ca7b-4891-8c0d-1747d588b835", "backupRate": { "title": "Standard Shipping", "amount": "9.99", "active": true }, "additionalCharges": [ { "description": "Handling fee for fragile items", "amount": "2.50" }, { "description": "Insurance coverage fee", "amount": "1.99" } ] } ] }, "revision": "1" }' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.shippingDelivery.DeliveryProfiles.addDeliveryRegion(deliveryProfileId, deliveryRegion, options) Description: Adds a delivery region to an existing delivery profile. # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: deliveryProfileId, deliveryRegion, deliveryRegion.name, deliveryRegion.destinations.countryCode Method parameters: param name: deliveryProfileId | type: string | description: Delivery profile GUID. | required: true param name: deliveryRegion | type: AddDeliveryRegion | description: A delivery region defines a geographic area and its associated delivery carriers. Each region specifies destinations (countries and subdivisions) where products can be shipped and the carriers available for those deliveries. During the eCommerce onboarding flow, an "International" region with empty destinations is automatically created. This serves as a "Rest of World" configuration that applies to destinations not explicitly defined in other regions. | required: true - name: name | type: string | description: Delivery region name. For example, `"Domestic"` or `"International"`. | required: true - name: active | type: boolean | description: Whether this delivery region is active and available during checkout. Default: `true` - name: destinations | type: array | description: Geographic destinations covered by this region. If empty, the region applies globally (Rest of World). A site can have up to 250 destinations across all delivery profiles. - name: countryCode | type: string | description: 2-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format. - name: subdivisions | type: array | description: Subdivision codes in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. For example, `"US-CA"` for California. If empty, the delivery region applies to the entire country. The following countries don't support subdivision-level delivery and require an empty `subdivisions` list. Sending subdivisions for these countries fails with `SUBDIVISIONS_UNSUPPORTED_FOR_COUNTRY`: `AT`, `BE`, `BS`, `CH`, `CI`, `CZ`, `DO`, `GR`, `NO`, `PL`, `RS`, `SD`, `SI`, `SK`, `SN`. param name: options | type: AddDeliveryRegionOptions none Return type: PROMISE - name: deliveryProfile | type: DeliveryProfile | description: Updated delivery profile with the new delivery region. - name: _id | type: string | description: Delivery profile GUID. - name: name | type: string | description: Delivery profile name. - name: default | type: boolean | description: Whether this is the default delivery profile. > **Notes:** > > - The first delivery profile is automatically created and marked as default when the Wix Stores, Wix Bookings, Wix Events, or Wix Restaurants business solutions are installed on a site. > - Default status can't be changed or transferred to another profile. > - The default profile can't be deleted because every site requires one for core delivery functionality. - name: deliveryRegions | type: array | description: Delivery regions in this profile. - name: _id | type: string | description: Delivery region GUID. - name: name | type: string | description: Delivery region name. For example, `"Domestic"` or `"International"`. - name: active | type: boolean | description: Whether this delivery region is active and available during checkout. Default: `true` - name: deliveryCarriers | type: array | description: Delivery carriers assigned to this region. Carriers are managed using the [Add Delivery Carrier](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/add-delivery-carrier.md), [Update Delivery Carrier](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/update-delivery-carrier.md), and [Remove Delivery Carrier](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/remove-delivery-carrier.md) methods. - name: appId | type: string | description: Carrier app GUID. Get app GUIDs from the [app dashboard](https://dev.wix.com/dc3/my-apps/), or by calling [List Installed Delivery Carriers](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/list-installed-delivery-carriers.md). - name: backupRate | type: BackupRate | description: Backup rate to use when the carrier doesn't return a rate for a specific shipping option. When `active` is `false` and the carrier doesn't return a rate, the carrier's shipping options aren't shown to customers. - name: title | type: string | description: Title displayed for the backup rate. For example, `"Standard Shipping"`. - name: amount | type: string | description: Backup rate amount. - name: active | type: boolean | description: Whether the backup rate is active. The backup rate is used in the following situations: + When `active` is `true`. + When the carrier does not return a cost for any reason. If active, and no cost is returned by the carrier, the backup rate will be displayed to customers as the shipping option. Default: `false` - name: additionalCharges | type: array | description: Additional charges to add to the delivery rate. These charges are combined with the carrier's rate into a single shipping cost and itemized in order details. - name: description | type: string | description: Description of the additional charge. For example, `"Handling fee of $5 applied for gift wrapping"`. - name: amount | type: string | description: Additional fixed charge amount to add to the delivery rate. For example, `"12.50"`. - name: destinations | type: array | description: Geographic destinations covered by this region. If empty, the region applies globally (Rest of World). A site can have up to 250 destinations across all delivery profiles. - name: countryCode | type: string | description: 2-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format. - name: subdivisions | type: array | description: Subdivision codes in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. For example, `"US-CA"` for California. If empty, the delivery region applies to the entire country. The following countries don't support subdivision-level delivery and require an empty `subdivisions` list. Sending subdivisions for these countries fails with `SUBDIVISIONS_UNSUPPORTED_FOR_COUNTRY`: `AT`, `BE`, `BS`, `CH`, `CI`, `CZ`, `DO`, `GR`, `NO`, `PL`, `RS`, `SD`, `SI`, `SK`, `SN`. - name: _createdDate | type: Date | description: Date and time the delivery region was created. - name: createdBy | type: CreatedBy | description: Information about who created the delivery profile. Currently only for use with Wix Restaurants. - ONE-OF: - name: appId | type: string | description: App GUID, when the delivery profile was created by an external application or Wix service. - name: userId | type: string | description: Wix user GUID, when the delivery profile was created by a Wix user using the dashboard or an API call. - name: revision | type: string | description: Revision number, which increments by 1 each time the delivery profile is updated. To prevent conflicting changes, the current revision must be passed when updating the delivery profile. Ignored when creating a delivery profile. - name: _createdDate | type: Date | description: Date and time the delivery profile was created. - name: _updatedDate | type: Date | description: Date and time the delivery profile was last updated. - name: extendedFields | type: ExtendedFields | description: Custom field data for the delivery profile object. [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md) must be configured in the app dashboard before they can be accessed with API calls. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). Possible Errors: HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: DELIVERY_REGION_NAME_ALREADY_EXISTS | Description: A delivery region with this name already exists. HTTP Code: 404 | Status Code: NOT_FOUND | Application Code: DELIVERY_PROFILE_NOT_FOUND | Description: Couldn't find the delivery profile. HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: SUBDIVISIONS_UNSUPPORTED_FOR_COUNTRY | Description: Returned when a `destinations` entry sets `subdivisions` for a country that doesn't support subdivision-level delivery. Remove `subdivisions` from the destination, or use a supported country. HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: DELIVERY_CARRIER_MISSING_BACKUP_RATE | Description: The delivery carrier requires a `backupRate` to be set. HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: UNKNOWN_DELIVERY_CARRIER | Description: The specified `appId` of one or more delivery carriers doesn't exist. HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: DESTINATIONS_COLLISION | Description: One or more destinations already exist in another delivery region within this profile. ``` ### Examples ### Add delivery region to delivery profile ```javascript import { deliveryProfile } from "@wix/ecom"; const deliveryRegion = { name: "North America", active: true, destinations: [ { countryCode: "US", subdivisions: ["US-CA", "US-NY", "US-TX"] }, { countryCode: "CA", subdivisions: ["CA-ON", "CA-BC", "CA-QC"] }, ], }; async function addDeliveryRegion() { const response = await deliveryProfile.addDeliveryRegion( "8046df3c-7575-4098-a5ab-c91ad8f33c47", deliveryRegion, { revision: "1" } ); return response; } ``` ### addDeliveryRegion (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { deliveryProfile } from '@wix/ecom'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { deliveryProfile }, // Include the auth strategy and host as relevant }); async function addDeliveryRegion(deliveryProfileId,deliveryRegion,options) { const response = await myWixClient.deliveryProfile.addDeliveryRegion(deliveryProfileId,deliveryRegion,options); }; ``` ---