@wix/agent-skills 1.15.1 → 1.16.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/README.md +3 -7
- package/package.json +1 -1
- package/skills/wix-app/SKILL.md +4 -1
- package/skills/wix-app/references/APP_TOOLS.md +134 -0
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +1 -1
- package/skills/wix-app/references/DASHBOARD_PAGE.md +0 -10
- package/skills/wix-app/references/DATA_COLLECTION.md +1 -1
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +28 -9
- package/skills/wix-app/references/SERVICE_PLUGIN.md +12 -10
- package/skills/wix-app/references/app-tools/TOOLS.md +75 -0
- package/skills/wix-app/references/dashboard-page/DASHBOARD_API.md +2 -2
- package/skills/wix-app/references/editor-react-component/A11Y-REVIEW-REFERENCE.md +172 -0
- package/skills/wix-app/references/editor-react-component/A11Y-REVIEW.md +138 -0
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +23 -2
- package/skills/wix-app/references/editor-react-component/BRANDED-COMPONENTS.md +29 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +1 -1
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +27 -2
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +5 -3
- package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +18 -1
- package/skills/wix-app/references/editor-react-component/PARTS.md +15 -2
- package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +2 -3
- package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +13 -9
- package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +4 -0
- package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +4 -0
- package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +3 -1
- package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +4 -0
- package/skills/wix-app/references/service-plugin/TOOLS_PROVIDER.md +54 -0
- package/skills/wix-app/references/stores/QUERY.md +32 -0
- package/skills/wix-docs/SKILL.md +35 -3
- package/skills/wix-headless/SKILL.md +3 -1
- package/skills/wix-headless/references/CONTENT.md +36 -0
- package/skills/wix-headless/references/DESIGN.md +54 -0
- package/skills/wix-headless/references/DISCOVERY.md +24 -0
- package/skills/wix-headless/references/IMAGE_GENERATION.md +10 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +3 -2
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +32 -23
- package/skills/wix-headless/references/managed/CONNECT.md +1 -1
- package/skills/wix-headless/references/managed/CREATE.md +14 -0
- package/skills/wix-headless/references/managed/DEPLOYMENT.md +25 -0
- package/skills/wix-manage/SKILL.md +123 -7
- package/skills/wix-manage/references/analytics/analytics-dashboard-navigation.md +41 -0
- package/skills/wix-manage/references/app-installation/app-installation-dashboard-navigation.md +28 -0
- package/skills/wix-manage/references/blog/blog-dashboard-navigation.md +56 -0
- package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +31 -6
- package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +3 -1
- package/skills/wix-manage/references/bookings/bookings-dashboard-navigation.md +63 -0
- package/skills/wix-manage/references/bookings/diagnose-availability-issues.md +10 -1
- package/skills/wix-manage/references/cms/cms-dashboard-navigation.md +44 -0
- package/skills/wix-manage/references/cms/cms-data-items-crud.md +31 -3
- package/skills/wix-manage/references/cms/cms-publishing-flow.md +287 -0
- package/skills/wix-manage/references/cms/cms-schema-management.md +27 -1
- package/skills/wix-manage/references/contacts/contacts-dashboard-navigation.md +46 -0
- package/skills/wix-manage/references/contacts/create-a-contact.md +82 -0
- package/skills/wix-manage/references/contacts/update-a-contact.md +119 -0
- package/skills/wix-manage/references/dashboard-navigation/dashboard-navigation.md +82 -0
- package/skills/wix-manage/references/dashboard-navigation/routes.json +1733 -0
- package/skills/wix-manage/references/domains/domains-dashboard-navigation.md +32 -0
- package/skills/wix-manage/references/ecommerce/ecom-pricing.md +4 -4
- package/skills/wix-manage/references/ecommerce/ecom-shipping.md +1 -1
- package/skills/wix-manage/references/ecommerce/gift-cards/ecom-gift-cards-goal-sell-gift-cards.md +338 -0
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-create-discount-rule.md +42 -78
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-bundle-and-save.md +1 -1
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-stock-mover.md +1 -1
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-upsell-boost.md +1 -1
- package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +90 -92
- package/skills/wix-manage/references/events/create-wix-event.md +176 -0
- package/skills/wix-manage/references/events/manage-wix-events.md +174 -0
- package/skills/wix-manage/references/forms/forms-dashboard-navigation.md +44 -0
- package/skills/wix-manage/references/get-paid/get-paid-dashboard-navigation.md +52 -0
- package/skills/wix-manage/references/google-ads/billing-and-payment.md +80 -0
- package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +212 -0
- package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +110 -0
- package/skills/wix-manage/references/google-ads/google-ads-dashboard-navigation.md +25 -0
- package/skills/wix-manage/references/google-ads/install-and-create-account.md +155 -0
- package/skills/wix-manage/references/google-ads/manage-campaign-lifecycle.md +63 -0
- package/skills/wix-manage/references/google-ads/query-campaign-analytics.md +155 -0
- package/skills/wix-manage/references/marketing/marketing-dashboard-navigation.md +52 -0
- package/skills/wix-manage/references/pricing-plans/create-and-update-pricing-plans.md +99 -1
- package/skills/wix-manage/references/pricing-plans/pricing-plans-dashboard-navigation.md +45 -0
- package/skills/wix-manage/references/restaurants/restaurants-dashboard-navigation.md +68 -0
- package/skills/wix-manage/references/restaurants/wix-restaurants-setup.md +94 -125
- package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +48 -9
- package/skills/wix-manage/references/site-properties/site-properties-dashboard-navigation.md +31 -0
- package/skills/wix-manage/references/sites/create-headless-site.md +52 -0
- package/skills/wix-manage/references/sites/create-site-from-template.md +2 -25
- package/skills/wix-manage/references/sites/site-import.md +163 -190
- package/skills/wix-manage/references/sites/sites-dashboard-navigation.md +29 -0
- package/skills/wix-manage/references/stores/add-store-pages-to-site.md +17 -1
- package/skills/wix-manage/references/stores/find-products-query-and-search-catalog-v3.md +26 -8
- package/skills/wix-manage/references/stores/stores-dashboard-navigation.md +65 -0
- package/skills/wix-manage/references/stores/update-product-with-options.md +39 -7
- package/skills/wix-replatform/.publish-manifest.json +8 -0
- package/skills/wix-replatform/SKILL.md +693 -0
- package/skills/wix-replatform/lib/artifact-freshness.js +215 -0
- package/skills/wix-replatform/lib/completion-report.js +200 -0
- package/skills/wix-replatform/lib/config-env.js +59 -0
- package/skills/wix-replatform/lib/execution-manifest.js +185 -0
- package/skills/wix-replatform/lib/execution-state.js +173 -0
- package/skills/wix-replatform/lib/import-recovery.js +313 -0
- package/skills/wix-replatform/lib/local-state.js +642 -0
- package/skills/wix-replatform/lib/orchestration-preflight.js +143 -0
- package/skills/wix-replatform/lib/orchestration-router.js +122 -0
- package/skills/wix-replatform/lib/orchestration-state.js +455 -0
- package/skills/wix-replatform/lib/progress-log.js +224 -0
- package/skills/wix-replatform/lib/progress-log.sh +140 -0
- package/skills/wix-replatform/lib/url-preservation-state.js +391 -0
- package/skills/wix-replatform/resources/rp-discovery/SKILL.md +184 -0
- package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +529 -0
- package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +316 -0
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +64 -0
- package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +1114 -0
- package/skills/wix-replatform/resources/rp-mapper/SKILL.md +430 -0
- package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +217 -0
- package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +148 -0
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +378 -0
- package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +183 -0
- package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +478 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +136 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fingerprint.js +310 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +1081 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +618 -0
- package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +949 -0
- package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +196 -0
- package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +66 -0
- package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +60 -0
- package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +95 -0
- package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +82 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +256 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +249 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +444 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +774 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +71 -0
- package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +632 -0
- package/skills/wix-replatform/resources/rp-target-wix/SPEC-product-reviews-and-blog-authorship.md +330 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +21 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +19 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +39 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +35 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +14 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +35 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +36 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +35 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +14 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +131 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +21 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +97 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +528 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +14 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +38 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +13 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +53 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +84 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +25 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +38 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +37 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +90 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +64 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +141 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +384 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +260 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +238 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +237 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +238 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +2219 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +31 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +100 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +107 -0
- package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +344 -0
- package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +250 -0
- package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +1927 -0
- package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +83 -0
- package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +141 -0
- package/skills/wix-replatform/scripts/artifact-freshness.js +76 -0
- package/skills/wix-replatform/scripts/execution-manifest-validate.js +43 -0
- package/skills/wix-replatform/scripts/execution-state-prepare.js +128 -0
- package/skills/wix-replatform/scripts/orchestration-preflight.js +48 -0
- package/skills/wix-replatform/scripts/orchestration-route.js +46 -0
- package/skills/wix-replatform/scripts/orchestration-state.js +245 -0
- package/skills/wix-vibe-headless/SKILL.md +48 -25
- package/skills/wix-vibe-headless/install/deploy.cjs +95 -0
- package/skills/wix-vibe-headless/install/pin-agents-md.cjs +34 -0
- package/skills/wix-vibe-headless/platforms/README.md +8 -4
- package/skills/wix-vibe-headless/platforms/base44.md +133 -98
- package/skills/wix-vibe-headless/platforms/generic.md +99 -64
- package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +230 -119
- package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +43 -0
- package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +25 -0
- package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +15 -0
- package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +35 -0
- package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +38 -0
- package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +40 -0
- package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +54 -0
- package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +65 -0
- package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +50 -0
- package/skills/wix-vibe-headless/references/blog/seed/SEED.md +103 -0
- package/skills/wix-vibe-headless/references/blog/seed/seed-blog.js +270 -0
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +260 -149
- package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +65 -0
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +47 -0
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +13 -0
- package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +126 -0
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +108 -0
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +58 -0
- package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +95 -0
- package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +94 -0
- package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +89 -0
- package/skills/wix-vibe-headless/references/bookings/{wix-bookings-checkout.js → app/rest/wix-bookings-checkout.js} +1 -1
- package/skills/wix-vibe-headless/references/bookings/{wix-bookings-services.js → app/rest/wix-bookings-services.js} +87 -11
- package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +117 -0
- package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.js +333 -0
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +169 -147
- package/skills/wix-vibe-headless/references/cms/app/collection.config.js +31 -0
- package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +18 -0
- package/skills/wix-vibe-headless/references/cms/{wix-cms.js → app/rest/wix-cms.js} +47 -2
- package/skills/wix-vibe-headless/references/cms/seed/SEED.md +145 -0
- package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +228 -131
- package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +23 -0
- package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +43 -0
- package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +13 -0
- package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +29 -0
- package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +57 -0
- package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +78 -0
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +27 -0
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +54 -0
- package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +40 -0
- package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +81 -0
- package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +48 -0
- package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +36 -0
- package/skills/wix-vibe-headless/references/events/{wix-events-browse.js → app/rest/wix-events-browse.js} +1 -1
- package/skills/wix-vibe-headless/references/events/seed/SEED.md +107 -0
- package/skills/wix-vibe-headless/references/events/seed/seed-events.js +251 -0
- package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +276 -188
- package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +101 -0
- package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +33 -0
- package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +21 -0
- package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +29 -0
- package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +54 -0
- package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +77 -0
- package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +36 -0
- package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +32 -0
- package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +35 -0
- package/skills/wix-vibe-headless/references/members/{wix-members-auth.js → app/rest/wix-members-auth.js} +6 -3
- package/skills/wix-vibe-headless/references/members/install/Register.jsx +22 -0
- package/skills/wix-vibe-headless/references/members/seed/SEED.md +22 -0
- package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +233 -104
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +31 -0
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +15 -0
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +39 -0
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +15 -0
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +29 -0
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +35 -0
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +27 -0
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +25 -0
- package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +39 -0
- package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +27 -0
- package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +60 -0
- package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +94 -0
- package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.js +236 -0
- package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +240 -117
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +35 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +48 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +16 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +35 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +25 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +28 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +30 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +30 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +53 -0
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +28 -0
- package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +86 -0
- package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.js +251 -0
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +248 -124
- package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +81 -0
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +71 -0
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +43 -0
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +21 -0
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +60 -0
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +63 -0
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +32 -0
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +73 -0
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +28 -0
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +102 -0
- package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +180 -0
- package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.js +452 -0
- package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +56 -0
- package/skills/wix-vibe-headless/references/shared/{wix-client.js → app/rest/wix-client.js} +6 -8
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +6 -0
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +263 -157
- package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +20 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +150 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductCard.jsx +167 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductGallery.jsx +51 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductGrid.jsx +54 -0
- package/skills/wix-vibe-headless/references/storefront/app/components/VariantPicker.jsx +119 -0
- package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +71 -0
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +109 -0
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +98 -0
- package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +27 -0
- package/skills/wix-vibe-headless/references/storefront/app/pages/ProductDetail.jsx +139 -0
- package/skills/wix-vibe-headless/references/storefront/app/pages/Shop.jsx +75 -0
- package/skills/wix-vibe-headless/references/storefront/{wix-store-cart.js → app/rest/wix-store-cart.js} +1 -1
- package/skills/wix-vibe-headless/references/storefront/{wix-store-catalog.js → app/rest/wix-store-catalog.js} +20 -1
- package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +111 -0
- package/skills/wix-vibe-headless/references/storefront/seed/seed-store.js +299 -0
- /package/skills/wix-vibe-headless/references/blog/{wix-blog.js → app/rest/wix-blog.js} +0 -0
- /package/skills/wix-vibe-headless/references/events/{wix-events-registration.js → app/rest/wix-events-registration.js} +0 -0
- /package/skills/wix-vibe-headless/references/portfolio/{wix-portfolio.js → app/rest/wix-portfolio.js} +0 -0
- /package/skills/wix-vibe-headless/references/pricing-plans/{wix-pricing-plans.js → app/rest/wix-pricing-plans.js} +0 -0
- /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-menu.js → app/rest/wix-restaurants-menu.js} +0 -0
- /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-ordering.js → app/rest/wix-restaurants-ordering.js} +0 -0
- /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-reservations.js → app/rest/wix-restaurants-reservations.js} +0 -0
|
@@ -22,7 +22,7 @@ layer: config
|
|
|
22
22
|
|
|
23
23
|
## Critical: `discounts` structure
|
|
24
24
|
|
|
25
|
-
**The API always returns the full normalized structure
|
|
25
|
+
**The API always returns the full normalized structure**, `values` wrapper included. Never assume a simplified form. Each entry of `discounts.values` looks like:
|
|
26
26
|
|
|
27
27
|
```json
|
|
28
28
|
{
|
|
@@ -38,14 +38,12 @@ layer: config
|
|
|
38
38
|
}
|
|
39
39
|
]
|
|
40
40
|
},
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
"percentage": 20
|
|
44
|
-
}
|
|
41
|
+
"discountType": "PERCENTAGE",
|
|
42
|
+
"percentage": 20
|
|
45
43
|
}
|
|
46
44
|
```
|
|
47
45
|
|
|
48
|
-
When updating a rule, always
|
|
46
|
+
When updating a rule, always reuse the `discounts.values` entries as returned from the query/get, modifying only the specific fields you need. **Do not reconstruct from scratch unless creating a new rule.**
|
|
49
47
|
|
|
50
48
|
---
|
|
51
49
|
|
|
@@ -53,8 +51,6 @@ When updating a rule, always use the `discounts` array as returned from the quer
|
|
|
53
51
|
|
|
54
52
|
**Endpoint**: `POST https://www.wixapis.com/ecom/v1/discount-rules/query`
|
|
55
53
|
|
|
56
|
-
> **Paging**: This API uses **cursor paging** (`cursorPaging`), not offset paging. Using `paging` instead of `cursorPaging` will fail.
|
|
57
|
-
|
|
58
54
|
**Request** — list all rules:
|
|
59
55
|
```json
|
|
60
56
|
{
|
|
@@ -93,7 +89,7 @@ Filterable fields: `id`, `name`, `active`, `revision`, `created_date`, `updated_
|
|
|
93
89
|
"start": "2026-06-01T00:00:00.000Z",
|
|
94
90
|
"end": "2026-08-31T23:59:59.000Z"
|
|
95
91
|
},
|
|
96
|
-
"discounts": [
|
|
92
|
+
"discounts": { "values": [
|
|
97
93
|
{
|
|
98
94
|
"targetType": "SPECIFIC_ITEMS",
|
|
99
95
|
"specificItemsInfo": {
|
|
@@ -107,12 +103,10 @@ Filterable fields: `id`, `name`, `active`, `revision`, `created_date`, `updated_
|
|
|
107
103
|
}
|
|
108
104
|
]
|
|
109
105
|
},
|
|
110
|
-
"
|
|
111
|
-
|
|
112
|
-
"percentage": 10
|
|
113
|
-
}
|
|
106
|
+
"discountType": "PERCENTAGE",
|
|
107
|
+
"percentage": 10
|
|
114
108
|
}
|
|
115
|
-
]
|
|
109
|
+
] }
|
|
116
110
|
}
|
|
117
111
|
],
|
|
118
112
|
"pagingMetadata": {
|
|
@@ -170,7 +164,7 @@ When a discount *isn't* applying as expected, see [Troubleshoot: Discount Not Ap
|
|
|
170
164
|
"start": "2026-05-01T00:00:00.000Z",
|
|
171
165
|
"end": "2026-05-03T23:59:59.000Z"
|
|
172
166
|
},
|
|
173
|
-
"discounts": [
|
|
167
|
+
"discounts": { "values": [
|
|
174
168
|
{
|
|
175
169
|
"targetType": "SPECIFIC_ITEMS",
|
|
176
170
|
"specificItemsInfo": {
|
|
@@ -184,15 +178,10 @@ When a discount *isn't* applying as expected, see [Troubleshoot: Discount Not Ap
|
|
|
184
178
|
}
|
|
185
179
|
]
|
|
186
180
|
},
|
|
187
|
-
"
|
|
188
|
-
|
|
189
|
-
"percentage": 20
|
|
190
|
-
}
|
|
181
|
+
"discountType": "PERCENTAGE",
|
|
182
|
+
"percentage": 20
|
|
191
183
|
}
|
|
192
|
-
]
|
|
193
|
-
"settings": {
|
|
194
|
-
"appliesTo": "ALL_ITEMS"
|
|
195
|
-
}
|
|
184
|
+
] }
|
|
196
185
|
}
|
|
197
186
|
}
|
|
198
187
|
```
|
|
@@ -203,7 +192,7 @@ When a discount *isn't* applying as expected, see [Troubleshoot: Discount Not Ap
|
|
|
203
192
|
"discountRule": {
|
|
204
193
|
"name": "Summer Collection Sale",
|
|
205
194
|
"active": true,
|
|
206
|
-
"discounts": [
|
|
195
|
+
"discounts": { "values": [
|
|
207
196
|
{
|
|
208
197
|
"targetType": "SPECIFIC_ITEMS",
|
|
209
198
|
"specificItemsInfo": {
|
|
@@ -220,15 +209,10 @@ When a discount *isn't* applying as expected, see [Troubleshoot: Discount Not Ap
|
|
|
220
209
|
}
|
|
221
210
|
]
|
|
222
211
|
},
|
|
223
|
-
"
|
|
224
|
-
|
|
225
|
-
"percentage": 15
|
|
226
|
-
}
|
|
212
|
+
"discountType": "PERCENTAGE",
|
|
213
|
+
"percentage": 15
|
|
227
214
|
}
|
|
228
|
-
]
|
|
229
|
-
"settings": {
|
|
230
|
-
"appliesTo": "ALL_ITEMS"
|
|
231
|
-
}
|
|
215
|
+
] }
|
|
232
216
|
}
|
|
233
217
|
}
|
|
234
218
|
```
|
|
@@ -243,7 +227,7 @@ When a discount *isn't* applying as expected, see [Troubleshoot: Discount Not Ap
|
|
|
243
227
|
"discountRule": {
|
|
244
228
|
"name": "$5 Off Selected Items",
|
|
245
229
|
"active": true,
|
|
246
|
-
"discounts": [
|
|
230
|
+
"discounts": { "values": [
|
|
247
231
|
{
|
|
248
232
|
"targetType": "SPECIFIC_ITEMS",
|
|
249
233
|
"specificItemsInfo": {
|
|
@@ -258,15 +242,10 @@ When a discount *isn't* applying as expected, see [Troubleshoot: Discount Not Ap
|
|
|
258
242
|
}
|
|
259
243
|
]
|
|
260
244
|
},
|
|
261
|
-
"
|
|
262
|
-
|
|
263
|
-
"fixedAmount": "5.00"
|
|
264
|
-
}
|
|
245
|
+
"discountType": "FIXED_AMOUNT",
|
|
246
|
+
"fixedAmount": "5.00"
|
|
265
247
|
}
|
|
266
|
-
]
|
|
267
|
-
"settings": {
|
|
268
|
-
"appliesTo": "ALL_ITEMS"
|
|
269
|
-
}
|
|
248
|
+
] }
|
|
270
249
|
}
|
|
271
250
|
}
|
|
272
251
|
```
|
|
@@ -287,7 +266,7 @@ Always fetch the rule first (via Get or Query), then modify only the fields you
|
|
|
287
266
|
"discountRule": {
|
|
288
267
|
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
|
289
268
|
"revision": "1",
|
|
290
|
-
"discounts": [
|
|
269
|
+
"discounts": { "values": [
|
|
291
270
|
{
|
|
292
271
|
"targetType": "SPECIFIC_ITEMS",
|
|
293
272
|
"specificItemsInfo": {
|
|
@@ -301,12 +280,10 @@ Always fetch the rule first (via Get or Query), then modify only the fields you
|
|
|
301
280
|
}
|
|
302
281
|
]
|
|
303
282
|
},
|
|
304
|
-
"
|
|
305
|
-
|
|
306
|
-
"percentage": 25
|
|
307
|
-
}
|
|
283
|
+
"discountType": "PERCENTAGE",
|
|
284
|
+
"percentage": 25
|
|
308
285
|
}
|
|
309
|
-
]
|
|
286
|
+
] }
|
|
310
287
|
},
|
|
311
288
|
"mask": { "paths": ["discounts"] }
|
|
312
289
|
}
|
|
@@ -330,8 +307,8 @@ Always fetch the rule first (via Get or Query), then modify only the fields you
|
|
|
330
307
|
|
|
331
308
|
The safe pattern for "find a rule by name and update its percentage":
|
|
332
309
|
|
|
333
|
-
1. Query with name filter → get the rule's `id`, `revision`, and `discounts`
|
|
334
|
-
2. Modify only
|
|
310
|
+
1. Query with name filter → get the rule's `id`, `revision`, and `discounts.values` entries
|
|
311
|
+
2. Modify only `percentage` on each entry, keeping all other fields intact
|
|
335
312
|
3. PATCH with the modified `discounts` and `mask: { paths: ["discounts"] }`
|
|
336
313
|
|
|
337
314
|
**Step 5a — Query by name**:
|
|
@@ -349,29 +326,27 @@ Extract from response: `discountRules[0].id`, `discountRules[0].revision`, `disc
|
|
|
349
326
|
|
|
350
327
|
**Step 5b — Update percentage** (modify the returned discounts in-place):
|
|
351
328
|
|
|
352
|
-
Take the `discounts`
|
|
329
|
+
Take the `discounts.values` entries from the query response and update only `percentage` on each entry:
|
|
353
330
|
```json
|
|
354
331
|
PATCH https://www.wixapis.com/ecom/v1/discount-rules/{id}
|
|
355
332
|
{
|
|
356
333
|
"discountRule": {
|
|
357
334
|
"id": "<id from query>",
|
|
358
335
|
"revision": "<revision from query>",
|
|
359
|
-
"discounts": [
|
|
336
|
+
"discounts": { "values": [
|
|
360
337
|
{
|
|
361
338
|
"targetType": "SPECIFIC_ITEMS",
|
|
362
339
|
"specificItemsInfo": { "<scopes unchanged from query response>" },
|
|
363
|
-
"
|
|
364
|
-
|
|
365
|
-
"percentage": 10
|
|
366
|
-
}
|
|
340
|
+
"discountType": "PERCENTAGE",
|
|
341
|
+
"percentage": 10
|
|
367
342
|
}
|
|
368
|
-
]
|
|
343
|
+
] }
|
|
369
344
|
},
|
|
370
345
|
"mask": { "paths": ["discounts"] }
|
|
371
346
|
}
|
|
372
347
|
```
|
|
373
348
|
|
|
374
|
-
> **Important**: Copy `targetType`, `specificItemsInfo.scopes` verbatim from the query response — do not reconstruct them. Only change `
|
|
349
|
+
> **Important**: Copy `targetType`, `specificItemsInfo.scopes` verbatim from the query response — do not reconstruct them. Only change `discountType` and `percentage`/`fixedAmount`, keeping them at the entry root.
|
|
375
350
|
|
|
376
351
|
---
|
|
377
352
|
|
|
@@ -403,12 +378,11 @@ To delete permanently:
|
|
|
403
378
|
| `active` | Yes | Whether the rule is currently applied |
|
|
404
379
|
| `activeTimeInfo.start` | No | ISO 8601 start time. Omit for immediate activation |
|
|
405
380
|
| `activeTimeInfo.end` | No | ISO 8601 end time. Omit for no expiration |
|
|
406
|
-
| `discounts[].targetType` | Yes | Always `"SPECIFIC_ITEMS"` for standard rules |
|
|
407
|
-
| `discounts[].specificItemsInfo.scopes[]` | Yes | Array of scope objects — see Scope types below |
|
|
408
|
-
| `discounts[].
|
|
409
|
-
| `discounts[].
|
|
410
|
-
| `discounts[].
|
|
411
|
-
| `settings.appliesTo` | Yes on create | Always `"ALL_ITEMS"` |
|
|
381
|
+
| `discounts.values[].targetType` | Yes | Always `"SPECIFIC_ITEMS"` for standard rules |
|
|
382
|
+
| `discounts.values[].specificItemsInfo.scopes[]` | Yes | Array of scope objects — see Scope types below |
|
|
383
|
+
| `discounts.values[].discountType` | Yes | `"PERCENTAGE"` or `"FIXED_AMOUNT"` or `"FIXED_PRICE"` — at the entry root, not inside a `discount` object |
|
|
384
|
+
| `discounts.values[].percentage` | If PERCENTAGE | Number 0.1-100 |
|
|
385
|
+
| `discounts.values[].fixedAmount` | If FIXED_AMOUNT | Decimal string (e.g., `"5.00"`) |
|
|
412
386
|
| `revision` | On update/delete | Must match current value — fetch first |
|
|
413
387
|
| `mask.paths[]` | On update | Recommended — list fields being changed (e.g., `["discounts"]`, `["active"]`) |
|
|
414
388
|
|
|
@@ -488,9 +462,9 @@ The recommendation's `scope` field maps to the API's internal scope structure. T
|
|
|
488
462
|
|
|
489
463
|
| Recommendation `discountType` | API field to set | Value format |
|
|
490
464
|
|---|---|---|
|
|
491
|
-
| `PERCENTAGE` | `
|
|
492
|
-
| `FIXED_AMOUNT` | `
|
|
493
|
-
| `FIXED_PRICE` | `
|
|
465
|
+
| `PERCENTAGE` | `discounts.values[].percentage` | Integer (e.g., `15`) |
|
|
466
|
+
| `FIXED_AMOUNT` | `discounts.values[].fixedAmount` | String (e.g., `"5.00"`) |
|
|
467
|
+
| `FIXED_PRICE` | `discounts.values[].fixedPrice` | String (e.g., `"29.99"`) |
|
|
494
468
|
|
|
495
469
|
All discount entries use `targetType: "SPECIFIC_ITEMS"` with the scope wrapped in `specificItemsInfo.scopes[]`.
|
|
496
470
|
|
|
@@ -580,18 +554,6 @@ Triggers determine WHEN the discount activates. They are built from the recommen
|
|
|
580
554
|
| `endDate` is a date string | Convert to ISO 8601 timestamp: `activeTimeInfo.end` |
|
|
581
555
|
| `endDate` is empty `""` | Omit `activeTimeInfo.end` — rule has no expiration |
|
|
582
556
|
|
|
583
|
-
### Settings
|
|
584
|
-
|
|
585
|
-
All recommendation-created rules use these fixed settings:
|
|
586
|
-
```json
|
|
587
|
-
{
|
|
588
|
-
"settings": {
|
|
589
|
-
"appliesTo": "ALL_ITEMS",
|
|
590
|
-
"indexOptIn": true
|
|
591
|
-
}
|
|
592
|
-
}
|
|
593
|
-
```
|
|
594
|
-
|
|
595
557
|
---
|
|
596
558
|
|
|
597
559
|
## Error Handling
|
|
@@ -601,6 +563,8 @@ All recommendation-created rules use these fixed settings:
|
|
|
601
563
|
| `DISCOUNT_RULE_NOT_FOUND` | The discount rule ID doesn't exist | Re-query discount rules to get current IDs |
|
|
602
564
|
| `REVISION_MISMATCH` | The `revision` doesn't match the current version | Re-fetch the rule to get the latest revision, then retry |
|
|
603
565
|
| `INVALID_DISCOUNT_TYPE` | Unsupported discount type | Use `PERCENTAGE` or `FIXED_AMOUNT` |
|
|
566
|
+
| `Expected an object` (400) | `discounts` sent as a bare array | Wrap the entries — `"discounts": { "values": [ … ] }` |
|
|
567
|
+
| `DISCOUNT_TYPE_AND_DISCOUNT_VALUE_MISMATCH` | `discountType` and the value field nested inside a `discount` object | Move both to the discount entry root, alongside `targetType` |
|
|
604
568
|
| Both `productIds` and `categoryIds` set | Scope mutual exclusivity violation | Use only one: ITEMS with productIds OR CATEGORY with categoryIds |
|
|
605
569
|
| `productIds` empty when scope is ITEMS | Missing required IDs | Query products and provide at least 1 product UUID |
|
|
606
570
|
| `categoryIds` empty when scope is CATEGORY | Missing required IDs | Call getCategoryIds to convert category names to GUIDs |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "Flow: Bundle and Save"
|
|
3
|
-
description: BUNDLE_AND_SAVE sub-flow — load [Goal: Drive Cross-Sells] FIRST (it owns classification and routing); this is a sub-step, NOT a direct entry from README.
|
|
3
|
+
description: "BUNDLE_AND_SAVE sub-flow — load [Goal: Drive Cross-Sells] FIRST (it owns classification and routing); this is a sub-step, NOT a direct entry from README."
|
|
4
4
|
---
|
|
5
5
|
# Flow: Bundle & Save Campaign
|
|
6
6
|
|
package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-stock-mover.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "Flow: Stock Mover"
|
|
3
|
-
description: Stock-mover clearance sub-flow — load [Goal: Clear Inventory] FIRST (it owns the routing); this is a sub-step.
|
|
3
|
+
description: "Stock-mover clearance sub-flow — load [Goal: Clear Inventory] FIRST (it owns the routing); this is a sub-step."
|
|
4
4
|
---
|
|
5
5
|
# Flow: Stock Mover Clearance
|
|
6
6
|
|
package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-upsell-boost.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "Flow: Upsell Boost"
|
|
3
|
-
description: UPSELL_BOOST sub-flow — load [Goal: Increase AOV] FIRST (it owns classification and routing); this is a sub-step, NOT a direct entry from README.
|
|
3
|
+
description: "UPSELL_BOOST sub-flow — load [Goal: Increase AOV] FIRST (it owns classification and routing); this is a sub-step, NOT a direct entry from README."
|
|
4
4
|
---
|
|
5
5
|
# Flow: Upsell Boost Campaign
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "Recommend: eCommerce Strategy"
|
|
3
|
-
description: Unified eCommerce recommendation skill — analyzes site data across ALL domains (discounts, shipping, and future domains) and generates up to 5 actionable recommendations.
|
|
3
|
+
description: "Unified eCommerce recommendation skill — analyzes site data across ALL domains (discounts, shipping, and future domains) and generates up to 5 actionable recommendations. Entry point for requests about earning more from the visitors a store already has: sales, promotions, discounts, coupons, clearance, holiday deals, AOV, shipping. Out of scope — traffic acquisition (SEO, ads, social, content); route \"grow my traffic\" requests to marketing instead. Tracking is built-in."
|
|
4
4
|
layer: R
|
|
5
5
|
references:
|
|
6
6
|
- name: "API: Recommendation Tracking"
|
|
@@ -21,19 +21,25 @@ references:
|
|
|
21
21
|
- name: "Setup: Coupons"
|
|
22
22
|
path: ecommerce/setup-coupons.md
|
|
23
23
|
load: false
|
|
24
|
+
- name: "Goal: Sell Gift Cards"
|
|
25
|
+
path: ecommerce/gift-cards/ecom-gift-cards-goal-sell-gift-cards.md
|
|
26
|
+
load: false
|
|
24
27
|
---
|
|
25
28
|
# Recommend: eCommerce Strategy
|
|
26
29
|
|
|
30
|
+
> 🚫 **Out of scope — traffic acquisition.** This skill recommends discounts and shipping only: levers that earn more from the visitors a store already has. If the merchant is asking how to *grow* traffic — SEO, ads, social, content — stop here and route them to marketing. Do NOT gather site data, do NOT generate recommendations, and do NOT report "missing required site data" — the request simply is not this skill's job.
|
|
31
|
+
|
|
27
32
|
> ⛔ **MANDATORY PRE-STEP — do this BEFORE Step 1 (before any API call).**
|
|
28
33
|
>
|
|
29
|
-
> Classify the merchant's request and immediately
|
|
34
|
+
> Classify the merchant's request and immediately read the full article for the matching goal skill. Do NOT gather data first — the goal skill tells you which metrics to pull and what guardrails to apply.
|
|
30
35
|
>
|
|
31
|
-
> | Merchant intent | Goal to
|
|
36
|
+
> | Merchant intent | Goal to read |
|
|
32
37
|
> |---|---|
|
|
33
|
-
> | Holiday / event / date mentioned |
|
|
34
|
-
> | "increase AOV", "spend more", "upsell", "boost sales", generic sales improvement |
|
|
35
|
-
> | "clear inventory", "overstock", "clearance", "slow-moving" |
|
|
36
|
-
> | "bundle", "cross-sell", "buy together", "more items per order" |
|
|
38
|
+
> | Holiday / event / date mentioned | [Goal: Seasonal Revenue](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/goal-seasonal-revenue) |
|
|
39
|
+
> | "increase AOV", "spend more", "upsell", "boost sales", generic sales improvement | [Goal: Increase AOV](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/goal-increase-aov) |
|
|
40
|
+
> | "clear inventory", "overstock", "clearance", "slow-moving" | [Goal: Clear Inventory](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/goal-clear-inventory) |
|
|
41
|
+
> | "bundle", "cross-sell", "buy together", "more items per order" | [Goal: Drive Cross-Sells](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/goal-drive-cross-sells) |
|
|
42
|
+
> | "sell gift cards", "add a gift card", "gift card amounts / denominations" | [Goal: Sell Gift Cards](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/goal-sell-gift-cards) |
|
|
37
43
|
>
|
|
38
44
|
> After loading the goal skill, continue from Step 1 below. The goal skill will instruct you to load the matching flow skill — follow those instructions too.
|
|
39
45
|
>
|
|
@@ -49,8 +55,9 @@ references:
|
|
|
49
55
|
3. **Execute every step in order.** Do not skip steps. Do not merge steps. Do not answer "in the meantime."
|
|
50
56
|
4. **Use ONLY data returned by API calls.** Never substitute reasoning, general knowledge, or doc summaries for live data. Every number you cite in `reasoning` MUST come directly from an API response — do NOT assume, infer, or fabricate data.
|
|
51
57
|
5. **If a call fails or is blocked, report the exact blocker.** Do not work around it with assumptions.
|
|
52
|
-
6. **
|
|
53
|
-
7. **Generate recommendations across ALL relevant domains** — not just discounts. Consider shipping, discounts, and any other domain that the data supports.
|
|
58
|
+
6. **Issue every API call as an authenticated request in the merchant's site context, using exactly the endpoints given below.** The internal service method names (getSiteData, getCatalogAnalytics, etc.) are NOT directly callable — only these HTTP endpoints are.
|
|
59
|
+
7. **Generate recommendations across ALL relevant domains** — not just discounts. Consider shipping, discounts, gift cards, and any other domain that the data supports.
|
|
60
|
+
8. **NEVER present a recommendation you have not persisted.** `BatchCreate` (Step 8) is mandatory for every domain — discounts, shipping, gift cards — unless the merchant said `SKIP_TRACKING`. Presenting an unpersisted recommendation means the merchant cannot approve it, so the whole run is wasted. Do not treat Step 8 as a closing formality: it is the step that makes the output actionable.
|
|
54
61
|
|
|
55
62
|
---
|
|
56
63
|
|
|
@@ -58,7 +65,7 @@ references:
|
|
|
58
65
|
|
|
59
66
|
**MANDATORY — do this first.**
|
|
60
67
|
|
|
61
|
-
If you don't already have a `siteId`,
|
|
68
|
+
If you don't already have a `siteId`, list the merchant's Wix sites to find it.
|
|
62
69
|
|
|
63
70
|
If the merchant mentioned a site name, match it. If only one site exists, auto-select it. Store the `siteId` — every subsequent API call requires it.
|
|
64
71
|
|
|
@@ -70,15 +77,12 @@ If the merchant mentioned a site name, match it. If only one site exists, auto-s
|
|
|
70
77
|
|
|
71
78
|
**MANDATORY — do NOT skip unless the user said `SKIP_TRACKING` or "don't track".**
|
|
72
79
|
|
|
73
|
-
Query the tracking database for existing recommendations on this site
|
|
80
|
+
Query the tracking database for existing recommendations on this site.
|
|
74
81
|
|
|
75
|
-
|
|
76
|
-
CallWixSiteAPI(
|
|
77
|
-
url: "https://manage.wix.com/_api/agentic-recommendations/v1/agentic-recommendations/query",
|
|
78
|
-
method: "POST",
|
|
82
|
+
**Endpoint:** `POST https://manage.wix.com/_api/agentic-recommendations/v1/agentic-recommendations/query`
|
|
79
83
|
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
```json
|
|
85
|
+
{ "query": { "filter": {}, "cursorPaging": { "limit": 50 } } }
|
|
82
86
|
```
|
|
83
87
|
|
|
84
88
|
**Use the returned history to inform your analysis:**
|
|
@@ -99,24 +103,21 @@ If the query returns empty results or fails, continue — this is a fresh sessio
|
|
|
99
103
|
|
|
100
104
|
**MANDATORY API CALL — do not skip.**
|
|
101
105
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
"
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
]
|
|
118
|
-
}
|
|
119
|
-
)
|
|
106
|
+
**Endpoint:** `POST https://www.wix.com/wix-profile-client/v4/profile/metasite`
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"fields": [
|
|
111
|
+
"language",
|
|
112
|
+
"merchant_business_country",
|
|
113
|
+
"suggested_main_industry",
|
|
114
|
+
"suggested_sub_industry",
|
|
115
|
+
"last_30_days_distinct_visitors",
|
|
116
|
+
"last_30_days_orders_count",
|
|
117
|
+
"online_gpv_last_30_days",
|
|
118
|
+
"payment_currency"
|
|
119
|
+
]
|
|
120
|
+
}
|
|
120
121
|
```
|
|
121
122
|
|
|
122
123
|
**Available fields:**
|
|
@@ -181,6 +182,7 @@ Based on the merchant's request AND the site data, determine which domains to an
|
|
|
181
182
|
|---|---|---|
|
|
182
183
|
| **DISCOUNTS** | Merchant mentions sales, promotions, revenue, AOV, clearance, holidays, coupons. **Also activate if no specific domain is mentioned** (default). | Always — site data contains discount metrics |
|
|
183
184
|
| **SHIPPING** | Merchant mentions shipping, delivery, checkout conversion, cart abandonment. **Also activate proactively** if site data suggests shipping issues. | High visitors + low orders may indicate shipping friction |
|
|
185
|
+
| **GIFT_CARDS** | **Explicit gift-card intent only** — the merchant mentions gift cards, gift vouchers, or gift card amounts. Do **not** activate this domain on a generic "boost my sales" request: it costs a gift-card-product lookup and a goal-skill load for a lever the merchant didn't ask about. | Merchant named gift cards |
|
|
184
186
|
|
|
185
187
|
**Priority rule**: If the merchant mentions a specific holiday/event/date, the DISCOUNTS domain MUST use the **SEASONAL** strategy — even if other signals like "boost sales" or "increase revenue" could match other goals. Holidays are time-sensitive and take priority over general intent.
|
|
186
188
|
|
|
@@ -192,7 +194,7 @@ Based on the merchant's request AND the site data, determine which domains to an
|
|
|
192
194
|
|
|
193
195
|
## Step 4b: Load domain-specific goal skills
|
|
194
196
|
|
|
195
|
-
**MANDATORY —
|
|
197
|
+
**MANDATORY — read the full article for the matching goal skill(s) now.** These contain detailed strategy logic, KPIs, margin tiers, campaign window calculations, and guardrails that you MUST follow.
|
|
196
198
|
|
|
197
199
|
**For DISCOUNTS domain — classify the discount goal and load it:**
|
|
198
200
|
|
|
@@ -204,6 +206,8 @@ Based on the merchant's request AND the site data, determine which domains to an
|
|
|
204
206
|
| BUNDLE_AND_SAVE | "bundle", "cross-sell", "buy together" | [Goal: Drive Cross-Sells](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/goal-drive-cross-sells) |
|
|
205
207
|
| Generic (no clear goal) | "boost sales", ambiguous | Default to SEASONAL if holiday nearby, else UPSELL_BOOST |
|
|
206
208
|
|
|
209
|
+
**For GIFT_CARDS domain — load [Goal: Sell Gift Cards](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/goal-sell-gift-cards).** It owns the existing-product gate (a site supports only one gift card product), eligibility, denomination sizing from AOV / catalog prices, the expiry policy, and the mapping onto the real create call. Do not size gift card amounts without it.
|
|
210
|
+
|
|
207
211
|
**For SHIPPING domain — load the same goal as discounts.** Shipping flows (free shipping threshold, rate optimization) serve the same business goals as discount flows. Load the matching discount goal above — it now includes shipping flow references.
|
|
208
212
|
|
|
209
213
|
**The goal skill will instruct you to load flow and guardrail skills** — follow those instructions. This chain provides the detailed execution logic you need for high-quality recommendations.
|
|
@@ -225,8 +229,8 @@ Based on the merchant's request AND the site data, determine which domains to an
|
|
|
225
229
|
|
|
226
230
|
**If unclear, ask:** "Would you like this to apply automatically to everyone, or as a coupon code?"
|
|
227
231
|
|
|
228
|
-
**If COUPON is selected**,
|
|
229
|
-
[
|
|
232
|
+
**If COUPON is selected**, read the full article for the coupon setup reference:
|
|
233
|
+
[Pricing: Create Coupon](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/pricing-create-coupon)
|
|
230
234
|
|
|
231
235
|
---
|
|
232
236
|
|
|
@@ -238,15 +242,13 @@ Call both APIs concurrently:
|
|
|
238
242
|
|
|
239
243
|
### Call 1: GetCatalogAnalytics
|
|
240
244
|
|
|
245
|
+
**Endpoint:** `POST https://manage.wix.com/recommendations/v1/recommendations/get-catalog-analytics-tool`
|
|
246
|
+
|
|
241
247
|
```
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
"aggregates": <see table below>,
|
|
247
|
-
"minMarginPct": 0.15
|
|
248
|
-
}
|
|
249
|
-
)
|
|
248
|
+
{
|
|
249
|
+
"aggregates": <see table below>,
|
|
250
|
+
"minMarginPct": 0.15
|
|
251
|
+
}
|
|
250
252
|
```
|
|
251
253
|
|
|
252
254
|
Valid `aggregates` values: `op` ∈ `count|sum|avg|min|max|stddev|quantiles` · `field` ∈ `quantity|price|cost|profit|profitMargin|ordersCount` · `q` required only for `quantiles` (array of 0.0–1.0, max 20)
|
|
@@ -284,18 +286,16 @@ Valid `aggregates` values: `op` ∈ `count|sum|avg|min|max|stddev|quantiles` ·
|
|
|
284
286
|
|
|
285
287
|
### Call 2: GetProductCatalogData
|
|
286
288
|
|
|
289
|
+
**Endpoint:** `POST https://manage.wix.com/recommendations/v1/recommendations/get-product-catalog-data-tool`
|
|
290
|
+
|
|
287
291
|
```
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
"query": "<keywords from merchant request, or empty string>",
|
|
296
|
-
"categoryNames": <category names if mentioned, or empty array>
|
|
297
|
-
}
|
|
298
|
-
)
|
|
292
|
+
{
|
|
293
|
+
"businessGoal": "<goal from Step 4>",
|
|
294
|
+
"minMarginPct": 0.15,
|
|
295
|
+
"catalogLimit": 30,
|
|
296
|
+
"query": "<keywords from merchant request, or empty string>",
|
|
297
|
+
"categoryNames": <category names if mentioned, or empty array>
|
|
298
|
+
}
|
|
299
299
|
```
|
|
300
300
|
|
|
301
301
|
**Sort order applied server-side by `businessGoal`:**
|
|
@@ -331,12 +331,10 @@ CallWixSiteAPI(
|
|
|
331
331
|
|
|
332
332
|
**Send only categories you plan to target — max 10 per call.**
|
|
333
333
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
body: { "categoryNames": ["<top category 1>", "<top category 2>"] }
|
|
339
|
-
)
|
|
334
|
+
**Endpoint:** `POST https://manage.wix.com/recommendations/v1/recommendations/get-category-ids-tool`
|
|
335
|
+
|
|
336
|
+
```json
|
|
337
|
+
{ "categoryNames": ["<top category 1>", "<top category 2>"] }
|
|
340
338
|
```
|
|
341
339
|
|
|
342
340
|
**Response:** `{ "categoryIds": ["a1b2c3d4-...", "b2c3d4e5-..."] }`
|
|
@@ -415,6 +413,10 @@ Analyze the site's shipping configuration using the rules below. All shipping re
|
|
|
415
413
|
|
|
416
414
|
**Priority order:** CRITICAL blockers (no options, no coverage) → Conversion-linked (no free shipping, high rates) → Revenue opportunities (international, tiered pricing) → Configuration improvements (consolidate, add estimates).
|
|
417
415
|
|
|
416
|
+
### Gift card recommendations (if GIFT_CARDS domain active)
|
|
417
|
+
|
|
418
|
+
[Goal: Sell Gift Cards](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/goal-sell-gift-cards) owns this domain end to end — the existing-product gate, denomination sizing, expiry policy, and at most one gift-card recommendation. Action type: `create_gift_card_product`.
|
|
419
|
+
|
|
418
420
|
### Cross-domain balance
|
|
419
421
|
|
|
420
422
|
- If request is generic, aim for recommendations from **multiple domains** (e.g., 2-3 discount + 1-2 shipping)
|
|
@@ -435,6 +437,7 @@ Analyze the site's shipping configuration using the rules below. All shipping re
|
|
|
435
437
|
8. **Rounding**: Discount percentages round to 5/10/15/20/25% unless merchant specified exact value.
|
|
436
438
|
9. **Data-backed**: Every recommendation must reference specific data from API responses.
|
|
437
439
|
10. **Domain labeled**: Every recommendation has the correct `domain` field.
|
|
440
|
+
11. **Persisted**: Step 8 has run and every recommendation has an `id` from `BatchCreate`. **If you cannot point at that `id`, you are not finished — go do Step 8 now.** The only exceptions are `SKIP_TRACKING` or a `BatchCreate` call that failed, and a failure must be reported to the merchant, not passed over in silence.
|
|
438
441
|
|
|
439
442
|
---
|
|
440
443
|
|
|
@@ -442,36 +445,30 @@ Analyze the site's shipping configuration using the rules below. All shipping re
|
|
|
442
445
|
|
|
443
446
|
**MANDATORY — do NOT skip unless the user said `SKIP_TRACKING`.**
|
|
444
447
|
|
|
445
|
-
Before calling BatchCreate,
|
|
448
|
+
Before calling BatchCreate, read the full article for the tracking recipe to get the exact request body shape:
|
|
449
|
+
[API: Recommendation Tracking](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-recommendation-tracking)
|
|
446
450
|
|
|
447
|
-
|
|
448
|
-
ReadFullDocsArticle("https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/skills/api-recommendation-tracking")
|
|
449
|
-
```
|
|
451
|
+
Then call BatchCreate to persist ALL recommendations as PROPOSED.
|
|
450
452
|
|
|
451
|
-
|
|
453
|
+
**Endpoint:** `POST https://manage.wix.com/_api/agentic-recommendations/v1/agentic-recommendations/batch-create`
|
|
452
454
|
|
|
453
455
|
```
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
"
|
|
463
|
-
"
|
|
464
|
-
"
|
|
465
|
-
"advice": {
|
|
466
|
-
"action": "<action type>",
|
|
467
|
-
"params": <params object>,
|
|
468
|
-
"successCriteria": "<how to verify success>"
|
|
469
|
-
}
|
|
456
|
+
{
|
|
457
|
+
"agenticRecommendations": [
|
|
458
|
+
{
|
|
459
|
+
"title": "<recommendation title>",
|
|
460
|
+
"reasoning": "<recommendation reasoning>",
|
|
461
|
+
"domain": "<discounts|shipping>",
|
|
462
|
+
"urgency": "<CRITICAL|HIGH|MEDIUM|LOW>",
|
|
463
|
+
"advice": {
|
|
464
|
+
"action": "<action type>",
|
|
465
|
+
"params": <params object>,
|
|
466
|
+
"successCriteria": "<how to verify success>"
|
|
470
467
|
}
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
468
|
+
}
|
|
469
|
+
],
|
|
470
|
+
"conversationId": "<conversationId>"
|
|
471
|
+
}
|
|
475
472
|
```
|
|
476
473
|
|
|
477
474
|
**Save the `id` and `revision` from each result.** Include them in the output.
|
|
@@ -513,7 +510,7 @@ If BatchCreate fails, report the error and include recommendations without track
|
|
|
513
510
|
"endDate": "2026-05-26"
|
|
514
511
|
}
|
|
515
512
|
},
|
|
516
|
-
"
|
|
513
|
+
"successCriteria": "15% discount applied site-wide for orders above $250 during Memorial Weekend"
|
|
517
514
|
}
|
|
518
515
|
}
|
|
519
516
|
]
|
|
@@ -524,17 +521,17 @@ If BatchCreate fails, report the error and include recommendations without track
|
|
|
524
521
|
|
|
525
522
|
| Field | Rule |
|
|
526
523
|
|---|---|
|
|
527
|
-
| `id` | GUID from tracking BatchCreate response
|
|
524
|
+
| `id` | GUID from the tracking `BatchCreate` response. **Required** — an output with no `id` means Step 8 never ran, which is a failed run. Omit only when the merchant said `SKIP_TRACKING`, or when `BatchCreate` failed and you say so explicitly. |
|
|
528
525
|
| `title` | Short, actionable. Max 200 chars. Always English. |
|
|
529
526
|
| `reasoning` | **Must reference which API call returned the data.** Always English. |
|
|
530
|
-
| `domain` | `"discounts"` or `"
|
|
527
|
+
| `domain` | `"discounts"`, `"shipping"`, or `"gift_cards"` (future: `"taxes"`) |
|
|
531
528
|
| `urgency` | `CRITICAL`, `HIGH`, `MEDIUM`, or `LOW` |
|
|
532
529
|
| `mechanism` | `AUTOMATIC` or `COUPON`. From Step 4c. Only for discounts domain. |
|
|
533
530
|
| `name` | Marketing headline, 2-5 words. Translate to site `language` if not English. |
|
|
534
531
|
| `why` | 1-2 sentences with specific data points from API responses. Translate to site `language`. |
|
|
535
532
|
| `code` | Only for COUPON mechanism. Memorable code, max 20 chars (e.g., "SAVE15"). |
|
|
536
533
|
| `scope` + IDs | For discounts: SITE = both empty, CATEGORY = categoryIds only (max 3), ITEMS = productIds only (max 5). |
|
|
537
|
-
| `
|
|
534
|
+
| `successCriteria` | How to verify the recommendation was applied correctly |
|
|
538
535
|
|
|
539
536
|
### Valid action types by domain
|
|
540
537
|
|
|
@@ -542,6 +539,7 @@ If BatchCreate fails, report the error and include recommendations without track
|
|
|
542
539
|
|---|---|
|
|
543
540
|
| discounts | `apply_discount` |
|
|
544
541
|
| shipping | `create_shipping_option`, `update_shipping_option`, `enable_backup_rate`, `activate_region` |
|
|
542
|
+
| gift_cards | `create_gift_card_product` |
|
|
545
543
|
|
|
546
544
|
---
|
|
547
545
|
|