@wix/agent-skills 1.12.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +4 -0
  2. package/package.json +1 -1
  3. package/skills/wix-app/references/data-collection/WIX_DATA.md +10 -0
  4. package/skills/wix-design-system/SKILL.md +3 -1
  5. package/skills/wix-headless/references/BUILD-astro.md +10 -1
  6. package/skills/wix-headless/references/shared/STYLING.md +0 -1
  7. package/skills/wix-headless/scripts/compose.mjs +19 -24
  8. package/skills/wix-headless/scripts/patch-decorative-slots.mjs +15 -9
  9. package/skills/wix-manage/SKILL.md +32 -54
  10. package/skills/wix-manage/references/ecommerce/api-recommendation-tracking.md +3 -2
  11. package/skills/wix-manage/references/ecommerce/ecom-load-context.md +144 -0
  12. package/skills/wix-manage/references/ecommerce/ecom-pricing.md +84 -0
  13. package/skills/wix-manage/references/ecommerce/ecom-shipping.md +64 -0
  14. package/skills/wix-manage/references/ecommerce/{setup-coupons.md → pricing-promotions/ecom-pricing-create-coupon.md} +20 -6
  15. package/skills/wix-manage/references/ecommerce/{setup-discount-rules.md → pricing-promotions/ecom-pricing-create-discount-rule.md} +31 -1
  16. package/skills/wix-manage/references/ecommerce/{flow-bundle-and-save.md → pricing-promotions/ecom-pricing-flow-bundle-and-save.md} +11 -52
  17. package/skills/wix-manage/references/ecommerce/{flow-seasonal-promotion.md → pricing-promotions/ecom-pricing-flow-seasonal-promotion.md} +17 -57
  18. package/skills/wix-manage/references/ecommerce/{flow-stock-mover.md → pricing-promotions/ecom-pricing-flow-stock-mover.md} +28 -70
  19. package/skills/wix-manage/references/ecommerce/{flow-upsell-boost.md → pricing-promotions/ecom-pricing-flow-upsell-boost.md} +15 -68
  20. package/skills/wix-manage/references/ecommerce/{goal-clear-inventory.md → pricing-promotions/ecom-pricing-goal-clear-inventory.md} +22 -13
  21. package/skills/wix-manage/references/ecommerce/{goal-drive-cross-sells.md → pricing-promotions/ecom-pricing-goal-drive-cross-sells.md} +26 -8
  22. package/skills/wix-manage/references/ecommerce/{goal-increase-aov.md → pricing-promotions/ecom-pricing-goal-increase-aov.md} +32 -25
  23. package/skills/wix-manage/references/ecommerce/{goal-seasonal-revenue.md → pricing-promotions/ecom-pricing-goal-seasonal-revenue.md} +21 -8
  24. package/skills/wix-manage/references/ecommerce/{troubleshoot-discount-not-applying.md → pricing-promotions/ecom-pricing-troubleshoot-not-applying.md} +1 -1
  25. package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +23 -47
  26. package/skills/wix-manage/references/ecommerce/{api-shipping.md → shipping/ecom-shipping-api.md} +4 -3
  27. package/skills/wix-manage/references/ecommerce/{flow-fix-coverage-gaps.md → shipping/ecom-shipping-fix-coverage.md} +23 -17
  28. package/skills/wix-manage/references/ecommerce/{flow-add-free-shipping.md → shipping/ecom-shipping-free-shipping.md} +23 -18
  29. package/skills/wix-manage/references/ecommerce/{flow-optimize-shipping-rates.md → shipping/ecom-shipping-optimize-rates.md} +19 -16
  30. package/skills/wix-manage/references/ecommerce/{setup-store-pickup-location.md → shipping/ecom-shipping-setup-pickup.md} +12 -10
  31. package/skills/wix-manage/references/ecommerce/{setup-shipping-rates.md → shipping/ecom-shipping-setup-rates.md} +1 -2
  32. package/skills/wix-manage/references/ecommerce/{setup-shipping-regions.md → shipping/ecom-shipping-setup-regions.md} +1 -2
  33. package/skills/wix-manage/references/sites/query-sites.md +104 -32
  34. package/skills/wix-headless/references/astro/templates/Footer.astro +0 -27
  35. package/skills/wix-headless/references/astro/templates/Navigation.astro +0 -38
  36. package/skills/wix-headless/references/astro/templates/index.astro +0 -56
  37. package/skills/wix-manage/references/ecommerce/goal-reduce-cart-abandonment.md +0 -147
  38. package/skills/wix-manage/references/ecommerce/guardrail-discount-conflicts.md +0 -118
  39. package/skills/wix-manage/references/ecommerce/guardrail-margin-protection.md +0 -88
  40. package/skills/wix-manage/references/ecommerce/guardrail-rate-pricing-sanity.md +0 -108
  41. package/skills/wix-manage/references/ecommerce/guardrail-shipping-health.md +0 -124
  42. package/skills/wix-manage/references/ecommerce/recipe-apply-shipping-recommendations.md +0 -298
  43. package/skills/wix-manage/references/ecommerce/skill-graph.md +0 -139
  44. package/skills/wix-manage/references/ecommerce/troubleshoot-checkout-delivery-dropoff.md +0 -124
@@ -1,298 +0,0 @@
1
- ---
2
- name: "Recipe: Apply Shipping Recommendations"
3
- description: Applies AI-generated shipping recommendations to a Wix e-commerce store. Reads the current delivery profile and shipping options, then creates or updates shipping options based on recommendation data. Supports creating new options with conditional rates, updating existing options, and querying delivery profiles for region/carrier context.
4
- ---
5
- # Apply Shipping Recommendations
6
-
7
- ## Prerequisites
8
-
9
- - Wix Stores (or another eCommerce business solution) installed on the site
10
- - Shipping recommendations data available (from the AI recommendation system or provided directly)
11
-
12
- ## Required APIs
13
-
14
- - [Query Delivery Profiles](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#query-delivery-profiles)
15
- - [Get Delivery Profile](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#get-delivery-profile)
16
-
17
- ---
18
-
19
- ## Step 1: Query the current shipping configuration
20
-
21
- Call [Query Delivery Profiles](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#query-delivery-profiles) to understand the site's delivery setup — profiles, regions, carriers, and backup rates.
22
-
23
- **Endpoint**: `POST https://www.wixapis.com/ecom/v1/delivery-profiles/query`
24
-
25
- **Request**:
26
- ```json
27
- {
28
- "query": {
29
- "cursorPaging": {
30
- "limit": 100
31
- }
32
- }
33
- }
34
- ```
35
-
36
- **Response**:
37
- ```json
38
- {
39
- "deliveryProfiles": [
40
- {
41
- "id": "6a9b2f9b-533a-4d0d-ac8d-64ec3f32fcbd",
42
- "name": "General profile",
43
- "default": true,
44
- "deliveryRegions": [
45
- {
46
- "id": "42b0ed3b-fc54-4ac0-89cf-5d2d17ec441c",
47
- "name": "Domestic",
48
- "active": true,
49
- "deliveryCarriers": [
50
- {
51
- "appId": "45c44b27-ca7b-4891-8c0d-1747d588b835",
52
- "additionalCharges": []
53
- }
54
- ],
55
- "destinations": [
56
- {
57
- "countryCode": "GB",
58
- "subdivisions": []
59
- }
60
- ]
61
- }
62
- ],
63
- "revision": "43",
64
- "createdDate": "2025-10-26T11:05:10.774Z",
65
- "updatedDate": "2026-04-14T14:43:25.397Z"
66
- }
67
- ],
68
- "pagingMetadata": {
69
- "count": 1,
70
- "cursors": {},
71
- "hasNext": false
72
- }
73
- }
74
- ```
75
-
76
- Save the profile `id`, `revision`, and each region's `id` and `active` status. Identify which regions have carriers with missing backup rates (`backupRate` absent or `backupRate.active: false`).
77
-
78
- ---
79
-
80
- ## Step 2: Query existing shipping options
81
-
82
- **Endpoint**: `POST https://www.wixapis.com/ecom/v1/shipping-options/query`
83
-
84
- **Request**:
85
- ```json
86
- {
87
- "query": {
88
- "cursorPaging": {
89
- "limit": 100
90
- }
91
- }
92
- }
93
- ```
94
-
95
- **Response**:
96
- ```json
97
- {
98
- "shippingOptions": [
99
- {
100
- "id": "c0e5be8f-5266-4720-a732-5f571e4750db",
101
- "revision": "1",
102
- "createdDate": "2026-04-14T14:43:24.804Z",
103
- "updatedDate": "2026-04-14T14:43:24.804Z",
104
- "deliveryRegionId": "42b0ed3b-fc54-4ac0-89cf-5d2d17ec441c",
105
- "deliveryRegionIds": [],
106
- "title": "Standard Shipping",
107
- "estimatedDeliveryTime": "5-7 business days",
108
- "rates": [
109
- {
110
- "amount": "15.00",
111
- "conditions": [],
112
- "multiplyByQuantity": false
113
- }
114
- ]
115
- }
116
- ],
117
- "pagingMetadata": {
118
- "count": 1,
119
- "cursors": {},
120
- "hasNext": false
121
- }
122
- }
123
- ```
124
-
125
- Note: The response uses `deliveryRegionId` (singular) as the primary field linking an option to a region.
126
-
127
- ---
128
-
129
- ## Step 3: Apply recommendation — Create a new shipping option
130
-
131
- When the recommendation action is `create_shipping_option`, create a new option linked to a specific delivery region.
132
-
133
- **Endpoint**: `POST https://www.wixapis.com/ecom/v1/shipping-options`
134
-
135
- **Request** — flat rate example:
136
- ```json
137
- {
138
- "shippingOption": {
139
- "title": "Express Shipping",
140
- "estimatedDeliveryTime": "1-2 business days",
141
- "deliveryRegionId": "42b0ed3b-fc54-4ac0-89cf-5d2d17ec441c",
142
- "rates": [
143
- {
144
- "amount": "12.99",
145
- "multiplyByQuantity": false,
146
- "conditions": []
147
- }
148
- ]
149
- }
150
- }
151
- ```
152
-
153
- **Response**:
154
- ```json
155
- {
156
- "shippingOption": {
157
- "id": "dece6160-4e72-4fcc-adcc-7607215edab0",
158
- "revision": "1",
159
- "createdDate": "2026-04-15T13:14:01.214Z",
160
- "updatedDate": "2026-04-15T13:14:01.214Z",
161
- "deliveryRegionId": "42b0ed3b-fc54-4ac0-89cf-5d2d17ec441c",
162
- "deliveryRegionIds": [],
163
- "title": "Express Shipping",
164
- "estimatedDeliveryTime": "1-2 business days",
165
- "rates": [
166
- {
167
- "amount": "12.99",
168
- "conditions": [],
169
- "multiplyByQuantity": false
170
- }
171
- ]
172
- }
173
- }
174
- ```
175
-
176
- **Request** — free shipping with price threshold:
177
- ```json
178
- {
179
- "shippingOption": {
180
- "title": "Free Shipping",
181
- "estimatedDeliveryTime": "5-7 business days",
182
- "deliveryRegionId": "42b0ed3b-fc54-4ac0-89cf-5d2d17ec441c",
183
- "rates": [
184
- {
185
- "amount": "0",
186
- "multiplyByQuantity": false,
187
- "conditions": [
188
- {
189
- "type": "BY_TOTAL_PRICE",
190
- "operator": "GTE",
191
- "value": "75"
192
- }
193
- ]
194
- }
195
- ]
196
- }
197
- }
198
- ```
199
-
200
- **Key field rules:**
201
-
202
- | Field | Required | Notes |
203
- |---|---|---|
204
- | `title` | Yes | Display name at checkout |
205
- | `estimatedDeliveryTime` | Yes | Free text shown to customers |
206
- | `deliveryRegionId` | Yes | Region UUID from Step 1. Must use **singular** field, not `deliveryRegionIds` |
207
- | `rates` | Yes | Array of rate objects |
208
- | `rates[].amount` | Yes | Decimal string (`"5.99"`, `"0"` for free) |
209
- | `rates[].multiplyByQuantity` | Yes | Almost always `false` |
210
- | `rates[].conditions` | Yes | Empty array for flat rate; see condition types below |
211
-
212
- **Condition types** (for tiered/conditional rates):
213
-
214
- | Type | Description | Example |
215
- |---|---|---|
216
- | `BY_TOTAL_PRICE` | Cart total threshold | `"operator": "GTE", "value": "75"` |
217
- | `BY_TOTAL_WEIGHT` | Weight threshold | `"operator": "LTE", "value": "10"` |
218
- | `BY_TOTAL_QUANTITY` | Item count threshold | `"operator": "GTE", "value": "3"` |
219
-
220
- Operators: `EQ`, `GT`, `GTE`, `LT`, `LTE`
221
-
222
- ---
223
-
224
- ## Step 4: Apply recommendation — Update an existing shipping option
225
-
226
- When the recommendation action is `update_shipping_option`, update an existing option's title, delivery time, or rates.
227
-
228
- **Endpoint**: `PATCH https://www.wixapis.com/ecom/v1/shipping-options/{shippingOptionId}`
229
-
230
- Replace `{shippingOptionId}` with the option's `id` from Step 2.
231
-
232
- **Request**:
233
- ```json
234
- {
235
- "shippingOption": {
236
- "id": "c0e5be8f-5266-4720-a732-5f571e4750db",
237
- "revision": "1",
238
- "title": "Updated Standard Shipping",
239
- "estimatedDeliveryTime": "3-5 business days",
240
- "rates": [
241
- {
242
- "amount": "9.99",
243
- "multiplyByQuantity": false,
244
- "conditions": []
245
- }
246
- ]
247
- }
248
- }
249
- ```
250
-
251
- **Response**:
252
- ```json
253
- {
254
- "shippingOption": {
255
- "id": "c0e5be8f-5266-4720-a732-5f571e4750db",
256
- "revision": "2",
257
- "createdDate": "2026-04-14T14:43:24.804Z",
258
- "updatedDate": "2026-04-15T13:14:13.716Z",
259
- "deliveryRegionId": "42b0ed3b-fc54-4ac0-89cf-5d2d17ec441c",
260
- "deliveryRegionIds": [],
261
- "title": "Updated Standard Shipping",
262
- "estimatedDeliveryTime": "3-5 business days",
263
- "rates": [
264
- {
265
- "amount": "9.99",
266
- "conditions": [],
267
- "multiplyByQuantity": false
268
- }
269
- ]
270
- }
271
- }
272
- ```
273
-
274
- The `revision` field is required and must match the current revision. The response returns the incremented revision.
275
-
276
- ---
277
-
278
- ## Step 5: Verify the changes
279
-
280
- After applying recommendations, query shipping options again (Step 2) to confirm the changes took effect. Verify:
281
-
282
- - New options appear in the list with the correct title, rates, and region link
283
- - Updated options reflect the new values and incremented revision
284
- - The option is linked to the correct `deliveryRegionId`
285
-
286
- ---
287
-
288
- ## Error Handling
289
-
290
- | Error | Cause | Fix |
291
- |---|---|---|
292
- | `deliveryRegionId is not a valid GUID` | Used `deliveryRegionIds` (plural) instead of `deliveryRegionId` (singular) in create request | Use the singular `deliveryRegionId` field |
293
- | `SHIPPING_OPTION_NOT_FOUND` | The shipping option ID doesn't exist | Re-query shipping options to get current IDs |
294
- | `REVISION_MISMATCH` | The `revision` doesn't match the current version | Re-fetch the option to get the latest revision, then retry |
295
-
296
- ## References
297
-
298
- - [API: Shipping Delivery](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping)
@@ -1,139 +0,0 @@
1
- ---
2
- name: "eCommerce Skill Graph"
3
- description: Mermaid diagram showing how eCommerce skills connect — unified strategy entry point, goal/flow/guardrail chain, tracking inlined, troubleshoot as direct entries.
4
- ---
5
-
6
- ## Skill Graph Diagram
7
-
8
- ```mermaid
9
- flowchart TB
10
- MR["Merchant Request"] --> R
11
-
12
- subgraph R["R — Unified Entry Point"]
13
- recommend-ecommerce-strategy
14
- end
15
-
16
- R --> |"loads API ref"| Config
17
- R --> |"Step 4b: loads matching goal"| Goals
18
- R --> |"Step 2+8: tracking inlined"| TrackingAPI
19
-
20
- subgraph Goals["Goals — Business Objectives"]
21
- subgraph GD["Discount + Shipping"]
22
- goal-increase-aov
23
- goal-clear-inventory
24
- goal-seasonal-revenue
25
- goal-drive-cross-sells
26
- end
27
- subgraph GA["Abandoned Cart"]
28
- goal-reduce-cart-abandonment
29
- end
30
- end
31
-
32
- Goals --> |"loads matching flows"| Flows
33
- goal-increase-aov --> |"also loads shipping flows"| FS
34
-
35
- subgraph Flows["Flows — Business Logic"]
36
- subgraph FD["Discount"]
37
- flow-upsell-boost
38
- flow-bundle-and-save
39
- flow-stock-mover
40
- flow-seasonal-promotion
41
- end
42
- subgraph FS["Shipping"]
43
- flow-fix-coverage-gaps
44
- flow-add-free-shipping
45
- flow-optimize-shipping-rates
46
- end
47
- end
48
-
49
- Flows --> |"loads validation"| Guardrails
50
- Flows --> |"loads setup"| Config
51
-
52
- subgraph Guardrails["Cross-cutting: Guardrails"]
53
- guardrail-discount-conflicts
54
- guardrail-margin-protection
55
- guardrail-shipping-health
56
- guardrail-rate-pricing-sanity
57
- end
58
-
59
- subgraph Config["Config — Setup & API References"]
60
- setup-discount-rules
61
- setup-coupons
62
- setup-shipping-regions
63
- setup-shipping-rates
64
- api-shipping
65
- end
66
-
67
- subgraph TrackingAPI["Tracking API"]
68
- api-recommendation-tracking
69
- end
70
-
71
- subgraph Standalone["Direct Entry Points (from README)"]
72
- recipe-apply-shipping-recommendations
73
- setup-store-pickup-location
74
- troubleshoot-discount-not-applying
75
- troubleshoot-checkout-delivery-dropoff
76
- end
77
-
78
- Config -.-> |"calls via CallWixSiteAPI"| API
79
-
80
- subgraph API["Wix REST API Docs (dev.wix.com)"]
81
- D1["Discount Rules API"]
82
- D2["Coupons API"]
83
- D3["Products V3 API"]
84
- D4["Categories API"]
85
- D5["Catalog Analytics"]
86
- S3["Pickup Locations API"]
87
- S4["Local Delivery API"]
88
- SD["Profile Service API (wix-profile-client)"]
89
- end
90
-
91
- classDef goal fill:#8b5cf6,stroke:#6d28d9,color:#fff
92
- classDef guardrail fill:#ef4444,stroke:#dc2626,color:#fff
93
- classDef flow fill:#3b82f6,stroke:#2563eb,color:#fff
94
- classDef config fill:#f59e0b,stroke:#d97706,color:#fff
95
- classDef reco fill:#ec4899,stroke:#db2777,color:#fff
96
- classDef standalone fill:#6b7280,stroke:#4b5563,color:#fff
97
- classDef apidoc fill:#e5e7eb,stroke:#9ca3af,color:#374151
98
-
99
- class goal-increase-aov,goal-clear-inventory,goal-seasonal-revenue,goal-drive-cross-sells,goal-reduce-cart-abandonment goal
100
- class guardrail-discount-conflicts,guardrail-margin-protection,guardrail-shipping-health,guardrail-rate-pricing-sanity guardrail
101
- class flow-upsell-boost,flow-bundle-and-save,flow-stock-mover,flow-seasonal-promotion,flow-fix-coverage-gaps,flow-add-free-shipping,flow-optimize-shipping-rates flow
102
- class setup-discount-rules,setup-coupons,setup-shipping-regions,setup-shipping-rates,api-recommendation-tracking,api-shipping config
103
- class recommend-ecommerce-strategy reco
104
- class recipe-apply-shipping-recommendations,setup-store-pickup-location,troubleshoot-discount-not-applying,troubleshoot-checkout-delivery-dropoff standalone
105
- class D1,D2,D3,D4,D5,S1,S2,S3,S4,SD apidoc
106
- ```
107
-
108
- ## File Reachability
109
-
110
- | File | Reached via |
111
- |---|---|
112
- | `recommend-ecommerce-strategy.md` | README routing (entry point) |
113
- | `api-recommendation-tracking.md` | Entry point tracking steps |
114
- | `goal-increase-aov.md` | Step 4b (UPSELL_BOOST) |
115
- | `goal-clear-inventory.md` | Step 4b (STOCK_MOVER) |
116
- | `goal-seasonal-revenue.md` | Step 4b (SEASONAL) |
117
- | `goal-drive-cross-sells.md` | Step 4b (BUNDLE_AND_SAVE) |
118
- | `goal-reduce-cart-abandonment.md` | Step 4b (ABANDONED_CART domain) |
119
- | `flow-upsell-boost.md` | goal-increase-aov chain |
120
- | `flow-bundle-and-save.md` | goal-increase-aov / goal-drive-cross-sells chain |
121
- | `flow-stock-mover.md` | goal-clear-inventory chain |
122
- | `flow-seasonal-promotion.md` | goal-seasonal-revenue chain |
123
- | `flow-fix-coverage-gaps.md` | goal-reduce-cart-abandonment chain (critical operational fix) |
124
- | `flow-add-free-shipping.md` | goal-increase-aov chain (shipping flows serving AOV) |
125
- | `flow-optimize-shipping-rates.md` | goal-increase-aov chain (shipping flows serving AOV) |
126
- | `guardrail-discount-conflicts.md` | flow-upsell-boost / bundle / stock / seasonal chains |
127
- | `guardrail-margin-protection.md` | flow-upsell-boost / stock-mover chains |
128
- | `guardrail-shipping-health.md` | flow-fix-coverage-gaps chain |
129
- | `guardrail-rate-pricing-sanity.md` | flow-add-free-shipping / optimize chains |
130
- | `setup-discount-rules.md` | All discount flow chains |
131
- | `setup-coupons.md` | Step 4c (COUPON mechanism) |
132
- | `setup-shipping-regions.md` | flow-fix-coverage-gaps chain |
133
- | `setup-shipping-rates.md` | flow-add-free-shipping / optimize chains |
134
- | `api-shipping.md` | Shipping flows (fix-coverage-gaps, add-free-shipping, optimize, recipe, setup-store-pickup) |
135
- | `recipe-apply-shipping-recommendations.md` | README direct entry |
136
- | `setup-store-pickup-location.md` | README direct entry |
137
- | `troubleshoot-discount-not-applying.md` | README direct entry |
138
- | `troubleshoot-checkout-delivery-dropoff.md` | README direct entry |
139
- | `skill-graph.md` | Documentation reference |
@@ -1,124 +0,0 @@
1
- ---
2
- name: "Troubleshoot: Checkout Delivery Drop-off"
3
- description: Diagnostic tree for when delivery step conversion is below benchmark. Correlates shipping issues with checkout abandonment and calculates revenue impact.
4
- layer: troubleshoot
5
- ---
6
- # Troubleshoot: Checkout Delivery Drop-off
7
-
8
- ## When to use
9
-
10
- Use this diagnostic tree when analyzing checkout funnel performance and the delivery step shows elevated abandonment. The delivery step is where customers choose their shipping method — drop-off here directly indicates shipping-related friction.
11
-
12
- ---
13
-
14
- ## Step 1: Check delivery step conversion rate
15
-
16
- Compare `delivery_step_cvr` against the benchmark of **65%**.
17
-
18
- ### Interpretation
19
-
20
- | CVR range | Interpretation | Action |
21
- |---|---|---|
22
- | cvr < benchmark (65%) AND shipping issues detected | Correlate specific issues to conversion drop | Proceed to full diagnostic |
23
- | cvr ≥ benchmark (65%) | Do NOT cite CVR gap as justification | Focus on best practices, not recovery |
24
- | cvr ≥ 90% | Excellent — note strong performance | Focus on maintaining, not fixing |
25
-
26
- **Important**: If the CVR is at or above benchmark, do not frame recommendations as fixing a conversion problem. Only cite CVR gap when the data supports it.
27
-
28
- ---
29
-
30
- ## Step 2: Calculate revenue impact
31
-
32
- Use this formula to quantify the business impact of the delivery step drop-off:
33
-
34
- ```
35
- revenue_impact = (benchmark_delivery_cvr - delivery_step_cvr) / 100 × total_checkouts × aov
36
- ```
37
-
38
- **Example**: If benchmark is 65%, current CVR is 55%, with 2,000 checkouts/month and $80 AOV:
39
- - `(65 - 55) / 100 × 2000 × 80 = $16,000/month` in potential lost revenue.
40
-
41
- ### High traffic amplifier
42
-
43
- If `visitors > 30,000` (approximately 1,000+ per day) AND a HIGH-severity shipping issue is detected, include a daily revenue impact estimate to emphasize urgency:
44
-
45
- ```
46
- daily_impact = revenue_impact / 30
47
- ```
48
-
49
- > "At your traffic volume, this shipping issue may be costing approximately ${daily_impact} per day."
50
-
51
- ---
52
-
53
- ## Step 3: Assign priority
54
-
55
- Based on the gap between current CVR and benchmark:
56
-
57
- | Gap | Priority | Urgency |
58
- |---|---|---|
59
- | Gap > 10 percentage points | **HIGH** | Address immediately — significant revenue loss |
60
- | Gap 5-10 percentage points | **MEDIUM** | Address soon — meaningful improvement opportunity |
61
- | Gap < 5 percentage points | **LOW** | Optimize when convenient — incremental gains |
62
-
63
- ---
64
-
65
- ## Step 4: Identify common causes
66
-
67
- Check for these known shipping issues that correlate with delivery step drop-off:
68
-
69
- 1. **No free shipping option**: Stores without any free shipping option see higher delivery-step abandonment. Customers expect at least a conditional free shipping tier.
70
-
71
- 2. **Missing delivery estimates**: Shipping options without estimated delivery times create uncertainty. Customers abandon when they don't know when their order will arrive.
72
-
73
- 3. **Per-item pricing (`multiplyByQuantity`)**: Customers adding multiple items see shipping costs spike unexpectedly at checkout.
74
-
75
- 4. **Coverage gaps**: Customer's delivery address falls outside configured shipping regions. The checkout shows no available shipping methods.
76
-
77
- 5. **Inactive backup rates**: When the primary carrier can't fulfill and no backup rate is configured, the customer sees no shipping options.
78
-
79
- 6. **Options on inactive regions**: Shipping options configured for regions that are set to `active: false` are not available at checkout.
80
-
81
- ---
82
-
83
- ## Step 5: Run diagnostic sequence
84
-
85
- Follow this sequence to systematically identify the root cause:
86
-
87
- ### 5.1 Check configuration completeness
88
- - Are delivery profiles configured?
89
- - Are regions active?
90
- - Are shipping options assigned to active regions?
91
-
92
- ### 5.2 Check coverage gaps
93
- - Do the configured regions cover the store's primary customer geographies?
94
- - Are there common destination countries/states missing from region definitions?
95
-
96
- ### 5.3 Check free shipping presence
97
- - Is there at least one free shipping option (unconditional or threshold-based)?
98
- - If threshold-based, is the threshold achievable relative to AOV?
99
-
100
- ### 5.4 Check rate pricing sanity
101
- - Are any rates exceeding 15% of AOV?
102
- - Is `multiplyByQuantity` enabled on any rate?
103
- - See the **Guardrail: Rate Pricing Sanity** skill for detailed checks.
104
-
105
- ### 5.5 Check backup rates
106
- - Are backup rates configured on carriers?
107
- - Are backup rate amounts reasonable (5-10% of AOV)?
108
-
109
- ### 5.6 Correlate findings with CVR impact
110
- - For each issue found, estimate its contribution to the CVR gap.
111
- - Prioritize fixes by expected conversion recovery.
112
- - Present findings in order of impact, with revenue estimates where possible.
113
-
114
- ---
115
-
116
- ## Summary: Diagnostic checklist
117
-
118
- | Step | Check | What to look for |
119
- |---|---|---|
120
- | 1 | CVR vs benchmark | Is there actually a gap to address? |
121
- | 2 | Revenue impact | Quantify the business cost |
122
- | 3 | Priority | HIGH (>10pt gap), MEDIUM (5-10pt), LOW (<5pt) |
123
- | 4 | Common causes | Free shipping, estimates, per-item, coverage, backups |
124
- | 5 | Diagnostic sequence | Config → coverage → free shipping → rates → backups → correlate |