@wix/agent-skills 1.14.0 → 1.15.1
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/README.md +12 -1
- package/package.json +1 -1
- package/skills/README.md +23 -0
- package/skills/wix-app/SKILL.md +10 -2
- package/skills/wix-app/references/AUTO_PATTERNS_DASHBOARD.md +326 -0
- package/skills/wix-app/references/CODE_QUALITY.md +1 -0
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +124 -115
- package/skills/wix-app/references/DASHBOARD_PAGE.md +3 -0
- package/skills/wix-app/references/DATA_COLLECTION.md +5 -3
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +25 -9
- package/skills/wix-app/references/SITE_PLUGIN.md +1 -1
- package/skills/wix-app/references/STORES_VERSIONING.md +9 -211
- package/skills/wix-app/references/auto-patterns-dashboard/action-cell.md +115 -0
- package/skills/wix-app/references/auto-patterns-dashboard/app-config-structure.md +264 -0
- package/skills/wix-app/references/auto-patterns-dashboard/app-context.md +37 -0
- package/skills/wix-app/references/auto-patterns-dashboard/bulk-actions.md +86 -0
- package/skills/wix-app/references/auto-patterns-dashboard/collection-page-actions.md +119 -0
- package/skills/wix-app/references/auto-patterns-dashboard/collection-page.md +103 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-actions-override.md +76 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-columns-override.md +82 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-components-override.md +89 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-header-override.md +124 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-sections-override.md +91 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-slots-override.md +71 -0
- package/skills/wix-app/references/auto-patterns-dashboard/entity-page-actions.md +70 -0
- package/skills/wix-app/references/auto-patterns-dashboard/entity-page-view-actions.md +73 -0
- package/skills/wix-app/references/auto-patterns-dashboard/entity-page.md +98 -0
- package/skills/wix-app/references/auto-patterns-dashboard/example-patterns.json +278 -0
- package/skills/wix-app/references/auto-patterns-dashboard/pages-configuration.md +94 -0
- package/skills/wix-app/references/auto-patterns-dashboard/resolved-action.md +43 -0
- package/skills/wix-app/references/auto-patterns-dashboard/sdk-utilities.md +66 -0
- package/skills/wix-app/references/auto-patterns-dashboard/views.md +76 -0
- package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +5 -0
- package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +1 -14
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +151 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +54 -29
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONFIGURATION.md +2 -2
- package/skills/wix-app/references/editor-react-component/COMPONENT-PREVIEW.md +57 -0
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +23 -105
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +127 -0
- package/skills/wix-app/references/editor-react-component/PARTS.md +2 -1
- package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +18 -16
- package/skills/wix-app/references/editor-react-component/REACT-PATTERNS.md +25 -53
- package/skills/wix-app/references/stores/CATEGORIES.md +22 -0
- package/skills/wix-app/references/stores/GET_PRODUCT.md +99 -0
- package/skills/wix-app/references/stores/INVENTORY.md +37 -0
- package/skills/wix-app/references/stores/QUERY.md +87 -0
- package/skills/wix-app/references/stores/WRITE.md +55 -0
- package/skills/wix-app/scripts/generate-auto-patterns.js +510 -0
- package/skills/wix-auth/SKILL.md +12 -0
- package/skills/wix-auth/references/device-flow.md +140 -0
- package/skills/wix-docs/SKILL.md +188 -0
- package/skills/wix-docs/references/API_SPEC_SEARCH.md +213 -0
- package/skills/wix-docs/references/EXTRACTING.md +120 -0
- package/skills/wix-headless/SKILL.md +89 -130
- package/skills/wix-headless/entry/bootstrap.mjs +93 -0
- package/skills/wix-headless/entry/skill.md +76 -0
- package/skills/wix-headless/references/AI_FEATURES.md +178 -0
- package/skills/wix-headless/references/CAPABILITIES.md +86 -0
- package/skills/wix-headless/references/DISCOVERY.md +34 -56
- package/skills/wix-headless/references/DOC_DISCOVERY.md +37 -0
- package/skills/wix-headless/references/FEEDBACK.md +129 -0
- package/skills/wix-headless/references/IMAGE_GENERATION.md +69 -0
- package/skills/wix-headless/references/SDK_HANDOFF.md +99 -0
- package/skills/wix-headless/references/SEED.md +45 -187
- package/skills/wix-headless/references/SETUP.md +32 -103
- package/skills/wix-headless/references/astro.md +98 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +196 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +236 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-bookings.md +279 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-cms.md +163 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-events.md +203 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +222 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +124 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +160 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +118 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-portfolio.md +132 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +124 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +188 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +213 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurants.md +161 -0
- package/skills/wix-headless/references/inline-recipes/setup-blog.md +175 -0
- package/skills/wix-headless/references/inline-recipes/setup-bookings.md +232 -0
- package/skills/wix-headless/references/inline-recipes/setup-cms.md +200 -0
- package/skills/wix-headless/references/inline-recipes/setup-events.md +196 -0
- package/skills/wix-headless/references/inline-recipes/setup-forms.md +174 -0
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +192 -0
- package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +155 -0
- package/skills/wix-headless/references/inline-recipes/setup-pricing-plans.md +229 -0
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-experiences.md +73 -0
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +197 -0
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +136 -0
- package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +152 -0
- package/skills/wix-headless/references/managed/AUTHENTICATION.md +57 -0
- package/skills/wix-headless/references/managed/CONNECT.md +74 -0
- package/skills/wix-headless/references/managed/CREATE.md +130 -0
- package/skills/wix-headless/references/managed/DEPLOYMENT.md +79 -0
- package/skills/wix-headless/references/non-astro.md +59 -0
- package/skills/wix-headless/references/self-managed/AUTHENTICATION.md +22 -0
- package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +15 -0
- package/skills/wix-headless/references/stripe/AUTHENTICATION.md +55 -0
- package/skills/wix-headless/references/stripe/DEPLOYMENT.md +71 -0
- package/skills/wix-manage/SKILL.md +29 -3
- package/skills/wix-manage/references/analytics/query-site-analytics.md +298 -0
- package/skills/wix-manage/references/app-installation/install-wix-apps.md +3 -0
- package/skills/wix-manage/references/bookings/create-and-update-booking-services.md +1 -1
- package/skills/wix-manage/references/bookings/create-booking-service-from-prompt.md +6 -5
- package/skills/wix-manage/references/bookings/create-course-service.md +30 -5
- package/skills/wix-manage/references/bookings/diagnose-availability-issues.md +299 -0
- package/skills/wix-manage/references/cms/cms-schema-management.md +6 -0
- package/skills/wix-manage/references/get-paid/how-to-setup-wix-payments.md +30 -7
- package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +517 -0
- package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +218 -0
- package/skills/wix-manage/references/rich-content/author-ricos-rich-content.md +249 -0
- package/skills/wix-manage/references/sites/site-import.md +270 -0
- package/skills/wix-manage/references/stores/create-product-from-image.md +8 -6
- package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +57 -0
- package/skills/wix-vibe-headless/SKILL.md +142 -0
- package/skills/wix-vibe-headless/platforms/README.md +22 -0
- package/skills/wix-vibe-headless/platforms/base44.md +142 -0
- package/skills/wix-vibe-headless/platforms/generic.md +87 -0
- package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +128 -0
- package/skills/wix-vibe-headless/references/blog/wix-blog.js +217 -0
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +157 -0
- package/skills/wix-vibe-headless/references/bookings/wix-bookings-checkout.js +147 -0
- package/skills/wix-vibe-headless/references/bookings/wix-bookings-services.js +217 -0
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +154 -0
- package/skills/wix-vibe-headless/references/cms/wix-cms.js +186 -0
- package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +142 -0
- package/skills/wix-vibe-headless/references/events/wix-events-browse.js +136 -0
- package/skills/wix-vibe-headless/references/events/wix-events-registration.js +187 -0
- package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +211 -0
- package/skills/wix-vibe-headless/references/members/wix-members-auth.js +387 -0
- package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +111 -0
- package/skills/wix-vibe-headless/references/portfolio/wix-portfolio.js +223 -0
- package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +127 -0
- package/skills/wix-vibe-headless/references/pricing-plans/wix-pricing-plans.js +157 -0
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +138 -0
- package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-menu.js +224 -0
- package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-ordering.js +156 -0
- package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-reservations.js +107 -0
- package/skills/wix-vibe-headless/references/shared/wix-client.js +186 -0
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +164 -0
- package/skills/wix-vibe-headless/references/storefront/wix-store-cart.js +147 -0
- package/skills/wix-vibe-headless/references/storefront/wix-store-catalog.js +146 -0
- package/skills/wix-headless/references/BUILD-astro.md +0 -253
- package/skills/wix-headless/references/BUILD-own-build.md +0 -167
- package/skills/wix-headless/references/BUILD.md +0 -105
- package/skills/wix-headless/references/DESIGN_SYSTEM.md +0 -165
- package/skills/wix-headless/references/DISCOVERY-connect.md +0 -55
- package/skills/wix-headless/references/DISCOVERY-create.md +0 -238
- package/skills/wix-headless/references/PLAN-connect.md +0 -19
- package/skills/wix-headless/references/PLAN-create.md +0 -17
- package/skills/wix-headless/references/PLAN.md +0 -92
- package/skills/wix-headless/references/astro/blog/BLOG_PAGES.md +0 -300
- package/skills/wix-headless/references/astro/blog/BLOG_SETUP.md +0 -218
- package/skills/wix-headless/references/astro/bookings/COMPONENTS.md +0 -45
- package/skills/wix-headless/references/astro/bookings/SERVICES_PAGES.md +0 -77
- package/skills/wix-headless/references/astro/cms/CMS_FOUNDATIONS.md +0 -214
- package/skills/wix-headless/references/astro/cms/FAQ_KNOWLEDGE_BASE.md +0 -231
- package/skills/wix-headless/references/astro/cms/PORTFOLIO.md +0 -453
- package/skills/wix-headless/references/astro/cms/RESOURCE_LIBRARY.md +0 -354
- package/skills/wix-headless/references/astro/cms/TEAM_DIRECTORY.md +0 -299
- package/skills/wix-headless/references/astro/designer/INSTRUCTIONS.md +0 -351
- package/skills/wix-headless/references/astro/ecom/CART_PAGES.md +0 -119
- package/skills/wix-headless/references/astro/ecom/CART_WIRING.md +0 -103
- package/skills/wix-headless/references/astro/ecom/COMPONENTS_CSS.md +0 -132
- package/skills/wix-headless/references/astro/forms/CONTACT_FORM.md +0 -463
- package/skills/wix-headless/references/astro/gift-cards/COMPONENTS.md +0 -119
- package/skills/wix-headless/references/astro/gift-cards/PAGES.md +0 -129
- package/skills/wix-headless/references/astro/stores/BACK_IN_STOCK.md +0 -178
- package/skills/wix-headless/references/astro/stores/CATEGORY_PAGES.md +0 -85
- package/skills/wix-headless/references/astro/stores/COMPONENTS_CSS.md +0 -129
- package/skills/wix-headless/references/astro/stores/HOME_AND_NAV.md +0 -229
- package/skills/wix-headless/references/astro/stores/PRODUCT_PAGES.md +0 -215
- package/skills/wix-headless/references/astro/stores/SHARED_WIRING.md +0 -165
- package/skills/wix-headless/references/astro/templates/Layout.astro +0 -132
- package/skills/wix-headless/references/astro/templates/astro.config.mjs +0 -41
- package/skills/wix-headless/references/astro/templates/bookings/AvailabilityCalendar.tsx +0 -374
- package/skills/wix-headless/references/astro/templates/bookings/BookingForm.tsx +0 -136
- package/skills/wix-headless/references/astro/templates/bookings/SeoTags.astro +0 -25
- package/skills/wix-headless/references/astro/templates/bookings/ServiceBookingFlow.tsx +0 -71
- package/skills/wix-headless/references/astro/templates/bookings/ServiceCard.astro +0 -54
- package/skills/wix-headless/references/astro/templates/bookings/booking-confirmation.astro +0 -49
- package/skills/wix-headless/references/astro/templates/bookings/bookingDriver.ts +0 -245
- package/skills/wix-headless/references/astro/templates/bookings/components-bookings.css +0 -424
- package/skills/wix-headless/references/astro/templates/bookings/services/[slug].astro +0 -176
- package/skills/wix-headless/references/astro/templates/bookings/services/index.astro +0 -181
- package/skills/wix-headless/references/astro/templates/ecom/CartBadge.tsx +0 -84
- package/skills/wix-headless/references/astro/templates/ecom/CartView.tsx +0 -543
- package/skills/wix-headless/references/astro/templates/ecom/cart.astro +0 -13
- package/skills/wix-headless/references/astro/templates/ecom/components-ecom.css +0 -302
- package/skills/wix-headless/references/astro/templates/ecom/discounts.ts +0 -71
- package/skills/wix-headless/references/astro/templates/ecom/thank-you.astro +0 -24
- package/skills/wix-headless/references/astro/templates/gift-cards/GiftCardPurchase.tsx +0 -172
- package/skills/wix-headless/references/astro/templates/gift-cards/_home-teaser-snippet.astro +0 -42
- package/skills/wix-headless/references/astro/templates/gift-cards/_nav-snippet.astro +0 -11
- package/skills/wix-headless/references/astro/templates/gift-cards/components-gift-cards.css +0 -220
- package/skills/wix-headless/references/astro/templates/gift-cards/gift-cards.astro +0 -51
- package/skills/wix-headless/references/astro/templates/gift-cards/gift-cards.ts +0 -75
- package/skills/wix-headless/references/astro/templates/global.css +0 -288
- package/skills/wix-headless/references/astro/templates/stores/AddToCartButton.tsx +0 -77
- package/skills/wix-headless/references/astro/templates/stores/BackInStockForm.tsx +0 -176
- package/skills/wix-headless/references/astro/templates/stores/CategoryRail.astro +0 -69
- package/skills/wix-headless/references/astro/templates/stores/ProductCard.astro +0 -79
- package/skills/wix-headless/references/astro/templates/stores/ProductPurchase.tsx +0 -397
- package/skills/wix-headless/references/astro/templates/stores/SeoTags.astro +0 -21
- package/skills/wix-headless/references/astro/templates/stores/back-in-stock.ts +0 -67
- package/skills/wix-headless/references/astro/templates/stores/categories.ts +0 -155
- package/skills/wix-headless/references/astro/templates/stores/category/[slug].astro +0 -130
- package/skills/wix-headless/references/astro/templates/stores/components-stores.css +0 -400
- package/skills/wix-headless/references/astro/templates/stores/products/[slug].astro +0 -128
- package/skills/wix-headless/references/astro/templates/stores/products/index.astro +0 -101
- package/skills/wix-headless/references/blog/BLOG_CONTENT.md +0 -161
- package/skills/wix-headless/references/blog/INSTRUCTIONS.md +0 -32
- package/skills/wix-headless/references/bookings/FLOW.md +0 -246
- package/skills/wix-headless/references/bookings/INSTRUCTIONS.md +0 -95
- package/skills/wix-headless/references/bookings/SERVICES_DATA.md +0 -355
- package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +0 -176
- package/skills/wix-headless/references/cms/INSTRUCTIONS.md +0 -71
- package/skills/wix-headless/references/commands/known-apps.json +0 -6
- package/skills/wix-headless/references/custom/CONNECTION_PLAN.md +0 -142
- package/skills/wix-headless/references/custom/INSTRUCTIONS.md +0 -88
- package/skills/wix-headless/references/custom/blog/WIRING.md +0 -52
- package/skills/wix-headless/references/custom/bookings/WIRING.md +0 -197
- package/skills/wix-headless/references/custom/cms/WIRING.md +0 -97
- package/skills/wix-headless/references/custom/ecom/WIRING.md +0 -67
- package/skills/wix-headless/references/custom/forms/WIRING.md +0 -101
- package/skills/wix-headless/references/custom/stores/WIRING.md +0 -80
- package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +0 -59
- package/skills/wix-headless/references/forms/INSTRUCTIONS.md +0 -43
- package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +0 -51
- package/skills/wix-headless/references/images/INSTRUCTIONS.md +0 -357
- package/skills/wix-headless/references/seed-recipes.md +0 -49
- package/skills/wix-headless/references/shared/AGENTS_MD.md +0 -47
- package/skills/wix-headless/references/shared/AUTHENTICATION.md +0 -108
- package/skills/wix-headless/references/shared/BUILD_NOISE.md +0 -8
- package/skills/wix-headless/references/shared/DESIGN_MD.md +0 -84
- package/skills/wix-headless/references/shared/DOCS_SEARCH.md +0 -41
- package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +0 -186
- package/skills/wix-headless/references/shared/IMPLEMENTER.md +0 -206
- package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +0 -97
- package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +0 -143
- package/skills/wix-headless/references/shared/STYLING.md +0 -140
- package/skills/wix-headless/references/stores/INSTRUCTIONS.md +0 -126
- package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +0 -252
- package/skills/wix-headless/references/verticals/_schema.json +0 -74
- package/skills/wix-headless/references/verticals/_schema.md +0 -95
- package/skills/wix-headless/references/verticals/blog.md +0 -31
- package/skills/wix-headless/references/verticals/bookings.md +0 -41
- package/skills/wix-headless/references/verticals/cms.md +0 -30
- package/skills/wix-headless/references/verticals/ecom.md +0 -25
- package/skills/wix-headless/references/verticals/forms.md +0 -26
- package/skills/wix-headless/references/verticals/gift-cards.md +0 -24
- package/skills/wix-headless/references/verticals/stores.md +0 -33
- package/skills/wix-headless/scripts/check-manifest.mjs +0 -335
- package/skills/wix-headless/scripts/compose.mjs +0 -520
- package/skills/wix-headless/scripts/emit-design-tokens.mjs +0 -157
- package/skills/wix-headless/scripts/flatten.sh +0 -61
- package/skills/wix-headless/scripts/generate-images.mjs +0 -242
- package/skills/wix-headless/scripts/patch-decorative-slots.mjs +0 -154
- package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +0 -190
- package/skills/wix-headless/scripts/scaffold.sh +0 -139
- package/skills/wix-headless/scripts/seed-utilities.sh +0 -93
- package/skills/wix-headless/scripts/write-decorative-json.mjs +0 -62
- package/skills/wix-headless/shared-utilities/analytics.ts +0 -40
- package/skills/wix-headless/shared-utilities/ricos.ts +0 -179
- package/skills/wix-headless/shared-utilities/wix-image.ts +0 -72
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Site Import"
|
|
3
|
+
description: Drive the Wix Site Import agent to migrate an existing store or site from another platform (Shopify, WooCommerce, Magento, or any URL) into Wix. Use this skill whenever the user wants to import, migrate, or clone a store/site into Wix, mentions moving off Shopify/WooCommerce/Magento, or gives a source store URL and asks to bring it into Wix. Covers starting the import, polling progress, answering the agent's mid-import questions, handling deploy/failure/auth-expiry states, and sending post-deploy follow-up changes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Site Import
|
|
7
|
+
|
|
8
|
+
Drives an autonomous Wix-hosted import agent over REST to migrate a store/site
|
|
9
|
+
from another platform into Wix. You act as the relay between the user and the
|
|
10
|
+
agent: start the job, poll it, surface its questions and progress like a chat,
|
|
11
|
+
and report the final result.
|
|
12
|
+
|
|
13
|
+
## Golden rules — apply to every single message
|
|
14
|
+
|
|
15
|
+
1. **Only `DEPLOYED` means the site is live.** Any other status — including
|
|
16
|
+
`AUTH_EXPIRED` — means there is NO finished site yet. Never declare
|
|
17
|
+
success, completion, or "your site is live" otherwise, and never present a
|
|
18
|
+
URL from any other source as the result.
|
|
19
|
+
2. **Never show the user ids** (`importId`), raw JSON, or HTTP codes. Track
|
|
20
|
+
them silently.
|
|
21
|
+
3. **Never offer menus of monitoring or technical options** — pick the right
|
|
22
|
+
behavior yourself and do it quietly.
|
|
23
|
+
4. **Plain language only** — write for a shopkeeper, not an engineer.
|
|
24
|
+
5. **This API is the only site-creation tool for this task** — never
|
|
25
|
+
substitute other Wix site-builder tools (see Scope).
|
|
26
|
+
|
|
27
|
+
Base URL: `https://www.wixapis.com/site-import`. All calls are scoped to the
|
|
28
|
+
signed-in Wix user's account (use the Wix API tool available in this
|
|
29
|
+
environment for auth — never handle credentials directly). A full import
|
|
30
|
+
typically takes 15–60 minutes.
|
|
31
|
+
|
|
32
|
+
Example: Start is `POST https://www.wixapis.com/site-import/v1/imports`;
|
|
33
|
+
all endpoint paths below are relative to the base URL.
|
|
34
|
+
|
|
35
|
+
## Calling the API (important — read before your first call)
|
|
36
|
+
|
|
37
|
+
This API is **deliberately not listed in the public Wix REST documentation**,
|
|
38
|
+
so do NOT search the Wix docs / API spec for it — the search will come up
|
|
39
|
+
empty every time. That is expected and is NOT a reason to stop, ask the user
|
|
40
|
+
for "special permissions", or switch to a different import product. This
|
|
41
|
+
skill is the documentation; the endpoints below are real and live.
|
|
42
|
+
|
|
43
|
+
With the Wix MCP in Claude, call them through `ExecuteWixAPI` using
|
|
44
|
+
`wix.request` with `scope: "account"` and the **full URL**. Cite
|
|
45
|
+
`sourceDocUrls: ["user-provided"]` (the user supplied this skill). Set
|
|
46
|
+
`hasMutations: true` for Start/Reply/Cancel and `false` for Poll.
|
|
47
|
+
|
|
48
|
+
In environments with a different Wix connector (e.g. ChatGPT), use its
|
|
49
|
+
account-level API tool the same way — the `ManageWixSite` tool accepts
|
|
50
|
+
`{method, url, body}` with the full URL directly.
|
|
51
|
+
|
|
52
|
+
Platform quirk: if the chat UI shows a rendering error like *"Failed to load
|
|
53
|
+
MCP app: HTML exceeds the maximum supported size"*, that is the connector's
|
|
54
|
+
optional visual widget failing to display — NOT the API call. If the tool
|
|
55
|
+
result contains the JSON, the call succeeded: continue normally and never
|
|
56
|
+
report it to the user as a failure.
|
|
57
|
+
|
|
58
|
+
**Every call goes through that tool, from your side of the conversation.**
|
|
59
|
+
Never call this API from an artifact, a web page, or any browser/client-side
|
|
60
|
+
code — those run in a sandboxed frame and fail with CORS. Do not build
|
|
61
|
+
monitoring dashboards, status widgets, or any UI for this flow: the entire
|
|
62
|
+
experience is plain chat — tool calls plus short messages. If an approach
|
|
63
|
+
fails, quietly switch to plain tool-call polling; never present the user a
|
|
64
|
+
menu of technical workarounds.
|
|
65
|
+
|
|
66
|
+
Example — Start:
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
async () => {
|
|
70
|
+
return await wix.request({
|
|
71
|
+
scope: "account",
|
|
72
|
+
method: "POST",
|
|
73
|
+
url: "https://www.wixapis.com/site-import/v1/imports",
|
|
74
|
+
body: { request: "Import https://example-store.com into a new Wix site" },
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Example — Poll:
|
|
80
|
+
|
|
81
|
+
```js
|
|
82
|
+
async () => {
|
|
83
|
+
return await wix.request({
|
|
84
|
+
scope: "account",
|
|
85
|
+
method: "GET",
|
|
86
|
+
url: "https://www.wixapis.com/site-import/v1/imports/<importId>",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Scope — this skill drives the import service, nothing else
|
|
92
|
+
|
|
93
|
+
While an import is the task at hand, ALL site-creation work goes through this
|
|
94
|
+
API. Never fall back to other site-building tools (site-builder/template/AI
|
|
95
|
+
site-generation tools from your Wix connector) to "compensate" — not when the
|
|
96
|
+
import is slow, and especially not when it FAILS.
|
|
97
|
+
|
|
98
|
+
**Status comes ONLY from this API's Poll endpoint.** Never call
|
|
99
|
+
`WixSiteBuilder`, `CreateSiteFromTemplate`, `pullSiteCreationJob`, or any
|
|
100
|
+
other connector tool to "check on the build" — `WixSiteBuilder` in particular
|
|
101
|
+
STARTS a new site build on every call, even when the prompt asks for status;
|
|
102
|
+
"checking" with it silently creates sites the user never asked for. A failed import ends with a
|
|
103
|
+
clear failure report and a full stop; the user must never discover a
|
|
104
|
+
different site in their account that they didn't ask for. If an alternative
|
|
105
|
+
(e.g. building an original site instead of importing) makes sense, propose it
|
|
106
|
+
AFTER reporting the failure and act only on the user's explicit yes. If you
|
|
107
|
+
already know the import agent refused the source (see `message`), don't
|
|
108
|
+
retry the same source with other tools — relay the reason and let the user
|
|
109
|
+
decide.
|
|
110
|
+
|
|
111
|
+
## Before starting an import
|
|
112
|
+
|
|
113
|
+
This creates real infrastructure and will eventually write to the user's Wix
|
|
114
|
+
account. Before calling **Start**, confirm with the user:
|
|
115
|
+
- The source URL and platform are correct
|
|
116
|
+
- They understand this will run for up to ~60 minutes and may ask them
|
|
117
|
+
questions mid-way
|
|
118
|
+
|
|
119
|
+
Also confirm before calling **Cancel** — it's a mutating, irreversible action
|
|
120
|
+
on a running job.
|
|
121
|
+
|
|
122
|
+
## What the user sees (presentation rules)
|
|
123
|
+
|
|
124
|
+
You are the user experience; the API is plumbing. Keep the protocol invisible:
|
|
125
|
+
|
|
126
|
+
- **Never show identifiers or raw protocol data**: `importId`, raw JSON
|
|
127
|
+
responses, HTTP status codes, the `tasks[]` rows, or
|
|
128
|
+
`sourcePlatform`/`sourceConfidence` values. Track them silently — you need
|
|
129
|
+
them for the API calls, the user never does. Never offer ids as a
|
|
130
|
+
"check back later" reference either.
|
|
131
|
+
- **Write for a non-technical audience.** No jargon: no "endpoint", "API",
|
|
132
|
+
"poll", "HTTP", "429", "rate limit", "headers", "JSON", "scraping",
|
|
133
|
+
"session". Translate events into outcomes a shopkeeper understands —
|
|
134
|
+
"the source store limits how fast it can be read, so this step is taking a
|
|
135
|
+
minute" instead of "hit Cloudflare rate limit (HTTP 429)".
|
|
136
|
+
- **Monitor quietly by default — do not ask the user to choose a monitoring
|
|
137
|
+
mode.** Quiet means low-noise, never uninformed: the user should always know
|
|
138
|
+
what stage their import is in. Match your environment:
|
|
139
|
+
- **If you can keep working between user messages** (background polling),
|
|
140
|
+
poll continuously and speak up only on meaningful milestones: the source
|
|
141
|
+
platform is identified, a plan step completes, the agent asks a question,
|
|
142
|
+
the site deploys, or something fails. A short update every few minutes is
|
|
143
|
+
plenty; never narrate each poll ("let me poll again", "retrying") or
|
|
144
|
+
transient errors — retry those silently.
|
|
145
|
+
- **If you can only act while answering a message** (turn-based clients):
|
|
146
|
+
before ending each turn, poll a few times over ~a minute and close with
|
|
147
|
+
one concrete update of what the import is doing right now, then remind the
|
|
148
|
+
user the import keeps running on Wix's side and they can ask "how's it
|
|
149
|
+
going?" anytime. On EVERY later user message, poll first and answer with
|
|
150
|
+
current specifics.
|
|
151
|
+
- **Status answers must be substantive.** When the user asks how it's going,
|
|
152
|
+
never answer with a bare "still in progress". While the import is running,
|
|
153
|
+
the poll's `message` field is a ready-made plain-language progress line
|
|
154
|
+
("Now: Importing products (2 of 6 steps done) — Latest update: …") — relay
|
|
155
|
+
it (lightly rephrased is fine), and add anything fresh from `recentActivity`
|
|
156
|
+
/ `todos`. If `message` is empty it's still early — say the import is
|
|
157
|
+
setting up and check again on the next message.
|
|
158
|
+
- **Never announce or describe the monitoring itself.** No "background monitor
|
|
159
|
+
is live", no feature lists of your polling/alerts/badges — the user asked
|
|
160
|
+
for a site import, not a monitoring product. After the one-sentence start
|
|
161
|
+
message, stay silent until the first milestone.
|
|
162
|
+
- **Keep every routine update to 1–3 short sentences.** No headers, no emoji
|
|
163
|
+
walls, no bullet lists for ordinary progress — save structure for the final
|
|
164
|
+
result or a question that needs a decision.
|
|
165
|
+
- On start, one friendly sentence: the import is underway and you'll keep them
|
|
166
|
+
posted. Mention the detected platform only when it helps ("Looks like a
|
|
167
|
+
Shopify store — I'll migrate the catalog accordingly"); never say
|
|
168
|
+
"confidence", "sandbox", "execution", or "session".
|
|
169
|
+
- Progress updates come from `recentActivity` `TEXT` entries and the `todos`
|
|
170
|
+
checklist, rephrased in plain language ("setting up your product catalog"),
|
|
171
|
+
never echoed verbatim.
|
|
172
|
+
- Ask `NEEDS_INPUT` questions conversationally, as if they were your own.
|
|
173
|
+
- On `DEPLOYED`, lead with the live URL, then the agent's closing summary
|
|
174
|
+
**rewritten for a non-technical reader**: what the user got (pages,
|
|
175
|
+
products, look & feel), any honest limitations in plain words ("the buy
|
|
176
|
+
buttons aren't connected to a real checkout yet"), and 2–3 short follow-up
|
|
177
|
+
offers they can answer in one sentence (those become Reply messages). Leave
|
|
178
|
+
out how it was built — frameworks, SDKs, workarounds, and anything from the
|
|
179
|
+
jargon list have no place in the final message either.
|
|
180
|
+
- On `FAILED` / `AUTH_EXPIRED` / `SESSION_EXPIRED`, explain what happened and
|
|
181
|
+
what you'll do next in plain words — no codes, no id dumps.
|
|
182
|
+
- **A failure is the headline, never a footnote.** The moment a poll returns
|
|
183
|
+
`FAILED`, your very next message leads with that fact and the reason (from
|
|
184
|
+
`message`) — never bury it, never keep talking as if work is ongoing, and
|
|
185
|
+
never paper over it with work done by other tools (see Scope above).
|
|
186
|
+
|
|
187
|
+
## Endpoints
|
|
188
|
+
|
|
189
|
+
**There is exactly ONE id in this API: the latest `importId`.** Requests and
|
|
190
|
+
responses carry nothing else — the service resolves everything from the
|
|
191
|
+
signed-in user.
|
|
192
|
+
|
|
193
|
+
1. **Start** — `POST /v1/imports`
|
|
194
|
+
Body: `{"request": "<natural language; MUST include the source store URL>"}`
|
|
195
|
+
Returns: `importId` (keep it — it's the import's id) and detected
|
|
196
|
+
`sourcePlatform`/`sourceConfidence`.
|
|
197
|
+
|
|
198
|
+
2. **Poll** — `GET /v1/imports/{importId}`
|
|
199
|
+
Returns: `status`, `deployUrl`, `message`, `recentActivity[]`, `todos[]`,
|
|
200
|
+
`question` (only when status is `NEEDS_INPUT`), `tasks[]`.
|
|
201
|
+
|
|
202
|
+
3. **Reply** — `POST /v1/imports/{importId}/reply`
|
|
203
|
+
Body: `{"message": "<answer or follow-up>"}`
|
|
204
|
+
Returns a **NEW `importId` — poll that one from now on.** The agent
|
|
205
|
+
continues the same conversation with full context.
|
|
206
|
+
|
|
207
|
+
4. **Cancel** — `POST /v1/imports/{importId}/cancel`
|
|
208
|
+
Body: `{}`. Only meaningful while status is `IMPORTING`.
|
|
209
|
+
|
|
210
|
+
## How to run the flow
|
|
211
|
+
|
|
212
|
+
- After Start, poll every 5–10 seconds while `status` is `IMPORTING` —
|
|
213
|
+
quietly, per the presentation rules above: polling is background work, not
|
|
214
|
+
conversation.
|
|
215
|
+
- Track progress from two fields (source material for your milestone updates,
|
|
216
|
+
not a transcript to relay):
|
|
217
|
+
- `recentActivity`: up to 20 entries `{kind, text}`, oldest first —
|
|
218
|
+
`TEXT` entries are the agent's own messages, `TOOL_USE` entries are short
|
|
219
|
+
labels of actions it took. It's a rolling window: track which entries you
|
|
220
|
+
have already covered so an update never repeats them.
|
|
221
|
+
- `todos`: the agent's plan, `{content, status, activeForm}` with status
|
|
222
|
+
`PENDING | IN_PROGRESS | COMPLETED`. Each poll returns the full latest
|
|
223
|
+
snapshot — replace your tracked list, don't append. `activeForm`
|
|
224
|
+
(e.g. "Importing products") describes the in-progress item.
|
|
225
|
+
- Empty `recentActivity`/`todos` in the first polls is normal.
|
|
226
|
+
- Act on `status`:
|
|
227
|
+
- `IMPORTING` — keep polling.
|
|
228
|
+
- `NEEDS_INPUT` — the agent is blocked on a decision. Show `question.text`
|
|
229
|
+
(and `question.options` if present) to the user, collect their answer
|
|
230
|
+
(an option or free text), send it via Reply, then poll the NEW
|
|
231
|
+
`importId` from the Reply response.
|
|
232
|
+
- `DEPLOYED` — terminal success. Deliver `deployUrl` (already verified
|
|
233
|
+
reachable server-side) and `message` per the presentation rules above.
|
|
234
|
+
- `FAILED` — terminal. `message` usually contains the agent's own
|
|
235
|
+
explanation of what happened and what it needs — relay it in plain words.
|
|
236
|
+
- `AUTH_EXPIRED` — recoverable, but **NOT a success and nothing is live**
|
|
237
|
+
(golden rule 1). The user's Wix session expired mid-import. Tell the user
|
|
238
|
+
the secure connection to their account expired and you're restarting the
|
|
239
|
+
import, then call Start again with the same request — work done so far is
|
|
240
|
+
preserved and the import continues.
|
|
241
|
+
- `CANCELLED` — terminal; stopped by Cancel.
|
|
242
|
+
- Follow-up changes after a deploy ("make the header blue", "also import the
|
|
243
|
+
blog"): send them via Reply on the latest `importId` — same mechanics as
|
|
244
|
+
answering a question. This works while the import environment is alive
|
|
245
|
+
(~60 minutes idle).
|
|
246
|
+
- If Reply returns `409 { "code": "SESSION_EXPIRED" }`, the environment was
|
|
247
|
+
reclaimed and the conversation cannot resume — tell the user and offer to
|
|
248
|
+
start a fresh import.
|
|
249
|
+
|
|
250
|
+
## Rules
|
|
251
|
+
|
|
252
|
+
- Always use the **newest** `importId` (each Reply returns a new one) —
|
|
253
|
+
it is the only id you need to track.
|
|
254
|
+
- Never invent a `deployUrl` — only report the one returned with `DEPLOYED`.
|
|
255
|
+
- Treat `NEEDS_INPUT` and `AUTH_EXPIRED` as normal turns of the conversation,
|
|
256
|
+
not errors.
|
|
257
|
+
- **Site Import is available to some accounts, not all users yet** (limited,
|
|
258
|
+
gradual rollout). If Start returns a `404` (or any response signalling the
|
|
259
|
+
API is not available for this account) or a `403` with
|
|
260
|
+
`"code": "NOT_ENABLED"`, this account is not in the rollout: tell the user
|
|
261
|
+
plainly that **site import isn't supported on their account yet, and they
|
|
262
|
+
can contact Wix support** to ask about access — then stop. Do not retry, do
|
|
263
|
+
not work around it, and do not fall back to another site-creation tool.
|
|
264
|
+
- Any other `403` means the caller is not permitted or does not own this
|
|
265
|
+
import — check that you are using the ids from this user's own Start
|
|
266
|
+
response. A `400` means a required field is missing (`request`/`message`
|
|
267
|
+
must be 1–20000 chars).
|
|
268
|
+
- `tasks[]` is low-level infrastructure progress (task ids, exit codes) — use
|
|
269
|
+
it for debugging only; `recentActivity`/`todos`/`message` are what you show
|
|
270
|
+
the user.
|
|
@@ -211,7 +211,7 @@ Store the result internally as `subscription_eligible: true/false`. If `true`, a
|
|
|
211
211
|
|
|
212
212
|
## V3 STEP 4: Present Review Card to User (INTERACTIVE)
|
|
213
213
|
|
|
214
|
-
**
|
|
214
|
+
**Present ALL generated fields to the user so they can review and refine them.** This is a content preview for editing — NOT the create approval. The single confirmation before creating happens later, in V3 STEP 6. Do not ask the user to approve creation at this step.
|
|
215
215
|
|
|
216
216
|
Present a structured review card using the markdown format below. This provides a visual product-card-style layout:
|
|
217
217
|
|
|
@@ -242,15 +242,15 @@ Present a structured review card using the markdown format below. This provides
|
|
|
242
242
|
---
|
|
243
243
|
```
|
|
244
244
|
|
|
245
|
-
After the card,
|
|
245
|
+
After the card, offer the ways they can adjust the content:
|
|
246
246
|
|
|
247
247
|
> 1. **Refine** — tell me what to change (e.g., "make the description shorter", "the price should be lower")
|
|
248
248
|
> 2. **Regenerate** — I'll start the analysis over, optionally with additional context from you
|
|
249
|
-
> 3. **
|
|
249
|
+
> 3. **Looks good** — continue to the next steps (options / subscription)
|
|
250
250
|
|
|
251
251
|
If the user provided a text note that **contradicts** what's visible in the image (e.g., image shows blue but note says "available in red"), ask the user to clarify before proceeding.
|
|
252
252
|
|
|
253
|
-
|
|
253
|
+
Apply any corrections the user requests. When they're happy (or have no changes), continue to the next step. **Do NOT treat this as the final create approval** — that single confirmation comes once, at V3 STEP 6.
|
|
254
254
|
|
|
255
255
|
---
|
|
256
256
|
|
|
@@ -342,13 +342,15 @@ If no options were detected:
|
|
|
342
342
|
|
|
343
343
|
## V3 STEP 6: Create the Product
|
|
344
344
|
|
|
345
|
-
|
|
345
|
+
> **CRITICAL — THIS IS THE ONLY CREATE CONFIRMATION. ASK EXACTLY ONCE.** The review card in V3 STEP 4 was a content preview for editing, not an approval. Here you ask for the single go-ahead before creating. Do NOT summarize-and-ask more than once — one clear confirmation is enough.
|
|
346
|
+
|
|
347
|
+
Ask the user once:
|
|
346
348
|
|
|
347
349
|
> Everything is ready. Shall I create the product now?
|
|
348
350
|
> - **Yes, create it** — I'll submit the product to your store now.
|
|
349
351
|
> - **No, go back** — return to a previous step to make changes.
|
|
350
352
|
|
|
351
|
-
**Wait for confirmation.** Only proceed with the API call if the user says Yes.
|
|
353
|
+
**Wait for confirmation.** Only proceed with the API call if the user says Yes. If the user already said something like "just create it", treat that as the confirmation and proceed without asking again.
|
|
352
354
|
|
|
353
355
|
---
|
|
354
356
|
|
|
@@ -10,6 +10,63 @@ Learn how to create a Wix store product with customizable options like colors, s
|
|
|
10
10
|
|
|
11
11
|
## Article: Steps for creating a Wix Store Product with Options
|
|
12
12
|
|
|
13
|
+
## STEP 0: Conversation — gather what's needed for a "ready-to-sell" product
|
|
14
|
+
|
|
15
|
+
The goal of this step is not just to create *a* product, but to help the user create a **complete, ready-to-sell** product. Before jumping to the API call in STEP 1, run a short conversation to fill the important gaps — but keep it brief.
|
|
16
|
+
|
|
17
|
+
> **CRITICAL — ASK AT MOST 1–2 FOLLOW-UP QUESTIONS.** Never interrogate the user. Ask no more than one or two follow-up questions total before creating the product. If the user is disengaged or says "just create it", proceed with sensible generated values rather than asking again.
|
|
18
|
+
|
|
19
|
+
### 0a. Opening the conversation
|
|
20
|
+
|
|
21
|
+
**As soon as this skill is triggered — and the user hasn't already described a product — YOU open the conversation.** Proactively send a single opening message that invites *either or both* input paths and makes clear you'll generate the full product info from whatever they provide:
|
|
22
|
+
|
|
23
|
+
> **What would you like to sell? Just describe your product in a few words and/or upload a photo of it — I'll generate the full product info (name, description, price, and any options) for you from there.**
|
|
24
|
+
|
|
25
|
+
The user can reply with a text prompt, an image, or both:
|
|
26
|
+
|
|
27
|
+
- **An image is provided (with or without text)** → follow the **[Create Product from Image](https://dev.wix.com/docs/api-reference/business-solutions/stores/skills/create-product-from-image)** recipe to generate the product info from the image(s), then continue from the gap check in 0b for anything still missing.
|
|
28
|
+
- **Text only** → continue with the gap check in 0b.
|
|
29
|
+
|
|
30
|
+
If the user *already* described a product when triggering the skill, skip this opening message and go straight to 0b.
|
|
31
|
+
|
|
32
|
+
> **This opening message is the entry point, not a follow-up — it does NOT count against the 1–2 follow-up-question budget in 0b.**
|
|
33
|
+
|
|
34
|
+
### 0b. Gap check — decide what (if anything) to ask
|
|
35
|
+
|
|
36
|
+
**Mandatory inputs are `name` and `price`.** Check what the user has already provided:
|
|
37
|
+
|
|
38
|
+
**Case 1 — a mandatory input is missing (no name and/or no price):**
|
|
39
|
+
Ask for the missing mandatory field(s), and in the same message offer to generate it for them. Combine both missing fields into a single question. For example:
|
|
40
|
+
|
|
41
|
+
> "What would you like to call this product, and what price should I set? I can also suggest a name and price for you if you'd like."
|
|
42
|
+
|
|
43
|
+
If the user asks you to generate them (or doesn't provide them after being asked once), generate a sensible name and price based on the product context and proceed — do not ask a second time.
|
|
44
|
+
|
|
45
|
+
**Case 2 — both mandatory inputs are provided:**
|
|
46
|
+
You may ask **one** enrichment question to make the product more complete. Ask about whichever is most relevant, and offer to do the work for them. For example:
|
|
47
|
+
|
|
48
|
+
> "Does this product come in different **sizes or colors** (e.g. options customers choose from)? And would you like me to generate a **SEO description** and/or **info sections** to make it ready to sell?"
|
|
49
|
+
|
|
50
|
+
- If the user wants options/choices → collect them and build the options + variants per STEP 1.
|
|
51
|
+
- If the user wants generated SEO description and/or info sections → generate them and include them in the product.
|
|
52
|
+
- If the user declines or says "just create it" → proceed with what you have.
|
|
53
|
+
|
|
54
|
+
> **Do NOT ask about options AND enrichment as two separate rounds.** Bundle them into the single enrichment question above so the total stays within the 1–2 question budget.
|
|
55
|
+
|
|
56
|
+
### 0c. Stay focused on the product until it's saved
|
|
57
|
+
|
|
58
|
+
> **CRITICAL — ONCE A PRODUCT-CREATION CONVERSATION HAS STARTED, STAY ON IT.** Do not switch to other topics, suggest unrelated tasks, or start new workflows until the product has actually been created (saved) via STEP 1 — **unless the user explicitly asks to do something else**. If the user goes off-topic, briefly answer if needed, then steer back to finishing and saving the product.
|
|
59
|
+
|
|
60
|
+
### 0d. Confirm once — then create
|
|
61
|
+
|
|
62
|
+
> **CRITICAL — VALIDATE EXACTLY ONCE BEFORE CREATING.** Right before calling the Create Product API (STEP 1), show a brief summary of what you're about to create and ask for a single go-ahead. Ask **only once**. Do NOT approve-and-then-ask-again (e.g. present a summary, get a "yes", and then ask "shall I create it now?" a second time) — that double confirmation is exactly what we want to avoid. Once the user approves, go straight to STEP 1 with no further approval prompts.
|
|
63
|
+
|
|
64
|
+
For example:
|
|
65
|
+
|
|
66
|
+
> "Here's what I'll add to your store: **[name]** — **[price]**[, options: …]. Ready to create it?"
|
|
67
|
+
|
|
68
|
+
If the user already signaled approval (e.g. "just create it", "go ahead"), treat that as the single confirmation and proceed straight to STEP 1 — do not ask again.
|
|
69
|
+
|
|
13
70
|
## STEP 1: create the product with options and variants
|
|
14
71
|
|
|
15
72
|
1. create the product with options and create variants for them - Wix REST API: [Create Product](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/create-product) **CRITICAL: USE THIS WORKING EXAMPLE**
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wix-vibe-headless
|
|
3
|
+
description: "Client-only, dependency-free REST scaffolds for connecting an already-built front end (a vibe-coded app, an HTML/JSX/Vite project, a design-tool export) to a live Wix site over the site's public WIX_CLIENT_ID — the browser talks to Wix directly, no SDK, no backend, no build step. One skill covering every Wix business solution: Stores/eCommerce storefront (products, cart, checkout), Bookings (services, slots, appointments), Blog (posts, categories, tags), Events & Tickets (browse, RSVP, ticketing), Portfolio (collections, projects, galleries), Restaurants (menu, online ordering, reservations), CMS / Wix Data (list, detail, filter, forms, CRUD), Pricing Plans (memberships, subscriptions, checkout), and Members (custom login — email+password, Google/Facebook, and custom SSO — plus account areas and member-gated content). Each vertical ships a copy-as-is REST layer plus wiring instructions. Read-only over the owner's content — never provisions, never mocks data. Triggers: connect my Wix store/shop, build a storefront over Wix, add a cart and checkout, connect Wix Bookings, take appointments/reservations, show my Wix blog, list my Wix events, sell tickets, take RSVPs, build a portfolio from Wix Portfolio, show my restaurant menu / order online / book a table, display my Wix CMS collection, wire a contact form to Wix, sell membership/subscription plans, add member login / sign up, let members log in with Google or Facebook, custom login page, account / profile page, gate content behind login, sign in with SSO/Okta, 'here is my WIX_CLIENT_ID', connect this app to my Wix site over REST. Use this for CLIENT-ONLY REST integration over an existing site; use `wix-headless` instead for SDK + Wix CLI builds, hosting, and one-prompt new-site creation."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Wix Vibe Headless — client-only REST connectors
|
|
7
|
+
|
|
8
|
+
Wire an existing front end to a live Wix site **from the browser**, over the site's public
|
|
9
|
+
`WIX_CLIENT_ID`, using hand-rolled REST — **no `@wix/sdk`, no backend, no build step, no
|
|
10
|
+
dependencies**. One skill, one shared transport, and a copy-as-is REST layer per Wix
|
|
11
|
+
business solution. Everything is **read-only over the owner's content**: render live Wix
|
|
12
|
+
data or an honest empty state — **never mock, never provision, never invent** products,
|
|
13
|
+
posts, events, menus, plans, reviews, or counts.
|
|
14
|
+
|
|
15
|
+
## When to use this skill
|
|
16
|
+
|
|
17
|
+
- The user has (or is building) a front end — a vibe-coded app, plain HTML/JSX, a Vite/React
|
|
18
|
+
project, a design-tool export — and wants it to show **live data from their existing Wix
|
|
19
|
+
site** and complete real purchases/bookings, all from the client.
|
|
20
|
+
- They hand you a **public `WIX_CLIENT_ID`** and ask to "connect this to my Wix store /
|
|
21
|
+
blog / bookings / events / …".
|
|
22
|
+
- They want to replace placeholder/mock data with real Wix content, or add a cart, checkout,
|
|
23
|
+
booking, RSVP, ticketing, reservation, form, or subscribe flow over an app they already have.
|
|
24
|
+
|
|
25
|
+
## When NOT to use this skill
|
|
26
|
+
|
|
27
|
+
| Scenario | Use instead |
|
|
28
|
+
|---|---|
|
|
29
|
+
| Build a **new** Wix site end-to-end from one prompt (discovery → design → build → host) | `wix-headless` |
|
|
30
|
+
| The project should use the **Wix SDK** (`@wix/sdk`) and/or the **Wix CLI**, or be **hosted on Wix** | `wix-headless` |
|
|
31
|
+
| Manage/configure the site via REST (install apps, seed catalogs, set up business solutions) | `wix-manage` |
|
|
32
|
+
| Build a Wix **app extension** (dashboard page, widget, backend, plugin) | `wix-app` |
|
|
33
|
+
|
|
34
|
+
This skill is the deliberately **client-only, REST-only** path. It is independent from
|
|
35
|
+
`wix-headless` (which is SDK + CLI + hosting) — do not mix the two in one project.
|
|
36
|
+
|
|
37
|
+
## The shared model (applies to every vertical)
|
|
38
|
+
|
|
39
|
+
- **Auth = one public client id.** `WIX_CLIENT_ID` is a **buyer/visitor-facing** credential —
|
|
40
|
+
it only mints anonymous visitor tokens. It is **not a secret**; hardcoding and committing it
|
|
41
|
+
is fine. The user provides it (their vibe/host platform surfaces a copyable prompt with the
|
|
42
|
+
id filled in). Paste it into `wix-client.js` in place of the `<YOUR-CLIENT-ID>` placeholder.
|
|
43
|
+
- **Money/price fields are objects, never scalars.** Every price/amount a Wix API returns —
|
|
44
|
+
Stores `price.actualPrice`, Bookings service `payment.fixed.price`, Events ticket
|
|
45
|
+
`registration.tickets.lowestPrice`, and the rest — has the shape `{ value, currency,
|
|
46
|
+
formattedValue }`. Render **`formattedValue`** (it already includes the currency symbol), or
|
|
47
|
+
fall back to building from `value` + `currency`. **Never** drop the object straight into the UI
|
|
48
|
+
or treat it as a number/string — that renders `[object Object]` or a bare unformatted number.
|
|
49
|
+
- **Visitor token = identity.** `wix-client.js` mints an anonymous visitor token, persists the
|
|
50
|
+
**refresh token to `localStorage`**, and refreshes on expiry. That token IS the identity of
|
|
51
|
+
the cart / reservation / member session — **never re-mint anonymously per load** or the cart
|
|
52
|
+
silently empties.
|
|
53
|
+
- **Member login swaps the token set on the same client.** The **members** vertical is *custom*
|
|
54
|
+
login — the front owns its login UI; the member is **never redirected to a Wix-hosted login page**.
|
|
55
|
+
On success it writes the member's tokens into the *same* store the visitor token used
|
|
56
|
+
(`setSessionTokens`), so **every subsequent `wixApiRequest` runs as the member** and the cart/session
|
|
57
|
+
carries over. "My …" surfaces (plans, orders, bookings, registrations) light up only once logged in.
|
|
58
|
+
- **⚠️ Once you're building on Wix, keep it on Wix — auth, member data, and other business features
|
|
59
|
+
too.** If you're wiring a Wix storefront/blog/etc. over `WIX_CLIENT_ID`, prefer Wix for the *rest*
|
|
60
|
+
of the app as well, rather than reaching for a host platform's own backend or login. **Especially
|
|
61
|
+
for auth:** when the user wants members, log them in as a **Wix member** (`members` vertical) — don't
|
|
62
|
+
bolt on the host platform's auth. Likewise, member-generated content (likes, reviews, submissions,
|
|
63
|
+
"my …" lists) goes in a **Wix CMS collection** (`cms` vertical), not a host database.
|
|
64
|
+
- **The split-brain trap:** the most common failure is mixing the two — e.g. storing "likes" in the
|
|
65
|
+
host's DB while identifying the member from the Wix session (or logging in with Wix members but
|
|
66
|
+
keying data on a host user id). The two identities never match, ownership filters silently return
|
|
67
|
+
nothing (a like vanishes on refresh), and the data never sits with the rest of the Wix content.
|
|
68
|
+
- **Rule of thumb:** one store and one identity per feature. For a Wix-backed feature that's the Wix
|
|
69
|
+
member + the Wix collection, with ownership on Wix's server-stamped `_owner` (never a hand-stored
|
|
70
|
+
or host-supplied member id). Using a host backend for genuinely host-only data is fine — just
|
|
71
|
+
never straddle a single feature across both.
|
|
72
|
+
- **Never mock, never provision.** These scaffolds are read-only over the owner's content. The
|
|
73
|
+
owner adds products/posts/services/events/menus/plans in the **Wix dashboard**. If a
|
|
74
|
+
collection is empty, show the empty state — never fabricate data, reviews, ratings, or counts.
|
|
75
|
+
- **Purchases go through Wix.** Checkout/ticketing/plan purchase always complete via the Wix
|
|
76
|
+
redirect-session / Wix-hosted form — **never hand-build a `/checkout` or purchase URL**.
|
|
77
|
+
- **Fail loudly.** The helpers throw on out-of-stock, empty carts, unbookable slots, expired
|
|
78
|
+
holds, and payment-still-owed. A green path means it really worked — don't swallow the error.
|
|
79
|
+
- **Copy the shipped helpers as-is — don't rewrite their internals.** Wire your UI to the *exported*
|
|
80
|
+
functions; don't "refactor" or reimplement the helper bodies. Several Wix request shapes are exact
|
|
81
|
+
and easy to break (the members `createRedirectSession` body is the classic trap — a rewritten
|
|
82
|
+
version returns 400 and login dies). Extend by *calling* the exports or adding a new
|
|
83
|
+
`wixApiRequest` call for a genuine gap — never by editing the shipped ones.
|
|
84
|
+
- **Beyond the snippets, look it up — never guess.** The templates and the shipped
|
|
85
|
+
`references/<vertical>/` helpers are the implementation — build from them first. When you hit a
|
|
86
|
+
genuine gap (a field, an endpoint, or an error the snippets don't cover), extend the client with
|
|
87
|
+
`wixApiRequest` — confirming the exact endpoint, method, and body first. **For that iteration and
|
|
88
|
+
troubleshooting** — finding the right endpoint, reading a method's request/response schema, or
|
|
89
|
+
diagnosing an API error — fall back to the **`wix-docs`** skill (`../wix-docs/SKILL.md` when
|
|
90
|
+
co-installed): it covers `curl` doc-search, reading pages, and structured API-spec queries.
|
|
91
|
+
Reference index: https://dev.wix.com/docs/api-reference.md
|
|
92
|
+
- **Provide the user with deep links to the Wix dashboard**: In many cases, the user will need to modify the default vertical data in the Wix dashboard. Always provide the user with these links. The relevant information for each vertical's links is in its `INSTRUCTIONS.md` file.
|
|
93
|
+
|
|
94
|
+
## How this skill is structured
|
|
95
|
+
|
|
96
|
+
`<SKILL_ROOT>` is this file's directory (strip `/SKILL.md`). Two files make up each vertical's
|
|
97
|
+
runtime:
|
|
98
|
+
|
|
99
|
+
1. **The shared transport** — `references/shared/wix-client.js`. **Identical for every vertical.**
|
|
100
|
+
Copy it once into the app's `src/rest/` and set `WIX_CLIENT_ID` in it.
|
|
101
|
+
2. **The vertical helper** — `references/<vertical>/<helper>.js`. Copy it into the **same**
|
|
102
|
+
`src/rest/` folder (it does `import { wixApiRequest } from "./wix-client.js"`, so the two
|
|
103
|
+
files must sit side by side).
|
|
104
|
+
|
|
105
|
+
Each vertical's `INSTRUCTIONS.md` is the full playbook for that solution: when to use it,
|
|
106
|
+
prerequisites, the exported API, how to wire it, the hard rules, and a verification checklist.
|
|
107
|
+
**Open the relevant `INSTRUCTIONS.md` before wiring** — the shapes and gotchas live there.
|
|
108
|
+
|
|
109
|
+
## Routing — pick the vertical(s) from the request
|
|
110
|
+
|
|
111
|
+
Load the vertical(s) the user's app needs; a project may combine several (e.g. a restaurant
|
|
112
|
+
with a blog, or a store with pricing plans).
|
|
113
|
+
|
|
114
|
+
| The user wants… | Vertical | Read | Helper(s) to copy (+ `shared/wix-client.js`) |
|
|
115
|
+
|---|---|---|---|
|
|
116
|
+
| Online store: products, categories, cart, checkout | **storefront** | `references/storefront/INSTRUCTIONS.md` | `wix-store-catalog.js` + `wix-store-cart.js` |
|
|
117
|
+
| Appointments: services, time slots, booking, checkout | **bookings** | `references/bookings/INSTRUCTIONS.md` | `wix-bookings-services.js` + `wix-bookings-checkout.js` |
|
|
118
|
+
| Blog/news: post feed, post pages, categories, tags | **blog** | `references/blog/INSTRUCTIONS.md` | `references/blog/wix-blog.js` |
|
|
119
|
+
| Events: browse, event page, RSVP, ticketing | **events** | `references/events/INSTRUCTIONS.md` | `wix-events-browse.js` (always) + `wix-events-registration.js` (RSVP/tickets) |
|
|
120
|
+
| Portfolio/showcase: collections, projects, media galleries | **portfolio** | `references/portfolio/INSTRUCTIONS.md` | `references/portfolio/wix-portfolio.js` |
|
|
121
|
+
| Restaurant: menu, online ordering, table reservations | **restaurants** | `references/restaurants/INSTRUCTIONS.md` | `wix-restaurants-menu.js` (always) + `wix-restaurants-ordering.js` + `wix-restaurants-reservations.js` as needed |
|
|
122
|
+
| CMS content: list/detail, filter/search, forms, data CRUD | **cms** | `references/cms/INSTRUCTIONS.md` | `references/cms/wix-cms.js` |
|
|
123
|
+
| Plans & pricing: memberships/subscriptions, subscribe, my plans | **pricing-plans** | `references/pricing-plans/INSTRUCTIONS.md` | `references/pricing-plans/wix-pricing-plans.js` |
|
|
124
|
+
| Member accounts: custom login/sign-up (email+password, Google/Facebook, SSO), account area, gated content | **members** | `references/members/INSTRUCTIONS.md` | `references/members/wix-members-auth.js` |
|
|
125
|
+
|
|
126
|
+
## The run
|
|
127
|
+
|
|
128
|
+
1. **Get `WIX_CLIENT_ID`.** It comes from the user (the handoff prompt from their Wix/vibe
|
|
129
|
+
platform carries it). If it's missing, ask for it before wiring — nothing works without it.
|
|
130
|
+
2. **Pick the vertical(s)** from the routing table and open each one's `INSTRUCTIONS.md`.
|
|
131
|
+
3. **Copy the two files per vertical** — `shared/wix-client.js` (once) + the vertical helper —
|
|
132
|
+
into the app's `src/rest/` (adjust only the import path if the app uses a different folder),
|
|
133
|
+
and set `WIX_CLIENT_ID`.
|
|
134
|
+
4. **Wire the UI** to the exported helpers following the vertical's INSTRUCTIONS. Build the UI
|
|
135
|
+
however the project wants — these scaffolds ship the REST layer only, no components.
|
|
136
|
+
5. **Verify** against the vertical's checklist before declaring done: token persists across
|
|
137
|
+
reload, live data renders (or a real empty state), and purchases go through the Wix redirect.
|
|
138
|
+
|
|
139
|
+
> Some flows need Wix-side setup the user completes later (payments connected, the deployed
|
|
140
|
+
> domain allow-listed on the OAuth client for hosted-checkout return, collection permissions).
|
|
141
|
+
> Those are out of scope here — if a call fails for that reason, flag it and continue; don't
|
|
142
|
+
> fall back to mock data.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Vibe platform handoff prompts
|
|
2
|
+
|
|
3
|
+
One file per AI-builder platform (Base44, Lovable, Bolt, v0, Manus, …). Each file is the
|
|
4
|
+
**handoff prompt** the Wix Headless funnel hands to that platform after it creates the site +
|
|
5
|
+
OAuth app: build the client, then seed/manage the business.
|
|
6
|
+
|
|
7
|
+
`generic.md` is the **platform-agnostic** version — same flow (install skills → build client →
|
|
8
|
+
seed/manage → wrap up) with no assumptions about a specific platform's tooling. Use it as the
|
|
9
|
+
default/fallback for platforms without their own tuned file; `base44.md` is the Base44-specific
|
|
10
|
+
one (its exec tool, secret store, pre-configured connector, etc.).
|
|
11
|
+
|
|
12
|
+
These are hosted (served at `https://www.wix.com/skills/vibe-headless/platforms/<platform>.md`)
|
|
13
|
+
so the funnel loader can pass a short pointer to the prompt instead of inlining the whole
|
|
14
|
+
script into the launch URL. Inlining tripped the Base44 edge WAF, which scans the POST body
|
|
15
|
+
for command-injection patterns (`curl … | tar`, `require('child_process')`, etc.); a plain
|
|
16
|
+
GET of a hosted file is not scanned that way.
|
|
17
|
+
|
|
18
|
+
**Loader contract:** the funnel sends a short prompt that names the business, passes the Wix
|
|
19
|
+
client id + metasite id, and points here — e.g. "Build a site for my Wix managed business:
|
|
20
|
+
<business>. Then fetch and follow https://www.wix.com/skills/vibe-headless/platforms/base44.md
|
|
21
|
+
exactly." The dynamic bits (business description, client id, metasite id) stay in the loader
|
|
22
|
+
prompt; everything static lives in these files.
|