@wix/agent-skills 1.0.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.
- package/LICENSE +21 -0
- package/README.md +111 -0
- package/package.json +29 -0
- package/skills/wix-app/SKILL.md +344 -0
- package/skills/wix-app/references/APP_IDENTIFIERS.md +35 -0
- package/skills/wix-app/references/APP_MARKET_REVIEW.md +311 -0
- package/skills/wix-app/references/APP_VALIDATION.md +171 -0
- package/skills/wix-app/references/BACKEND_API.md +233 -0
- package/skills/wix-app/references/BACKEND_EVENT.md +116 -0
- package/skills/wix-app/references/CODE_QUALITY.md +33 -0
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +587 -0
- package/skills/wix-app/references/DASHBOARD_MENU_PLUGIN.md +157 -0
- package/skills/wix-app/references/DASHBOARD_MODAL.md +283 -0
- package/skills/wix-app/references/DASHBOARD_PAGE.md +403 -0
- package/skills/wix-app/references/DASHBOARD_PLUGIN.md +205 -0
- package/skills/wix-app/references/DATA_COLLECTION.md +451 -0
- package/skills/wix-app/references/DOCUMENTATION.md +42 -0
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +65 -0
- package/skills/wix-app/references/EMBEDDED_SCRIPT.md +468 -0
- package/skills/wix-app/references/EXTENSION_REGISTRATION.md +96 -0
- package/skills/wix-app/references/SERVICE_PLUGIN.md +235 -0
- package/skills/wix-app/references/SITE_PLUGIN.md +436 -0
- package/skills/wix-app/references/STORES_VERSIONING.md +334 -0
- package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +84 -0
- package/skills/wix-app/references/custom-element-widget/SETTINGS_PANEL.md +345 -0
- package/skills/wix-app/references/dashboard-menu-plugin/blog-slots.md +71 -0
- package/skills/wix-app/references/dashboard-menu-plugin/bookings-slots.md +58 -0
- package/skills/wix-app/references/dashboard-menu-plugin/crm-slots.md +8 -0
- package/skills/wix-app/references/dashboard-menu-plugin/ecommerce-slots.md +17 -0
- package/skills/wix-app/references/dashboard-menu-plugin/events-slots.md +29 -0
- package/skills/wix-app/references/dashboard-menu-plugin/restaurants-slots.md +27 -0
- package/skills/wix-app/references/dashboard-menu-plugin/stores-slots.md +35 -0
- package/skills/wix-app/references/dashboard-page/API_SPEC.md +138 -0
- package/skills/wix-app/references/dashboard-page/DASHBOARD_API.md +573 -0
- package/skills/wix-app/references/dashboard-page/DYNAMIC_PARAMETERS.md +269 -0
- package/skills/wix-app/references/dashboard-page/ECOM_NAVIGATION.md +164 -0
- package/skills/wix-app/references/dashboard-plugin/SLOTS.md +294 -0
- package/skills/wix-app/references/data-collection/WIX_DATA.md +270 -0
- package/skills/wix-app/references/data-collection/extension-template.ts +107 -0
- package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +138 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +454 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONFIGURATION.md +165 -0
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +576 -0
- package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +170 -0
- package/skills/wix-app/references/editor-react-component/EDIT-FLOW.md +6 -0
- package/skills/wix-app/references/editor-react-component/PARTS.md +25 -0
- package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +203 -0
- package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +167 -0
- package/skills/wix-app/references/editor-react-component/REACT-PATTERNS.md +137 -0
- package/skills/wix-app/references/service-plugin/ADDITIONAL-FEES.md +112 -0
- package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +118 -0
- package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +87 -0
- package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +86 -0
- package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +135 -0
- package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +79 -0
- package/skills/wix-app/references/service-plugin/VALIDATIONS.md +68 -0
- package/skills/wix-app/references/site-plugin/EXAMPLES.md +311 -0
- package/skills/wix-app/references/site-plugin/SLOTS.md +263 -0
- package/skills/wix-design-system/SKILL.md +129 -0
- package/skills/wix-design-system/references/file-structure.md +56 -0
- package/skills/wix-design-system/scripts/wds.cjs +531 -0
- package/skills/wix-headless/SKILL.md +418 -0
- package/skills/wix-headless/references/DISCOVERY.md +332 -0
- package/skills/wix-headless/references/ORCHESTRATION.md +269 -0
- package/skills/wix-headless/references/SETUP.md +154 -0
- package/skills/wix-headless/references/blog/BLOG_CONTENT.md +152 -0
- package/skills/wix-headless/references/blog/BLOG_PAGES.md +299 -0
- package/skills/wix-headless/references/blog/BLOG_SETUP.md +218 -0
- package/skills/wix-headless/references/blog/INSTRUCTIONS.md +32 -0
- package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +373 -0
- package/skills/wix-headless/references/cms/FAQ_KNOWLEDGE_BASE.md +229 -0
- package/skills/wix-headless/references/cms/INSTRUCTIONS.md +40 -0
- package/skills/wix-headless/references/cms/PORTFOLIO.md +454 -0
- package/skills/wix-headless/references/cms/RESOURCE_LIBRARY.md +356 -0
- package/skills/wix-headless/references/cms/TEAM_DIRECTORY.md +299 -0
- package/skills/wix-headless/references/commands/install-app.md +42 -0
- package/skills/wix-headless/references/commands/known-apps.json +5 -0
- package/skills/wix-headless/references/commands/mcp-bootstrap.md +28 -0
- package/skills/wix-headless/references/designer/INSTRUCTIONS.md +828 -0
- package/skills/wix-headless/references/ecom/CART_PAGES.md +120 -0
- package/skills/wix-headless/references/ecom/CART_WIRING.md +103 -0
- package/skills/wix-headless/references/ecom/COMPONENTS_CSS.md +132 -0
- package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +59 -0
- package/skills/wix-headless/references/forms/CONTACT_FORM.md +477 -0
- package/skills/wix-headless/references/forms/INSTRUCTIONS.md +43 -0
- package/skills/wix-headless/references/gift-cards/COMPONENTS.md +119 -0
- package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +51 -0
- package/skills/wix-headless/references/gift-cards/PAGES.md +129 -0
- package/skills/wix-headless/references/images/INSTRUCTIONS.md +359 -0
- package/skills/wix-headless/references/shared/BUILD_NOISE.md +8 -0
- package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +185 -0
- package/skills/wix-headless/references/shared/IMPLEMENTER.md +155 -0
- package/skills/wix-headless/references/shared/MCP_PREFIX.md +105 -0
- package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +97 -0
- package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +423 -0
- package/skills/wix-headless/references/shared/STYLING.md +117 -0
- package/skills/wix-headless/references/stores/BACK_IN_STOCK.md +178 -0
- package/skills/wix-headless/references/stores/CATEGORY_PAGES.md +86 -0
- package/skills/wix-headless/references/stores/COMPONENTS_CSS.md +129 -0
- package/skills/wix-headless/references/stores/HOME_AND_NAV.md +227 -0
- package/skills/wix-headless/references/stores/INSTRUCTIONS.md +96 -0
- package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +249 -0
- package/skills/wix-headless/references/stores/PRODUCT_PAGES.md +213 -0
- package/skills/wix-headless/references/stores/SHARED_WIRING.md +164 -0
- package/skills/wix-headless/references/verticals/_schema.json +160 -0
- package/skills/wix-headless/references/verticals/_schema.md +185 -0
- package/skills/wix-headless/references/verticals/blog.md +125 -0
- package/skills/wix-headless/references/verticals/cms.md +121 -0
- package/skills/wix-headless/references/verticals/ecom.md +96 -0
- package/skills/wix-headless/references/verticals/forms.md +106 -0
- package/skills/wix-headless/references/verticals/gift-cards.md +121 -0
- package/skills/wix-headless/references/verticals/stores.md +167 -0
- package/skills/wix-headless/scripts/check-manifest.mjs +198 -0
- package/skills/wix-headless/scripts/copy-utility-templates.mjs +153 -0
- package/skills/wix-headless/scripts/emit-design-tokens.mjs +77 -0
- package/skills/wix-headless/scripts/finalize-run-json.mjs +141 -0
- package/skills/wix-headless/scripts/init-site-json.mjs +63 -0
- package/skills/wix-headless/scripts/patch-decorative-slots.mjs +124 -0
- package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +190 -0
- package/skills/wix-headless/scripts/preview.sh +45 -0
- package/skills/wix-headless/scripts/release.sh +73 -0
- package/skills/wix-headless/scripts/scaffold.sh +53 -0
- package/skills/wix-headless/scripts/seed-utilities.sh +55 -0
- package/skills/wix-headless/shared-utilities/analytics.ts +40 -0
- package/skills/wix-headless/shared-utilities/ricos.ts +179 -0
- package/skills/wix-headless/shared-utilities/wix-image.ts +72 -0
- package/skills/wix-headless/templates/ecom/CartBadge.tsx +84 -0
- package/skills/wix-headless/templates/ecom/CartView.tsx +543 -0
- package/skills/wix-headless/templates/ecom/cart.astro +13 -0
- package/skills/wix-headless/templates/ecom/components-ecom.css +215 -0
- package/skills/wix-headless/templates/ecom/discounts.ts +71 -0
- package/skills/wix-headless/templates/ecom/thank-you.astro +24 -0
- package/skills/wix-headless/templates/gift-cards/GiftCardPurchase.tsx +172 -0
- package/skills/wix-headless/templates/gift-cards/_home-teaser-snippet.astro +42 -0
- package/skills/wix-headless/templates/gift-cards/_nav-snippet.astro +11 -0
- package/skills/wix-headless/templates/gift-cards/components-gift-cards.css +219 -0
- package/skills/wix-headless/templates/gift-cards/gift-cards.astro +51 -0
- package/skills/wix-headless/templates/gift-cards/gift-cards.ts +75 -0
- package/skills/wix-headless/templates/stores/AddToCartButton.tsx +77 -0
- package/skills/wix-headless/templates/stores/BackInStockForm.tsx +176 -0
- package/skills/wix-headless/templates/stores/CategoryRail.astro +69 -0
- package/skills/wix-headless/templates/stores/ProductCard.astro +79 -0
- package/skills/wix-headless/templates/stores/ProductPurchase.tsx +397 -0
- package/skills/wix-headless/templates/stores/SeoTags.astro +21 -0
- package/skills/wix-headless/templates/stores/back-in-stock.ts +67 -0
- package/skills/wix-headless/templates/stores/categories.ts +155 -0
- package/skills/wix-headless/templates/stores/category/[slug].astro +130 -0
- package/skills/wix-headless/templates/stores/components-stores.css +295 -0
- package/skills/wix-headless/templates/stores/products/[slug].astro +128 -0
- package/skills/wix-headless/templates/stores/products/index.astro +101 -0
- package/skills/wix-manage/SKILL.md +280 -0
- package/skills/wix-manage/references/app-installation/install-wix-apps.md +155 -0
- package/skills/wix-manage/references/app-installation/list-installed-apps.md +124 -0
- package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +226 -0
- package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +95 -0
- package/skills/wix-manage/references/bookings/booking-system-integration-gaps.md +416 -0
- package/skills/wix-manage/references/bookings/bookings-staff-setup.md +255 -0
- package/skills/wix-manage/references/bookings/create-and-update-booking-services.md +462 -0
- package/skills/wix-manage/references/bookings/end-to-end-booking-flow.md +278 -0
- package/skills/wix-manage/references/bookings/external-calendar-integration.md +258 -0
- package/skills/wix-manage/references/bookings/multi-resource-service-creation.md +231 -0
- package/skills/wix-manage/references/calendar/configure-default-business-hours.md +226 -0
- package/skills/wix-manage/references/cms/cms-data-items-crud.md +422 -0
- package/skills/wix-manage/references/cms/cms-data-operations-extended.md +263 -0
- package/skills/wix-manage/references/cms/cms-ecommerce-catalog-integration.md +136 -0
- package/skills/wix-manage/references/cms/cms-references-and-relationships.md +160 -0
- package/skills/wix-manage/references/cms/cms-schema-management.md +143 -0
- package/skills/wix-manage/references/contacts/bulk-delete-contacts.md +73 -0
- package/skills/wix-manage/references/contacts/bulk-label-and-unlabel-contacts.md +67 -0
- package/skills/wix-manage/references/domains/domain-search-and-purchase.md +434 -0
- package/skills/wix-manage/references/ecommerce/api-recommendation-tracking.md +420 -0
- package/skills/wix-manage/references/ecommerce/flow-add-free-shipping.md +267 -0
- package/skills/wix-manage/references/ecommerce/flow-bundle-and-save.md +290 -0
- package/skills/wix-manage/references/ecommerce/flow-fix-coverage-gaps.md +300 -0
- package/skills/wix-manage/references/ecommerce/flow-optimize-shipping-rates.md +364 -0
- package/skills/wix-manage/references/ecommerce/flow-seasonal-promotion.md +315 -0
- package/skills/wix-manage/references/ecommerce/flow-stock-mover.md +308 -0
- package/skills/wix-manage/references/ecommerce/flow-upsell-boost.md +271 -0
- package/skills/wix-manage/references/ecommerce/goal-clear-inventory.md +118 -0
- package/skills/wix-manage/references/ecommerce/goal-drive-cross-sells.md +122 -0
- package/skills/wix-manage/references/ecommerce/goal-increase-aov.md +132 -0
- package/skills/wix-manage/references/ecommerce/goal-reduce-cart-abandonment.md +148 -0
- package/skills/wix-manage/references/ecommerce/goal-seasonal-revenue.md +146 -0
- package/skills/wix-manage/references/ecommerce/guardrail-discount-conflicts.md +118 -0
- package/skills/wix-manage/references/ecommerce/guardrail-margin-protection.md +88 -0
- package/skills/wix-manage/references/ecommerce/guardrail-rate-pricing-sanity.md +108 -0
- package/skills/wix-manage/references/ecommerce/guardrail-shipping-health.md +124 -0
- package/skills/wix-manage/references/ecommerce/recipe-apply-shipping-recommendations.md +299 -0
- package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +582 -0
- package/skills/wix-manage/references/ecommerce/setup-coupons.md +338 -0
- package/skills/wix-manage/references/ecommerce/setup-discount-rules.md +444 -0
- package/skills/wix-manage/references/ecommerce/setup-shipping-rates.md +86 -0
- package/skills/wix-manage/references/ecommerce/setup-shipping-regions.md +56 -0
- package/skills/wix-manage/references/ecommerce/setup-store-pickup-location.md +209 -0
- package/skills/wix-manage/references/ecommerce/skill-graph.md +139 -0
- package/skills/wix-manage/references/ecommerce/troubleshoot-checkout-delivery-dropoff.md +124 -0
- package/skills/wix-manage/references/ecommerce/troubleshoot-discount-not-applying.md +95 -0
- package/skills/wix-manage/references/events/list-events.md +203 -0
- package/skills/wix-manage/references/forms/create-form.md +260 -0
- package/skills/wix-manage/references/get-paid/create-payment-links.md +212 -0
- package/skills/wix-manage/references/get-paid/how-to-setup-wix-payments.md +57 -0
- package/skills/wix-manage/references/get-paid/payment-links-for-bookings.md +101 -0
- package/skills/wix-manage/references/media/upload-media-to-wix.md +216 -0
- package/skills/wix-manage/references/pricing-plans/create-and-update-pricing-plans.md +77 -0
- package/skills/wix-manage/references/pricing-plans/pricing-plans-bookings-integration.md +166 -0
- package/skills/wix-manage/references/restaurants/wix-restaurants-setup.md +336 -0
- package/skills/wix-manage/references/rich-content/ricos-converter-service.md +295 -0
- package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +59 -0
- package/skills/wix-manage/references/sites/create-site-from-template.md +183 -0
- package/skills/wix-manage/references/sites/query-sites.md +125 -0
- package/skills/wix-manage/references/stores/add-store-pages-to-site.md +57 -0
- package/skills/wix-manage/references/stores/bulk-create-products-with-options.md +1041 -0
- package/skills/wix-manage/references/stores/create-product-catalog-v1.md +125 -0
- package/skills/wix-manage/references/stores/create-product-from-image.md +824 -0
- package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +566 -0
- package/skills/wix-manage/references/stores/find-products-query-and-search-catalog-v3.md +194 -0
- package/skills/wix-manage/references/stores/query-products-catalog-v1.md +80 -0
- package/skills/wix-manage/references/stores/setup-online-store-catalog-v3.md +99 -0
- package/skills/wix-manage/references/stores/update-product-pre-order.md +213 -0
- package/skills/wix-manage/references/stores/update-product-with-options.md +318 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Goal: Drive Cross-Sells"
|
|
3
|
+
description: Maps the BUNDLE_AND_SAVE business goal to multi-item purchase KPIs and bundling flows.
|
|
4
|
+
layer: goal
|
|
5
|
+
references:
|
|
6
|
+
- name: "Flow: Bundle and Save"
|
|
7
|
+
path: ecommerce/flow-bundle-and-save.md
|
|
8
|
+
load: true
|
|
9
|
+
---
|
|
10
|
+
# Goal: Drive Cross-Sells and Product Discovery
|
|
11
|
+
|
|
12
|
+
> **Before executing this skill**, read these referenced skills with `ReadFullDocsArticle`:
|
|
13
|
+
> - [Flow: Bundle and Save](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/flow-bundle-and-save)
|
|
14
|
+
|
|
15
|
+
Promote product discovery and multi-item purchases by creating bundle-based discounts that reward customers for buying across categories or adding complementary items to their cart.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Business Goal
|
|
20
|
+
|
|
21
|
+
**Goal ID:** `BUNDLE_AND_SAVE`
|
|
22
|
+
|
|
23
|
+
The merchant wants customers to explore more of the catalog and purchase multiple items per order. This is achieved through minimum item quantity conditions that incentivize buyers to add more products, particularly in categories with natural cross-sell relationships.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## KPIs
|
|
28
|
+
|
|
29
|
+
| KPI | Definition | How to measure |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| Items per order | Average number of line items per completed order | Order data: total items / total orders |
|
|
32
|
+
| Cross-sell rate | Percentage of orders containing items from 2+ categories | Analyze order composition across categories |
|
|
33
|
+
| Category diversity per order | Number of distinct categories represented per order | Track unique categories per order before and after |
|
|
34
|
+
| Bundle discount redemption | Orders meeting the minItemQuantity condition / total orders | Count qualifying orders vs total |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Triggers
|
|
39
|
+
|
|
40
|
+
Activate this goal when the merchant expresses any of the following intents:
|
|
41
|
+
|
|
42
|
+
- "bundle"
|
|
43
|
+
- "cross-sell"
|
|
44
|
+
- "buy together"
|
|
45
|
+
- "product discovery"
|
|
46
|
+
- "multi-buy"
|
|
47
|
+
- "encourage people to buy more items"
|
|
48
|
+
- "sell accessories with main products"
|
|
49
|
+
- "increase items per order"
|
|
50
|
+
- "mix and match"
|
|
51
|
+
- Any request about getting customers to explore more of the catalog
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Recommended Actions
|
|
56
|
+
|
|
57
|
+
### Primary: Flow: Bundle & Save Campaign
|
|
58
|
+
|
|
59
|
+
The sole action for this goal. Creates a percentage discount with a `minItemQuantity` condition that activates when the customer adds enough items to their cart.
|
|
60
|
+
|
|
61
|
+
**When to use:** Whenever the merchant wants to incentivize multi-item purchases, cross-category exploration, or product discovery.
|
|
62
|
+
|
|
63
|
+
**Key mechanics:**
|
|
64
|
+
- minItemQuantity condition (typically 2-3 items based on catalog profile)
|
|
65
|
+
- Scope determines which products count toward the bundle:
|
|
66
|
+
- CATEGORY — items from a specific category (best for focused cross-sell)
|
|
67
|
+
- ITEMS — specific complementary products (best for curated bundles)
|
|
68
|
+
- SITE — any items in the store (broadest reach)
|
|
69
|
+
- Discount percentage scaled to margin (10-20%)
|
|
70
|
+
- Higher item thresholds for lower-priced catalogs, lower thresholds for premium catalogs
|
|
71
|
+
|
|
72
|
+
**Catalog profile matching:**
|
|
73
|
+
|
|
74
|
+
| Catalog Type | minItemQuantity | Scope | Example |
|
|
75
|
+
|---|---|---|---|
|
|
76
|
+
| Accessories + main products | 2 | CATEGORY (accessories) | "Buy 2+ accessories, save 15%" |
|
|
77
|
+
| Wide catalog, many categories | 3 | SITE | "Buy any 3 items, save 10%" |
|
|
78
|
+
| Curated complementary items | 2 | ITEMS (specific products) | "Buy these together, save 15%" |
|
|
79
|
+
| Low-price items (avg < price_p25) | 3-4 | CATEGORY or SITE | "Buy 4+, save 20%" |
|
|
80
|
+
| High-price items (avg > price_p75) | 2 | CATEGORY | "Buy 2 premium items, save 10%" |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Measurement Plan
|
|
85
|
+
|
|
86
|
+
### Before campaign launch
|
|
87
|
+
|
|
88
|
+
1. Record baseline items per order
|
|
89
|
+
2. Record baseline category distribution per order
|
|
90
|
+
3. Identify current cross-sell rate (orders with 2+ categories)
|
|
91
|
+
|
|
92
|
+
### During campaign (weekly check-ins)
|
|
93
|
+
|
|
94
|
+
1. Track items per order vs baseline
|
|
95
|
+
2. Monitor bundle redemption rate
|
|
96
|
+
3. Check margin impact — multi-item discounts compound with quantity
|
|
97
|
+
4. Verify the minItemQuantity threshold is appropriate:
|
|
98
|
+
- Redemption rate > 70% — threshold may be too low
|
|
99
|
+
- Redemption rate < 5% — threshold may be too high or scope too narrow
|
|
100
|
+
|
|
101
|
+
### After campaign (30-day assessment)
|
|
102
|
+
|
|
103
|
+
1. Calculate items-per-order lift: `(new_items_per_order - baseline) / baseline * 100`
|
|
104
|
+
2. Measure new category penetration — did customers discover categories they had not purchased from before?
|
|
105
|
+
3. Assess AOV impact — bundling often increases AOV as a side effect
|
|
106
|
+
4. Evaluate whether specific product combinations drove the most bundle completions
|
|
107
|
+
5. Target benchmarks:
|
|
108
|
+
- Items per order increase > 15% = strong result
|
|
109
|
+
- Cross-sell rate increase > 10% = successful discovery
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Decision Matrix
|
|
114
|
+
|
|
115
|
+
| Scenario | Approach | Rationale |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| Store has clear accessory categories | CATEGORY scope on accessories, minItemQuantity: 2 | Natural cross-sell with main products |
|
|
118
|
+
| Broad catalog, no clear bundles | SITE scope, minItemQuantity: 3 | Encourages exploration across the entire catalog |
|
|
119
|
+
| Merchant names specific products | ITEMS scope with those products | Curated bundle matching merchant's intent |
|
|
120
|
+
| Low average price catalog | Higher minItemQuantity (3-4) | Lower price per item makes larger bundles feasible |
|
|
121
|
+
| High average price catalog | Lower minItemQuantity (2) | Customers less likely to buy 3+ expensive items |
|
|
122
|
+
| Merchant specifies quantities or discounts | Honor merchant input | User overrides always take priority |
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Goal: Increase AOV"
|
|
3
|
+
description: Maps the UPSELL_BOOST business goal to measurable KPIs and actionable discount flows. Covers AOV benchmarking, margin-based discount tiers, and minSubTotal strategy.
|
|
4
|
+
layer: goal
|
|
5
|
+
references:
|
|
6
|
+
- name: "Flow: Upsell Boost"
|
|
7
|
+
path: ecommerce/flow-upsell-boost.md
|
|
8
|
+
load: true
|
|
9
|
+
- name: "Flow: Bundle and Save"
|
|
10
|
+
path: ecommerce/flow-bundle-and-save.md
|
|
11
|
+
load: true
|
|
12
|
+
- name: "Flow: Add Free Shipping"
|
|
13
|
+
path: ecommerce/flow-add-free-shipping.md
|
|
14
|
+
load: false
|
|
15
|
+
- name: "Flow: Optimize Shipping Rates"
|
|
16
|
+
path: ecommerce/flow-optimize-shipping-rates.md
|
|
17
|
+
load: false
|
|
18
|
+
- name: "Guardrail: Margin Protection"
|
|
19
|
+
path: ecommerce/guardrail-margin-protection.md
|
|
20
|
+
load: false
|
|
21
|
+
---
|
|
22
|
+
# Goal: Increase Average Order Value
|
|
23
|
+
|
|
24
|
+
> **Before executing this skill**, read these referenced skills with `ReadFullDocsArticle`:
|
|
25
|
+
> - [Flow: Upsell Boost](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/flow-upsell-boost)
|
|
26
|
+
> - [Flow: Bundle and Save](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/flow-bundle-and-save)
|
|
27
|
+
>
|
|
28
|
+
> **Shipping flows that also serve AOV goals** (read with `ReadFullDocsArticle` if shipping domain is active):
|
|
29
|
+
> - [Flow: Add Free Shipping](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/flow-add-free-shipping) — free shipping threshold pushes carts above AOV
|
|
30
|
+
> - [Flow: Optimize Shipping Rates](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/flow-optimize-shipping-rates) — rate optimization improves conversion on higher-value orders
|
|
31
|
+
>
|
|
32
|
+
> **Related skills** (read with `ReadFullDocsArticle` if needed):
|
|
33
|
+
> - [Guardrail: Margin Protection](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/guardrail-margin-protection)
|
|
34
|
+
|
|
35
|
+
Incentivize customers to spend above the store's current average order value (AOV) by creating threshold-based discounts that reward higher cart totals.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Business Goal
|
|
40
|
+
|
|
41
|
+
**Goal ID:** `UPSELL_BOOST`
|
|
42
|
+
|
|
43
|
+
The merchant wants to increase the average amount customers spend per order. This is achieved by setting a minimum subtotal condition above the current AOV, so customers are encouraged to add more items or upgrade to higher-priced products to unlock the discount.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## KPIs
|
|
48
|
+
|
|
49
|
+
| KPI | Definition | How to measure |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| Average Order Value (AOV) | Total revenue / total orders | `getSiteData` — revenue / ordersCount |
|
|
52
|
+
| Revenue per order | Gross revenue attributed to each completed order | Track via order data before and after campaign |
|
|
53
|
+
| Discount redemption rate | Orders qualifying for the discount / total orders | Count orders with the discount applied vs total |
|
|
54
|
+
| Cart size increase | Change in items per order after campaign | Compare items per order pre/post |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Triggers
|
|
59
|
+
|
|
60
|
+
Activate this goal when the merchant expresses any of the following intents:
|
|
61
|
+
|
|
62
|
+
- "increase AOV"
|
|
63
|
+
- "boost order value"
|
|
64
|
+
- "upsell"
|
|
65
|
+
- "get people to spend more"
|
|
66
|
+
- "increase average order"
|
|
67
|
+
- "raise order size"
|
|
68
|
+
- "higher cart value"
|
|
69
|
+
- Any request mentioning order value, spending thresholds, or minimum purchase incentives
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Recommended Actions
|
|
74
|
+
|
|
75
|
+
### Primary: Flow: Upsell Boost Campaign
|
|
76
|
+
|
|
77
|
+
The primary action for this goal. Creates a percentage discount with a `minSubTotal` condition set above the current AOV. The discount percentage and threshold are tiered based on the store's average profit margin.
|
|
78
|
+
|
|
79
|
+
**When to use:** Always the first recommendation for AOV-focused goals. Works best when the store has clear AOV data and margin information.
|
|
80
|
+
|
|
81
|
+
**Key mechanics:**
|
|
82
|
+
- minSubTotal set to 1.15x-1.5x the effective AOV (based on margin tier)
|
|
83
|
+
- Discount percentage scaled to margin (10-20%)
|
|
84
|
+
- Scope prioritized: CATEGORY (high-margin) > ITEMS (specific upsell candidates) > SITE (fallback)
|
|
85
|
+
|
|
86
|
+
### Secondary: Flow: Bundle & Save Campaign
|
|
87
|
+
|
|
88
|
+
A complementary action that increases AOV by encouraging multi-item purchases. Instead of a subtotal threshold, it uses an item quantity threshold.
|
|
89
|
+
|
|
90
|
+
**When to use:** When the catalog has natural cross-sell opportunities (complementary products, accessories, related items). Particularly effective when the store has many lower-priced items where quantity-based incentives drive higher totals.
|
|
91
|
+
|
|
92
|
+
**Key mechanics:**
|
|
93
|
+
- minItemQuantity condition (typically 2-3 items)
|
|
94
|
+
- Targets categories with cross-sell potential
|
|
95
|
+
- Can run alongside an upsell boost if scoped to different categories
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Measurement Plan
|
|
100
|
+
|
|
101
|
+
### Before campaign launch
|
|
102
|
+
|
|
103
|
+
1. Record baseline AOV from `getSiteData` (revenue / ordersCount)
|
|
104
|
+
2. Record baseline items per order
|
|
105
|
+
3. Note the campaign start date
|
|
106
|
+
|
|
107
|
+
### During campaign (weekly check-ins)
|
|
108
|
+
|
|
109
|
+
1. Compare current AOV to baseline
|
|
110
|
+
2. Track discount redemption rate
|
|
111
|
+
3. Monitor margin impact (ensure effective margin stays above 15%)
|
|
112
|
+
|
|
113
|
+
### After campaign (30-day assessment)
|
|
114
|
+
|
|
115
|
+
1. Calculate AOV lift: `(new_aov - baseline_aov) / baseline_aov * 100`
|
|
116
|
+
2. Calculate incremental revenue attributable to higher order values
|
|
117
|
+
3. Assess whether the minSubTotal threshold needs adjustment:
|
|
118
|
+
- If redemption rate > 80% — threshold may be too low, consider raising
|
|
119
|
+
- If redemption rate < 10% — threshold may be too high, consider lowering
|
|
120
|
+
- Sweet spot: 20-40% redemption rate
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Decision Matrix
|
|
125
|
+
|
|
126
|
+
| Scenario | Recommended Flow | Rationale |
|
|
127
|
+
|---|---|---|
|
|
128
|
+
| Clear AOV data, margin data available | Upsell Boost (primary) | Full data enables optimal threshold + discount calculation |
|
|
129
|
+
| Low-data store (few orders) | Upsell Boost with conservative defaults | Use price_p50 as AOV proxy, 10% discount, 1.15x threshold |
|
|
130
|
+
| Catalog has natural bundles | Bundle & Save (secondary) | Multi-item incentive drives AOV through quantity |
|
|
131
|
+
| Both AOV and cross-sell opportunity | Both flows, different scopes | Upsell Boost on high-value categories, Bundle & Save on accessories |
|
|
132
|
+
| Merchant specifies exact values | Honor merchant input | User overrides always take priority over calculated values |
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Goal: Reduce Cart Abandonment"
|
|
3
|
+
description: Maps cart abandonment reduction to recovery automation KPIs. Covers abandoned cart email automation activation, missing sales detection, and eligibility thresholds. Also references shipping flows that affect checkout drop-off.
|
|
4
|
+
layer: goal
|
|
5
|
+
references:
|
|
6
|
+
- name: "Flow: Fix Coverage Gaps"
|
|
7
|
+
path: ecommerce/flow-fix-coverage-gaps.md
|
|
8
|
+
load: false
|
|
9
|
+
- name: "Recipe: Apply Shipping Recommendations"
|
|
10
|
+
path: ecommerce/recipe-apply-shipping-recommendations.md
|
|
11
|
+
load: false
|
|
12
|
+
- name: "Setup Store Pickup Location"
|
|
13
|
+
path: ecommerce/setup-store-pickup-location.md
|
|
14
|
+
load: false
|
|
15
|
+
---
|
|
16
|
+
# Goal: Reduce Cart Abandonment
|
|
17
|
+
|
|
18
|
+
> **Related skills** (read with `ReadFullDocsArticle` if needed):
|
|
19
|
+
> - [Flow: Fix Coverage Gaps](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/flow-fix-coverage-gaps) — shipping coverage gaps block checkout entirely
|
|
20
|
+
> - [Recipe: Apply Shipping Recommendations](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/recipe-apply-shipping-recommendations)
|
|
21
|
+
> - [Setup Store Pickup Location](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/setup-store-pickup-location)
|
|
22
|
+
> - [Setup Store Pickup Location](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/setup-store-pickup-location)
|
|
23
|
+
|
|
24
|
+
Reduce checkout abandonment caused by shipping friction — coverage gaps, unexpected costs, and missing free shipping options — by optimizing the delivery step of the checkout funnel.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Business Goal
|
|
29
|
+
|
|
30
|
+
The merchant wants to reduce the percentage of customers who abandon checkout, specifically at the delivery/shipping step. Shipping-related friction is the leading cause of checkout abandonment, and the delivery step conversion rate (delivery_step_cvr) is the primary metric.
|
|
31
|
+
|
|
32
|
+
**Benchmark:** A healthy delivery_step_cvr is approximately 65%. Stores below this benchmark have significant shipping-related friction.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## KPIs
|
|
37
|
+
|
|
38
|
+
| KPI | Definition | How to measure | Benchmark |
|
|
39
|
+
|---|---|---|---|
|
|
40
|
+
| Delivery step CVR | Customers completing delivery step / customers reaching delivery step | Site metrics: delivery_step_cvr | 65% |
|
|
41
|
+
| Cart abandonment rate | Carts created but not converted to orders / total carts | 1 - (orders / carts) | Industry avg ~70% |
|
|
42
|
+
| Free shipping qualification rate | Orders qualifying for free shipping / total orders | Track orders meeting free shipping threshold | Higher is better |
|
|
43
|
+
| Revenue from recovered checkouts | Incremental revenue from improved conversion | (new_cvr - old_cvr) * checkout_sessions * AOV | - |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Triggers
|
|
48
|
+
|
|
49
|
+
Activate this goal when the merchant expresses any of the following intents:
|
|
50
|
+
|
|
51
|
+
- "cart abandonment"
|
|
52
|
+
- "checkout drop-off"
|
|
53
|
+
- "shipping friction"
|
|
54
|
+
- "delivery step"
|
|
55
|
+
- "people are leaving at checkout"
|
|
56
|
+
- "customers not completing orders"
|
|
57
|
+
- "why are customers abandoning"
|
|
58
|
+
- "checkout conversion"
|
|
59
|
+
- Any request about reducing drop-off during the purchase flow
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Diagnostic Questions
|
|
64
|
+
|
|
65
|
+
Before recommending actions, assess the root cause of abandonment. Ask or investigate:
|
|
66
|
+
|
|
67
|
+
1. **Where are buyers dropping off?** — Is it specifically the delivery step, or payment, or earlier in the funnel?
|
|
68
|
+
2. **Are shipping costs visible before checkout?** — Surprise shipping costs are the #1 abandonment driver.
|
|
69
|
+
3. **Is there a free shipping option?** — Free shipping (even with a threshold) dramatically reduces abandonment.
|
|
70
|
+
4. **Are there shipping coverage gaps?** — Customers in unserved regions cannot complete checkout at all.
|
|
71
|
+
5. **Are shipping rates reasonable?** — Rates above 10-15% of order value cause sticker shock.
|
|
72
|
+
6. **Are payment methods adequate?** — Missing payment options can look like shipping-step abandonment in metrics.
|
|
73
|
+
7. **Are recovery emails enabled?** — Abandoned cart emails can recapture 5-15% of abandoned carts.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Recommended Actions (Prioritized)
|
|
78
|
+
|
|
79
|
+
Actions are ordered by impact. Address blocking issues first, then conversion drivers, then optimization.
|
|
80
|
+
|
|
81
|
+
### Priority 1: Flow: Fix Shipping Coverage Gaps (Blocking)
|
|
82
|
+
|
|
83
|
+
Coverage gaps are the most critical issue — if a customer's region is not covered by any shipping option, they literally cannot complete checkout.
|
|
84
|
+
|
|
85
|
+
**When to use:** When delivery profiles show regions without active shipping options, inactive regions, or missing domestic coverage.
|
|
86
|
+
|
|
87
|
+
**Impact:** Removes a hard blocker. Customers in uncovered regions have 0% conversion.
|
|
88
|
+
|
|
89
|
+
### Priority 2: Flow: Add Free Shipping (Conversion Driver)
|
|
90
|
+
|
|
91
|
+
Free shipping is the single most effective lever for reducing cart abandonment. Even with a minimum order threshold, offering a free shipping option significantly improves delivery step conversion.
|
|
92
|
+
|
|
93
|
+
**When to use:** When the store has no free shipping option, or when the existing free shipping threshold is set too high relative to AOV.
|
|
94
|
+
|
|
95
|
+
**Impact:** Typically improves delivery_step_cvr by 10-20 percentage points. The threshold should be calibrated to AOV (typically 1.2x-1.5x AOV).
|
|
96
|
+
|
|
97
|
+
### Priority 3: Flow: Optimize Shipping Rates (Sticker Shock Reduction)
|
|
98
|
+
|
|
99
|
+
High shipping rates cause sticker shock even when coverage exists. Rate optimization ensures pricing is competitive and proportional to order value.
|
|
100
|
+
|
|
101
|
+
**When to use:** When shipping rates are disproportionately high relative to product prices, or when rates lack tiered/conditional pricing.
|
|
102
|
+
|
|
103
|
+
**Impact:** Reduces abandonment from price sensitivity. Most effective when combined with free shipping at a threshold.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Measurement Plan
|
|
108
|
+
|
|
109
|
+
### Before optimization
|
|
110
|
+
|
|
111
|
+
1. Record baseline delivery_step_cvr from site metrics
|
|
112
|
+
2. Record current cart abandonment rate
|
|
113
|
+
3. Identify the specific shipping configuration state:
|
|
114
|
+
- Number of active regions with shipping options
|
|
115
|
+
- Presence/absence of free shipping
|
|
116
|
+
- Average shipping rate as percentage of AOV
|
|
117
|
+
|
|
118
|
+
### During optimization (weekly monitoring for 30 days)
|
|
119
|
+
|
|
120
|
+
1. Track delivery_step_cvr weekly
|
|
121
|
+
2. Compare week-over-week trend
|
|
122
|
+
3. Monitor free shipping qualification rate (if threshold was added)
|
|
123
|
+
4. Check for new coverage gaps if regions were modified
|
|
124
|
+
|
|
125
|
+
### After optimization (30-day assessment)
|
|
126
|
+
|
|
127
|
+
1. Calculate CVR improvement: `new_delivery_step_cvr - baseline_delivery_step_cvr`
|
|
128
|
+
2. Estimate revenue recovered: `cvr_improvement * checkout_sessions * AOV`
|
|
129
|
+
3. Evaluate threshold effectiveness:
|
|
130
|
+
- Free shipping qualification rate > 40% = threshold well-calibrated
|
|
131
|
+
- Free shipping qualification rate < 10% = threshold too high, consider lowering
|
|
132
|
+
4. Assess whether further optimization is needed:
|
|
133
|
+
- delivery_step_cvr >= 65% = healthy, monitor quarterly
|
|
134
|
+
- delivery_step_cvr 50-65% = improving, continue optimization
|
|
135
|
+
- delivery_step_cvr < 50% = investigate non-shipping causes (payment, UX)
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Decision Matrix
|
|
140
|
+
|
|
141
|
+
| Scenario | Priority Action | Rationale |
|
|
142
|
+
|---|---|---|
|
|
143
|
+
| Regions without shipping options | Fix Coverage Gaps (P1) | Hard blocker — 0% conversion in uncovered regions |
|
|
144
|
+
| No free shipping option exists | Add Free Shipping (P2) | #1 conversion driver for delivery step |
|
|
145
|
+
| Free shipping exists but threshold too high | Add Free Shipping (recalibrate) | Lower threshold to match AOV |
|
|
146
|
+
| High shipping rates, free shipping exists | Optimize Shipping Rates (P3) | Reduce sticker shock for below-threshold orders |
|
|
147
|
+
| delivery_step_cvr >= 65% | No immediate action needed | Already at healthy benchmark |
|
|
148
|
+
| Abandonment not at delivery step | Investigate other causes | Payment methods, UX, trust signals may be the issue |
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Goal: Seasonal Revenue"
|
|
3
|
+
description: Maps the SEASONAL business goal to event-driven revenue KPIs and promotional flows.
|
|
4
|
+
layer: goal
|
|
5
|
+
references:
|
|
6
|
+
- name: "Flow: Seasonal Promotion"
|
|
7
|
+
path: ecommerce/flow-seasonal-promotion.md
|
|
8
|
+
load: true
|
|
9
|
+
---
|
|
10
|
+
# Goal: Capitalize on Seasonal Events
|
|
11
|
+
|
|
12
|
+
> **Before executing this skill**, read these referenced skills with `ReadFullDocsArticle`:
|
|
13
|
+
> - [Flow: Seasonal Promotion](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/flow-seasonal-promotion)
|
|
14
|
+
|
|
15
|
+
Capitalize on holidays, cultural events, and seasonal moments to drive revenue spikes through time-limited promotional campaigns.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Business Goal
|
|
20
|
+
|
|
21
|
+
**Goal ID:** `SEASONAL`
|
|
22
|
+
|
|
23
|
+
The merchant wants to take advantage of a specific event or season to boost sales. This is achieved through time-bound discount campaigns that create urgency and align with customer purchasing behavior during peak shopping periods.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## KPIs
|
|
28
|
+
|
|
29
|
+
| KPI | Definition | How to measure |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| Campaign period revenue | Total revenue during the promotional window | Compare order revenue within campaign dates |
|
|
32
|
+
| Conversion lift | Conversion rate during event vs baseline | Site metrics: orders / visitors during campaign vs prior period |
|
|
33
|
+
| Event vs baseline comparison | Revenue during event vs same period in prior month/year | `getSiteData` revenue comparison |
|
|
34
|
+
| Discount redemption rate | Orders qualifying for campaign discount / total orders in window | Track discount-attributed orders |
|
|
35
|
+
| Traffic-to-sale ratio | Orders / site visitors during campaign | Site metrics during campaign window |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Triggers
|
|
40
|
+
|
|
41
|
+
Activate this goal when the merchant expresses any of the following intents:
|
|
42
|
+
|
|
43
|
+
- "Black Friday"
|
|
44
|
+
- "Christmas sale"
|
|
45
|
+
- "seasonal"
|
|
46
|
+
- "holiday discount"
|
|
47
|
+
- "New Year sale"
|
|
48
|
+
- "Valentine's Day"
|
|
49
|
+
- "summer sale"
|
|
50
|
+
- "back to school"
|
|
51
|
+
- "end of season"
|
|
52
|
+
- Any date-related promotion request
|
|
53
|
+
- Any mention of a specific holiday or cultural event tied to a discount
|
|
54
|
+
|
|
55
|
+
### Proactive Detection
|
|
56
|
+
|
|
57
|
+
If `current_date` is within 30 days of a major shopping holiday, auto-suggest a seasonal campaign:
|
|
58
|
+
|
|
59
|
+
| Holiday / Event | Approximate Date | Suggest Window |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| Valentine's Day | Feb 14 | Jan 15 - Feb 14 |
|
|
62
|
+
| Easter | Variable (March/April) | 30 days before |
|
|
63
|
+
| Mother's Day | 2nd Sunday in May | April 15 - May date |
|
|
64
|
+
| Father's Day | 3rd Sunday in June | May 20 - June date |
|
|
65
|
+
| Back to School | August | July 15 - Aug 31 |
|
|
66
|
+
| Black Friday | 4th Friday in November | Nov 1 - Nov 30 |
|
|
67
|
+
| Cyber Monday | Monday after Black Friday | Nov 1 - Nov 30 |
|
|
68
|
+
| Christmas | Dec 25 | Nov 25 - Dec 25 |
|
|
69
|
+
| Boxing Day / End of Year | Dec 26-31 | Dec 20 - Dec 31 |
|
|
70
|
+
| New Year | Jan 1 | Dec 26 - Jan 7 |
|
|
71
|
+
|
|
72
|
+
When proactively suggesting, frame it as an opportunity rather than a requirement:
|
|
73
|
+
> "Black Friday is {N} days away. Would you like to set up a promotional campaign to capitalize on the increased shopping traffic?"
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Recommended Actions
|
|
78
|
+
|
|
79
|
+
### Primary: Flow: Seasonal Promotion
|
|
80
|
+
|
|
81
|
+
For planned, scheduled events where the merchant has lead time. Creates a discount with defined start and end dates aligned to the event window.
|
|
82
|
+
|
|
83
|
+
**When to use:**
|
|
84
|
+
- The event is more than 48 hours away
|
|
85
|
+
- The merchant wants a structured campaign with specific dates
|
|
86
|
+
- The promotion should run for multiple days (e.g., a week-long sale)
|
|
87
|
+
|
|
88
|
+
**Key mechanics:**
|
|
89
|
+
- Time-bounded discount with explicit start/end dates
|
|
90
|
+
- Scope can be CATEGORY (seasonal products), ITEMS (featured products), or SITE (store-wide event)
|
|
91
|
+
- Discount percentage calibrated to margin and event significance
|
|
92
|
+
|
|
93
|
+
### Secondary: Flow: Run Flash Sale
|
|
94
|
+
|
|
95
|
+
For quick, high-urgency promotions with short windows (24-72 hours). Creates immediate impact with deeper discounts and tighter time constraints.
|
|
96
|
+
|
|
97
|
+
**When to use:**
|
|
98
|
+
- The event is imminent (within 48 hours)
|
|
99
|
+
- The merchant wants a short burst of urgency-driven sales
|
|
100
|
+
- Flash sale format (limited time, deeper discount) suits the event
|
|
101
|
+
- Last-minute seasonal opportunity
|
|
102
|
+
|
|
103
|
+
**Key mechanics:**
|
|
104
|
+
- Short duration (typically 24-48 hours)
|
|
105
|
+
- Can use deeper discounts than standard campaigns due to limited exposure
|
|
106
|
+
- Urgency messaging: "24-hour flash sale" or "ends midnight"
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Measurement Plan
|
|
111
|
+
|
|
112
|
+
### Before campaign launch
|
|
113
|
+
|
|
114
|
+
1. Record baseline revenue for the same period (prior week or prior year if available)
|
|
115
|
+
2. Record baseline conversion rate and traffic
|
|
116
|
+
3. Note the campaign window (start date, end date)
|
|
117
|
+
|
|
118
|
+
### During campaign
|
|
119
|
+
|
|
120
|
+
1. Monitor revenue daily against the campaign target
|
|
121
|
+
2. Track conversion rate vs baseline
|
|
122
|
+
3. Check inventory levels for promoted products — adjust if selling out too fast
|
|
123
|
+
4. Monitor discount stacking risks if other active promotions exist
|
|
124
|
+
|
|
125
|
+
### After campaign (within 7 days of end)
|
|
126
|
+
|
|
127
|
+
1. Calculate campaign revenue lift: `(campaign_revenue - baseline_revenue) / baseline_revenue * 100`
|
|
128
|
+
2. Compare conversion rate during campaign vs baseline
|
|
129
|
+
3. Assess whether the event-specific timing maximized impact
|
|
130
|
+
4. Calculate ROI: incremental revenue vs margin cost of discounts
|
|
131
|
+
5. Document learnings for next seasonal event:
|
|
132
|
+
- Was the discount depth appropriate?
|
|
133
|
+
- Was the campaign window too long or too short?
|
|
134
|
+
- Which product scope performed best?
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Decision Matrix
|
|
139
|
+
|
|
140
|
+
| Scenario | Recommended Flow | Rationale |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| Major holiday, 7+ days lead time | Seasonal Promotion | Structured multi-day campaign with planned dates |
|
|
143
|
+
| Event is tomorrow or today | Flash Sale | Immediate activation, short window |
|
|
144
|
+
| End-of-season clearance | Seasonal Promotion + stock mover overlap | Combine seasonal framing with inventory goals |
|
|
145
|
+
| Merchant says "quick weekend sale" | Flash Sale | Short duration matches flash format |
|
|
146
|
+
| Merchant specifies exact dates and discount | Honor input, choose matching flow | User overrides take priority; select flow that fits the duration |
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Guardrail: Discount Conflicts"
|
|
3
|
+
description: Validation rules for detecting and preventing discount stacking conflicts, coupon overlap, and unintended deep discounts before applying new promotions. Covers automatic discount rules, coupon interactions, and safe discount limits.
|
|
4
|
+
layer: guardrail
|
|
5
|
+
references:
|
|
6
|
+
- name: "Troubleshoot: Discount Not Applying"
|
|
7
|
+
path: ecommerce/troubleshoot-discount-not-applying.md
|
|
8
|
+
load: false
|
|
9
|
+
---
|
|
10
|
+
# Guardrail: Discount Conflicts
|
|
11
|
+
|
|
12
|
+
> **Related skills** (read with `ReadFullDocsArticle` if needed):
|
|
13
|
+
> - [Troubleshoot: Discount Not Applying](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/troubleshoot-discount-not-applying)
|
|
14
|
+
|
|
15
|
+
## When to use this guardrail
|
|
16
|
+
|
|
17
|
+
Run these checks **before** creating or updating any discount — whether automatic discount rule or coupon. Discount conflicts are one of the most common merchant mistakes — overlapping discounts silently stack and give customers a much deeper discount than intended. This is especially dangerous when **automatic discounts and coupons interact**, since merchants often forget that both mechanisms apply simultaneously.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Check 1: Existing active discount rules on the same scope
|
|
22
|
+
|
|
23
|
+
**Why:** Wix eCommerce stacks automatic discount rules. If a 20% catalog-wide discount and a 15% collection discount both apply to the same product, the customer may get both applied.
|
|
24
|
+
|
|
25
|
+
**How to check:**
|
|
26
|
+
|
|
27
|
+
1. Query all active discount rules:
|
|
28
|
+
|
|
29
|
+
**Endpoint**: `POST https://www.wixapis.com/ecom/v1/discount-rules/query`
|
|
30
|
+
|
|
31
|
+
**Request**:
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"query": {
|
|
35
|
+
"filter": {
|
|
36
|
+
"active": true
|
|
37
|
+
},
|
|
38
|
+
"paging": {
|
|
39
|
+
"limit": 100
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
2. For each existing active rule, compare its scope against the new rule:
|
|
46
|
+
- If both target `CATALOG` scope: **conflict** — both apply to all products
|
|
47
|
+
- If new rule targets `CATALOG` and existing targets `COLLECTION`: **conflict** — catalog-wide includes that collection
|
|
48
|
+
- If both target the same `COLLECTION` ID: **conflict** — same products affected
|
|
49
|
+
- If both target the same `SPECIFIC_PRODUCTS` ID: **conflict** — same product
|
|
50
|
+
|
|
51
|
+
3. If a conflict is found, warn the merchant:
|
|
52
|
+
> "There's already an active discount '{existingRuleName}' ({existingDiscount}%) that applies to the same products. Adding this new {newDiscount}% discount may stack, giving customers a combined discount. Would you like to deactivate the existing rule first, or proceed with both?"
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Check 2: Discount percentage sanity
|
|
57
|
+
|
|
58
|
+
**Why:** A discount above 50% is unusual and may indicate a typo (the merchant meant 15% not 50%). A discount of 100% makes the product free.
|
|
59
|
+
|
|
60
|
+
**Rules:**
|
|
61
|
+
- Discount > 50%: Warn — "This discount is {percentage}% off. Are you sure? This means a $100 product would sell for ${100 - percentage}."
|
|
62
|
+
- Discount = 100%: Block unless explicitly confirmed — "This would make the product free. Please confirm this is intentional."
|
|
63
|
+
- Discount > 100%: Block — "A discount cannot exceed 100%."
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Check 3: Time overlap with existing promotions
|
|
68
|
+
|
|
69
|
+
**Why:** Two promotions running simultaneously on overlapping products cause stacking during the overlap period.
|
|
70
|
+
|
|
71
|
+
**How to check:**
|
|
72
|
+
|
|
73
|
+
1. For the new rule's `activeTimeInfo` (start/end), check if any existing active rule has an overlapping time window on the same scope.
|
|
74
|
+
2. Overlap exists when: `existingStart < newEnd AND existingEnd > newStart`
|
|
75
|
+
3. If overlap found on the same scope: warn the merchant about the overlap period.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Check 4: Cross-mechanism stacking (Automatic + Coupon)
|
|
80
|
+
|
|
81
|
+
**Why:** Automatic discounts and coupons stack with each other at checkout. A customer with a 20% coupon buying during a 20% automatic sale gets both applied — the effective discount is much deeper than either one alone. This is the most commonly overlooked stacking issue.
|
|
82
|
+
|
|
83
|
+
**How to check:**
|
|
84
|
+
|
|
85
|
+
1. If you are creating an **automatic discount**: Query active coupons that target overlapping products/collections.
|
|
86
|
+
2. If you are creating a **coupon**: Query active automatic discount rules that target overlapping products/collections.
|
|
87
|
+
3. If overlap found, warn the merchant with the combined impact:
|
|
88
|
+
> "You have an active {automatic discount / coupon} '{name}' ({X}% off) that applies to the same products. If you create this {coupon / automatic discount}, customers will get BOTH discounts — a combined effective discount of approximately {combined}%. Is this intentional?"
|
|
89
|
+
|
|
90
|
+
**Key rule:** Only one coupon can be used per checkout, but automatic discounts have no such limit. The worst case is: multiple automatic discounts + one coupon all stacking on the same product.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Check 5: Minimum profit margin
|
|
95
|
+
|
|
96
|
+
**Why:** Deep discounts on low-margin products can result in selling at a loss.
|
|
97
|
+
|
|
98
|
+
**Rules:**
|
|
99
|
+
- If the merchant has provided cost/margin information, verify that the discount doesn't reduce the price below cost
|
|
100
|
+
- If no cost information is available, warn for discounts > 40% as a general safety threshold
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Summary: Decision matrix
|
|
105
|
+
|
|
106
|
+
| Scenario | Action |
|
|
107
|
+
|---|---|
|
|
108
|
+
| No conflicts found | Proceed with creating the discount |
|
|
109
|
+
| Scope overlap with existing active automatic discount | Warn merchant, ask to deactivate existing or confirm stacking |
|
|
110
|
+
| Cross-mechanism stacking (automatic + coupon on same scope) | Warn merchant with combined effective discount percentage |
|
|
111
|
+
| Discount > 50% | Warn merchant, ask for confirmation |
|
|
112
|
+
| Discount = 100% | Block unless explicitly confirmed |
|
|
113
|
+
| Time overlap on same scope | Warn about overlap period |
|
|
114
|
+
|
|
115
|
+
## References
|
|
116
|
+
|
|
117
|
+
- [Discount Rules API (Automatic Discounts)](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/discounts/discount-rules/introduction)
|
|
118
|
+
- [Coupons API](https://dev.wix.com/docs/api-reference/business-solutions/coupons/introduction)
|