← Files WixARCHIVED FILE
skills/wix-manage/references/ecommerce/setup-shipping-rates.md
3.11 KB · Oct 4, 2026 · 12:02 UTC
--- name: "Setup: Shipping Rates" description: Configures shipping option rates — rate types (flat, tiered, free), condition types and operators, free shipping threshold calibration, AOV sanity check, per-item penalty avoidance, and tier gap detection. layer: config --- # Shipping Rates ## AOV Sanity Check **MANDATORY before any threshold calculation that references AOV.** Raw AOV can be misleading due to data issues or bulk purchases. 1. Extract `price_p25` and `price_p50` from `catalog_stats` (use the "All Products" category group). 2. Evaluate AOV against catalog price distribution: | Condition | Interpretation | Action | |---|---|---| | AOV < price_p25 | Anomalous — likely a data or unit issue | Override: use `price_p50` as base. Note in reasoning. | | AOV > price_p90 | Possible bulk/combo orders | Still use AOV but note discrepancy. | | price_p25 <= AOV <= price_p90 | Reasonable | Use AOV as-is. | 3. Store the result as `effective_aov`. Use `effective_aov` everywhere AOV would be referenced — backup rate calibration, shipping thresholds, free shipping thresholds. --- ## Rate Types Rate types are determined by the conditions array, not by an explicit field. | Rate Type | Configuration | |---|---| | Flat rate | `conditions[]` empty, just `amount` | | Free shipping | `amount = "0"` with optional `BY_TOTAL_PRICE GTE [threshold]` | | Weight-based tiers | `BY_TOTAL_WEIGHT` conditions | | Price-based tiers | `BY_TOTAL_PRICE` conditions | | Quantity-based | `BY_TOTAL_QUANTITY` conditions | ## Condition Operators Supported operators: `EQ`, `GT`, `GTE`, `LT`, `LTE`. When multiple conditions appear in the same rate entry, they combine with AND logic. ## Free Shipping Threshold Calibration Optimal range: `effective_aov x 1.0` to `effective_aov x 1.5` | Scenario | Impact | |---|---| | `threshold > AOV x 2` | Too high -- customers rarely qualify | | `threshold < AOV x 0.8` | Too low -- potential margin erosion | Enhanced calibration using catalog stats: - If `price_p75 > aov x 1.5` then use `price_p50 x 1.5` - If `price_p75 < aov` then use `aov x 1.2` - Default: `max(aov x 1.2, price_p75)` ## Per-Item Penalty Avoidance `multiplyByQuantity = true` charges `amount x cart quantity`. Always flag this configuration and recommend switching to flat rate or tiered pricing instead. ## Price-Based Tiers Recommendation Recommend switching from flat to tiered rates when ALL of the following are true: - `price_spread_ratio > 10` - `price_stddev > price_avg x 0.5` - Only flat rates currently exist Recommended tier structure: - **Tier 1**: Below p50 -- lower rate - **Tier 2**: p50 to p75 -- standard rate - **Tier 3**: Above p75 -- higher rate or free ## Flat Rate Confirmation When ALL of the following are true, flat rate is optimal and no change is needed: - `price_spread_ratio <= 3` - `price_stddev < price_avg x 0.3` ## Tier Gap Detection Sort all conditions by value and look for gaps between ranges. Gaps mean some cart totals have no matching rate, which can cause checkout failures. ## Shipping Cost Sanity Check Any rate `amount > AOV x 0.15` (15% of average order value) should be flagged as a cart abandonment risk.
SHA-256: 8aab50a0140a51e626648932a7ca44fee36f5e0d5c85d1479a78fdf6fd896f2f