@wix/agent-skills 1.16.3 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/wix-app/SKILL.md +115 -12
- package/skills/wix-app/references/APP_MARKET_REVIEW.md +1 -1
- package/skills/wix-app/references/BACKEND_API.md +18 -0
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +6 -0
- package/skills/wix-app/references/DASHBOARD_MODAL.md +10 -2
- package/skills/wix-app/references/DASHBOARD_PAGE.md +32 -70
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +145 -127
- package/skills/wix-app/references/SITE_PLUGIN.md +14 -2
- package/skills/wix-app/references/WIX_PATTERNS_DOCS.md +74 -68
- package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +2 -2
- package/skills/wix-app/references/dashboard-page/COLLECTION_TOOLKIT.md +79 -0
- package/skills/wix-app/references/dashboard-page/ENTITY_PAGE_TOOLKIT.md +73 -0
- package/skills/wix-app/references/dashboard-page/PATTERNS_BUNDLE_READING.md +52 -0
- package/skills/wix-app/references/dashboard-page/UX_SUCCESS_MODEL.md +184 -0
- package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +182 -99
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +94 -49
- package/skills/wix-app/references/editor-react-component/BRANDED-COMPONENTS.md +16 -6
- package/skills/wix-app/references/editor-react-component/BROWSER-SUPPORT.md +56 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONTRACT.md +275 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-PREVIEW.md +35 -40
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +167 -445
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +56 -29
- package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +53 -158
- package/skills/wix-app/references/editor-react-component/EDITOR-EXTENSION-CONFIGURATION.md +78 -0
- package/skills/wix-app/references/editor-react-component/FUNCTION-HANDLERS.md +42 -134
- package/skills/wix-app/references/editor-react-component/MANIFEST-ERRORS.md +11 -3
- package/skills/wix-app/references/editor-react-component/PARTS.md +46 -24
- package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +63 -179
- package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +79 -163
- package/skills/wix-app/references/editor-react-component/SITE-CONTEXT-HOOKS.md +36 -21
- package/skills/wix-app/references/editor-react-component/SSR.md +30 -99
- package/skills/wix-base44-connector/SKILL.md +156 -50
- package/skills/wix-base44-connector/references/CAPABILITY_MAP.md +78 -0
- package/skills/wix-base44-connector/scripts/utils.js +239 -45
- package/skills/wix-headless/entry/bootstrap.mjs +9 -2
- package/skills/wix-headless/entry/skill.md +1 -1
- package/skills/wix-headless/references/CAPABILITIES.md +9 -1
- package/skills/wix-headless/references/DESIGN.md +1 -0
- package/skills/wix-headless/references/DISCOVERY.md +2 -1
- package/skills/wix-headless/references/IMAGE_GENERATION.md +1 -0
- package/skills/wix-headless/references/SDK_HANDOFF.md +5 -2
- package/skills/wix-headless/references/SEED.md +2 -1
- package/skills/wix-headless/references/SETUP.md +1 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +2 -2
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +68 -31
- package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +26 -10
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +8 -8
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +1 -1
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +1 -1
- package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +10 -8
- package/skills/wix-headless/references/inline-recipes/how-to-code-rentals.md +254 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +27 -24
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +13 -0
- package/skills/wix-headless/references/inline-recipes/setup-rentals.md +254 -0
- package/skills/wix-headless/references/managed/AUTHENTICATION.md +5 -0
- package/skills/wix-headless/references/non-astro.md +1 -1
- package/skills/wix-headless-fast/SKILL.md +166 -0
- package/skills/wix-headless-fast/entry/skill.md +99 -0
- package/skills/wix-headless-fast/install/deploy.mjs +433 -0
- package/skills/wix-headless-fast/install/fast-path.mjs +141 -0
- package/skills/wix-headless-fast/references/blog/INSTRUCTIONS.md +137 -0
- package/skills/wix-headless-fast/references/blog/app/components/blog/BlogFeedView.tsx +137 -0
- package/skills/wix-headless-fast/references/blog/app/components/blog/PostView.tsx +113 -0
- package/skills/wix-headless-fast/references/blog/app/components/blog/RichContent.tsx +42 -0
- package/skills/wix-headless-fast/references/blog/app/hooks/blog/useBlogFeed.ts +123 -0
- package/skills/wix-headless-fast/references/blog/app/hooks/blog/usePost.ts +70 -0
- package/skills/wix-headless-fast/references/blog/app/wix/blog/posts.ts +99 -0
- package/skills/wix-headless-fast/references/blog/app/wix/blog/taxonomy.ts +76 -0
- package/skills/wix-headless-fast/references/blog/app/wix/blog/types.ts +62 -0
- package/skills/wix-headless-fast/references/blog/app-astro/layouts/SiteLayout.astro +40 -0
- package/skills/wix-headless-fast/references/blog/app-astro/pages/blog/[...slug].astro +99 -0
- package/skills/wix-headless-fast/references/blog/app-astro/pages/blog.astro +24 -0
- package/skills/wix-headless-fast/references/blog/lock/astro/package-lock.json +16156 -0
- package/skills/wix-headless-fast/references/blog/seed/SEED.md +72 -0
- package/skills/wix-headless-fast/references/blog/seed/seed-blog.mjs +287 -0
- package/skills/wix-headless-fast/references/bookings/INSTRUCTIONS.md +129 -0
- package/skills/wix-headless-fast/references/bookings/app/components/bookings/ServiceBookingView.tsx +143 -0
- package/skills/wix-headless-fast/references/bookings/app/components/bookings/ServicesView.tsx +119 -0
- package/skills/wix-headless-fast/references/bookings/app/hooks/bookings/useBookingFlow.ts +138 -0
- package/skills/wix-headless-fast/references/bookings/app/hooks/bookings/useServices.ts +54 -0
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/booking.ts +206 -0
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/services.ts +96 -0
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/types.ts +70 -0
- package/skills/wix-headless-fast/references/bookings/app-astro/layouts/SiteLayout.astro +40 -0
- package/skills/wix-headless-fast/references/bookings/app-astro/pages/services/[slug].astro +76 -0
- package/skills/wix-headless-fast/references/bookings/app-astro/pages/services.astro +22 -0
- package/skills/wix-headless-fast/references/bookings/lock/astro/package-lock.json +11962 -0
- package/skills/wix-headless-fast/references/bookings/seed/SEED.md +61 -0
- package/skills/wix-headless-fast/references/bookings/seed/seed-bookings.mjs +302 -0
- package/skills/wix-headless-fast/references/cms/INSTRUCTIONS.md +179 -0
- package/skills/wix-headless-fast/references/cms/app/hooks/cms/useCollection.ts +83 -0
- package/skills/wix-headless-fast/references/cms/app/hooks/cms/useItem.ts +57 -0
- package/skills/wix-headless-fast/references/cms/app/wix/cms/items.ts +151 -0
- package/skills/wix-headless-fast/references/cms/app/wix/cms/types.ts +75 -0
- package/skills/wix-headless-fast/references/cms/app-astro/layouts/SiteLayout.astro +41 -0
- package/skills/wix-headless-fast/references/cms/lock/astro/package-lock.json +11262 -0
- package/skills/wix-headless-fast/references/cms/seed/SEED.md +103 -0
- package/skills/wix-headless-fast/references/cms/seed/seed-cms.mjs +324 -0
- package/skills/wix-headless-fast/references/events/INSTRUCTIONS.md +149 -0
- package/skills/wix-headless-fast/references/events/app/components/events/EventConfirmationView.tsx +66 -0
- package/skills/wix-headless-fast/references/events/app/components/events/EventRegistrationView.tsx +176 -0
- package/skills/wix-headless-fast/references/events/app/components/events/EventsView.tsx +118 -0
- package/skills/wix-headless-fast/references/events/app/hooks/events/useEventRegistration.ts +117 -0
- package/skills/wix-headless-fast/references/events/app/hooks/events/useEvents.ts +59 -0
- package/skills/wix-headless-fast/references/events/app/wix/events/events.ts +136 -0
- package/skills/wix-headless-fast/references/events/app/wix/events/registration.ts +128 -0
- package/skills/wix-headless-fast/references/events/app/wix/events/types.ts +61 -0
- package/skills/wix-headless-fast/references/events/app-astro/layouts/SiteLayout.astro +40 -0
- package/skills/wix-headless-fast/references/events/app-astro/pages/event-confirmation.astro +12 -0
- package/skills/wix-headless-fast/references/events/app-astro/pages/events/[slug].astro +80 -0
- package/skills/wix-headless-fast/references/events/app-astro/pages/events.astro +21 -0
- package/skills/wix-headless-fast/references/events/lock/astro/package-lock.json +11884 -0
- package/skills/wix-headless-fast/references/events/seed/SEED.md +86 -0
- package/skills/wix-headless-fast/references/events/seed/seed-events.mjs +276 -0
- package/skills/wix-headless-fast/references/forms/INSTRUCTIONS.md +150 -0
- package/skills/wix-headless-fast/references/forms/app/hooks/forms/useWixForm.ts +317 -0
- package/skills/wix-headless-fast/references/forms/app/wix/forms/forms.ts +269 -0
- package/skills/wix-headless-fast/references/forms/app/wix/forms/submissions.ts +231 -0
- package/skills/wix-headless-fast/references/forms/app/wix/forms/types.ts +135 -0
- package/skills/wix-headless-fast/references/forms/lock/astro/package-lock.json +10593 -0
- package/skills/wix-headless-fast/references/forms/seed/SEED.md +108 -0
- package/skills/wix-headless-fast/references/forms/seed/seed-forms.mjs +320 -0
- package/skills/wix-headless-fast/references/members/INSTRUCTIONS.md +63 -0
- package/skills/wix-headless-fast/references/members/app/components/members/AccountView.tsx +60 -0
- package/skills/wix-headless-fast/references/members/app/components/members/LoginForm.tsx +155 -0
- package/skills/wix-headless-fast/references/members/app/components/members/MemberMenu.tsx +78 -0
- package/skills/wix-headless-fast/references/members/app/components/members/RequireAuth.tsx +47 -0
- package/skills/wix-headless-fast/references/members/app/hooks/members/useMember.ts +66 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/auth.ts +88 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/client.ts +53 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/member-store.ts +122 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/members.ts +50 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/types.ts +21 -0
- package/skills/wix-headless-fast/references/members/app-astro/layouts/SiteLayout.astro +42 -0
- package/skills/wix-headless-fast/references/members/app-astro/pages/account.astro +10 -0
- package/skills/wix-headless-fast/references/members/app-astro/pages/login.astro +11 -0
- package/skills/wix-headless-fast/references/members/lock/astro/package-lock.json +10329 -0
- package/skills/wix-headless-fast/references/members/seed/SEED.md +39 -0
- package/skills/wix-headless-fast/references/members/seed/seed-members.mjs +94 -0
- package/skills/wix-headless-fast/references/portfolio/INSTRUCTIONS.md +134 -0
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/CollectionProjectsView.tsx +110 -0
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/CollectionsView.tsx +90 -0
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/ProjectDetailView.tsx +115 -0
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useCollectionProjects.ts +59 -0
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useCollections.ts +39 -0
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useProjectDetail.ts +58 -0
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/portfolio.ts +165 -0
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/types.ts +55 -0
- package/skills/wix-headless-fast/references/portfolio/app-astro/layouts/SiteLayout.astro +40 -0
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/portfolio/[slug].astro +30 -0
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/portfolio.astro +21 -0
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/projects/[slug].astro +29 -0
- package/skills/wix-headless-fast/references/portfolio/lock/astro/package-lock.json +10197 -0
- package/skills/wix-headless-fast/references/portfolio/seed/SEED.md +78 -0
- package/skills/wix-headless-fast/references/portfolio/seed/seed-portfolio.mjs +258 -0
- package/skills/wix-headless-fast/references/pricing-plans/INSTRUCTIONS.md +133 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/components/pricing-plans/PlanDetailView.tsx +58 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/components/pricing-plans/PlansView.tsx +126 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/hooks/pricing-plans/usePlanPurchase.ts +37 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/hooks/pricing-plans/usePlans.ts +39 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/plans.ts +75 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/purchase.ts +45 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/types.ts +30 -0
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/layouts/SiteLayout.astro +41 -0
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/pages/plans/[slug].astro +40 -0
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/pages/plans.astro +21 -0
- package/skills/wix-headless-fast/references/pricing-plans/lock/astro/package-lock.json +11226 -0
- package/skills/wix-headless-fast/references/pricing-plans/seed/SEED.md +71 -0
- package/skills/wix-headless-fast/references/pricing-plans/seed/seed-pricing-plans.mjs +279 -0
- package/skills/wix-headless-fast/references/restaurants/INSTRUCTIONS.md +165 -0
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/MenuView.tsx +142 -0
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/OrderCartButton.tsx +26 -0
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/OrderCartDrawer.tsx +121 -0
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/ReservationView.tsx +155 -0
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useMenus.ts +55 -0
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useOrderCart.ts +43 -0
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useReservation.ts +177 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/menu.ts +165 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/order-store.ts +103 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/ordering.ts +254 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/reservations.ts +146 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/types.ts +168 -0
- package/skills/wix-headless-fast/references/restaurants/app-astro/layouts/SiteLayout.astro +47 -0
- package/skills/wix-headless-fast/references/restaurants/app-astro/pages/menu.astro +22 -0
- package/skills/wix-headless-fast/references/restaurants/app-astro/pages/reservations.astro +12 -0
- package/skills/wix-headless-fast/references/restaurants/lock/astro/package-lock.json +12560 -0
- package/skills/wix-headless-fast/references/restaurants/seed/SEED.md +81 -0
- package/skills/wix-headless-fast/references/restaurants/seed/seed-restaurants.mjs +479 -0
- package/skills/wix-headless-fast/references/shared/CONTENT.md +22 -0
- package/skills/wix-headless-fast/references/shared/CUSTOM_OPERATIONS.md +73 -0
- package/skills/wix-headless-fast/references/shared/DESIGN.md +26 -0
- package/skills/wix-headless-fast/references/shared/app/styles/global.css +52 -0
- package/skills/wix-headless-fast/references/shared/app/wix/config.ts +15 -0
- package/skills/wix-headless-fast/references/shared/app/wix/media.ts +27 -0
- package/skills/wix-headless-fast/references/shared/app/wix/money.ts +24 -0
- package/skills/wix-headless-fast/references/shared/app/wix/sdk.ts +76 -0
- package/skills/wix-headless-fast/references/shared/capabilities/media-upload/app/wix/media-upload/client.ts +46 -0
- package/skills/wix-headless-fast/references/shared/capabilities/media-upload/app-astro/pages/api/wix/media-upload.ts +46 -0
- package/skills/wix-headless-fast/references/shared/seed/images.mjs +145 -0
- package/skills/wix-headless-fast/references/storefront/INSTRUCTIONS.md +149 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/CartButton.tsx +26 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/CartDrawer.tsx +121 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/ProductCard.tsx +100 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/ProductDetailView.tsx +130 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/ProductGrid.tsx +48 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/ShopView.tsx +66 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/VariantPicker.tsx +103 -0
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useCart.ts +48 -0
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useProductDetail.ts +140 -0
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useShop.ts +80 -0
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/cart-store.ts +101 -0
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/cart.ts +221 -0
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/catalog.ts +215 -0
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/types.ts +109 -0
- package/skills/wix-headless-fast/references/storefront/app-astro/layouts/SiteLayout.astro +46 -0
- package/skills/wix-headless-fast/references/storefront/app-astro/pages/products/[slug].astro +56 -0
- package/skills/wix-headless-fast/references/storefront/app-astro/pages/shop.astro +23 -0
- package/skills/wix-headless-fast/references/storefront/lock/astro/package-lock.json +12247 -0
- package/skills/wix-headless-fast/references/storefront/seed/SEED.md +85 -0
- package/skills/wix-headless-fast/references/storefront/seed/seed-store.mjs +415 -0
- package/skills/wix-manage/SKILL.md +28 -2
- package/skills/wix-manage/references/bookings/booking-system-integration-gaps.md +20 -13
- package/skills/wix-manage/references/bookings/end-to-end-booking-flow.md +24 -11
- package/skills/wix-manage/references/cms/cms-ecommerce-catalog-integration.md +5 -5
- package/skills/wix-manage/references/google-ads/manage-campaign-success-guide.md +141 -0
- package/skills/wix-manage/references/google-business-profile/connect-google-business-profile.md +134 -0
- package/skills/wix-manage/references/google-business-profile/manage-google-business-profile-locations.md +182 -0
- package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +3 -0
- package/skills/wix-manage/references/seo/manage-seo-tags.md +315 -0
- package/skills/wix-manage/references/seo/manage-url-redirects.md +250 -0
- package/skills/wix-manage/references/sites/query-sites.md +72 -161
- package/skills/wix-manage/references/stores/create-product-catalog-v3.md +21 -6
- package/skills/wix-manage/references/stores/update-product-with-options.md +83 -0
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +5 -6
- package/skills/wix-vibe-headless/SKILL.md +18 -4
- package/skills/wix-vibe-headless/install/deploy.cjs +12 -4
- package/skills/wix-vibe-headless/install/pin-agents-md.cjs +2 -1
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +16 -10
- package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +13 -8
- package/skills/wix-vibe-headless/platforms/base44.md +27 -62
- package/skills/wix-vibe-headless/platforms/generic.md +6 -3
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +45 -0
- package/skills/wix-vibe-headless/references/bookings/app/components/RentalDurationPicker.jsx +67 -0
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useRentalDuration.js +128 -0
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +5 -3
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-checkout.js +9 -8
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-rentals.js +250 -0
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-services.js +12 -5
- package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +41 -0
- package/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.js +267 -0
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +6 -3
- package/skills/wix-vibe-headless/references/forms/INSTRUCTIONS.md +470 -0
- package/skills/wix-vibe-headless/references/forms/app/hooks/useWixForm.js +425 -0
- package/skills/wix-vibe-headless/references/forms/app/lib/wix-form-schema-utils.js +187 -0
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms-submissions.js +238 -0
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms.js +108 -0
- package/skills/wix-vibe-headless/references/forms/seed/SEED.md +1762 -0
- package/skills/wix-vibe-headless/references/rentals/INSTRUCTIONS.md +13 -0
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +4 -1
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +23 -11
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +1 -1
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js +29 -31
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +152 -92
- package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +37 -38
- package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +2 -2
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +15 -8
- package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +37 -0
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-cart.js +35 -35
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-catalog.js +18 -6
- package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +30 -7
- package/skills/wix-vibe-headless/references/storefront/seed/seed-store.js +46 -10
- package/skills/wix-app/references/editor-react-component/A11Y-REVIEW-REFERENCE.md +0 -172
- package/skills/wix-app/references/editor-react-component/A11Y-REVIEW.md +0 -143
- package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +0 -516
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONFIGURATION.md +0 -225
- package/skills/wix-app/references/editor-react-component/EDIT-FLOW.md +0 -6
- package/skills/wix-app/references/editor-react-component/REACT-PATTERNS.md +0 -95
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductCard.jsx +0 -110
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductGallery.jsx +0 -51
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductGrid.jsx +0 -49
- package/skills/wix-vibe-headless/references/storefront/app/components/VariantPicker.jsx +0 -92
- package/skills/wix-vibe-headless/references/storefront/app/pages/ProductDetail.jsx +0 -139
|
@@ -51,7 +51,7 @@ The Wix Bookings system contains **fundamental undocumented integration patterns
|
|
|
51
51
|
- ❌ **NOT** documented booking status vs order status separation
|
|
52
52
|
- ❌ **NOT** documented service properties preservation in checkout
|
|
53
53
|
- ❌ **NO** mention of `BACKOFFICE_MERCHANT` channel requirement
|
|
54
|
-
- ❌ **NO** explanation of why
|
|
54
|
+
- ❌ **NO** explanation of why the cart/order APIs are needed for bookings
|
|
55
55
|
|
|
56
56
|
**Additional Service-Specific Gaps**:
|
|
57
57
|
- ❌ **Courses**: Dual API requirement (booking + calendar events) completely undocumented
|
|
@@ -69,7 +69,7 @@ The Wix Bookings system contains **fundamental undocumented integration patterns
|
|
|
69
69
|
- Create booking → Booking system creates reservation only
|
|
70
70
|
- Use booking ID as catalog item in ecom system
|
|
71
71
|
- Ecom system handles all pricing, tax, discount calculations
|
|
72
|
-
- Create
|
|
72
|
+
- Create a cart and place the order for actual payment processing
|
|
73
73
|
- Async messaging system handles payment confirmation
|
|
74
74
|
- Booking status (CONFIRMED) independent of payment status
|
|
75
75
|
|
|
@@ -125,7 +125,7 @@ Actual Required Flow: Booking API → Ecom Integration → Payment ✓
|
|
|
125
125
|
|
|
126
126
|
**Universal Pattern** (Works for ALL Service Types):
|
|
127
127
|
```
|
|
128
|
-
Create Booking → Extract Booking ID → Use as Catalog Item ID → Create
|
|
128
|
+
Create Booking → Extract Booking ID → Use as Catalog Item ID → Create Cart → Place Order → Process Payment
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
### 2. Identify Service Type-Specific Booking Patterns
|
|
@@ -266,26 +266,33 @@ Create calendar events using `POST https://www.wixapis.com/calendar/v3/bulk/even
|
|
|
266
266
|
|
|
267
267
|
**MAJOR DISCOVERY**: ALL booking payments use identical ecommerce integration pattern.
|
|
268
268
|
|
|
269
|
-
**Step 6A: Create
|
|
269
|
+
**Step 6A: Create Cart with Booking ID as Catalog Item**
|
|
270
270
|
|
|
271
|
-
|
|
271
|
+
Cart V2 unifies cart and checkout — there is no separate checkout entity, so the created cart's `id` is what later steps use as the cart/checkout id.
|
|
272
|
+
|
|
273
|
+
**Endpoint**: `POST https://www.wixapis.com/ecom/v2/carts` ([REST](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart-v2/create-cart))
|
|
272
274
|
|
|
273
275
|
```json
|
|
274
276
|
{
|
|
275
|
-
"
|
|
277
|
+
"catalogItems": [{
|
|
276
278
|
"catalogReference": {
|
|
277
279
|
"catalogItemId": "<BOOKING_ID>",
|
|
278
280
|
"appId": "13d21c63-b5ec-5912-8397-c3a5ddb27a97"
|
|
279
281
|
},
|
|
280
282
|
"quantity": 1
|
|
281
|
-
}]
|
|
282
|
-
"channelType": "WEB"
|
|
283
|
+
}]
|
|
283
284
|
}
|
|
284
285
|
```
|
|
285
286
|
|
|
286
|
-
**Step 6B:
|
|
287
|
+
**Step 6B: Place Order for Payment Processing**
|
|
288
|
+
|
|
289
|
+
First calculate the cart to obtain a price-verification token:
|
|
290
|
+
|
|
291
|
+
**Endpoint**: `POST https://www.wixapis.com/ecom/v2/carts/{cartId}/calculate` — read `summary.priceVerificationToken` from the response.
|
|
292
|
+
|
|
293
|
+
Then place the order, passing that token:
|
|
287
294
|
|
|
288
|
-
**Endpoint**: `POST https://www.wixapis.com/ecom/
|
|
295
|
+
**Endpoint**: `POST https://www.wixapis.com/ecom/v2/carts/{cartId}/place-order` (body `{ "priceVerificationToken": "<TOKEN>" }`)
|
|
289
296
|
|
|
290
297
|
**Critical Architecture Discoveries**:
|
|
291
298
|
- **Automatic ID Transformation**: Booking IDs automatically valid as catalog item IDs
|
|
@@ -297,7 +304,7 @@ Create calendar events using `POST https://www.wixapis.com/calendar/v3/bulk/even
|
|
|
297
304
|
|
|
298
305
|
**Payment Processing Architecture**:
|
|
299
306
|
```
|
|
300
|
-
Booking (CONFIRMED) →
|
|
307
|
+
Booking (CONFIRMED) → Cart → Place Order → Payment Processing (async)
|
|
301
308
|
↓
|
|
302
309
|
Messaging System
|
|
303
310
|
↓
|
|
@@ -322,7 +329,7 @@ Booking (CONFIRMED) → Checkout → Order → Payment Processing (async)
|
|
|
322
329
|
**Service Packages**: Multi-service booking + ecom integration
|
|
323
330
|
|
|
324
331
|
**Universal Integration Considerations**:
|
|
325
|
-
- All service types use same
|
|
332
|
+
- All service types use the same cart/order creation pattern
|
|
326
333
|
- Pricing calculations always handled by ecom system
|
|
327
334
|
- Async payment confirmation applies to all booking types
|
|
328
335
|
- Service properties preserved across all integration points
|
|
@@ -406,7 +413,7 @@ Booking (CONFIRMED) → Checkout → Order → Payment Processing (async)
|
|
|
406
413
|
* [Standard Booking Flow](https://dev.wix.com/docs/api-reference/business-solutions/bookings/flow-single-service-booking) - Missing payment integration
|
|
407
414
|
* [Create Booking](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings/bookings-writer-v2/create-booking) - No payment processing guidance
|
|
408
415
|
* [Service Types](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-types) - Missing integration patterns
|
|
409
|
-
* [Ecommerce
|
|
416
|
+
* [Ecommerce Cart](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart-v2/introduction) - No booking integration mention
|
|
410
417
|
|
|
411
418
|
**Completely Undocumented**:
|
|
412
419
|
* **Booking→Ecom Integration**: Universal pattern affecting all booking payments
|
|
@@ -19,7 +19,7 @@ Step-by-step flow for implementing a complete booking experience using REST APIs
|
|
|
19
19
|
- **Services API**: [Query Services](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/query-services)
|
|
20
20
|
- **Time Slots V2 API**: [List Availability Time Slots](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/list-availability-time-slots)
|
|
21
21
|
- **Bookings API**: [Create Booking](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings/bookings-writer-v2/create-booking), [Confirm Booking](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings/bookings-writer-v2/confirm-booking)
|
|
22
|
-
- **eCommerce API**: [Create
|
|
22
|
+
- **eCommerce API**: [Create Cart](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart-v2/create-cart)
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
@@ -226,15 +226,17 @@ Use the `id` and `revision` from the Create Booking response. Set `paymentStatus
|
|
|
226
226
|
|
|
227
227
|
**Result**: Booking status changes to `CONFIRMED` and is visible in the booking calendar.
|
|
228
228
|
|
|
229
|
-
### For online payments: Create
|
|
229
|
+
### For online payments: Create a cart
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
Cart V2 unifies cart and checkout — there is no separate checkout entity. The created cart's `id` is what you use for the checkout URL and for placing the order.
|
|
232
232
|
|
|
233
|
-
**
|
|
233
|
+
**4a. Create Cart**
|
|
234
|
+
|
|
235
|
+
**Endpoint**: `POST https://www.wixapis.com/ecom/v2/carts`
|
|
234
236
|
|
|
235
237
|
```json
|
|
236
238
|
{
|
|
237
|
-
"
|
|
239
|
+
"catalogItems": [
|
|
238
240
|
{
|
|
239
241
|
"catalogReference": {
|
|
240
242
|
"catalogItemId": "<BOOKING_ID>",
|
|
@@ -242,22 +244,33 @@ Use the `id` and `revision` from the Create Booking response. Set `paymentStatus
|
|
|
242
244
|
},
|
|
243
245
|
"quantity": 1
|
|
244
246
|
}
|
|
245
|
-
]
|
|
246
|
-
"channelType": "WEB"
|
|
247
|
+
]
|
|
247
248
|
}
|
|
248
249
|
```
|
|
249
250
|
|
|
250
|
-
Use the booking ID as `catalogItemId` with the Wix Bookings app ID.
|
|
251
|
+
Use the booking ID as `catalogItemId` with the Wix Bookings app ID. Save `cart.id` from the response.
|
|
251
252
|
|
|
252
253
|
**4b. Get Checkout URL**
|
|
253
254
|
|
|
254
|
-
**Endpoint**: `POST https://www.wixapis.com/ecom/
|
|
255
|
+
**Endpoint**: `POST https://www.wixapis.com/ecom/v2/carts/{cartId}/get-checkout-url`
|
|
255
256
|
|
|
256
257
|
Redirect the user to the returned `checkoutUrl`. After payment, the booking is automatically confirmed.
|
|
257
258
|
|
|
258
|
-
**4c.
|
|
259
|
+
**4c. Place Order (alternative, server-to-server)**
|
|
260
|
+
|
|
261
|
+
First calculate the cart to get a price-verification token:
|
|
262
|
+
|
|
263
|
+
**Endpoint**: `POST https://www.wixapis.com/ecom/v2/carts/{cartId}/calculate`
|
|
264
|
+
|
|
265
|
+
Save `summary.priceVerificationToken` from the response, then place the order:
|
|
266
|
+
|
|
267
|
+
**Endpoint**: `POST https://www.wixapis.com/ecom/v2/carts/{cartId}/place-order`
|
|
259
268
|
|
|
260
|
-
|
|
269
|
+
```json
|
|
270
|
+
{
|
|
271
|
+
"priceVerificationToken": "<PRICE_VERIFICATION_TOKEN>"
|
|
272
|
+
}
|
|
273
|
+
```
|
|
261
274
|
|
|
262
275
|
Creates an order directly without redirect.
|
|
263
276
|
|
|
@@ -10,7 +10,7 @@ This recipe documents how to convert CMS collections into sellable product catal
|
|
|
10
10
|
|
|
11
11
|
Converting a CMS collection to a catalog enables:
|
|
12
12
|
- Items in the collection become purchasable products
|
|
13
|
-
- Integration with Wix Cart and
|
|
13
|
+
- Integration with the Wix Cart API (Cart V2, which unifies cart and checkout)
|
|
14
14
|
- Real-time price and availability from your CMS data
|
|
15
15
|
|
|
16
16
|
## Prerequisites
|
|
@@ -73,7 +73,7 @@ POST https://www.wixapis.com/wix-data/v2/collections/add-plugin
|
|
|
73
73
|
Most Wix sites with Stores, Bookings, or similar apps already have eCommerce installed. Check by querying the Cart API:
|
|
74
74
|
|
|
75
75
|
```
|
|
76
|
-
POST https://www.wixapis.com/ecom/
|
|
76
|
+
POST https://www.wixapis.com/ecom/v2/carts
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
## Step 3: Use Catalog Items in Cart
|
|
@@ -87,12 +87,12 @@ e593b0bd-b783-45b8-97c2-873d42aacaf4
|
|
|
87
87
|
### Add CMS Catalog Item to Cart
|
|
88
88
|
|
|
89
89
|
```
|
|
90
|
-
POST https://www.wixapis.com/ecom/
|
|
90
|
+
POST https://www.wixapis.com/ecom/v2/carts/{cartId}/add-line-items
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
```json
|
|
94
94
|
{
|
|
95
|
-
"
|
|
95
|
+
"catalogItems": [
|
|
96
96
|
{
|
|
97
97
|
"catalogReference": {
|
|
98
98
|
"appId": "e593b0bd-b783-45b8-97c2-873d42aacaf4",
|
|
@@ -133,4 +133,4 @@ CMS Catalogs are best for simple product catalogs. For complex eCommerce needs,
|
|
|
133
133
|
|
|
134
134
|
- [CMS Schema Management](cms-schema-management.md)
|
|
135
135
|
- [CMS Data Operations](cms-data-items-crud.md)
|
|
136
|
-
- [Wix Cart API](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart/
|
|
136
|
+
- [Wix Cart API](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart-v2/introduction)
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Manage a Campaign Success Guide"
|
|
3
|
+
description: "Retrieves and manages the campaign success guide for an existing Wix Google Ads Performance Max Leads campaign. Offer it after creating a supported campaign, even while it is learning or has no metrics; that proactive offer requires approval before retrieval. A direct request to improve a campaign, see what to fix next, or show the guide is already approval to retrieve it. Also use when a user reports completing or wants to reopen a guide item. Treat a clear completion report as an actionable update request even when phrased as a statement. Covers campaign selection, prioritized guide retrieval, and suggestion status updates without redundant confirmation. REST base https://www.wixapis.com/pa-platform/suggestions/v1."
|
|
4
|
+
---
|
|
5
|
+
# RECIPE: Manage a Campaign Success Guide
|
|
6
|
+
|
|
7
|
+
A campaign success guide is a prioritized list of improvements for an **existing** Google Ads `PERFORMANCE_MAX_LEADS` campaign. Offer it as a useful next step after [creating a Performance Max campaign](create-performance-max-campaign.md). Once Create Campaign returns the campaign ID, ask whether the user wants to retrieve the guide; call the API only after they approve. There is no need to wait for the campaign to leave `LEARNING` or generate performance metrics because the guide analyzes the landing page, campaign configuration, and relevant site connections rather than depending on campaign performance data.
|
|
8
|
+
|
|
9
|
+
Also use this recipe for requests such as "How can I improve my campaign?", "What should I fix next?", "Show my campaign success guide", "I made the call-to-action button clearer as the success guide recommended", "Mark this recommendation complete", or "Reopen that guide item."
|
|
10
|
+
|
|
11
|
+
A direct request to improve a campaign, see what to fix next, or show its success guide is itself approval to retrieve the guide once the campaign is identified. Do not ask whether the user wants the guide after they have already made one of those requests. Separate approval is needed only when you proactively offer the guide after campaign creation.
|
|
12
|
+
|
|
13
|
+
This differs from [Get AI Campaign Suggestions](get-campaign-suggestions.md), which generates keywords, budgets, locations, copy, images, and other inputs used while **building** a campaign. Do not route pre-campaign keyword, budget, creative, or targeting generation here.
|
|
14
|
+
|
|
15
|
+
Base URL: `https://www.wixapis.com/pa-platform/suggestions/v1`. `<AUTH>` is the `Authorization` header; body calls also need `Content-Type: application/json`.
|
|
16
|
+
|
|
17
|
+
## Resolve the campaign
|
|
18
|
+
|
|
19
|
+
The guide endpoints require a campaign UUID, but users often provide only a campaign name or say "my campaign."
|
|
20
|
+
|
|
21
|
+
1. If the user provides a campaign UUID, use it.
|
|
22
|
+
2. Otherwise follow [Manage Campaign Lifecycle](manage-campaign-lifecycle.md) and call:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
curl -X GET 'https://www.wixapis.com/google-ads/v1/campaigns' \
|
|
26
|
+
-H 'Authorization: <AUTH>'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Read each campaign's `id`, `name`, `campaignType`, and `status`.
|
|
30
|
+
3. Select a campaign only when one result clearly matches the user's wording. If none or multiple plausibly match, show concise choices and ask the user to choose; never guess.
|
|
31
|
+
4. Continue only for `campaignType: "PERFORMANCE_MAX_LEADS"`. If the selected campaign has another type, explain that campaign success guides currently support Google Ads Performance Max Leads campaigns only. For a supported campaign, do not gate guide retrieval on `status` or query analytics first: `LEARNING` and missing performance metrics are not reasons to wait.
|
|
32
|
+
|
|
33
|
+
The common flow always sends `platformType: "GOOGLE"`; do not ask the user to provide it.
|
|
34
|
+
|
|
35
|
+
## Retrieve or create the guide
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
curl -X POST \
|
|
39
|
+
'https://www.wixapis.com/pa-platform/suggestions/v1/campaign-success-guides/get-or-create' \
|
|
40
|
+
-H 'Authorization: <AUTH>' \
|
|
41
|
+
-H 'Content-Type: application/json' \
|
|
42
|
+
-d '{
|
|
43
|
+
"campaignId": "7d4a9c2e-86f1-4b37-a2d5-9e18c6f043ab",
|
|
44
|
+
"platformType": "GOOGLE"
|
|
45
|
+
}'
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"campaignSuccessGuide": {
|
|
51
|
+
"id": "7d4a9c2e-86f1-4b37-a2d5-9e18c6f043ab",
|
|
52
|
+
"url": "https://www.example.com/request-a-quote",
|
|
53
|
+
"suggestions": [
|
|
54
|
+
{
|
|
55
|
+
"id": "131b82f1-44f5-4f32-8cf1-f783a5f35222",
|
|
56
|
+
"type": "CLEAR_CTA_COPY",
|
|
57
|
+
"status": "OPEN"
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The first call may analyze the landing page, campaign configuration, and relevant site connections and can take up to **120 seconds**. Later calls normally return the saved guide unless campaign changes require another analysis. Wait for the request; do not retry prematurely. If execution times out with an unknown outcome, report the uncertainty and retrieve the guide later instead of immediately triggering another analysis.
|
|
65
|
+
|
|
66
|
+
Present only the suggestions the API returns and preserve their order; `suggestions` is already in priority order. An empty array means no currently detected items need attention, not an API failure. Show `campaignSuccessGuide.url` when it helps identify the analyzed landing page.
|
|
67
|
+
|
|
68
|
+
`OPEN` means pending action. `COMPLETED` means the user marked the item completed; it does **not** mean the API changed the site or campaign for them.
|
|
69
|
+
|
|
70
|
+
## Translate suggestion types for the user
|
|
71
|
+
|
|
72
|
+
Keep the enum value unchanged in API calls, but use these labels when explaining the guide:
|
|
73
|
+
|
|
74
|
+
| Enum | User-facing meaning |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `CLEAR_CTA_COPY` | Clarify the primary call-to-action button's conversion intent. |
|
|
77
|
+
| `ABOVE_THE_FOLD_CTA` | Put a call-to-action where visitors can see it without scrolling. |
|
|
78
|
+
| `HEADER_MATCH` | Align the landing-page heading with the campaign's ad headlines. |
|
|
79
|
+
| `CONVERSION_POINT` | Add a visible lead form or booking action. |
|
|
80
|
+
| `GOOGLE_REVIEWS` | Display Google reviews or ratings. |
|
|
81
|
+
| `TESTIMONIAL` | Add customer testimonials attributed to named people. |
|
|
82
|
+
| `CONTACT_AND_CREDIBILITY` | Display a phone number and email address. |
|
|
83
|
+
| `FAQ_SECTION` | Add a visible FAQ section. |
|
|
84
|
+
| `MINIMIZE_FORM_FIELDS` | Limit the lead form to four visible fields. |
|
|
85
|
+
| `SOCIAL_CHANNELS` | Add a visible social profile link. |
|
|
86
|
+
| `GOOGLE_MERCHANT_CENTER_CONNECTION` | Connect Google Merchant Center. |
|
|
87
|
+
| `GOOGLE_BUSINESS_PROFILE_CONNECTION` | Connect a Google Business Profile. |
|
|
88
|
+
| `GOOGLE_ADS_SEARCH_THEMES` | Configure Google Ads search themes. |
|
|
89
|
+
| `MOBILE_OPTIMIZATION` | Improve mobile optimization. |
|
|
90
|
+
| `SITE_SPEED` | Improve site speed. |
|
|
91
|
+
|
|
92
|
+
## Mark an item completed or reopen it
|
|
93
|
+
|
|
94
|
+
The update endpoint identifies the suggestion by its **`type`**, not its suggestion `id`. A clear statement that the user completed a specific guide recommendation—for example, "I made the call-to-action button clearer as the success guide recommended"—is an actionable request to mark that item `COMPLETED`, not merely an FYI. Do not require the user to turn it into a question or ask for redundant confirmation.
|
|
95
|
+
|
|
96
|
+
Before executing an update:
|
|
97
|
+
|
|
98
|
+
1. Identify the campaign and a suggestion `type` currently present in its latest guide.
|
|
99
|
+
2. Match the user's wording to one returned suggestion and infer the requested status only when it is clear: a statement that they completed the recommendation means `COMPLETED`; a request to reopen it means `OPEN`.
|
|
100
|
+
3. Execute immediately when the campaign, suggestion, and status are unambiguous. Ask one targeted clarification only when any of them is unclear; never guess.
|
|
101
|
+
|
|
102
|
+
Mark an item completed:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
curl -X POST \
|
|
106
|
+
'https://www.wixapis.com/pa-platform/suggestions/v1/campaign-success-guides/7d4a9c2e-86f1-4b37-a2d5-9e18c6f043ab/update-suggestion-status' \
|
|
107
|
+
-H 'Authorization: <AUTH>' \
|
|
108
|
+
-H 'Content-Type: application/json' \
|
|
109
|
+
-d '{
|
|
110
|
+
"type": "CLEAR_CTA_COPY",
|
|
111
|
+
"status": "COMPLETED"
|
|
112
|
+
}'
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Reopen the same item by sending:
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"type": "CLEAR_CTA_COPY",
|
|
120
|
+
"status": "OPEN"
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The response wraps the updated guide as `{ "campaignSuccessGuide": { ... } }`. Treat that returned guide as the new source of truth: report the changed tracking status and summarize remaining `OPEN` suggestions in priority order. Do not claim the underlying recommendation was implemented. Do not update multiple items unless the user's wording clearly identifies all of them.
|
|
125
|
+
|
|
126
|
+
If a mutation times out with an unknown outcome, do not retry automatically. Retrieve the guide later to determine the current status first.
|
|
127
|
+
|
|
128
|
+
## Errors
|
|
129
|
+
|
|
130
|
+
| Error | Response behavior |
|
|
131
|
+
| --- | --- |
|
|
132
|
+
| `PLATFORM_NOT_SUPPORTED` | Use `GOOGLE`; do not substitute another platform value. |
|
|
133
|
+
| `CAMPAIGN_TYPE_NOT_SUPPORTED` | Explain that success guides currently support Google Ads Performance Max Leads campaigns only. |
|
|
134
|
+
| `SUGGESTION_NOT_FOUND` | Retrieve the latest guide and choose a `type` actually present; do not keep retrying stale data. |
|
|
135
|
+
| Authentication or permission error | Stop after the first rejected campaign or guide call and explain that the current collaborator cannot access or modify it. Do not try alternate base URLs, infer that Google Ads is not installed, or probe other endpoints to bypass authorization. |
|
|
136
|
+
|
|
137
|
+
## References
|
|
138
|
+
|
|
139
|
+
- [Suggestions API introduction](https://dev.wix.com/docs/api-reference/business-management/marketing/ads/platform/suggestion-v1/introduction)
|
|
140
|
+
- [Get or Create Campaign Success Guide](https://dev.wix.com/docs/api-reference/business-management/marketing/ads/platform/suggestion-v1/get-or-create-campaign-success-guide)
|
|
141
|
+
- [Update Campaign Success Guide Suggestion Status](https://dev.wix.com/docs/api-reference/business-management/marketing/ads/platform/suggestion-v1/update-campaign-success-guide-suggestion-status)
|
package/skills/wix-manage/references/google-business-profile/connect-google-business-profile.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Connect a Wix Site to Google Business Profile"
|
|
3
|
+
description: Connect the authenticated Wix site to a Google Business Profile account, check whether an existing connection is still usable, recover a connection whose stored credentials are gone, switch to a different Google account, or disconnect. The site owner authorizes in their own browser through a single-use connect URL; the agent never completes the Google authorization itself. Warns before any reconnect that permanently removes the site's imported locations.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Connect a Wix Site to Google Business Profile
|
|
7
|
+
|
|
8
|
+
Use the public **Google Business Profile Connection API** to link the
|
|
9
|
+
authenticated Wix site to a Google Business Profile account. The REST requests
|
|
10
|
+
do not contain a site ID — the site comes from the caller's authorization
|
|
11
|
+
context. Use the site the environment already supplies; if no site is selected,
|
|
12
|
+
list the user's sites once and auto-select the only one, or ask the user to
|
|
13
|
+
choose by site name when several are available. Never invent a site ID or ask
|
|
14
|
+
the user to type one. A connection is the prerequisite for Google-backed work in the Google
|
|
15
|
+
Business Profile Locations API — establish it before importing or managing
|
|
16
|
+
locations.
|
|
17
|
+
|
|
18
|
+
> **Bounded connect path — read first.** Read the connection once. For
|
|
19
|
+
> `NEVER_CONNECTED`, request one connect URL and hand it to the owner; for
|
|
20
|
+
> `VALID`, stop unless the user asked for other Google-backed work. A `403`,
|
|
21
|
+
> `PERMISSION_DENIED`, or other terminal recovery-rule error ends the flow:
|
|
22
|
+
> the **next action is the final response** explaining the blocker. Make no
|
|
23
|
+
> further tool call: no API probe, documentation search, alternate request
|
|
24
|
+
> shape, or call against another site. Only the explicitly
|
|
25
|
+
> retryable `CONNECTING_USER_LOOKUP_UNAVAILABLE` error permits another connect-URL
|
|
26
|
+
> attempt.
|
|
27
|
+
|
|
28
|
+
Wix stores the Google credentials server-side. The API never returns tokens or
|
|
29
|
+
any Google identity — only whether a connection exists and its dates.
|
|
30
|
+
|
|
31
|
+
## Direct calls for this flow
|
|
32
|
+
|
|
33
|
+
These are the complete request shapes needed for a fresh connection. Use them
|
|
34
|
+
directly; do not search the API reference before calling them.
|
|
35
|
+
|
|
36
|
+
| Method | Call |
|
|
37
|
+
|---|---|
|
|
38
|
+
| **Get Connection** | `GET https://www.wixapis.com/gbp/v1/connection` — no body or parameters |
|
|
39
|
+
| **Get Connect URL** | `GET https://www.wixapis.com/gbp/v1/connect-url` — no body or parameters |
|
|
40
|
+
|
|
41
|
+
For the common `NEVER_CONNECTED` path the only API calls are one **Get
|
|
42
|
+
Connection**, then one **Get Connect URL**. If either returns `403` or
|
|
43
|
+
`PERMISSION_DENIED`, stop immediately and explain it; do not look for another
|
|
44
|
+
method or request shape.
|
|
45
|
+
|
|
46
|
+
## Check the status first
|
|
47
|
+
|
|
48
|
+
Always start with **Get Connection** and branch on `status`:
|
|
49
|
+
|
|
50
|
+
| `status` | Meaning | What to do |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| `VALID` | Wix holds a credential for this site | Proceed with Google-backed work |
|
|
53
|
+
| `NEVER_CONNECTED` | The site has never been connected | Run the connect flow — this is a setup step, not an error |
|
|
54
|
+
| `NEEDS_RECONNECT` | The connection record exists but the stored credentials are gone | Warn the owner (see below), then run the connect flow |
|
|
55
|
+
|
|
56
|
+
`VALID` is not a live health check: **Get Connection** deliberately does not
|
|
57
|
+
call Google, so a connection can report `VALID` and still be refused by
|
|
58
|
+
Google — for example after the owner revoked Wix's access in their Google
|
|
59
|
+
account settings. Treat a Google-side authorization failure on a Locations
|
|
60
|
+
call as the authoritative signal and re-run the connect flow when one appears.
|
|
61
|
+
|
|
62
|
+
## Run the connect flow
|
|
63
|
+
|
|
64
|
+
1. Call **Get Connect URL** once and read `connectUrl`.
|
|
65
|
+
2. Present `connectUrl` to the site owner as a link to open in their own
|
|
66
|
+
browser, where they sign in to Google and grant access. Never fetch or open
|
|
67
|
+
the URL yourself — it is for a human, single-use, and expires after
|
|
68
|
+
15 minutes.
|
|
69
|
+
3. Explain that completion is asynchronous: Google redirects the owner's
|
|
70
|
+
browser back to Wix, which finishes the OAuth exchange and stores the
|
|
71
|
+
credentials server-side.
|
|
72
|
+
4. When the owner reports they have finished (or while waiting, on a modest
|
|
73
|
+
interval of a few seconds), call **Get Connection** and confirm `status` is
|
|
74
|
+
`VALID`. The `status` field is the only source of truth — a returned
|
|
75
|
+
connect URL alone proves nothing.
|
|
76
|
+
5. If the 15-minute window elapses with `status` unchanged, request a fresh
|
|
77
|
+
URL and let the owner try again.
|
|
78
|
+
|
|
79
|
+
**Get Connect URL is not idempotent, despite its GET route.** Every successful
|
|
80
|
+
call creates a distinct live authorization attempt. Never retry it
|
|
81
|
+
automatically after a timeout or ambiguous response — re-check
|
|
82
|
+
**Get Connection** first and let the owner explicitly start another attempt.
|
|
83
|
+
|
|
84
|
+
## Warn before a reconnect that replaces the connection
|
|
85
|
+
|
|
86
|
+
Two flows permanently remove every Business Profile location imported into the
|
|
87
|
+
site — the locations created through Wix as well as the imported ones. For
|
|
88
|
+
locations migrated from an earlier Wix integration this cannot be reversed by
|
|
89
|
+
re-importing. Get the owner's explicit confirmation **before** handing them
|
|
90
|
+
the connect URL; there is no confirmation step later:
|
|
91
|
+
|
|
92
|
+
- **Switching to a different Google account.** No Disconnect is needed — the
|
|
93
|
+
new account simply replaces the connection when its authorization completes.
|
|
94
|
+
- **Reconnecting from `NEEDS_RECONNECT`, even with the same Google account.**
|
|
95
|
+
The stored credentials are gone, so there is nothing to match the incoming
|
|
96
|
+
account against and the reconnect is always treated as a replacement.
|
|
97
|
+
|
|
98
|
+
While credentials are still present (`VALID`), authorizing again with the
|
|
99
|
+
**same** Google account heals the connection in place and removes nothing.
|
|
100
|
+
|
|
101
|
+
Also tell the owner that replacing or disconnecting changes nothing inside
|
|
102
|
+
Google Business Profile itself — locations, reviews, and photos stay exactly
|
|
103
|
+
as they are on Google — and does not revoke Wix's access inside their old
|
|
104
|
+
Google account; they remove that from their Google account settings.
|
|
105
|
+
|
|
106
|
+
## Disconnect
|
|
107
|
+
|
|
108
|
+
Call **Disconnect** only after the owner confirms. It deletes the credentials
|
|
109
|
+
Wix stores; it does not touch the Google Business Profile and does not revoke
|
|
110
|
+
Wix's grant inside the Google account.
|
|
111
|
+
|
|
112
|
+
## Recovery rules
|
|
113
|
+
|
|
114
|
+
- **`CONNECTING_USER_LOOKUP_UNAVAILABLE`:** the site-owner lookup failed
|
|
115
|
+
temporarily, before any authorization attempt was created. This is the one
|
|
116
|
+
failure of **Get Connect URL** that is safe to retry.
|
|
117
|
+
- **`CONNECTING_USER_NOT_RESOLVABLE`:** Wix could not identify a user to own
|
|
118
|
+
the credential. Stop — this is not retryable until the caller identity or
|
|
119
|
+
site ownership is corrected. Explain the blocker instead of trying other
|
|
120
|
+
request shapes.
|
|
121
|
+
- **Timeout or ambiguous response from Get Connect URL:** do not retry. Call
|
|
122
|
+
**Get Connection** to learn the actual state, then let the owner decide.
|
|
123
|
+
- **`MULTIPLE_CONNECTIONS_NOT_REPRESENTABLE`:** the site holds more than one
|
|
124
|
+
connection and the API will not guess which one is meant. Not a caller error
|
|
125
|
+
and not retryable — report it and direct the user to contact Wix support.
|
|
126
|
+
- **Permission denied:** stop after the first `403` or `PERMISSION_DENIED`.
|
|
127
|
+
Do not retry with another request shape or site, and do not search for an
|
|
128
|
+
alternate API or method. Explain that the current Wix identity is not
|
|
129
|
+
authorized to manage the site's Google connection.
|
|
130
|
+
|
|
131
|
+
The direct calls above are self-contained for the normal connect path. Consult a
|
|
132
|
+
specific public method reference only for an edge case not covered here, and
|
|
133
|
+
only before making a call. Once a status or typed error selects a branch above,
|
|
134
|
+
do not search or browse for an alternate API, method, or request shape.
|