Flow: Fix Shipping Coverage Gaps

Download skillThe skill is a reference md and part of wix-manage skill. You can use the following command to add the full wix-manage skill to your project:
Copy

Before executing this skill, read these referenced skills with ReadFullDocsArticle:

Detects delivery regions where customers cannot see any shipping options at checkout and creates standard shipping to fill the gaps. A coverage gap is a HIGH priority blocking issue -- customers in affected destinations literally cannot complete a purchase.

Prerequisites

  • Wix Stores (or another eCommerce business solution) installed on the site
  • Site metrics available for AOV-based rate calculation (effective_aov)
  • Delivery profiles configured with at least one region

Required APIs


Step 1: Query all delivery profiles

Retrieve all delivery profiles to build a complete map of regions and their carriers.

Endpoint: POST https://www.wixapis.com/ecom/v1/delivery-profiles/query

Request:

Copy

Response:

Copy

Save every region id, name, active status, and carrier appId values.


Step 2: Query all shipping options

Retrieve all shipping options to determine which regions already have coverage.

Endpoint: POST https://www.wixapis.com/ecom/v1/shipping-options/query

Request:

Copy

Response:

Copy

Build a map of deliveryRegionId to the count of shipping options linked to it.


Step 3: Cross-reference regions and options to find gaps

For each deliveryRegion across all profiles, apply these checks in order:

3a: Skip externally managed regions

If ALL carriers in the region have an external appId (e.g., Shippo appId: "2b1943e2-3fc2-47bc-be56-3d402e5966d7"), skip the region entirely. External carriers manage their own rates.

3b: Skip inactive regions

If active=false, skip. Inactive regions are not shown at checkout regardless of shipping options.

3c: Count linked shipping options

Count how many shipping options have this region's id in their deliveryRegionId field. If the count is zero, this is a coverage gap.

Severity: HIGH -- blocking. Customers shipping to this region's destinations cannot see any shipping options and cannot complete checkout.

3d: Check for options linked only to inactive regions

For each shipping option, check if ALL of its linked regions have active=false. If so, the option exists but is invisible at checkout. This is a configuration issue worth flagging.

3e: Check for orphaned options

For each shipping option, verify that its deliveryRegionId actually exists in one of the delivery profiles. If the region no longer exists, the option is orphaned -- it exists in the system but is never shown to customers.


Step 4: Create shipping options for each gap

For each region identified as having zero coverage, create a standard shipping option and a free shipping tier.

4a: Calculate rates

  • Standard rate: 5-10% of effective_aov (e.g., if effective_aov is $60, rate is $3.00-$6.00)
  • Free shipping threshold: effective_aov x 1.2 (e.g., if effective_aov is $60, threshold is $72)
  • Always set estimatedDeliveryTime -- never leave it empty. Use "5-7 business days" for domestic, "7-14 business days" for international.

4b: Create standard shipping option

Endpoint: POST https://www.wixapis.com/ecom/v1/shipping-options

Request:

Copy

Response:

Copy

4c: Create free shipping option with threshold

Endpoint: POST https://www.wixapis.com/ecom/v1/shipping-options

Request:

Copy

Step 5: Verify the fix

After creating options for all gaps, re-query shipping options to confirm:

  1. New options appear in the list with correct titles and rates
  2. Each new option is linked to the correct deliveryRegionId
  3. The estimatedDeliveryTime is populated (not empty)
  4. No regions remain uncovered

Endpoint: POST https://www.wixapis.com/ecom/v1/shipping-options/query

Use the same request from Step 2 and verify the count now covers all active, non-external regions.


Error Handling

ErrorCauseFix
deliveryRegionId is not a valid GUIDUsed deliveryRegionIds (plural) instead of deliveryRegionId (singular) in create requestUse the singular deliveryRegionId field
SHIPPING_OPTION_NOT_FOUNDThe shipping option ID doesn't existRe-query shipping options to get current IDs
REVISION_MISMATCHThe revision doesn't match the current versionRe-fetch the option to get the latest revision, then retry
Region appears covered but customers still can't check outRegion has active=falseCheck region active status in the delivery profile; activate the region if intended
Option exists but not visible at checkoutOption linked to an inactive or deleted regionVerify region exists and active=true in the delivery profile

References

Did this help?