Call List Installed Delivery Carriers to find the Pickup carrier's id.
Endpoint: GET https://www.wixapis.com/ecom/v1/delivery-profiles/installed-carriers
Response:
Look for the carrier with "displayName": "Pickup" and save its id. This is the appId you will use in Step 4.
If no Pickup carrier appears in the list, the Pickup app is not installed on the site and must be installed before proceeding.
Call Query Delivery Profiles to retrieve the site's default delivery profile.
Endpoint: POST https://www.wixapis.com/ecom/v1/delivery-profiles/query
Request:
The response contains an array of deliveryProfiles. Find the one where "default": true. Save its id and revision. Inspect its deliveryRegions array.
Decision point:
destinations[].countryCode): save that region's id → skip to Step 4.If no region exists for the user's country in the default profile, call Add Delivery Region to create one.
Endpoint: POST https://www.wixapis.com/ecom/v1/delivery-profiles/{deliveryProfileId}/delivery-region
Replace {deliveryProfileId} with the default profile's id from Step 2.
Request:
name: descriptive, e.g. "{Country} Pickup".countryCode: ISO-3166 alpha-2 code (e.g. "US", "IL", "DE", "GB").revision: from the profile returned in Step 2.Response:
Save the new region's id from the response.
Call Add Delivery Carrier to attach the Pickup carrier to the delivery region.
Endpoint: POST https://www.wixapis.com/ecom/v1/delivery-profiles/add-delivery-carrier
Request:
deliveryRegionId: from Step 2 (existing region) or Step 3 (new region).appId: the Pickup carrier id from Step 1.backupRate.title: the pickup address customers see at checkout.backupRate.amount: "0" for free pickup, or a price string like "5.00".backupRate.active: must be true for the option to appear at checkout.Response:
| Error | Cause | Fix |
|---|---|---|
DESTINATIONS_COLLISION | The country is already assigned to another region in the same profile. | Skip Step 3 — use the existing region's id and add the carrier to it in Step 4. |
CARRIER_ALREADY_EXISTS_IN_REGION | The Pickup carrier is already configured in this region. | The pickup option is already set up. No action needed. |
DELIVERY_CARRIER_MISSING_BACKUP_RATE | The backupRate or backupRate.amount field is missing. | Ensure backupRate includes title, amount, and active. |