@wix/agent-skills 1.15.0 → 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.
Files changed (355) hide show
  1. package/README.md +5 -1
  2. package/package.json +1 -1
  3. package/skills/wix-app/SKILL.md +4 -1
  4. package/skills/wix-app/references/APP_TOOLS.md +134 -0
  5. package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +1 -1
  6. package/skills/wix-app/references/DASHBOARD_PAGE.md +0 -10
  7. package/skills/wix-app/references/DATA_COLLECTION.md +6 -4
  8. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +28 -7
  9. package/skills/wix-app/references/SERVICE_PLUGIN.md +12 -10
  10. package/skills/wix-app/references/STORES_VERSIONING.md +9 -211
  11. package/skills/wix-app/references/app-tools/TOOLS.md +75 -0
  12. package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +5 -0
  13. package/skills/wix-app/references/dashboard-page/DASHBOARD_API.md +2 -2
  14. package/skills/wix-app/references/editor-react-component/A11Y-REVIEW-REFERENCE.md +172 -0
  15. package/skills/wix-app/references/editor-react-component/A11Y-REVIEW.md +138 -0
  16. package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +172 -0
  17. package/skills/wix-app/references/editor-react-component/BRANDED-COMPONENTS.md +29 -0
  18. package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +1 -1
  19. package/skills/wix-app/references/editor-react-component/COMPONENT-PREVIEW.md +57 -0
  20. package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +33 -2
  21. package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +5 -3
  22. package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +18 -1
  23. package/skills/wix-app/references/editor-react-component/PARTS.md +15 -2
  24. package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +4 -3
  25. package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +13 -9
  26. package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +4 -0
  27. package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +4 -0
  28. package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +3 -1
  29. package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +4 -0
  30. package/skills/wix-app/references/service-plugin/TOOLS_PROVIDER.md +54 -0
  31. package/skills/wix-app/references/stores/CATEGORIES.md +22 -0
  32. package/skills/wix-app/references/stores/GET_PRODUCT.md +99 -0
  33. package/skills/wix-app/references/stores/INVENTORY.md +37 -0
  34. package/skills/wix-app/references/stores/QUERY.md +119 -0
  35. package/skills/wix-app/references/stores/WRITE.md +55 -0
  36. package/skills/wix-docs/SKILL.md +35 -3
  37. package/skills/wix-headless/SKILL.md +9 -2
  38. package/skills/wix-headless/entry/bootstrap.mjs +2 -2
  39. package/skills/wix-headless/entry/skill.md +0 -2
  40. package/skills/wix-headless/references/CAPABILITIES.md +6 -4
  41. package/skills/wix-headless/references/CONTENT.md +36 -0
  42. package/skills/wix-headless/references/DESIGN.md +54 -0
  43. package/skills/wix-headless/references/DISCOVERY.md +25 -1
  44. package/skills/wix-headless/references/FEEDBACK.md +16 -5
  45. package/skills/wix-headless/references/IMAGE_GENERATION.md +10 -0
  46. package/skills/wix-headless/references/SDK_HANDOFF.md +2 -0
  47. package/skills/wix-headless/references/SEED.md +3 -1
  48. package/skills/wix-headless/references/SETUP.md +1 -1
  49. package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +3 -2
  50. package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +42 -2
  51. package/skills/wix-headless/references/inline-recipes/setup-bookings.md +5 -1
  52. package/skills/wix-headless/references/inline-recipes/setup-forms.md +1 -1
  53. package/skills/wix-headless/references/inline-recipes/setup-online-store.md +33 -8
  54. package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +3 -1
  55. package/skills/wix-headless/references/inline-recipes/setup-restaurant-experiences.md +73 -0
  56. package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +38 -2
  57. package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +20 -1
  58. package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +1 -1
  59. package/skills/wix-headless/references/managed/CONNECT.md +2 -2
  60. package/skills/wix-headless/references/managed/CREATE.md +15 -1
  61. package/skills/wix-headless/references/managed/DEPLOYMENT.md +47 -0
  62. package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +8 -0
  63. package/skills/wix-headless/references/stripe/DEPLOYMENT.md +8 -0
  64. package/skills/wix-manage/SKILL.md +131 -12
  65. package/skills/wix-manage/references/analytics/analytics-dashboard-navigation.md +41 -0
  66. package/skills/wix-manage/references/analytics/query-site-analytics.md +66 -9
  67. package/skills/wix-manage/references/app-installation/app-installation-dashboard-navigation.md +28 -0
  68. package/skills/wix-manage/references/app-installation/install-wix-apps.md +3 -0
  69. package/skills/wix-manage/references/blog/blog-dashboard-navigation.md +56 -0
  70. package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +31 -6
  71. package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +3 -1
  72. package/skills/wix-manage/references/bookings/bookings-dashboard-navigation.md +63 -0
  73. package/skills/wix-manage/references/bookings/create-booking-service-from-prompt.md +6 -5
  74. package/skills/wix-manage/references/bookings/create-course-service.md +30 -5
  75. package/skills/wix-manage/references/bookings/diagnose-availability-issues.md +85 -42
  76. package/skills/wix-manage/references/cms/cms-dashboard-navigation.md +44 -0
  77. package/skills/wix-manage/references/cms/cms-data-items-crud.md +31 -3
  78. package/skills/wix-manage/references/cms/cms-publishing-flow.md +287 -0
  79. package/skills/wix-manage/references/cms/cms-schema-management.md +33 -1
  80. package/skills/wix-manage/references/contacts/contacts-dashboard-navigation.md +46 -0
  81. package/skills/wix-manage/references/contacts/create-a-contact.md +82 -0
  82. package/skills/wix-manage/references/contacts/update-a-contact.md +119 -0
  83. package/skills/wix-manage/references/dashboard-navigation/dashboard-navigation.md +82 -0
  84. package/skills/wix-manage/references/dashboard-navigation/routes.json +1733 -0
  85. package/skills/wix-manage/references/domains/domains-dashboard-navigation.md +32 -0
  86. package/skills/wix-manage/references/ecommerce/ecom-pricing.md +4 -4
  87. package/skills/wix-manage/references/ecommerce/ecom-shipping.md +1 -1
  88. package/skills/wix-manage/references/ecommerce/gift-cards/ecom-gift-cards-goal-sell-gift-cards.md +338 -0
  89. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-create-discount-rule.md +42 -78
  90. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-bundle-and-save.md +1 -1
  91. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-stock-mover.md +1 -1
  92. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-upsell-boost.md +1 -1
  93. package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +90 -92
  94. package/skills/wix-manage/references/events/create-wix-event.md +176 -0
  95. package/skills/wix-manage/references/events/manage-wix-events.md +174 -0
  96. package/skills/wix-manage/references/forms/forms-dashboard-navigation.md +44 -0
  97. package/skills/wix-manage/references/get-paid/get-paid-dashboard-navigation.md +52 -0
  98. package/skills/wix-manage/references/get-paid/how-to-setup-wix-payments.md +30 -7
  99. package/skills/wix-manage/references/google-ads/billing-and-payment.md +80 -0
  100. package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +212 -0
  101. package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +110 -0
  102. package/skills/wix-manage/references/google-ads/google-ads-dashboard-navigation.md +25 -0
  103. package/skills/wix-manage/references/google-ads/install-and-create-account.md +155 -0
  104. package/skills/wix-manage/references/google-ads/manage-campaign-lifecycle.md +63 -0
  105. package/skills/wix-manage/references/google-ads/query-campaign-analytics.md +155 -0
  106. package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +225 -144
  107. package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +19 -10
  108. package/skills/wix-manage/references/marketing/marketing-dashboard-navigation.md +52 -0
  109. package/skills/wix-manage/references/pricing-plans/create-and-update-pricing-plans.md +99 -1
  110. package/skills/wix-manage/references/pricing-plans/pricing-plans-dashboard-navigation.md +45 -0
  111. package/skills/wix-manage/references/restaurants/restaurants-dashboard-navigation.md +68 -0
  112. package/skills/wix-manage/references/restaurants/wix-restaurants-setup.md +94 -125
  113. package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +48 -9
  114. package/skills/wix-manage/references/site-properties/site-properties-dashboard-navigation.md +31 -0
  115. package/skills/wix-manage/references/sites/create-headless-site.md +52 -0
  116. package/skills/wix-manage/references/sites/create-site-from-template.md +2 -25
  117. package/skills/wix-manage/references/sites/site-import.md +243 -0
  118. package/skills/wix-manage/references/sites/sites-dashboard-navigation.md +29 -0
  119. package/skills/wix-manage/references/stores/add-store-pages-to-site.md +17 -1
  120. package/skills/wix-manage/references/stores/create-product-from-image.md +8 -6
  121. package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +16 -10
  122. package/skills/wix-manage/references/stores/find-products-query-and-search-catalog-v3.md +26 -8
  123. package/skills/wix-manage/references/stores/stores-dashboard-navigation.md +65 -0
  124. package/skills/wix-manage/references/stores/update-product-with-options.md +39 -7
  125. package/skills/wix-replatform/.publish-manifest.json +8 -0
  126. package/skills/wix-replatform/SKILL.md +693 -0
  127. package/skills/wix-replatform/lib/artifact-freshness.js +215 -0
  128. package/skills/wix-replatform/lib/completion-report.js +200 -0
  129. package/skills/wix-replatform/lib/config-env.js +59 -0
  130. package/skills/wix-replatform/lib/execution-manifest.js +185 -0
  131. package/skills/wix-replatform/lib/execution-state.js +173 -0
  132. package/skills/wix-replatform/lib/import-recovery.js +313 -0
  133. package/skills/wix-replatform/lib/local-state.js +642 -0
  134. package/skills/wix-replatform/lib/orchestration-preflight.js +143 -0
  135. package/skills/wix-replatform/lib/orchestration-router.js +122 -0
  136. package/skills/wix-replatform/lib/orchestration-state.js +455 -0
  137. package/skills/wix-replatform/lib/progress-log.js +224 -0
  138. package/skills/wix-replatform/lib/progress-log.sh +140 -0
  139. package/skills/wix-replatform/lib/url-preservation-state.js +391 -0
  140. package/skills/wix-replatform/resources/rp-discovery/SKILL.md +184 -0
  141. package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +529 -0
  142. package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +316 -0
  143. package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +64 -0
  144. package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +1114 -0
  145. package/skills/wix-replatform/resources/rp-mapper/SKILL.md +430 -0
  146. package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +217 -0
  147. package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +148 -0
  148. package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +378 -0
  149. package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +183 -0
  150. package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +478 -0
  151. package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +136 -0
  152. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
  153. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fingerprint.js +310 -0
  154. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +1081 -0
  155. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +618 -0
  156. package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +949 -0
  157. package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +196 -0
  158. package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +66 -0
  159. package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +60 -0
  160. package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +95 -0
  161. package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +82 -0
  162. package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +256 -0
  163. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +249 -0
  164. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +444 -0
  165. package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +774 -0
  166. package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +71 -0
  167. package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +632 -0
  168. package/skills/wix-replatform/resources/rp-target-wix/SPEC-product-reviews-and-blog-authorship.md +330 -0
  169. package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +21 -0
  170. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +19 -0
  171. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +37 -0
  172. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +37 -0
  173. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +39 -0
  174. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +35 -0
  175. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +14 -0
  176. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +35 -0
  177. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +36 -0
  178. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +35 -0
  179. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +14 -0
  180. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +131 -0
  181. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +37 -0
  182. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +37 -0
  183. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +21 -0
  184. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +37 -0
  185. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +37 -0
  186. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +97 -0
  187. package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +528 -0
  188. package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +14 -0
  189. package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +38 -0
  190. package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +37 -0
  191. package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +13 -0
  192. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +37 -0
  193. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +53 -0
  194. package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +84 -0
  195. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +25 -0
  196. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +37 -0
  197. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +37 -0
  198. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +38 -0
  199. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +37 -0
  200. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +90 -0
  201. package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +64 -0
  202. package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +141 -0
  203. package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +384 -0
  204. package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +260 -0
  205. package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +238 -0
  206. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +237 -0
  207. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +238 -0
  208. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +2219 -0
  209. package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +31 -0
  210. package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +100 -0
  211. package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +107 -0
  212. package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +344 -0
  213. package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +250 -0
  214. package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +1927 -0
  215. package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +83 -0
  216. package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +141 -0
  217. package/skills/wix-replatform/scripts/artifact-freshness.js +76 -0
  218. package/skills/wix-replatform/scripts/execution-manifest-validate.js +43 -0
  219. package/skills/wix-replatform/scripts/execution-state-prepare.js +128 -0
  220. package/skills/wix-replatform/scripts/orchestration-preflight.js +48 -0
  221. package/skills/wix-replatform/scripts/orchestration-route.js +46 -0
  222. package/skills/wix-replatform/scripts/orchestration-state.js +245 -0
  223. package/skills/wix-vibe-headless/SKILL.md +54 -25
  224. package/skills/wix-vibe-headless/install/deploy.cjs +95 -0
  225. package/skills/wix-vibe-headless/install/pin-agents-md.cjs +34 -0
  226. package/skills/wix-vibe-headless/platforms/README.md +26 -0
  227. package/skills/wix-vibe-headless/platforms/base44.md +177 -0
  228. package/skills/wix-vibe-headless/platforms/generic.md +122 -0
  229. package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +230 -119
  230. package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +43 -0
  231. package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +25 -0
  232. package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +15 -0
  233. package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +35 -0
  234. package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +38 -0
  235. package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +40 -0
  236. package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +54 -0
  237. package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +65 -0
  238. package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +50 -0
  239. package/skills/wix-vibe-headless/references/blog/seed/SEED.md +103 -0
  240. package/skills/wix-vibe-headless/references/blog/seed/seed-blog.js +270 -0
  241. package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +260 -145
  242. package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +65 -0
  243. package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +47 -0
  244. package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +13 -0
  245. package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +126 -0
  246. package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +108 -0
  247. package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +58 -0
  248. package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +95 -0
  249. package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +94 -0
  250. package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +89 -0
  251. package/skills/wix-vibe-headless/references/bookings/{wix-bookings-checkout.js → app/rest/wix-bookings-checkout.js} +1 -1
  252. package/skills/wix-vibe-headless/references/bookings/{wix-bookings-services.js → app/rest/wix-bookings-services.js} +90 -12
  253. package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +117 -0
  254. package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.js +333 -0
  255. package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +169 -147
  256. package/skills/wix-vibe-headless/references/cms/app/collection.config.js +31 -0
  257. package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +18 -0
  258. package/skills/wix-vibe-headless/references/cms/{wix-cms.js → app/rest/wix-cms.js} +47 -2
  259. package/skills/wix-vibe-headless/references/cms/seed/SEED.md +145 -0
  260. package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +228 -131
  261. package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +23 -0
  262. package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +43 -0
  263. package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +13 -0
  264. package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +29 -0
  265. package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +57 -0
  266. package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +78 -0
  267. package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +27 -0
  268. package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +54 -0
  269. package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +40 -0
  270. package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +81 -0
  271. package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +48 -0
  272. package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +36 -0
  273. package/skills/wix-vibe-headless/references/events/{wix-events-browse.js → app/rest/wix-events-browse.js} +3 -2
  274. package/skills/wix-vibe-headless/references/events/seed/SEED.md +107 -0
  275. package/skills/wix-vibe-headless/references/events/seed/seed-events.js +251 -0
  276. package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +276 -188
  277. package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +101 -0
  278. package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +33 -0
  279. package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +21 -0
  280. package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +29 -0
  281. package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +54 -0
  282. package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +77 -0
  283. package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +36 -0
  284. package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +32 -0
  285. package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +35 -0
  286. package/skills/wix-vibe-headless/references/members/{wix-members-auth.js → app/rest/wix-members-auth.js} +6 -3
  287. package/skills/wix-vibe-headless/references/members/install/Register.jsx +22 -0
  288. package/skills/wix-vibe-headless/references/members/seed/SEED.md +22 -0
  289. package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +233 -104
  290. package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +31 -0
  291. package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +15 -0
  292. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +39 -0
  293. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +15 -0
  294. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +29 -0
  295. package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +35 -0
  296. package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +27 -0
  297. package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +25 -0
  298. package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +39 -0
  299. package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +27 -0
  300. package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +60 -0
  301. package/skills/wix-vibe-headless/references/portfolio/{wix-portfolio.js → app/rest/wix-portfolio.js} +84 -55
  302. package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +94 -0
  303. package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.js +236 -0
  304. package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +240 -117
  305. package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +35 -0
  306. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +48 -0
  307. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +16 -0
  308. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +35 -0
  309. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +25 -0
  310. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +28 -0
  311. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +30 -0
  312. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +30 -0
  313. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +53 -0
  314. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +28 -0
  315. package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +86 -0
  316. package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.js +251 -0
  317. package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +248 -124
  318. package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +81 -0
  319. package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +71 -0
  320. package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +43 -0
  321. package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +21 -0
  322. package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +60 -0
  323. package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +63 -0
  324. package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +32 -0
  325. package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +73 -0
  326. package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +28 -0
  327. package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +102 -0
  328. package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +180 -0
  329. package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.js +452 -0
  330. package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +56 -0
  331. package/skills/wix-vibe-headless/references/shared/{wix-client.js → app/rest/wix-client.js} +6 -8
  332. package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +6 -0
  333. package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +263 -148
  334. package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +20 -0
  335. package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +150 -0
  336. package/skills/wix-vibe-headless/references/storefront/app/components/ProductCard.jsx +167 -0
  337. package/skills/wix-vibe-headless/references/storefront/app/components/ProductGallery.jsx +51 -0
  338. package/skills/wix-vibe-headless/references/storefront/app/components/ProductGrid.jsx +54 -0
  339. package/skills/wix-vibe-headless/references/storefront/app/components/VariantPicker.jsx +119 -0
  340. package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +71 -0
  341. package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +109 -0
  342. package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +98 -0
  343. package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +27 -0
  344. package/skills/wix-vibe-headless/references/storefront/app/pages/ProductDetail.jsx +139 -0
  345. package/skills/wix-vibe-headless/references/storefront/app/pages/Shop.jsx +75 -0
  346. package/skills/wix-vibe-headless/references/storefront/{wix-store-cart.js → app/rest/wix-store-cart.js} +1 -1
  347. package/skills/wix-vibe-headless/references/storefront/{wix-store-catalog.js → app/rest/wix-store-catalog.js} +25 -2
  348. package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +111 -0
  349. package/skills/wix-vibe-headless/references/storefront/seed/seed-store.js +299 -0
  350. /package/skills/wix-vibe-headless/references/blog/{wix-blog.js → app/rest/wix-blog.js} +0 -0
  351. /package/skills/wix-vibe-headless/references/events/{wix-events-registration.js → app/rest/wix-events-registration.js} +0 -0
  352. /package/skills/wix-vibe-headless/references/pricing-plans/{wix-pricing-plans.js → app/rest/wix-pricing-plans.js} +0 -0
  353. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-menu.js → app/rest/wix-restaurants-menu.js} +0 -0
  354. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-ordering.js → app/rest/wix-restaurants-ordering.js} +0 -0
  355. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-reservations.js → app/rest/wix-restaurants-reservations.js} +0 -0
@@ -4,6 +4,22 @@ description: "End-to-end flow to generate an AI-powered social media marketing p
4
4
  ---
5
5
  # RECIPE: Generate a Marketing Plan and Schedule Its Posts
6
6
 
7
+ ## THE PROTOCOL (read this first — every rule is mandatory)
8
+
9
+ Walk every marketing-plan request through this conversation, in this order. Skip a step only when the user's own words in this conversation already answered it.
10
+
11
+ 1. **Open with the current state.** Fetch the plan (STEP 3 endpoint) and the marketing settings (`GET .../marketing-settings`). Tell the user what the plan is shaped by and what they can change: goal, marketing tools, content pillars (topics), tone of voice, point of view, business profile, and per-tool cadence. Say which inputs are site-derived and **read-only**: language, business/target locations, industry — those change in the site's Language & Region / SEO business-location settings, never through marketing settings (details in STEP 1).
12
+ 2. **Decide the settings with the user.** For each setting they want to change, use their words. If they want help choosing, fetch the selectable values (`GET .../marketing-settings/plan-goal-options`, `GET .../marketing-settings/defaults`) and propose suggestions for them to confirm. Write only values the user gave or confirmed; leave everything else to the site defaults. Never fabricate a goal, tone, or topic list on their behalf, and never put `language`, `targetLocations`, or `businessLocation` in the request or claim the call changed them.
13
+ 3. **Save, then offer to generate.** Upsert the confirmed settings (STEP 1, `fieldMask` as a comma-separated string matching exactly what you send), then offer to generate the plan — or, if a plan already exists, to regenerate it so the new settings take effect (settings are read only at generation time; use the keyword-research variant when `topics` changed). Poll until `ACTIVE` (STEPs 2-3).
14
+ 4. **Present the plan from the API data only.** Show the returned activities and their post drafts. Never invent activities, dates, or captions and present them as "the plan" — if it isn't in the response, it isn't in the plan (also applies to STEP 5's post generation).
15
+ 5. **Show before scheduling.** Scheduling publishes AI-generated drafts. Before Schedule Drafts (STEP 4), show each draft's caption and media (render the image inline, or give its URL) and get explicit approval. Schedule exactly what was approved — never regenerate after approval.
16
+ 6. **Diff the schedule response.** Only drafts for Publisher-connected channels are scheduled; the rest silently stay `DRAFT`. Compare the returned `SCHEDULED` ids against the ids you sent, and tell the user which drafts didn't schedule and which channel needs connecting (STEP 4).
17
+ 7. **Respect cutoffs and gates.** Skip `TWITTER` drafts dated after July 31, 2026. `FAILED_PRECONDITION` on Schedule Drafts means the plan lacks the premium scheduling feature: say so once and stop; it is not a transient error to retry.
18
+
19
+ The rest of this recipe is the reference for executing each step.
20
+
21
+ ---
22
+
7
23
  This recipe generates a site's AI marketing plan — a schedule of marketing activities (social campaigns, blog posts, emails) from today through the end of next month — and schedules the social posts it generates. Generation is **asynchronous and non-deterministic**: you fire it, poll until it's ready, then act on the results.
8
24
 
9
25
  Base URL for all endpoints: `https://www.wixapis.com/promote/marketing-plan-service/v1`.
@@ -20,7 +36,7 @@ For a first-time plan, configure marketing settings **before** generating (STEP
20
36
 
21
37
  **API Endpoint:** `POST https://www.wixapis.com/promote/marketing-plan-service/v1/marketing-settings`
22
38
 
23
- Both `marketingSettings` and `fieldMask` are **required**. `fieldMask` lists the paths to write, and **every path in `fieldMask` must be present** in `marketingSettings` (otherwise the call fails with `INVALID_FIELD_MASK_ERROR`).
39
+ Both `marketingSettings` and `fieldMask` are **required**. `fieldMask` is a **single comma-separated string** of the paths to write (proto3 field-mask form) — **not a JSON array**. Sending it as an array (`["settings.marketingPlanGoal", …]`) fails with `400` `"Failed to parse request message"`. Every path in `fieldMask` must also be present in `marketingSettings`, or the call fails with `INVALID_FIELD_MASK_ERROR`.
24
40
 
25
41
  **Language and location cannot be set here.** If the request targets a language or a place ("posts in Spanish", "customers near Berlin"), those are site-derived, read-only fields on marketing settings — never put `language`, `targetLocations`, or `businessLocation` in the request, and never tell the user this call changed them. Set the fields that do belong here (goal, tone, audience description), and direct the user to the site-level settings for the rest — see **What you can't set here** below.
26
42
 
@@ -39,15 +55,7 @@ Both `marketingSettings` and `fieldMask` are **required**. `fieldMask` lists the
39
55
  "socialMarketing": { "frequency": { "interval": "WEEK", "count": 3 } }
40
56
  }
41
57
  },
42
- "fieldMask": [
43
- "settings.marketingPlanGoal",
44
- "settings.marketingTools",
45
- "settings.topics",
46
- "settings.toneOfVoice",
47
- "settings.pointOfView",
48
- "settings.businessProfile",
49
- "overrides.socialMarketing.frequency"
50
- ]
58
+ "fieldMask": "settings.marketingPlanGoal,settings.marketingTools,settings.topics,settings.toneOfVoice,settings.pointOfView,settings.businessProfile,overrides.socialMarketing.frequency"
51
59
  }
52
60
  ```
53
61
 
@@ -189,6 +197,7 @@ For activities that have no `items` yet, generate their posts, then schedule the
189
197
  | Symptom | Cause | Fix |
190
198
  | --- | --- | --- |
191
199
  | Plan `status: FAILED`, or `ACTIVE` with no posts | Site not published, or `SOCIAL_MARKETING` not enabled in settings | Publish the site; ensure `settings.marketingTools` includes `SOCIAL_MARKETING`, then regenerate (STEP 2) |
200
+ | `400` `"Failed to parse request message"` on Upsert Marketing Settings | `fieldMask` sent as a JSON array (or `{ "paths": [...] }`) instead of a comma-separated string | Send `fieldMask` as a single comma-separated string, e.g. `"settings.marketingPlanGoal,settings.toneOfVoice"` |
192
201
  | `INVALID_FIELD_MASK_ERROR` on Upsert Marketing Settings | A `fieldMask` path is missing from `marketingSettings` | Include every `fieldMask` path in the `marketingSettings` body |
193
202
  | Language, region, or location "won't change" via Upsert Marketing Settings | Those fields are read-only here (site-derived) | Change them in the site's Language & Region / SEO business-location settings, then regenerate |
194
203
  | `FAILED_PRECONDITION` on Schedule Drafts | Plan lacks the schedule-posts premium feature | Advise upgrading the social media marketing plan |
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: "Marketing Dashboard Navigation"
3
+ description: "Builds direct links to Wix marketing dashboard pages on manage.wix.com — the social posts hub (drafts, scheduled and published posts across connected channels), post design templates, saved designs, and the email marketing pages (campaigns list, campaign templates, campaign analytics). Pairs each main marketing entity (social post item, connected social account, marketing-plan post, email campaign) with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
4
+ ---
5
+
6
+ # Marketing Dashboard Navigation
7
+
8
+ Build direct links into the marketing pages of a site's dashboard. For the general URL contract (metaSiteId, fallbacks, redirects), see [Dashboard Navigation](../dashboard-navigation/dashboard-navigation.md).
9
+
10
+ Marketing pages are split across **two apps** with two URL namespaces:
11
+
12
+ - **Social Media Marketing** (`f27ff649-0249-4a0c-9438-841cbbfd2514`) — social posts, design templates. Routes under `social-marketing-web/`.
13
+ - **Email Marketing** (`135c3d92-0fea-1f9d-2ba5-2a1dfb04297e`) — email campaigns. Routes under `email-marketing/`.
14
+
15
+ Older links (`social-marketing`, `social-marketing/my-posts`, `shoutout`) redirect to the current routes.
16
+
17
+ ## Social Posts Pages (Social Media Marketing)
18
+
19
+ | Page | URL after `/dashboard/{metaSiteId}/` | What it manages |
20
+ |---|---|---|
21
+ | Social posts hub | `social-marketing-web` | Draft, scheduled, and published social posts across connected channels; create a new post |
22
+ | Design templates | `social-marketing-web/design-templates` | Post design template gallery |
23
+ | My designs | `social-marketing-web/my-designs` | Saved post designs |
24
+
25
+ Posts created or scheduled via the Publisher API (see [Create and Publish a Social Media Post](./create-and-publish-social-post.md)) and posts generated from an AI marketing plan (see [Generate a Marketing Plan](./generate-and-publish-marketing-plan.md)) all appear on the social posts hub.
26
+
27
+ ## Email Marketing Pages (Email Marketing)
28
+
29
+ | Page | URL after `/dashboard/{metaSiteId}/` | What it manages |
30
+ |---|---|---|
31
+ | Email marketing home | `email-marketing` | Email marketing hub |
32
+ | My campaigns | `email-marketing/my-campaigns` | All email campaigns (sent, scheduled, drafts) |
33
+ | Campaign templates | `email-marketing/template-list` | Start a campaign from a template |
34
+ | Campaign analytics | `email-marketing/analytics` | Campaign statistics |
35
+
36
+ ## Pairing Entities with Their Read APIs
37
+
38
+ Fetch the entity via REST, then link the matching dashboard page. All calls use `https://www.wixapis.com` with an `Authorization` header.
39
+
40
+ | Entity | Read API | Dashboard link |
41
+ |---|---|---|
42
+ | Social post (item) | Publisher API Item — created via `POST /social-publisher/v1/items`, published/scheduled via `POST /social-publisher/v1/publish-by-id` | `social-marketing-web` |
43
+ | Connected social account | `GET /social-publisher/v1/accounts?channelName={CHANNEL}` | `social-marketing-web` |
44
+ | Marketing-plan post | `GET /promote/marketing-plan-service/v1/marketing-plan?timeframe.startDate=...&timeframe.endDate=...` · `POST /promote/marketing-plan-service/v1/marketing-activity-posts` | `social-marketing-web` (scheduled posts land on the hub) |
45
+ | Email campaign | `GET /email-marketing/v1/campaigns` · `GET /email-marketing/v1/campaigns/{campaignId}` | `email-marketing/my-campaigns` |
46
+
47
+ Example — after scheduling a social post, hand back the hub link:
48
+
49
+ ```
50
+ Scheduled your Instagram post for tomorrow 9:00.
51
+ See it here: https://manage.wix.com/dashboard/{metaSiteId}/social-marketing-web
52
+ ```
@@ -26,7 +26,87 @@ Wix Pricing Plans includes Plans that allows Wix users to build a customized mem
26
26
  Before proceeding to further steps I must read the following [documentation](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/introduction) on how to form request to pricing plans API.
27
27
 
28
28
  ### 1. Create a pricing plan
29
- Creating a pricing plan can be done by using [create plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/plans-v3/create-plan) endpoint.
29
+ Create plans with the [Create Plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/plans-v3/create-plan) endpoint: `POST https://www.wixapis.com/pricing-plans/v3/plans`.
30
+
31
+ Prerequisites: the site must have the Wix Pricing Plans app installed, and a site currency must be
32
+ set — Create Plan returns `404 CURRENCY_MISSING` when the currency isn't set in site settings.
33
+
34
+ #### Required request fields
35
+
36
+ Send all of these on every create request. Two of them are easy to miss, so check them before
37
+ sending:
38
+
39
+ | Field | Notes |
40
+ | --- | --- |
41
+ | `plan.status` | Set to `"ACTIVE"`. **The generated Create Plan method schema does not list this field, but the server requires it.** Omitting it returns `400` with `plan.status: value is required` (`REQUIRED_FIELD`). The code examples on the Create Plan article all include it. |
42
+ | `plan.visibility` | `"PUBLIC"` or `"PRIVATE"`. |
43
+ | `plan.pricingVariants[].id` | **You must generate this GUID yourself — it is not server-assigned.** This is unusual for a create call, and it's the most common cause of a failed first attempt. Omitting it returns `400` with `plan.pricingVariants[0].id: is not a valid GUID` and `must not be empty`. Generate a fresh UUID per variant. |
44
+ | `plan.pricingVariants[].name` | Variant name, e.g. `"Monthly"` or the plan name for a single-variant plan. |
45
+ | `plan.pricingVariants[].billingTerms.startType` | `"ON_PURCHASE"` or `"CUSTOM"`. |
46
+ | `plan.pricingVariants[].billingTerms.endType` | `"UNTIL_CANCELLED"` or `"CYCLES_COMPLETED"`. With `CYCLES_COMPLETED`, also send `billingTerms.cyclesCompletedDetails.billingCycleCount`. |
47
+ | `plan.pricingVariants[].pricingStrategies[]` | Exactly one strategy. Use `flatRate.amount` as a decimal **string**, e.g. `"0"` or `"5.99"`. |
48
+
49
+ `pricingVariants` is currently limited to one variant per plan.
50
+
51
+ #### Minimal free plan
52
+
53
+ This is the complete minimal body for a free plan — copy it and change the names and the variant
54
+ GUID:
55
+
56
+ ```javascript
57
+ async function() {
58
+ return await wix.request({
59
+ method: 'POST',
60
+ url: 'https://www.wixapis.com/pricing-plans/v3/plans',
61
+ body: {
62
+ plan: {
63
+ name: 'Free Tier',
64
+ visibility: 'PUBLIC',
65
+ status: 'ACTIVE',
66
+ buyable: true,
67
+ buyerCanCancel: true,
68
+ pricingVariants: [
69
+ {
70
+ id: '7a3f1e2d-4b5c-6d7e-8f9a-0b1c2d3e4f5a', // generate a fresh GUID
71
+ name: 'Free Tier',
72
+ pricingStrategies: [{ flatRate: { amount: '0' } }],
73
+ billingTerms: {
74
+ startType: 'ON_PURCHASE',
75
+ endType: 'UNTIL_CANCELLED'
76
+ }
77
+ }
78
+ ]
79
+ }
80
+ }
81
+ });
82
+ }
83
+ ```
84
+
85
+ Do **not** add a `billingCycle` to a free plan: a free plan can't be recurring, and the server
86
+ rejects that combination with `400 FREE_PRICING_VARIANT_IS_NOT_RECURRING`.
87
+
88
+ #### Other plan types
89
+
90
+ Same required fields; only `billingTerms` and the `flatRate.amount` change.
91
+
92
+ | Plan type | `billingTerms` |
93
+ | --- | --- |
94
+ | Free, open-ended | Omit `billingCycle`; `endType: "UNTIL_CANCELLED"`. `flatRate.amount: "0"`. |
95
+ | One-time payment, fixed duration | `billingCycle` = the duration (e.g. `{ period: 'MONTH', count: 1 }`), `endType: "CYCLES_COMPLETED"`, `cyclesCompletedDetails.billingCycleCount: 1`. |
96
+ | Recurring, until cancelled | `billingCycle` = the recurrence (e.g. `{ period: 'MONTH', count: 1 }`), `endType: "UNTIL_CANCELLED"`. |
97
+
98
+ A `billingCycle` can't be shorter than 7 days, and total plan duration can't exceed 10 years
99
+ (`400 VALID_BILLING_CYCLE` / `400 VALID_PLAN_DURATION`).
100
+
101
+ Two more optional fields worth knowing:
102
+
103
+ - **Purchase caps.** In V3 these are `plan.purchaseLimits`, an array of
104
+ `{ type, maxCount }`. `type` is one of `PER_MEMBER_LIFETIME`, `PER_MEMBER_ACTIVE`,
105
+ `TOTAL_ACTIVE`, `TOTAL_SOLD`. To make a plan available only once per member, send
106
+ `purchaseLimits: [{ type: 'PER_MEMBER_LIFETIME', maxCount: 1 }]`. Some Create Plan examples still
107
+ use the V2-era `maxPurchasesPerBuyer` field; `purchaseLimits` is the V3 equivalent.
108
+ - **Free trials.** `pricingVariants[].freeTrialDays` only applies to recurring *paid* plans — using
109
+ it on a free plan returns `400 FREE_TRIAL_IS_APPLICABLE`.
30
110
 
31
111
  ### 2. Attach integrating app entity to pricing plans
32
112
 
@@ -69,6 +149,24 @@ Each item in the request for this endpoint must adhere to these rules:
69
149
  - `itemSetId` must set to the created pool definition benefit item set id.
70
150
  - `externalId` must be set to the integrating app entity id, example: booking service id or blog post id.
71
151
 
152
+ ### 3. Stop offering a plan — archive it, don't delete it
153
+
154
+ When the user asks to archive, retire, or stop offering a plan, **archive** it so existing
155
+ subscribers and order history are preserved. Archiving is an Update Plan call — there is no
156
+ separate archive endpoint, and Delete Plan is not the same thing:
157
+
158
+ ```bash
159
+ curl -X PATCH \
160
+ 'https://www.wixapis.com/pricing-plans/v3/plans/<PLAN_ID>' \
161
+ -H 'Authorization: <AUTH>' \
162
+ -H 'Content-Type: application/json' \
163
+ -d '{ "plan": { "id": "<PLAN_ID>", "revision": "<CURRENT_REVISION>", "archived": true } }'
164
+ ```
165
+
166
+ Carry the plan's current `revision` or the update is rejected. `archived` is not listed in the
167
+ generated Plan object reference, so it cannot be found by reading the schema — reach for it
168
+ directly rather than searching for an archive method or falling back to Delete Plan.
169
+
72
170
  ## Pricing plans REST API Documentation Reference
73
171
  - [Create plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/plans-v3/create-plan)
74
172
  - [Get plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/plans-v3/get-plan)
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: "Pricing Plans Dashboard Navigation"
3
+ description: "Builds direct links to Wix Pricing Plans dashboard pages on manage.wix.com — plans list, create a plan, edit a plan, record a manual order, and settings. Pairs each main Pricing Plans entity (plan, order) with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
4
+ ---
5
+
6
+ # Pricing Plans Dashboard Navigation
7
+
8
+ Build direct links into the Wix Pricing Plans pages of a site's dashboard. For the general URL contract (metaSiteId, fallbacks, redirects), see [Dashboard Navigation](../dashboard-navigation/dashboard-navigation.md).
9
+
10
+ All Wix Pricing Plans (app ID `1522827f-c56c-a5c9-2ac9-00f9e6ae12d3`) pages live under:
11
+
12
+ ```
13
+ https://manage.wix.com/dashboard/{metaSiteId}/pricing-plans/{route}
14
+ ```
15
+
16
+ ## Main Pages
17
+
18
+ | Page | URL after `/dashboard/{metaSiteId}/` | What it manages |
19
+ |---|---|---|
20
+ | Plans list | `pricing-plans` | All pricing plans; purchases (orders/subscriptions) are a tab of this page |
21
+ | Create plan | `pricing-plans/new` | New plan form |
22
+ | Edit plan | `pricing-plans/edit` | A specific plan — reached from the plans list (no documented ID path segment) |
23
+ | New manual order | `pricing-plans/new-order` | Record a manual (offline) plan order for a member |
24
+ | Settings | `pricing-plans/settings` | Pricing Plans settings |
25
+
26
+ There is no separate route for the purchases list — it is a tab of the main `pricing-plans` page.
27
+
28
+ Older `membership...` links (`membership`, `paid-plans`, `membership/setup`, `membership/orders/new`, `membership-settings`) redirect to the current routes.
29
+
30
+ ## Pairing Entities with Their Read APIs
31
+
32
+ Fetch the entity via REST, then link the matching dashboard page. All calls use `https://www.wixapis.com` with an `Authorization` header.
33
+
34
+ | Entity | Read API | Dashboard link |
35
+ |---|---|---|
36
+ | Plan | `POST /pricing-plans/v3/plans/query` · `GET /pricing-plans/v3/plans/{planId}` | `pricing-plans` (list) or `pricing-plans/edit` (opened from the list) |
37
+ | Order (subscription/purchase) | `GET /pricing-plans/v2/orders` · `GET /pricing-plans/v2/orders/{id}` | `pricing-plans` (purchases tab) |
38
+ | Settings | Pricing Plans Settings API (Get Pricing Plans Settings) | `pricing-plans/settings` |
39
+
40
+ Example — after creating a plan, hand back the plans page:
41
+
42
+ ```
43
+ Created "Gold Membership".
44
+ Manage it here: https://manage.wix.com/dashboard/{metaSiteId}/pricing-plans
45
+ ```
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: "Restaurants Dashboard Navigation"
3
+ description: "Builds direct links to Wix Restaurants dashboard pages on manage.wix.com — menus, menu items, the online orders board, online-ordering fulfillment settings (pickup, delivery, dine-in), the reservations list, floor plans, and reservation experience settings. Pairs each main Restaurants entity (menu, section, item, order, reservation) with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
4
+ ---
5
+
6
+ # Restaurants Dashboard Navigation
7
+
8
+ Build direct links into the restaurant pages of a site's dashboard. For the general URL contract (metaSiteId, fallbacks, redirects), see [Dashboard Navigation](../dashboard-navigation/dashboard-navigation.md).
9
+
10
+ Restaurant pages are split across **three apps** with three URL namespaces:
11
+
12
+ - **Wix Restaurants Menus** (`b278a256-2757-4f19-9313-c05c783bec92`) — menus, sections, items. Routes under `wix-restaurants-menus-new/`.
13
+ - **Wix Restaurants Orders** (`9a5d83fd-8570-482e-81ab-cfa88942ee60`) — online orders board and online-ordering settings. Routes under `wix-restaurants-orders-new/`.
14
+ - **Wix Table Reservations** (`f9c07de2-5341-40c6-b096-8eb39de391fb`) — reservations, floor plans, reservation experiences. Routes under `wix-table-reservations/`.
15
+
16
+ Older links (`restaurants/menus-management`, `restaurants/table-reservations`, `restaurants-orders-prep-board`, `olo-settings/...`) redirect to the current routes.
17
+
18
+ ## Menus Pages (Wix Restaurants Menus)
19
+
20
+ | Page | URL after `/dashboard/{metaSiteId}/` | What it manages |
21
+ |---|---|---|
22
+ | Menus | `wix-restaurants-menus-new` | All menus (and their sections) |
23
+ | Edit menu | `wix-restaurants-menus-new/menu/{menuId}` | A specific menu |
24
+ | Items | `wix-restaurants-menus-new/items` | All menu items |
25
+ | Menu printing | `wix-restaurants-menus-new/menus-printing` | Print-ready menu export |
26
+
27
+ ## Orders Pages (Wix Restaurants Orders)
28
+
29
+ | Page | URL after `/dashboard/{metaSiteId}/` | What it manages |
30
+ |---|---|---|
31
+ | Orders board | `wix-restaurants-orders-new` | Incoming online orders (prep board) |
32
+ | Online orders settings | `wix-restaurants-orders-new/settings` | Online-ordering settings hub |
33
+
34
+ Fulfillment and ordering sub-settings live at `wix-restaurants-orders-new/settings/{subpage}`: `pickup`, `delivery`, `pickup-delivery`, `dine-in`, `closure-dates`, `scheduling-page`, `service-fee`, `printing`, `doordash`.
35
+
36
+ ## Reservations Pages (Wix Table Reservations)
37
+
38
+ | Page | URL after `/dashboard/{metaSiteId}/` | What it manages |
39
+ |---|---|---|
40
+ | Reservations list | `wix-table-reservations/table-reservations` | All table reservations |
41
+ | Floor plan view | `wix-table-reservations/floor-plan-view` | Live floor-plan view of reservations |
42
+ | Floor plan editor | `wix-table-reservations/floor-plan` | Table layout (floor plan) |
43
+ | Create experience | `wix-table-reservations/create-experience` | New reservation experience |
44
+ | Experience settings | `wix-table-reservations/experience` | A reservation experience (seating rules, policies) |
45
+
46
+ Experience sub-settings live at `wix-table-reservations/experience/{subpage}`: `details`, `schedule`, `reservation-form`, `reservation-settings`, `table-assignment`, `polices`.
47
+
48
+ ## Pairing Entities with Their Read APIs
49
+
50
+ Fetch the entity via REST, then link the matching dashboard page. All calls use `https://www.wixapis.com` with an `Authorization` header.
51
+
52
+ | Entity | Read API | Dashboard link |
53
+ |---|---|---|
54
+ | Menu | `POST /restaurants/menus-menu/v1/menus/query` · `GET /restaurants/menus-menu/v1/menus` | `wix-restaurants-menus-new/menu/{menuId}` (edit) or `wix-restaurants-menus-new` (list) |
55
+ | Section | `POST /restaurants/menus-section/v1/sections/query` | `wix-restaurants-menus-new` (sections are managed inside their menu) |
56
+ | Item | `POST /restaurants/menus-item/v1/items/query` | `wix-restaurants-menus-new/items` |
57
+ | Order | `POST /ecom/v1/orders/search` · `GET /ecom/v1/orders/{orderId}` | `wix-restaurants-orders-new` (board) or `ecom-platform/order-details/{orderId}` |
58
+ | Reservation | `POST /table-reservations/reservations/v1/reservations/query` · `GET /table-reservations/reservations/v1/reservations/{reservationId}` | `wix-table-reservations/table-reservations` |
59
+ | Reservation location (settings) | `POST /table-reservations/reservation-locations/v1/reservation-locations/query` | `wix-table-reservations/experience` |
60
+
61
+ Restaurant online orders are eCommerce orders (their `lineItems[].catalogReference.appId` is `9a5d83fd-8570-482e-81ab-cfa88942ee60`), so they can also be read and linked through the eCommerce orders pages.
62
+
63
+ Example — after creating a menu, hand back its edit link:
64
+
65
+ ```
66
+ Created "Dinner Menu".
67
+ Manage it here: https://manage.wix.com/dashboard/{metaSiteId}/wix-restaurants-menus-new/menu/{menuId}
68
+ ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "Wix Restaurants Setup"
3
- description: Configures restaurant menus, sections, and items using Menus API. Covers menu structure (Menu → Section → Item), modifiers, pricing, availability schedules, and ordering settings.
3
+ description: Configures restaurant menus, sections, and items using Menus API. Covers menu structure (Menu → Section → Item), the two-step item modifier / modifier group flow, pricing, availability schedules, and ordering settings.
4
4
  ---
5
5
  # Wix Restaurants Setup API Reference
6
6
 
@@ -16,6 +16,7 @@ This recipe covers setting up and configuring Wix Restaurants using the REST API
16
16
  - **Menus API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/menus/create-menu)
17
17
  - **Menu Items API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/items/create-item)
18
18
  - **Menu Sections API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/sections/create-section)
19
+ - **Item Modifiers API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/item-modifiers/create-modifier)
19
20
  - **Item Modifier Groups API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/item-modifier-groups/create-modifier-group)
20
21
  - **Item Variants API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/item-variants/bulk-create-variants)
21
22
 
@@ -70,32 +71,8 @@ Wix Restaurants uses a hierarchical structure:
70
71
  }
71
72
  ```
72
73
 
73
- Create multiple sections:
74
- ```json
75
- // Section 1: Appetizers
76
- {
77
- "section": {
78
- "name": "Appetizers",
79
- "sortOrder": 1
80
- }
81
- }
82
-
83
- // Section 2: Main Courses
84
- {
85
- "section": {
86
- "name": "Main Courses",
87
- "sortOrder": 2
88
- }
89
- }
90
-
91
- // Section 3: Desserts
92
- {
93
- "section": {
94
- "name": "Desserts",
95
- "sortOrder": 3
96
- }
97
- }
98
- ```
74
+ Repeat per section, incrementing `sortOrder`, or create them all at once with the bulk endpoint
75
+ in Step 7.
99
76
 
100
77
  ## Step 3: Create Menu Items
101
78
 
@@ -115,6 +92,9 @@ Create multiple sections:
115
92
  }
116
93
  ```
117
94
 
95
+ `modifierGroups` holds objects referencing existing modifier groups —
96
+ `[{ "id": "<MODIFIER_GROUP_ID>" }]`. Leave it empty until the groups exist (Step 5).
97
+
118
98
  ## Step 4: Add Items to Sections
119
99
 
120
100
  **Endpoint**: `PATCH https://www.wixapis.com/restaurants/menus-section/v1/sections/{sectionId}`
@@ -133,86 +113,103 @@ Each section update requires the latest section `revision`.
133
113
 
134
114
  ## Step 5: Configure Item Options and Modifiers
135
115
 
136
- Create modifiers for customization (e.g., cooking temperature, add-ons):
116
+ A modifier group (e.g. "Cooking Temperature", "Toppings") holds a set of individual choices and
117
+ the selection rule that governs them. **The choices are separate entities** — a modifier group
118
+ does not contain inline options. Creating a group therefore takes two calls, in this order:
137
119
 
138
- **Endpoint**: `POST https://www.wixapis.com/restaurants/item-modifier-group/v1/modifier-groups`
120
+ 1. Create one **item modifier** per choice (Item Modifiers API) and keep each returned `id`.
121
+ 2. Create the **modifier group** (Item Modifier Groups API), referencing those IDs.
122
+
123
+ Do both calls; a group created without step 1 comes back with an empty `modifiers` array and no
124
+ choices are saved.
125
+
126
+ ### Step 5a: Create each item modifier
127
+
128
+ **Endpoint**: `POST https://www.wixapis.com/restaurants/item-modifiers/v1/modifiers`
129
+
130
+ Only `modifier.name` is required.
139
131
 
140
132
  ```json
141
133
  {
142
134
  "modifier": {
143
- "name": "Cooking Temperature",
144
- "required": true,
145
- "minSelections": 1,
146
- "maxSelections": 1,
147
- "options": [
148
- {
149
- "name": "Rare",
150
- "price": {
151
- "amount": "0",
152
- "currency": "USD"
153
- }
154
- },
155
- {
156
- "name": "Medium Rare",
157
- "price": {
158
- "amount": "0",
159
- "currency": "USD"
160
- }
161
- },
162
- {
163
- "name": "Medium",
164
- "price": {
165
- "amount": "0",
166
- "currency": "USD"
167
- }
168
- },
169
- {
170
- "name": "Well Done",
171
- "price": {
172
- "amount": "0",
173
- "currency": "USD"
174
- }
175
- }
176
- ]
135
+ "name": "Extra Cheese",
136
+ "type": "MODIFIER"
177
137
  }
178
138
  }
179
139
  ```
180
140
 
181
- Add-on modifier with pricing:
141
+ The response returns the new `modifier.id`. Repeat per choice, collecting the IDs.
142
+
143
+ ### Step 5b: Create the modifier group
144
+
145
+ **Endpoint**: `POST https://www.wixapis.com/restaurants/item-modifier-group/v1/modifier-groups`
146
+
147
+ The request body's top-level field is **`modifierGroup`**. Sending `modifier` instead is rejected
148
+ with `400 modifierGroup must not be empty` (`violatedRule: REQUIRED_FIELD`).
149
+
150
+ Required: `modifierGroup` and `modifierGroup.name`.
151
+
182
152
  ```json
183
153
  {
184
- "modifier": {
185
- "name": "Add-ons",
186
- "required": false,
187
- "minSelections": 0,
188
- "maxSelections": 5,
189
- "options": [
154
+ "modifierGroup": {
155
+ "name": "Toppings",
156
+ "modifiers": [
190
157
  {
191
- "name": "Extra Cheese",
192
- "price": {
193
- "amount": "2.00",
194
- "currency": "USD"
195
- }
158
+ "id": "<ITEM_MODIFIER_ID_1>",
159
+ "additionalChargeInfo": { "additionalCharge": "2.00" }
196
160
  },
197
161
  {
198
- "name": "Bacon",
199
- "price": {
200
- "amount": "3.00",
201
- "currency": "USD"
202
- }
203
- },
204
- {
205
- "name": "Avocado",
206
- "price": {
207
- "amount": "2.50",
208
- "currency": "USD"
209
- }
162
+ "id": "<ITEM_MODIFIER_ID_2>",
163
+ "additionalChargeInfo": { "additionalCharge": "0.00" }
210
164
  }
211
- ]
165
+ ],
166
+ "rule": {
167
+ "required": false,
168
+ "minSelections": 0,
169
+ "maxSelections": 5
170
+ }
171
+ }
172
+ }
173
+ ```
174
+
175
+ For a mandatory single-choice group (e.g. cooking temperature) use the same shape with
176
+ `"rule": { "required": true, "minSelections": 1, "maxSelections": 1 }`.
177
+
178
+ **Field reference** for `modifierGroup`:
179
+
180
+ | Field | Notes |
181
+ |-------|-------|
182
+ | `name` | Required. The group's display name. |
183
+ | `modifiers[].id` | ID of an existing item modifier from Step 5a — not a name. Up to 500. |
184
+ | `modifiers[].additionalChargeInfo.additionalCharge` | That choice's surcharge, a decimal string (`"2.00"`). No `currency` field — the site currency is used. |
185
+ | `modifiers[].preSelected` | Optional boolean; selects the choice by default. |
186
+ | `rule.required` | Whether the customer must choose. Named `required`, not `mandatory`. |
187
+ | `rule.minSelections` / `rule.maxSelections` | Integers bounding how many choices are allowed. |
188
+
189
+ There is no `options` field and no per-option `price` object.
190
+
191
+ ### Step 5c: Attach the group to an item
192
+
193
+ A modifier group only reaches customers once an item references it. The item's `modifierGroups`
194
+ is an array of **objects carrying an `id`**, not bare ID strings.
195
+
196
+ **Endpoint**: `PATCH https://www.wixapis.com/restaurants/menus-item/v1/items/{itemId}`
197
+
198
+ ```json
199
+ {
200
+ "item": {
201
+ "id": "<ITEM_ID>",
202
+ "revision": "<ITEM_REVISION>",
203
+ "modifierGroups": [{ "id": "<MODIFIER_GROUP_ID>" }]
212
204
  }
213
205
  }
214
206
  ```
215
207
 
208
+ To create modifier groups in bulk, use
209
+ `POST https://www.wixapis.com/restaurants/menus/v1/bulk/modifier-groups/create` and
210
+ `POST https://www.wixapis.com/restaurants/menus/v1/bulk/modifiers/create`; the per-entity body
211
+ shape is the same.
212
+
216
213
  ## Step 6: Set Menu Structure (Attach Sections to Menu)
217
214
 
218
215
  Attach section IDs to a menu. This call requires the latest menu `revision`.
@@ -265,39 +262,18 @@ Use query APIs for retrieval and UI display flows.
265
262
  }
266
263
  ```
267
264
 
268
- ## Query Menus
269
-
270
- **Endpoint**: `GET https://www.wixapis.com/restaurants/menus-menu/v1/menus`
271
-
272
- **Response**:
273
- ```json
274
- {
275
- "menus": [
276
- {
277
- "id": "menu-1",
278
- "name": "Breakfast Menu",
279
- "visible": true,
280
- "sections": [...]
281
- },
282
- {
283
- "id": "menu-2",
284
- "name": "Lunch Menu",
285
- "visible": true,
286
- "sections": [...]
287
- }
288
- ]
289
- }
290
- ```
291
-
292
265
  ## Recommended Setup Order
293
266
 
294
267
  For complex restaurant menus, use this order to avoid dependency issues:
295
268
 
296
269
  1. Create variants (sizes/options) if needed.
297
- 2. Create items (single or bulk).
298
- 3. Create sections (single or bulk).
299
- 4. Update each section with `itemIds`.
300
- 5. Update menu with `sectionIds`.
270
+ 2. Create item modifiers, then group them into modifier groups (Step 5) if the items need
271
+ customization options.
272
+ 3. Create items (single or bulk).
273
+ 4. Create sections (single or bulk).
274
+ 5. Update each section with `itemIds`.
275
+ 6. Update menu with `sectionIds`.
276
+ 7. Update items with `modifierGroups` to attach the groups from step 2.
301
277
 
302
278
  ## Item Labels
303
279
 
@@ -311,15 +287,6 @@ Common dietary labels:
311
287
  - `spicy`
312
288
  - `chef-recommendation`
313
289
 
314
- ## Best Practices
315
-
316
- 1. **High-Quality Images**: Use appetizing food photography
317
- 2. **Clear Descriptions**: Include ingredients and preparation methods
318
- 3. **Accurate Pricing**: Keep prices up-to-date
319
- 4. **Stock Management**: Update availability in real-time
320
- 5. **Modifier Organization**: Group related customizations logically
321
- 6. **Menu Structure**: Organize sections in logical dining order
322
-
323
290
  ## Error Handling
324
291
 
325
292
  | Error | Cause | Solution |
@@ -327,6 +294,8 @@ Common dietary labels:
327
294
  | `MENU_NOT_FOUND` | Invalid menu ID | Verify menu exists |
328
295
  | `ITEM_NOT_FOUND` | Invalid item ID | Verify item exists |
329
296
  | `INVALID_PRICE` | Negative price | Use positive amounts |
297
+ | `400 modifierGroup must not be empty` | Request body wrapped the group in `modifier` instead of `modifierGroup` | Use `modifierGroup` as the top-level field (Step 5b) |
298
+ | Group created but `modifiers` is `[]` | Choices were sent inline (e.g. an `options` array) instead of as item modifier IDs | Create item modifiers first, then reference their IDs in `modifiers[].id` (Step 5a → 5b) |
330
299
 
331
300
  ## Related Documentation
332
301