@wix/agent-skills 1.6.0 → 1.7.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 (154) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/skills/wix-app/SKILL.md +49 -42
  4. package/skills/wix-app/references/BACKEND_EVENT.md +10 -65
  5. package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +101 -406
  6. package/skills/wix-app/references/DASHBOARD_MENU_PLUGIN.md +14 -111
  7. package/skills/wix-app/references/DASHBOARD_MODAL.md +56 -205
  8. package/skills/wix-app/references/DASHBOARD_PAGE.md +19 -98
  9. package/skills/wix-app/references/DASHBOARD_PLUGIN.md +6 -108
  10. package/skills/wix-app/references/DATA_COLLECTION.md +113 -198
  11. package/skills/wix-app/references/EMBEDDED_SCRIPT.md +41 -268
  12. package/skills/wix-app/references/EXTENSION_REGISTRATION.md +27 -76
  13. package/skills/wix-app/references/SERVICE_PLUGIN.md +35 -188
  14. package/skills/wix-app/references/SITE_PLUGIN.md +8 -92
  15. package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +0 -44
  16. package/skills/wix-app/references/custom-element-widget/SETTINGS_PANEL.md +19 -330
  17. package/skills/wix-app/references/dashboard-menu-plugin/bookings-slots.md +0 -12
  18. package/skills/wix-app/references/dashboard-menu-plugin/ecommerce-slots.md +7 -0
  19. package/skills/wix-app/references/dashboard-menu-plugin/restaurants-slots.md +0 -12
  20. package/skills/wix-app/references/dashboard-plugin/SLOTS.md +3 -15
  21. package/skills/wix-app/references/service-plugin/ADDITIONAL-FEES.md +2 -18
  22. package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +2 -42
  23. package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +1 -11
  24. package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +1 -11
  25. package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +2 -40
  26. package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +2 -19
  27. package/skills/wix-app/references/service-plugin/VALIDATIONS.md +2 -18
  28. package/skills/wix-app/references/site-plugin/SLOTS.md +17 -68
  29. package/skills/wix-headless/SKILL.md +111 -389
  30. package/skills/wix-headless/references/BUILD.md +307 -0
  31. package/skills/wix-headless/references/DESIGN_SYSTEM.md +115 -0
  32. package/skills/wix-headless/references/DISCOVERY.md +237 -112
  33. package/skills/wix-headless/references/PLAN.md +82 -0
  34. package/skills/wix-headless/references/SEED.md +205 -0
  35. package/skills/wix-headless/references/SETUP.md +140 -134
  36. package/skills/wix-headless/references/astro/COMPOSE.md +142 -0
  37. package/skills/wix-headless/references/{blog → astro/blog}/BLOG_PAGES.md +1 -1
  38. package/skills/wix-headless/references/{blog → astro/blog}/BLOG_SETUP.md +2 -2
  39. package/skills/wix-headless/references/astro/cms/CMS_FOUNDATIONS.md +214 -0
  40. package/skills/wix-headless/references/{cms → astro/cms}/FAQ_KNOWLEDGE_BASE.md +6 -4
  41. package/skills/wix-headless/references/{cms → astro/cms}/PORTFOLIO.md +5 -5
  42. package/skills/wix-headless/references/{cms → astro/cms}/RESOURCE_LIBRARY.md +5 -5
  43. package/skills/wix-headless/references/{cms → astro/cms}/TEAM_DIRECTORY.md +5 -5
  44. package/skills/wix-headless/references/astro/designer/INSTRUCTIONS.md +331 -0
  45. package/skills/wix-headless/references/{ecom → astro/ecom}/CART_PAGES.md +1 -1
  46. package/skills/wix-headless/references/{ecom → astro/ecom}/CART_WIRING.md +1 -1
  47. package/skills/wix-headless/references/{ecom → astro/ecom}/COMPONENTS_CSS.md +3 -3
  48. package/skills/wix-headless/references/{forms → astro/forms}/CONTACT_FORM.md +13 -13
  49. package/skills/wix-headless/references/{gift-cards → astro/gift-cards}/COMPONENTS.md +1 -1
  50. package/skills/wix-headless/references/{gift-cards → astro/gift-cards}/PAGES.md +1 -1
  51. package/skills/wix-headless/references/{stores → astro/stores}/BACK_IN_STOCK.md +1 -1
  52. package/skills/wix-headless/references/{stores → astro/stores}/CATEGORY_PAGES.md +12 -13
  53. package/skills/wix-headless/references/{stores → astro/stores}/COMPONENTS_CSS.md +4 -4
  54. package/skills/wix-headless/references/{stores → astro/stores}/HOME_AND_NAV.md +11 -9
  55. package/skills/wix-headless/references/{stores → astro/stores}/PRODUCT_PAGES.md +5 -3
  56. package/skills/wix-headless/references/{stores → astro/stores}/SHARED_WIRING.md +3 -3
  57. package/skills/wix-headless/references/astro/templates/Footer.astro +27 -0
  58. package/skills/wix-headless/references/astro/templates/Layout.astro +132 -0
  59. package/skills/wix-headless/references/astro/templates/Navigation.astro +38 -0
  60. package/skills/wix-headless/references/astro/templates/astro.config.mjs +41 -0
  61. package/skills/wix-headless/references/astro/templates/ecom/components-ecom.css +302 -0
  62. package/skills/wix-headless/references/astro/templates/global.css +286 -0
  63. package/skills/wix-headless/references/astro/templates/index.astro +56 -0
  64. package/skills/wix-headless/{templates → references/astro/templates}/stores/back-in-stock.ts +1 -1
  65. package/skills/wix-headless/{templates → references/astro/templates}/stores/components-stores.css +138 -33
  66. package/skills/wix-headless/references/blog/BLOG_CONTENT.md +10 -11
  67. package/skills/wix-headless/references/blog/INSTRUCTIONS.md +5 -5
  68. package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +31 -230
  69. package/skills/wix-headless/references/cms/INSTRUCTIONS.md +13 -8
  70. package/skills/wix-headless/references/custom/INSTRUCTIONS.md +38 -0
  71. package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +10 -10
  72. package/skills/wix-headless/references/forms/INSTRUCTIONS.md +5 -5
  73. package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +11 -11
  74. package/skills/wix-headless/references/images/INSTRUCTIONS.md +47 -50
  75. package/skills/wix-headless/references/seed-recipes.md +49 -0
  76. package/skills/wix-headless/references/shared/AUTHENTICATION.md +110 -0
  77. package/skills/wix-headless/references/shared/BUILD_NOISE.md +2 -2
  78. package/skills/wix-headless/references/shared/DOCS_SEARCH.md +41 -0
  79. package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +17 -17
  80. package/skills/wix-headless/references/shared/IMPLEMENTER.md +20 -29
  81. package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +1 -1
  82. package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +25 -16
  83. package/skills/wix-headless/references/shared/STYLING.md +47 -10
  84. package/skills/wix-headless/references/stores/INSTRUCTIONS.md +25 -25
  85. package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +17 -17
  86. package/skills/wix-headless/references/verticals/_schema.json +31 -117
  87. package/skills/wix-headless/references/verticals/_schema.md +60 -150
  88. package/skills/wix-headless/references/verticals/blog.md +5 -99
  89. package/skills/wix-headless/references/verticals/cms.md +9 -100
  90. package/skills/wix-headless/references/verticals/ecom.md +5 -76
  91. package/skills/wix-headless/references/verticals/forms.md +5 -85
  92. package/skills/wix-headless/references/verticals/gift-cards.md +6 -103
  93. package/skills/wix-headless/references/verticals/stores.md +10 -144
  94. package/skills/wix-headless/scripts/check-manifest.mjs +5 -5
  95. package/skills/wix-headless/scripts/emit-design-tokens.mjs +29 -23
  96. package/skills/wix-headless/scripts/init-site-json.mjs +59 -21
  97. package/skills/wix-headless/scripts/patch-decorative-slots.mjs +67 -43
  98. package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +3 -3
  99. package/skills/wix-headless/scripts/preview.sh +3 -3
  100. package/skills/wix-headless/scripts/release.sh +4 -4
  101. package/skills/wix-headless/scripts/scaffold.sh +75 -20
  102. package/skills/wix-headless/scripts/seed-utilities.sh +50 -12
  103. package/skills/wix-manage/SKILL.md +4 -8
  104. package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +2 -0
  105. package/skills/wix-manage/references/cms/cms-data-items-crud.md +4 -0
  106. package/skills/wix-manage/references/cms/cms-references-and-relationships.md +2 -0
  107. package/skills/wix-manage/references/cms/cms-schema-management.md +4 -0
  108. package/skills/wix-manage/references/ecommerce/api-shipping.md +443 -0
  109. package/skills/wix-manage/references/ecommerce/flow-add-free-shipping.md +5 -6
  110. package/skills/wix-manage/references/ecommerce/flow-fix-coverage-gaps.md +4 -5
  111. package/skills/wix-manage/references/ecommerce/flow-optimize-shipping-rates.md +4 -5
  112. package/skills/wix-manage/references/ecommerce/goal-increase-aov.md +1 -1
  113. package/skills/wix-manage/references/ecommerce/goal-reduce-cart-abandonment.md +1 -2
  114. package/skills/wix-manage/references/ecommerce/guardrail-shipping-health.md +2 -2
  115. package/skills/wix-manage/references/ecommerce/recipe-apply-shipping-recommendations.md +4 -5
  116. package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +7 -7
  117. package/skills/wix-manage/references/ecommerce/setup-discount-rules.md +209 -72
  118. package/skills/wix-manage/references/ecommerce/setup-store-pickup-location.md +9 -10
  119. package/skills/wix-manage/references/ecommerce/skill-graph.md +4 -4
  120. package/skills/wix-manage/references/forms/create-form.md +2 -0
  121. package/skills/wix-manage/references/stores/bulk-create-products-with-options.md +2 -0
  122. package/skills/wix-manage/references/stores/create-product-from-image.md +91 -38
  123. package/skills/wix-manage/references/stores/setup-online-store-catalog-v3.md +2 -0
  124. package/skills/wix-app/references/custom-element-widget/default-thumbnail.png +0 -0
  125. package/skills/wix-app/references/data-collection/extension-template.ts +0 -107
  126. package/skills/wix-headless/references/ORCHESTRATION.md +0 -269
  127. package/skills/wix-headless/references/commands/install-app.md +0 -42
  128. package/skills/wix-headless/references/commands/mcp-bootstrap.md +0 -28
  129. package/skills/wix-headless/references/designer/INSTRUCTIONS.md +0 -828
  130. package/skills/wix-headless/references/shared/MCP_PREFIX.md +0 -105
  131. package/skills/wix-headless/scripts/copy-utility-templates.mjs +0 -153
  132. package/skills/wix-headless/templates/ecom/components-ecom.css +0 -215
  133. package/skills/wix-manage/references/events/list-events.md +0 -203
  134. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/CartBadge.tsx +0 -0
  135. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/CartView.tsx +0 -0
  136. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/cart.astro +0 -0
  137. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/discounts.ts +0 -0
  138. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/thank-you.astro +0 -0
  139. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/GiftCardPurchase.tsx +0 -0
  140. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/_home-teaser-snippet.astro +0 -0
  141. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/_nav-snippet.astro +0 -0
  142. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/components-gift-cards.css +0 -0
  143. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/gift-cards.astro +0 -0
  144. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/gift-cards.ts +0 -0
  145. /package/skills/wix-headless/{templates → references/astro/templates}/stores/AddToCartButton.tsx +0 -0
  146. /package/skills/wix-headless/{templates → references/astro/templates}/stores/BackInStockForm.tsx +0 -0
  147. /package/skills/wix-headless/{templates → references/astro/templates}/stores/CategoryRail.astro +0 -0
  148. /package/skills/wix-headless/{templates → references/astro/templates}/stores/ProductCard.astro +0 -0
  149. /package/skills/wix-headless/{templates → references/astro/templates}/stores/ProductPurchase.tsx +0 -0
  150. /package/skills/wix-headless/{templates → references/astro/templates}/stores/SeoTags.astro +0 -0
  151. /package/skills/wix-headless/{templates → references/astro/templates}/stores/categories.ts +0 -0
  152. /package/skills/wix-headless/{templates → references/astro/templates}/stores/category/[slug].astro +0 -0
  153. /package/skills/wix-headless/{templates → references/astro/templates}/stores/products/[slug].astro +0 -0
  154. /package/skills/wix-headless/{templates → references/astro/templates}/stores/products/index.astro +0 -0
@@ -1,21 +1,30 @@
1
1
  #!/usr/bin/env bash
2
- # Copy the skill's shared utilities into the project's src/utils/ and strip the
3
- # Astro starter cruft that ships with the blank template.
2
+ # Frontend-track project prep: copy the skill's shared utilities into the
3
+ # project's src/utils/ and strip the Astro starter cruft that ships with the
4
+ # blank template. This is local-project (frontend) work, not backend seeding —
5
+ # the orchestrator only runs it in scaffold mode (integrate mode has no
6
+ # skill-written frontend to prep, so it is never invoked there).
4
7
  #
5
8
  # Usage (both modes work):
6
- # bash <SKILL_ROOT>/scripts/seed-utilities.sh # installed tgz
7
- # bash <(curl -s https://dev.wix.com/skills/wix-headless/scripts/seed-utilities.sh)
9
+ # bash <SKILL_ROOT>/scripts/seed-utilities.sh --template astro
10
+ # bash <(curl -s https://dev.wix.com/skills/wix-headless/scripts/seed-utilities.sh) --template astro
8
11
  #
9
- # Run from the project directory (CWD = <project>/). The script auto-detects
12
+ # --template (optional, default astro): astro
13
+ # Astro is the only frontend the skill scaffolds and preps, so the value is
14
+ # always "astro". Custom (non-astro) frontends route to the not-available stub
15
+ # (references/custom/INSTRUCTIONS.md) and never reach this script.
16
+ #
17
+ # Run from the project directory (CWD = <scaffold>/). The script auto-detects
10
18
  # whether shared-utilities is available on disk (tgz install) and falls back
11
19
  # to fetching from the well-known URL when streamed via process substitution
12
20
  # (BASH_SOURCE is /dev/fd/N, so the on-disk lookup naturally falls through).
13
21
  #
14
22
  # Behavior:
15
- # - Copies the three shared utility files into src/utils/ — never overwrites
16
- # an existing file (users can drop in their own version to override).
17
- # - Removes Astro starter cruft (Welcome.astro + marketing SVGs) that ships
18
- # with the blank template but is never imported by the build skill.
23
+ # - Copies the three shared utility files into src/utils/ for both templates —
24
+ # never overwrites an existing file (users can drop in their own version).
25
+ # - On --template=astro, removes Astro starter cruft (Welcome.astro + marketing
26
+ # SVGs) that ships with the blank template but is never imported by the build
27
+ # skill.
19
28
  #
20
29
  # Shared utilities copied:
21
30
  # - wix-image.ts — media URL resolver (used by stores, blog, cms)
@@ -27,6 +36,33 @@ set -euo pipefail
27
36
  SKILL_URL="https://dev.wix.com/skills/wix-headless"
28
37
  UTILS=(analytics.ts ricos.ts wix-image.ts)
29
38
 
39
+ TEMPLATE="astro"
40
+ while [[ $# -gt 0 ]]; do
41
+ case "$1" in
42
+ --template)
43
+ TEMPLATE="$2"
44
+ shift 2
45
+ ;;
46
+ --template=*)
47
+ TEMPLATE="${1#--template=}"
48
+ shift
49
+ ;;
50
+ *)
51
+ echo "seed-utilities.sh: unexpected arg: $1" >&2
52
+ exit 2
53
+ ;;
54
+ esac
55
+ done
56
+
57
+ case "$TEMPLATE" in
58
+ astro) ;;
59
+ *)
60
+ echo "seed-utilities.sh: --template must be 'astro' (the only supported frontend); got $TEMPLATE" >&2
61
+ echo "(Custom non-astro frontends route to the stub and never reach this script.)" >&2
62
+ exit 2
63
+ ;;
64
+ esac
65
+
30
66
  # Mode detection: prefer on-disk skill root if the sibling dir exists, else
31
67
  # fetch over HTTP. Covers both tgz install and `bash <(curl ...)` streaming.
32
68
  SHARED_UTILS_DIR=""
@@ -50,6 +86,8 @@ for f in "${UTILS[@]}"; do
50
86
  fi
51
87
  done
52
88
 
53
- # Astro starter cruft cleanup.
54
- rm -f src/components/Welcome.astro
55
- rm -f src/assets/astro.svg src/assets/wix.svg src/assets/background.svg
89
+ # Astro starter cruft cleanup — astro template only.
90
+ if [[ "$TEMPLATE" == "astro" ]]; then
91
+ rm -f src/components/Welcome.astro
92
+ rm -f src/assets/astro.svg src/assets/wix.svg src/assets/background.svg
93
+ fi
@@ -1,11 +1,13 @@
1
1
  ---
2
2
  name: wix-manage
3
- description: "Wix business solution management recipes — REST API operations for configuring and managing Wix business solutions. Routes to: stores, bookings, get-paid, CMS, contacts, events, forms, media, app-installation, pricing-plans, restaurants, rich-content, sites, blog, calendar, domains, site-properties, ecommerce."
3
+ description: "Wix business solution management recipes — REST API operations for configuring and managing Wix business solutions. Routes to: stores, bookings, get-paid, CMS, contacts, forms, media, app-installation, pricing-plans, restaurants, rich-content, sites, blog, calendar, domains, site-properties, ecommerce."
4
4
  compatibility: Requires Wix REST API access (API key or OAuth).
5
5
  ---
6
6
 
7
7
  # Management Recipes Index
8
8
 
9
+ > **Standard call shape for every curl example across these recipes.** The `<AUTH>` placeholder in example curls is shorthand for the `Authorization` header only; every actual call ALSO needs `wix-site-id: <SITE_ID>` and `Content-Type: application/json`. **POST/PATCH against `wix-data/*`, `form-schema-service/*`, `stores/v3/*`, `blog/v3/*`, and other site-scoped REST families return 403 without `wix-site-id`** — observed seeder regression cost ~100 s rediscovering this on a 2026-05-24 run. Mint the token via `npx @wix/cli@latest token --site "$SITE_ID"`.
10
+
9
11
  ## What Are Management Recipes?
10
12
 
11
13
  **Management recipes are for REST API operations** that configure, set up, and manage Wix business entities on your site. These recipes use REST API calls and are designed for:
@@ -155,6 +157,7 @@ These recipes do NOT cover frontend development or SDK usage for displaying data
155
157
 
156
158
  #### Config & API References
157
159
  - [API: Recommendation Tracking](references/ecommerce/api-recommendation-tracking.md)
160
+ - [API: Shipping Delivery](references/ecommerce/api-shipping.md)
158
161
  - [Setup: Discount Rules](references/ecommerce/setup-discount-rules.md)
159
162
  - [Setup: Coupons](references/ecommerce/setup-coupons.md)
160
163
  - [Setup: Shipping Regions](references/ecommerce/setup-shipping-regions.md)
@@ -171,13 +174,6 @@ These recipes do NOT cover frontend development or SDK usage for displaying data
171
174
 
172
175
  ---
173
176
 
174
- ## Events
175
-
176
- ### [List Events](references/events/list-events.md)
177
- **Technical:** Queries events from Wix Events using Events API. Covers field sets (DETAILS, URLS, REGISTRATION), filtering by status/date, and pagination.
178
-
179
- ---
180
-
181
177
  ## Forms
182
178
 
183
179
  ### [Create Form](references/forms/create-form.md)
@@ -5,6 +5,8 @@ description: Creates and publishes blog posts using Blog Posts API. Covers Ricos
5
5
 
6
6
  **Article: Create and Publish Blog Posts with Rich Content and Images**
7
7
 
8
+ > **Standard call shape (every curl below).** The `<AUTH>` placeholder is shorthand for `Authorization: Bearer <TOKEN>` only. Every actual call ALSO needs `wix-site-id: <SITE_ID>` and (for body-bearing requests) `Content-Type: application/json`. **POST against `blog/v3/*` returns 403 without `wix-site-id`** — recipe examples below show `<AUTH>` only for brevity, but the header is required on every call you make. Token: `npx @wix/cli@latest token --site "$SITE_ID"`.
9
+
8
10
  ---
9
11
 
10
12
  ## Description
@@ -4,6 +4,8 @@ description: "Add, query, update, and delete items in CMS collections. Use this
4
4
  ---
5
5
  # CMS Data Items CRUD
6
6
 
7
+ > **Standard call shape (every curl below).** The `<AUTH>` placeholder is shorthand for `Authorization: Bearer <TOKEN>` only. Every actual call ALSO needs `wix-site-id: <SITE_ID>` and (for body-bearing requests) `Content-Type: application/json`. **POST/PATCH against `wix-data/*` returns 403 without `wix-site-id`** — recipe examples below show `<AUTH>` only for brevity, but the header is required on every call you make. Token: `npx @wix/cli@latest token --site "$SITE_ID"`.
8
+
7
9
  This recipe covers basic Create, Read, Update, Delete (CRUD) operations for Wix CMS data items.
8
10
 
9
11
  ## Prerequisites
@@ -365,6 +367,8 @@ curl -X DELETE \
365
367
  | `IMAGE` | Image reference (HTTP url or wix:image://v1/{mediaId}/{friendlyName}) | `"wix:image://v1/3f72369f2219e2ee853e9e3df0217ce1.jpg/Colorful%20Business%20Cards.jpg"` |
366
368
  | `VIDEO` | Video reference (HTTP url or wix:video://v1/{mediaId}/{friendlyName}) | `"wix:video://v1/11062b_484182533ede4b9a81329daf20238867/Sketching%20Design%20Concepts#posterUri=11062b_484182533ede4b9a81329daf20238867f000.jpg&posterWidth=1920&posterHeight=1080"` |
367
369
  | `DOCUMENT` | Document reference (HTTP url or wix:document://v1/{mediaId}) | `"wix:document://v1/..."` |
370
+ | `MEDIA_IMAGE` | Wix Media Image | `{ "url": "http://...", "height": 640, "width": 480, "alt": "Picture" }` |
371
+ | `MEDIA_VECTOR_ART` | Wix Media Vector Art | `{ "uri": "wix:vector://v1/...", "viewBox": "0 0 100 100", "contentType": "shape", "svgContent": "<svg>...</svg>" }` |
368
372
  | `URL` | Web URL | `"https://example.com"` |
369
373
  | `RICH_TEXT` | HTML content | `"<p>Rich text</p>"` |
370
374
  | `EMAIL` | Email | `"example@wix.com"` |
@@ -4,6 +4,8 @@ description: "Add, replace, or remove items from MULTI_REFERENCE fields. Use ins
4
4
  ---
5
5
  # CMS References & Relationships
6
6
 
7
+ > **Standard call shape (every curl below).** The `<AUTH>` placeholder is shorthand for `Authorization: Bearer <TOKEN>` only. Every actual call ALSO needs `wix-site-id: <SITE_ID>` and (for body-bearing requests) `Content-Type: application/json`. **POST/PATCH against `wix-data/*` returns 403 without `wix-site-id`** — recipe examples below show `<AUTH>` only for brevity, but the header is required on every call you make. Token: `npx @wix/cli@latest token --site "$SITE_ID"`.
8
+
7
9
  This recipe covers linking CMS collections together using reference fields.
8
10
 
9
11
  ## Prerequisites
@@ -4,6 +4,8 @@ description: Create and modify CMS collection structures. Covers listing collect
4
4
  ---
5
5
  # CMS Schema Management
6
6
 
7
+ > **Standard call shape (every curl below).** The `<AUTH>` placeholder is shorthand for `Authorization: Bearer <TOKEN>` only. Every actual call ALSO needs `wix-site-id: <SITE_ID>` and (for body-bearing requests) `Content-Type: application/json`. **POST/PATCH against `wix-data/*` returns 403 without `wix-site-id`** — recipe examples below show `<AUTH>` only for brevity, but the header is required on every call you make. Token: `npx @wix/cli@latest token --site "$SITE_ID"`.
8
+
7
9
  This recipe covers managing the structure (schema) of Wix CMS collections using the REST API.
8
10
 
9
11
  ## Prerequisites
@@ -120,6 +122,8 @@ curl -X GET \
120
122
  | `DATE` | Date only | `"2024-01-15"` |
121
123
  | `DATETIME` | Date and time | `{ "$date": "2024-01-15T10:00:00.000Z" }` |
122
124
  | `IMAGE` | Image reference | `"wix:image://v1/..."` |
125
+ | `MEDIA_IMAGE` | Wix Media Image | `{ "url": "http://...", "height": 640, "width": 480, "alt": "Picture" }` |
126
+ | `MEDIA_VECTOR_ART` | Wix Media Vector Art | `{ "uri": "wix:vector://v1/...", "viewBox": "0 0 100 100", "contentType": "shape", "svgContent": "<svg>...</svg>" }` |
123
127
  | `URL` | Web URL | `"https://example.com"` |
124
128
  | `RICH_TEXT` | HTML content | `"<p>Rich text</p>"` |
125
129
  | `ARRAY_STRING` | Array of strings | `["tag1", "tag2"]` |
@@ -0,0 +1,443 @@
1
+ ---
2
+ name: "API: Shipping Delivery"
3
+ description: REST API reference for Shipping Options and Delivery Profiles. Covers CRUD operations, region/carrier management, and query patterns for both services. Internal reference — these APIs are not yet published in public docs.
4
+ layer: config
5
+ ---
6
+ # API: Shipping Delivery
7
+
8
+ Two services govern the shipping configuration of a Wix eCommerce store:
9
+
10
+ - **Delivery Profiles** — define geographic regions and which carriers serve each region. Each site has a default profile. Regions contain destinations (countries/subdivisions) and carriers.
11
+ - **Shipping Options** — define the rate entries customers see at checkout (flat, tiered, free). Each option is scoped to one or more delivery regions.
12
+
13
+ **Base URL**: `https://www.wixapis.com/ecom`
14
+
15
+ **How to call these APIs**: Use `CallWixSiteAPI`.
16
+
17
+ ---
18
+
19
+ ## Shipping Options
20
+
21
+ ### Query Shipping Options
22
+
23
+ Retrieves all shipping options for the site. Up to 1,000 per request (cursor paging).
24
+
25
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/shipping-options/query`
26
+
27
+ **Request**:
28
+ ```json
29
+ {
30
+ "query": {
31
+ "cursorPaging": { "limit": 100 }
32
+ }
33
+ }
34
+ ```
35
+
36
+ **Filterable fields**: `id`, `delivery_region_id`, `delivery_region_ids`, `estimated_delivery_time`, `created_date`, `updated_date`
37
+
38
+ **Response**:
39
+ ```json
40
+ {
41
+ "shippingOptions": [
42
+ {
43
+ "id": "abc123",
44
+ "revision": "1",
45
+ "deliveryRegionId": "region-guid",
46
+ "deliveryRegionIds": ["region-guid"],
47
+ "title": "Standard Shipping",
48
+ "category": "STANDARD",
49
+ "estimatedDeliveryTime": "3-5 business days",
50
+ "rates": [
51
+ {
52
+ "id": "rate-guid",
53
+ "title": "Standard Shipping",
54
+ "amount": "5.99",
55
+ "multiplyByQuantity": false,
56
+ "active": true,
57
+ "conditions": []
58
+ }
59
+ ]
60
+ }
61
+ ],
62
+ "pagingMetadata": { "count": 1, "hasNext": false }
63
+ }
64
+ ```
65
+
66
+ ---
67
+
68
+ ### Create Shipping Option
69
+
70
+ Creates a new shipping option and associates it with one or more delivery regions.
71
+
72
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/shipping-options`
73
+
74
+ **Required fields**: `shippingOption.deliveryRegionId` (or `deliveryRegionIds`), `shippingOption.title`, `shippingOption.rates[]`
75
+
76
+ **Request**:
77
+ ```json
78
+ {
79
+ "shippingOption": {
80
+ "deliveryRegionId": "region-guid",
81
+ "title": "Free Shipping Over $75",
82
+ "category": "FREE",
83
+ "estimatedDeliveryTime": "5-7 business days",
84
+ "rates": [
85
+ {
86
+ "title": "Free Shipping",
87
+ "amount": "0",
88
+ "multiplyByQuantity": false,
89
+ "active": true,
90
+ "conditions": [
91
+ {
92
+ "type": "BY_TOTAL_PRICE",
93
+ "operator": "GTE",
94
+ "value": "75"
95
+ }
96
+ ]
97
+ }
98
+ ]
99
+ }
100
+ }
101
+ ```
102
+
103
+ **Response**: `{ "shippingOption": { ... } }` — the created option with `id` and `revision`.
104
+
105
+ **Error**: `INVALID_QUANTITY_VALUE` (400) — condition value cannot be fractional.
106
+
107
+ ---
108
+
109
+ ### Get Shipping Option
110
+
111
+ Retrieves a single shipping option by ID.
112
+
113
+ **Endpoint**: `GET https://www.wixapis.com/ecom/v1/shipping-options/{shippingOptionId}`
114
+
115
+ **Response**: `{ "shippingOption": { ... } }`
116
+
117
+ ---
118
+
119
+ ### Update Shipping Option
120
+
121
+ Updates a shipping option. Requires `id` and the current `revision`. Each update increments `revision`.
122
+
123
+ **Endpoint**: `PATCH https://www.wixapis.com/ecom/v1/shipping-options/{shippingOption.id}`
124
+
125
+ **Required fields**: `shippingOption.id`, `shippingOption.revision`
126
+
127
+ **Request**:
128
+ ```json
129
+ {
130
+ "shippingOption": {
131
+ "id": "abc123",
132
+ "revision": "1",
133
+ "rates": [
134
+ {
135
+ "id": "rate-guid",
136
+ "title": "Free Shipping",
137
+ "amount": "0",
138
+ "multiplyByQuantity": false,
139
+ "active": true,
140
+ "conditions": [
141
+ {
142
+ "type": "BY_TOTAL_PRICE",
143
+ "operator": "GTE",
144
+ "value": "85"
145
+ }
146
+ ]
147
+ }
148
+ ]
149
+ }
150
+ }
151
+ ```
152
+
153
+ **Response**: `{ "shippingOption": { ... } }` with updated `revision`.
154
+
155
+ ---
156
+
157
+ ### Delete Shipping Option
158
+
159
+ Permanently deletes a shipping option.
160
+
161
+ **Endpoint**: `DELETE https://www.wixapis.com/ecom/v1/shipping-options/{shippingOptionId}`
162
+
163
+ ---
164
+
165
+ ### Add Delivery Region (to Shipping Option)
166
+
167
+ Associates an additional delivery region with an existing shipping option.
168
+
169
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/shipping-options/{shippingOptionId}/add-delivery-region`
170
+
171
+ **Required fields**: `deliveryRegionId`, `revision`
172
+
173
+ **Request**:
174
+ ```json
175
+ {
176
+ "deliveryRegionId": "region-guid",
177
+ "revision": "2"
178
+ }
179
+ ```
180
+
181
+ ---
182
+
183
+ ### Remove Delivery Region (from Shipping Option)
184
+
185
+ Removes a delivery region association from a shipping option.
186
+
187
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/shipping-options/{shippingOptionId}/remove-delivery-region`
188
+
189
+ **Required fields**: `deliveryRegionId`, `revision`
190
+
191
+ ---
192
+
193
+ ## Rate Configuration
194
+
195
+ Rate types are determined by the `conditions` array, not an explicit field:
196
+
197
+ | Rate Type | `amount` | `conditions` |
198
+ |-----------|---------|-------------|
199
+ | Flat rate | any | empty `[]` |
200
+ | Free shipping | `"0"` | optional `BY_TOTAL_PRICE GTE <threshold>` |
201
+ | Price-based tiers | any | one or more `BY_TOTAL_PRICE` conditions |
202
+ | Weight-based tiers | any | `BY_TOTAL_WEIGHT` conditions |
203
+ | Quantity-based | any | `BY_TOTAL_QUANTITY` conditions |
204
+
205
+ **Condition operators**: `EQ`, `GT`, `GTE`, `LT`, `LTE`
206
+
207
+ Multiple conditions in one rate combine with AND logic.
208
+
209
+ **`multiplyByQuantity: true`** charges `amount × cart quantity`. Flag this configuration — it penalizes large orders and should be replaced with flat or tiered pricing.
210
+
211
+ ---
212
+
213
+ ## Delivery Profiles
214
+
215
+ ### Query Delivery Profiles
216
+
217
+ Retrieves all delivery profiles for the site. Typically one default profile exists.
218
+
219
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/delivery-profiles/query`
220
+
221
+ **Request**: `{}`
222
+
223
+ **Response**:
224
+ ```json
225
+ {
226
+ "deliveryProfiles": [
227
+ {
228
+ "id": "profile-guid",
229
+ "revision": "3",
230
+ "name": "General profile",
231
+ "default": true,
232
+ "deliveryRegions": [
233
+ {
234
+ "id": "region-guid",
235
+ "name": "United States",
236
+ "active": true,
237
+ "destinations": [
238
+ { "countryCode": "US", "subdivisions": [] }
239
+ ],
240
+ "deliveryCarriers": [
241
+ {
242
+ "appId": "45c44b27-ca7b-4891-8c0d-1747d588b835",
243
+ "backupRate": {
244
+ "title": "Standard Shipping",
245
+ "amount": "5.99",
246
+ "active": true
247
+ },
248
+ "additionalCharges": []
249
+ }
250
+ ]
251
+ }
252
+ ]
253
+ }
254
+ ]
255
+ }
256
+ ```
257
+
258
+ ---
259
+
260
+ ### Get Delivery Profile
261
+
262
+ Retrieves a single delivery profile by ID.
263
+
264
+ **Endpoint**: `GET https://www.wixapis.com/ecom/v1/delivery-profiles/{deliveryProfileId}`
265
+
266
+ **Response**: `{ "deliveryProfile": { ... } }`
267
+
268
+ ---
269
+
270
+ ### Get Delivery Profile by Region
271
+
272
+ Retrieves the profile that contains a given delivery region.
273
+
274
+ **Endpoint**: `GET https://www.wixapis.com/ecom/v1/delivery-profiles/delivery-regions/{deliveryRegionId}`
275
+
276
+ ---
277
+
278
+ ### Create Delivery Profile
279
+
280
+ Creates a new delivery profile (rarely needed — most sites use the default profile).
281
+
282
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/delivery-profiles`
283
+
284
+ ---
285
+
286
+ ### Update Delivery Profile
287
+
288
+ Updates profile-level fields (name, etc.). Requires current `revision`.
289
+
290
+ **Endpoint**: `PATCH https://www.wixapis.com/ecom/v1/delivery-profiles/{deliveryProfile.id}`
291
+
292
+ ---
293
+
294
+ ### Add Delivery Region
295
+
296
+ Adds a geographic region to a delivery profile. Returns the updated profile with the new region's `id`.
297
+
298
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/delivery-profiles/{deliveryProfileId}/delivery-region`
299
+
300
+ **Required fields**: `deliveryRegion.name`, `deliveryRegion.destinations[]`, `revision`
301
+
302
+ **Request**:
303
+ ```json
304
+ {
305
+ "deliveryRegion": {
306
+ "name": "United States",
307
+ "active": true,
308
+ "destinations": [
309
+ { "countryCode": "US" }
310
+ ]
311
+ },
312
+ "revision": "3"
313
+ }
314
+ ```
315
+
316
+ **Response**: `{ "deliveryProfile": { ... } }` — full updated profile with new region `id`.
317
+
318
+ **Error**: `DESTINATIONS_COLLISION` — country already assigned to another region in this profile. Use the existing region instead.
319
+
320
+ ---
321
+
322
+ ### Update Delivery Region
323
+
324
+ Updates name, active status, or destinations of an existing region.
325
+
326
+ **Endpoint**: `PATCH https://www.wixapis.com/ecom/v1/delivery-profiles/{deliveryProfileId}/delivery-region/{deliveryRegion.id}`
327
+
328
+ ---
329
+
330
+ ### Remove Delivery Region
331
+
332
+ Removes a delivery region from a profile.
333
+
334
+ **Endpoint**: `DELETE https://www.wixapis.com/ecom/v1/delivery-profiles/{deliveryProfileId}/delivery-region/{deliveryRegionId}`
335
+
336
+ ---
337
+
338
+ ### List Installed Delivery Carriers
339
+
340
+ Returns all carriers installed on the site (both built-in and third-party apps). Use this to find the `id` of a specific carrier (e.g., Pickup, Basic Shipping) before calling Add Delivery Carrier.
341
+
342
+ **Endpoint**: `GET https://www.wixapis.com/ecom/v1/delivery-profiles/installed-carriers`
343
+
344
+ **Response**:
345
+ ```json
346
+ {
347
+ "installedDeliveryCarriers": [
348
+ {
349
+ "id": "50d8c12f-715e-41ad-be25-d0f61375dbee",
350
+ "displayName": "Pickup",
351
+ "fallbackDefinitionMandatory": false,
352
+ "toggleGetCarrierSettingsEnabled": true
353
+ },
354
+ {
355
+ "id": "45c44b27-ca7b-4891-8c0d-1747d588b835",
356
+ "displayName": "Basic Shipping",
357
+ "description": "Manage shipping rates and options for this region",
358
+ "fallbackDefinitionMandatory": false,
359
+ "toggleGetCarrierSettingsEnabled": true
360
+ }
361
+ ]
362
+ }
363
+ ```
364
+
365
+ ---
366
+
367
+ ### List Delivery Carriers (in a Profile)
368
+
369
+ Lists the carriers configured within a specific delivery profile.
370
+
371
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/delivery-profiles/{deliveryProfileId}/delivery-carriers`
372
+
373
+ ---
374
+
375
+ ### Add Delivery Carrier
376
+
377
+ Adds a carrier to a delivery region within a profile. The carrier appears as a shipping option to customers in that region.
378
+
379
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/delivery-profiles/add-delivery-carrier`
380
+
381
+ **Request**:
382
+ ```json
383
+ {
384
+ "deliveryRegionId": "region-guid",
385
+ "deliveryCarrier": {
386
+ "appId": "50d8c12f-715e-41ad-be25-d0f61375dbee",
387
+ "backupRate": {
388
+ "title": "Pickup at 123 Main St",
389
+ "amount": "0",
390
+ "active": true
391
+ }
392
+ }
393
+ }
394
+ ```
395
+
396
+ **Response**: `{ "deliveryProfile": { ... } }` — full updated profile.
397
+
398
+ **Errors**:
399
+ | Error | Cause |
400
+ |-------|-------|
401
+ | `CARRIER_ALREADY_EXISTS_IN_REGION` | Carrier already in this region |
402
+ | `DELIVERY_CARRIER_MISSING_BACKUP_RATE` | `backupRate` or `backupRate.amount` missing |
403
+
404
+ ---
405
+
406
+ ### Remove Delivery Carrier
407
+
408
+ Removes a carrier from a delivery region.
409
+
410
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/delivery-profiles/remove-delivery-carrier`
411
+
412
+ **Request**:
413
+ ```json
414
+ {
415
+ "deliveryRegionId": "region-guid",
416
+ "appId": "carrier-app-id"
417
+ }
418
+ ```
419
+
420
+ ---
421
+
422
+ ### Update Delivery Carrier
423
+
424
+ Updates `backupRate` or `additionalCharges` for a carrier in a region.
425
+
426
+ **Endpoint**: `PATCH https://www.wixapis.com/ecom/v1/delivery-profiles/update-delivery-carrier`
427
+
428
+ ---
429
+
430
+ ### Set Delivery Carrier Active Status
431
+
432
+ Activates or deactivates a carrier in a delivery region.
433
+
434
+ **Endpoint**: `POST https://www.wixapis.com/ecom/v1/delivery-profiles/delivery-carriers/set-active-status`
435
+
436
+ ---
437
+
438
+ ## Known Carrier IDs
439
+
440
+ | Carrier | App ID |
441
+ |---------|--------|
442
+ | Basic Shipping | `45c44b27-ca7b-4891-8c0d-1747d588b835` |
443
+ | Pickup | `50d8c12f-715e-41ad-be25-d0f61375dbee` |
@@ -27,10 +27,10 @@ Adds a free shipping option with an optimal threshold calibrated against the sit
27
27
 
28
28
  ## Required APIs
29
29
 
30
- - [Query Shipping Options](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/shipping-options/query-shipping-options)
31
- - [Create Shipping Option](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/shipping-options/create-shipping-option)
32
- - [Update Shipping Option](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/shipping-options/update-shipping-option)
33
- - [Query Delivery Profiles](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/query-delivery-profiles)
30
+ - [Query Shipping Options](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#query-shipping-options)
31
+ - [Create Shipping Option](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#create-shipping-option)
32
+ - [Update Shipping Option](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#update-shipping-option)
33
+ - [Query Delivery Profiles](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#query-delivery-profiles)
34
34
 
35
35
  ---
36
36
 
@@ -263,5 +263,4 @@ Report to the merchant:
263
263
 
264
264
  ## References
265
265
 
266
- - [Delivery Profiles API](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/introduction)
267
- - [Shipping Options API](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/shipping-options/introduction)
266
+ - [API: Shipping Delivery](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping)
@@ -26,9 +26,9 @@ Detects delivery regions where customers cannot see any shipping options at chec
26
26
 
27
27
  ## Required APIs
28
28
 
29
- - [Query Delivery Profiles](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/query-delivery-profiles)
30
- - [Query Shipping Options](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/shipping-options/query-shipping-options)
31
- - [Create Shipping Option](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/shipping-options/create-shipping-option)
29
+ - [Query Delivery Profiles](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#query-delivery-profiles)
30
+ - [Query Shipping Options](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#query-shipping-options)
31
+ - [Create Shipping Option](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping#create-shipping-option)
32
32
 
33
33
  ---
34
34
 
@@ -296,5 +296,4 @@ Use the same request from Step 2 and verify the count now covers all active, non
296
296
 
297
297
  ## References
298
298
 
299
- - [Delivery Profiles API](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/delivery-profiles/introduction)
300
- - [Shipping Options API](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/shipping-delivery/shipping-options/introduction)
299
+ - [API: Shipping Delivery](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-shipping)