Before executing this skill, read these referenced skills with ReadFullDocsArticle:
Analyzes the site's catalog price distribution and current shipping rate structure to determine if the rate strategy is optimal. Recommends and applies changes when flat rates should become tiered, when tier gaps exist, or when per-item penalties are harming conversion.
Retrieve catalog statistics for the "All Products" category group. Required fields:
| Metric | Description |
|---|---|
product_count | Total number of products |
price_min | Lowest product price |
price_max | Highest product price |
price_avg | Average product price |
price_stddev | Standard deviation of prices |
price_p25 | 25th percentile price |
price_p50 | 50th percentile (median) price |
price_p75 | 75th percentile price |
price_p90 | 90th percentile price |
This ratio indicates how diverse the catalog pricing is. A ratio of 3 means the most expensive product is 3x the cheapest; a ratio of 50 means extreme price diversity.
Retrieve all shipping options to analyze the existing rate structure.
Endpoint: POST https://www.wixapis.com/ecom/v1/shipping-options/query
Request:
Response:
For each option, classify its rate structure:
conditions[] is emptyBY_TOTAL_PRICE, BY_TOTAL_WEIGHT, or BY_TOTAL_QUANTITY conditionsamount="0"multiplyByQuantity=trueIf any shipping option has multiplyByQuantity=true, flag it immediately.
Problem: Per-item charging means shipping cost = amount x cart quantity. A $5 rate on a 5-item order charges $25 for shipping. This discourages larger carts and directly conflicts with AOV growth goals.
Recommendation: Switch to flat rate or tiered pricing. Update the option to set multiplyByQuantity=false.
Check ALL three conditions. If all are true, recommend converting flat rates to price-based tiers:
| Condition | Threshold |
|---|---|
price_spread_ratio > 10 | Catalog has extreme price diversity |
price_stddev > price_avg x 0.5 | High variance in pricing |
| Only flat rates currently exist | No tiered structure in place |
If all three conditions are met, recommend price-based tiers:
| Tier | Price Range | Rate Strategy |
|---|---|---|
| Tier 1 | Orders below price_p50 | Lower flat rate |
| Tier 2 | Orders price_p50 to price_p75 | Standard rate |
| Tier 3 | Orders above price_p75 | Higher rate or free shipping |
If ALL of the following are true, flat rate is the correct strategy -- no changes needed:
| Condition | Threshold |
|---|---|
price_spread_ratio <= 3 | Narrow price range |
price_stddev < price_avg x 0.3 | Low variance |
Report: "Your catalog has a narrow price range. Flat rate shipping is the optimal strategy. No changes recommended."
For options that already use tiered pricing (weight-based or price-based conditions):
valueExample gap: Tier 1 has LTE 5 (kg or $), Tier 2 has GT 10. A cart at 7 matches neither tier and gets no shipping rate for this option.
Fix: Adjust condition boundaries to ensure complete, contiguous coverage.
Update the shipping option to disable per-item multiplication.
Endpoint: PATCH https://www.wixapis.com/ecom/v1/shipping-options/{shippingOptionId}
Request:
Response:
When converting from flat to tiered, create a new option with price-based tiers. Use catalog quantiles to set tier boundaries.
Example with price_p50=$35, price_p75=$80:
Endpoint: POST https://www.wixapis.com/ecom/v1/shipping-options
Request:
Response:
Tier logic: Multiple conditions within the same rate use AND logic. The middle tier (GT 35 AND LTE 80) matches cart totals between $35 and $80.
Re-query shipping options to confirm changes took effect.
Endpoint: POST https://www.wixapis.com/ecom/v1/shipping-options/query
Verify:
multiplyByQuantity=falseestimatedDeliveryTime populatedrevision values| Error | Cause | Fix |
|---|---|---|
SHIPPING_OPTION_NOT_FOUND | Option ID doesn't exist | Re-query shipping options to get current IDs |
REVISION_MISMATCH | Revision doesn't match the current version | Re-fetch the option for the latest revision, then retry |
deliveryRegionId is not a valid GUID | Used deliveryRegionIds (plural) instead of deliveryRegionId (singular) | Use the singular deliveryRegionId field |
| Tier gap detected after update | Condition boundaries don't cover all ranges | Verify tier boundaries are contiguous: use LTE for upper bounds and GT for lower bounds of adjacent tiers |
| Rate exceeds 15% of AOV | Shipping cost is a cart abandonment risk | Lower the rate amount or add a free shipping tier for larger orders |