@wix/agent-skills 1.33.1 → 1.35.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 -0
- package/package.json +1 -1
- package/skills/wix-export/SKILL.md +83 -0
- package/skills/wix-harmony-editor/.publish-manifest.json +8 -0
- package/skills/wix-harmony-editor/COPY-SITE.md +494 -0
- package/skills/wix-harmony-editor/SKILL.md +317 -0
- package/skills/wix-harmony-editor/scripts/copy/build-description.mjs +249 -0
- package/skills/wix-harmony-editor/scripts/copy/check-description.mjs +225 -0
- package/skills/wix-harmony-editor/scripts/copy/check-mirror.mjs +89 -0
- package/skills/wix-harmony-editor/scripts/copy/compare-preview.mjs +76 -0
- package/skills/wix-harmony-editor/scripts/copy/deploy-description.mjs +212 -0
- package/skills/wix-harmony-editor/scripts/copy/desc-hash.mjs +44 -0
- package/skills/wix-harmony-editor/scripts/copy/editor-run.mjs +45 -0
- package/skills/wix-harmony-editor/scripts/copy/export-page.mjs +53 -0
- package/skills/wix-harmony-editor/scripts/copy/find-interactions.mjs +76 -0
- package/skills/wix-harmony-editor/scripts/copy/hide-scrollbars.mjs +16 -0
- package/skills/wix-harmony-editor/scripts/copy/import-media.mjs +150 -0
- package/skills/wix-harmony-editor/scripts/copy/link-url.mjs +27 -0
- package/skills/wix-harmony-editor/scripts/copy/lint-api.mjs +56 -0
- package/skills/wix-harmony-editor/scripts/copy/measure-source.mjs +211 -0
- package/skills/wix-harmony-editor/scripts/copy/merge-mirrors.mjs +29 -0
- package/skills/wix-harmony-editor/scripts/copy/mirror-site.mjs +92 -0
- package/skills/wix-harmony-editor/scripts/copy/mobile-stage.mjs +56 -0
- package/skills/wix-harmony-editor/scripts/copy/preview-widths.mjs +73 -0
- package/skills/wix-harmony-editor/scripts/copy/render-plate.mjs +67 -0
- package/skills/wix-harmony-editor/scripts/copy/serve-mirror.mjs +102 -0
- package/skills/wix-harmony-editor/scripts/copy/snapshot-capabilities.mjs +40 -0
- package/skills/wix-harmony-editor/scripts/copy/split-sections.mjs +191 -0
- package/skills/wix-harmony-editor/scripts/copy/upload-media-manager.mjs +61 -0
- package/skills/wix-harmony-editor/scripts/launch.sh +359 -0
- package/skills/wix-headless/SKILL.md +7 -2
- package/skills/wix-headless/references/CAPABILITIES.md +6 -1
- package/skills/wix-headless/references/DISCOVERY.md +2 -1
- package/skills/wix-headless/references/SDK_HANDOFF.md +6 -1
- package/skills/wix-headless/references/SEED.md +3 -2
- package/skills/wix-headless/references/SETUP.md +1 -0
- package/skills/wix-headless/references/inline-recipes/experience-donations.md +102 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-donations.md +146 -0
- package/skills/wix-headless/references/inline-recipes/setup-donations.md +15 -0
- package/skills/wix-headless/references/managed/CREATE.md +1 -1
- package/skills/wix-headless-kit/SKILL.md +110 -21
- package/skills/wix-headless-kit/guides/api-run.md +15 -13
- package/skills/wix-headless-kit/guides/existing-site.md +31 -0
- package/skills/wix-headless-kit/guides/migration.md +49 -17
- package/skills/wix-headless-kit/install/agents-md.mjs +1 -1
- package/skills/wix-headless-kit/install/context.mjs +61 -6
- package/skills/wix-headless-kit/install/pins.json +1 -1
- package/skills/wix-headless-kit/install/setup.mjs +107 -12
- package/skills/wix-headless-replatform/.publish-manifest.json +8 -0
- package/skills/wix-headless-replatform/SKILL.md +116 -0
- package/skills/wix-headless-replatform/agents/openai.yaml +6 -0
- package/skills/wix-headless-replatform/references/control-and-visual-fidelity-contract.md +43 -0
- package/skills/wix-headless-replatform/references/extraction-schema.md +187 -0
- package/skills/wix-headless-replatform/references/interaction-runtime-contract.md +137 -0
- package/skills/wix-headless-replatform/references/layout-blueprint-contract.md +41 -0
- package/skills/wix-headless-replatform/references/output-contract.md +93 -0
- package/skills/wix-headless-replatform/references/post-build-gap-contract.md +125 -0
- package/skills/wix-headless-replatform/references/qa-checklist.md +83 -0
- package/skills/wix-headless-replatform/references/safety.md +19 -0
- package/skills/wix-headless-replatform/references/ui-normalization-contract.md +70 -0
- package/skills/wix-headless-replatform/references/workflow.md +157 -0
- package/skills/wix-headless-replatform/registry/README.md +20 -0
- package/skills/wix-headless-replatform/registry/approvals/button/shadcn-default-ac60ef5.json +28 -0
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/button.tsx +54 -0
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/capabilities.json +60 -0
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/contract.md +48 -0
- package/skills/wix-headless-replatform/registry/licenses/shadcn-ui-ac60ef5-MIT.txt +21 -0
- package/skills/wix-headless-replatform/registry/registry.json +36 -0
- package/skills/wix-headless-replatform/resources/rp-facelift/SKILL.md +32 -0
- package/skills/wix-headless-replatform/resources/rp-project-context/SKILL.md +62 -0
- package/skills/wix-headless-replatform/resources/rp-qa-gap-loop/SKILL.md +64 -0
- package/skills/wix-headless-replatform/resources/rp-source-evidence/SKILL.md +42 -0
- package/skills/wix-headless-replatform/resources/rp-ui-implementation/SKILL.md +73 -0
- package/skills/wix-headless-replatform/schemas/build-plan.schema.json +10 -0
- package/skills/wix-headless-replatform/schemas/candidate.schema.json +19 -0
- package/skills/wix-headless-replatform/schemas/common.schema.json +33 -0
- package/skills/wix-headless-replatform/schemas/decision-patch.schema.json +10 -0
- package/skills/wix-headless-replatform/schemas/decision-request.schema.json +10 -0
- package/skills/wix-headless-replatform/schemas/extraction-gap.schema.json +28 -0
- package/skills/wix-headless-replatform/schemas/extraction-manifest.schema.json +34 -0
- package/skills/wix-headless-replatform/schemas/final-report.schema.json +10 -0
- package/skills/wix-headless-replatform/schemas/foundation.schema.json +11 -0
- package/skills/wix-headless-replatform/schemas/metadata.schema.json +11 -0
- package/skills/wix-headless-replatform/schemas/observation-packet.schema.json +17 -0
- package/skills/wix-headless-replatform/schemas/page-capture.schema.json +11 -0
- package/skills/wix-headless-replatform/schemas/page-resolution.schema.json +33 -0
- package/skills/wix-headless-replatform/schemas/shared-chrome.schema.json +11 -0
- package/skills/wix-headless-replatform/schemas/unit.schema.json +40 -0
- package/skills/wix-headless-replatform/scripts/assemble-extraction.mjs +844 -0
- package/skills/wix-headless-replatform/scripts/benchmark-extraction.mjs +163 -0
- package/skills/wix-headless-replatform/scripts/browser-extraction-preflight.mjs +42 -0
- package/skills/wix-headless-replatform/scripts/build-extracted-homepage.mjs +228 -0
- package/skills/wix-headless-replatform/scripts/clear-wix-starter.mjs +87 -0
- package/skills/wix-headless-replatform/scripts/create-wix-project.mjs +505 -0
- package/skills/wix-headless-replatform/scripts/discover-urls.mjs +142 -0
- package/skills/wix-headless-replatform/scripts/extract-assets.mjs +140 -0
- package/skills/wix-headless-replatform/scripts/extract-design-system.mjs +637 -0
- package/skills/wix-headless-replatform/scripts/extract-interactions.mjs +1903 -0
- package/skills/wix-headless-replatform/scripts/extract-page.mjs +2461 -0
- package/skills/wix-headless-replatform/scripts/extract-seo.mjs +25 -0
- package/skills/wix-headless-replatform/scripts/extract-tokens.mjs +63 -0
- package/skills/wix-headless-replatform/scripts/finalize-extraction-report.mjs +126 -0
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.mjs +180 -0
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.test.mjs +98 -0
- package/skills/wix-headless-replatform/scripts/finalize-migration-website.mjs +103 -0
- package/skills/wix-headless-replatform/scripts/generate-control-state-contract.mjs +176 -0
- package/skills/wix-headless-replatform/scripts/generate-design-md.mjs +261 -0
- package/skills/wix-headless-replatform/scripts/generate-extraction-validators.mjs +25 -0
- package/skills/wix-headless-replatform/scripts/generate-invoice-download-backend.mjs +342 -0
- package/skills/wix-headless-replatform/scripts/generate-layout-blueprint.mjs +140 -0
- package/skills/wix-headless-replatform/scripts/generate-repeater-cms.mjs +22 -0
- package/skills/wix-headless-replatform/scripts/generate-route-plan.mjs +143 -0
- package/skills/wix-headless-replatform/scripts/generate-scene-contract.mjs +288 -0
- package/skills/wix-headless-replatform/scripts/generate-ui-normalization.mjs +266 -0
- package/skills/wix-headless-replatform/scripts/generate-visual-assets.mjs +111 -0
- package/skills/wix-headless-replatform/scripts/lib/browser-tooling.mjs +570 -0
- package/skills/wix-headless-replatform/scripts/lib/common.mjs +329 -0
- package/skills/wix-headless-replatform/scripts/lib/component-capabilities.mjs +121 -0
- package/skills/wix-headless-replatform/scripts/lib/component-registry.mjs +282 -0
- package/skills/wix-headless-replatform/scripts/lib/content-boundary.mjs +61 -0
- package/skills/wix-headless-replatform/scripts/lib/extraction-contract.mjs +374 -0
- package/skills/wix-headless-replatform/scripts/lib/extraction-detectors.mjs +243 -0
- package/skills/wix-headless-replatform/scripts/lib/extraction-validators.generated.mjs +1139 -0
- package/skills/wix-headless-replatform/scripts/lib/font-contract.mjs +326 -0
- package/skills/wix-headless-replatform/scripts/lib/frontend-automation-state.mjs +184 -0
- package/skills/wix-headless-replatform/scripts/lib/gap-analysis.mjs +396 -0
- package/skills/wix-headless-replatform/scripts/lib/html-extract.mjs +168 -0
- package/skills/wix-headless-replatform/scripts/lib/interaction-bootstrap.mjs +10 -0
- package/skills/wix-headless-replatform/scripts/lib/interaction-runtime.mjs +194 -0
- package/skills/wix-headless-replatform/scripts/lib/interaction-timeline.mjs +348 -0
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/classifiers.mjs +141 -0
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/geometry.mjs +43 -0
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/vocabulary.mjs +18 -0
- package/skills/wix-headless-replatform/scripts/lib/ui-normalization.css +64 -0
- package/skills/wix-headless-replatform/scripts/optimize-svg.mjs +31 -0
- package/skills/wix-headless-replatform/scripts/post-build-gap.mjs +358 -0
- package/skills/wix-headless-replatform/scripts/provision-repeater-cms.mjs +25 -0
- package/skills/wix-headless-replatform/scripts/record-gap-decision.mjs +39 -0
- package/skills/wix-headless-replatform/scripts/replay-extraction.mjs +107 -0
- package/skills/wix-headless-replatform/scripts/resolve-home-page.mjs +96 -0
- package/skills/wix-headless-replatform/scripts/site-clone.mjs +658 -0
- package/skills/wix-headless-replatform/scripts/validate-font-contract.mjs +29 -0
- package/skills/wix-headless-replatform/scripts/verify-interactions.mjs +669 -0
- package/skills/wix-headless-replatform/scripts/visual-qa.mjs +370 -0
- package/skills/wix-headless-templates/donations/INSTRUCTIONS.md +37 -24
- package/skills/wix-headless-templates/donations/app/components/donations/DonateForm.tsx +49 -23
- package/skills/wix-headless-templates/donations/app/components/donations/DonationReceipt.tsx +6 -5
- package/skills/wix-headless-templates/donations/app/components/donations/GoalProgress.tsx +5 -5
- package/skills/wix-headless-templates/donations/app/wix/donations/campaigns.ts +4 -4
- package/skills/wix-headless-templates/donations/app/wix/donations/donate.ts +7 -3
- package/skills/wix-headless-templates/donations/app/wix/donations/donation-store.ts +2 -2
- package/skills/wix-headless-templates/donations/app/wix/donations/donations-core.ts +12 -9
- package/skills/wix-headless-templates/donations/project/src/components/donations/DonateForm.tsx +49 -23
- package/skills/wix-headless-templates/donations/project/src/components/donations/DonationReceipt.tsx +6 -5
- package/skills/wix-headless-templates/donations/project/src/components/donations/GoalProgress.tsx +5 -5
- package/skills/wix-headless-templates/donations/project/src/wix/donations/campaigns.ts +4 -4
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donate.ts +7 -3
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donation-store.ts +2 -2
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donations-core.ts +12 -9
- package/skills/wix-headless-templates/donations/rest/campaigns.ts +4 -4
- package/skills/wix-headless-templates/donations/rest/donate.ts +7 -3
- package/skills/wix-headless-templates/donations/seed/SEED.md +12 -7
- package/skills/wix-headless-templates/donations/tests/donation-contract.test.mjs +71 -0
- package/skills/wix-headless-templates/donations/tests/donation-form.test.cjs +137 -0
- package/skills/wix-headless-templates/restaurants/INSTRUCTIONS.md +28 -14
- package/skills/wix-headless-templates/restaurants/app/components/restaurants/OrderCartDrawer.tsx +87 -5
- package/skills/wix-headless-templates/restaurants/app/hooks/restaurants/useOrderCart.ts +9 -1
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/order-store.ts +33 -4
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/ordering-core.ts +100 -5
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/ordering.ts +101 -15
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/types.ts +35 -1
- package/skills/wix-headless-templates/restaurants/project/src/components/restaurants/OrderCartDrawer.tsx +87 -5
- package/skills/wix-headless-templates/restaurants/project/src/hooks/restaurants/useOrderCart.ts +9 -1
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/order-store.ts +33 -4
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/ordering-core.ts +100 -5
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/ordering.ts +101 -15
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/types.ts +35 -1
- package/skills/wix-headless-templates/restaurants/rest/ordering.ts +91 -14
- package/skills/wix-import/SKILL.md +90 -0
- package/skills/wix-manage/SKILL.md +14 -4
- package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +2 -0
- package/skills/wix-manage/references/dashboard-navigation/dashboard-navigation.md +2 -1
- package/skills/wix-manage/references/dashboard-navigation/routes.json +249 -0
- package/skills/wix-manage/references/donations/create-and-update-donation-campaigns.md +139 -0
- package/skills/wix-manage/references/events/events-dashboard-navigation.md +81 -0
- package/skills/wix-manage/references/seo/manage-content-plan.md +207 -222
- package/skills/wix-manage/references/sites/manage-oauth-apps.md +1 -0
- package/skills/wix-manage/references/sites/upload-static-site.md +128 -8
- package/skills/wix-readme/SKILL.md +166 -0
- package/skills/wix-replatform/.publish-manifest.json +5 -5
- package/skills/wix-replatform/CLI.md +162 -0
- package/skills/wix-replatform/README.md +52 -0
- package/skills/wix-replatform/SKILL.md +229 -684
- package/skills/wix-replatform/console/account.css +1 -0
- package/skills/wix-replatform/console/app.css +1 -0
- package/skills/wix-replatform/console/app.js +117 -0
- package/skills/wix-replatform/console/index.html +4 -0
- package/skills/wix-replatform/console/json.css +11 -0
- package/skills/wix-replatform/lib/agent-adapters/index.js +71 -0
- package/skills/wix-replatform/lib/app-page-routing.js +75 -0
- package/skills/wix-replatform/lib/artifact-freshness.js +11 -1
- package/skills/wix-replatform/lib/blocked-data-requests.js +427 -0
- package/skills/wix-replatform/lib/census-reconciliation.js +426 -0
- package/skills/wix-replatform/lib/completion-report.js +1393 -13
- package/skills/wix-replatform/lib/config-env.js +85 -11
- package/skills/wix-replatform/lib/confirmed-pictures.js +212 -0
- package/skills/wix-replatform/lib/dependency-readiness.js +423 -0
- package/skills/wix-replatform/lib/dependency-recovery.js +21 -0
- package/skills/wix-replatform/lib/destination-choice.js +163 -0
- package/skills/wix-replatform/lib/destination-handoff.js +62 -0
- package/skills/wix-replatform/lib/destination-http.js +81 -0
- package/skills/wix-replatform/lib/destination-route.js +98 -0
- package/skills/wix-replatform/lib/destination.js +919 -0
- package/skills/wix-replatform/lib/discovered-census.js +231 -0
- package/skills/wix-replatform/lib/discovered-set-status.js +255 -0
- package/skills/wix-replatform/lib/document-url-guard.js +203 -0
- package/skills/wix-replatform/lib/entity-qa-attestation.js +339 -0
- package/skills/wix-replatform/lib/entity-verification.js +18 -0
- package/skills/wix-replatform/lib/execution-capability.js +120 -0
- package/skills/wix-replatform/lib/execution-log.js +170 -0
- package/skills/wix-replatform/lib/execution-manifest.js +20 -2
- package/skills/wix-replatform/lib/execution-state.js +22 -0
- package/skills/wix-replatform/lib/expectations-ledger.js +96 -0
- package/skills/wix-replatform/lib/generated-plugin-handoff.js +140 -0
- package/skills/wix-replatform/lib/import-readiness-contract.js +23 -0
- package/skills/wix-replatform/lib/import-recovery.js +800 -6
- package/skills/wix-replatform/lib/imported-redirect-targets.js +608 -0
- package/skills/wix-replatform/lib/internal-link-reconciliation.js +166 -0
- package/skills/wix-replatform/lib/link-audit.js +173 -0
- package/skills/wix-replatform/lib/link-census.js +194 -0
- package/skills/wix-replatform/lib/link-plan.js +148 -0
- package/skills/wix-replatform/lib/link-verification.js +274 -0
- package/skills/wix-replatform/lib/link-write-journal.js +42 -0
- package/skills/wix-replatform/lib/local-state.js +869 -30
- package/skills/wix-replatform/lib/member-completion.js +658 -0
- package/skills/wix-replatform/lib/member-crosswalk.js +69 -0
- package/skills/wix-replatform/lib/member-outcome-registry.js +265 -0
- package/skills/wix-replatform/lib/migration-completion.js +311 -0
- package/skills/wix-replatform/lib/operator-identity.js +47 -0
- package/skills/wix-replatform/lib/orchestration-decisions.js +248 -0
- package/skills/wix-replatform/lib/orchestration-preflight.js +401 -19
- package/skills/wix-replatform/lib/orchestration-router.js +608 -32
- package/skills/wix-replatform/lib/orchestration-state.js +188 -12
- package/skills/wix-replatform/lib/order-reference-readiness.js +30 -0
- package/skills/wix-replatform/lib/payments-outcome-registry.js +200 -0
- package/skills/wix-replatform/lib/plugin-cms-fallback.js +618 -0
- package/skills/wix-replatform/lib/preservation-approval-stamp.js +54 -0
- package/skills/wix-replatform/lib/product-media-deferral.js +96 -0
- package/skills/wix-replatform/lib/progress-log.js +19 -3
- package/skills/wix-replatform/lib/read-back-approval.js +184 -0
- package/skills/wix-replatform/lib/read-back-comparison.js +136 -0
- package/skills/wix-replatform/lib/read-back-contract.js +243 -0
- package/skills/wix-replatform/lib/read-back-extract.js +118 -0
- package/skills/wix-replatform/lib/read-back-gate.js +734 -0
- package/skills/wix-replatform/lib/read-back-reads.js +94 -0
- package/skills/wix-replatform/lib/read-back-state.js +107 -0
- package/skills/wix-replatform/lib/read-back-summary.js +81 -0
- package/skills/wix-replatform/lib/rerun-conflicts.js +334 -0
- package/skills/wix-replatform/lib/run-controller.js +401 -0
- package/skills/wix-replatform/lib/seo-outcome-registry.js +45 -0
- package/skills/wix-replatform/lib/setup-verification.js +148 -0
- package/skills/wix-replatform/lib/source-access.js +231 -0
- package/skills/wix-replatform/lib/source-coverage.js +1130 -0
- package/skills/wix-replatform/lib/source-secrets.js +277 -0
- package/skills/wix-replatform/lib/structured-link-patch.js +59 -0
- package/skills/wix-replatform/lib/task-state.js +110 -0
- package/skills/wix-replatform/lib/url-preservation-report.js +319 -0
- package/skills/wix-replatform/lib/url-preservation-state.js +349 -1
- package/skills/wix-replatform/lib/url-redirect-plan.js +728 -0
- package/skills/wix-replatform/lib/url-verification.js +315 -0
- package/skills/wix-replatform/lib/user-action-effects.js +42 -0
- package/skills/wix-replatform/lib/user-actions.js +264 -0
- package/skills/wix-replatform/lib/website-handoff.js +1220 -0
- package/skills/wix-replatform/lib/wix-client-callers.js +54 -0
- package/skills/wix-replatform/lib/wix-dashboard-url.js +35 -0
- package/skills/wix-replatform/lib/write-verification-state.js +92 -0
- package/skills/wix-replatform/lib/write-verification.js +274 -0
- package/skills/wix-replatform/resources/rp-destination/SKILL.md +137 -0
- package/skills/wix-replatform/resources/rp-discovery/SKILL.md +189 -16
- package/skills/wix-replatform/resources/rp-discovery/scripts/promote-source-coverage.js +47 -0
- package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +869 -29
- package/skills/wix-replatform/resources/rp-execute-import/scripts/shipping-estimate-audit.js +70 -0
- package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +195 -29
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/execute-setup.js +442 -0
- package/skills/wix-replatform/resources/rp-execution-policy/SKILL.md +112 -0
- package/skills/wix-replatform/resources/rp-execution-policy/lib/coupon-currency-plan-report.js +143 -0
- package/skills/wix-replatform/resources/rp-execution-policy/lib/payments-report.js +244 -0
- package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +2082 -38
- package/skills/wix-replatform/resources/rp-mapper/SKILL.md +528 -11
- package/skills/wix-replatform/resources/rp-mapper/lib/structure-bridge-planning.js +303 -0
- package/skills/wix-replatform/resources/rp-mapper/scripts/coverage-reconcile.js +88 -0
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +6 -5
- package/skills/wix-replatform/resources/rp-preflight/SKILL.md +40 -0
- package/skills/wix-replatform/resources/rp-project-intake/SKILL.md +55 -0
- package/skills/wix-replatform/resources/rp-quick-runtime/SKILL.md +60 -0
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/import-progress.js +89 -0
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/limit-recovery.js +36 -0
- package/skills/wix-replatform/resources/rp-quick-shopify/SKILL.md +123 -0
- package/skills/wix-replatform/resources/rp-quick-shopify/quick-mode.json +124 -0
- package/skills/wix-replatform/resources/rp-quick-shopify/scripts/quick-mode.js +522 -0
- package/skills/wix-replatform/resources/rp-quick-woocommerce/SKILL.md +56 -0
- package/skills/wix-replatform/resources/rp-quick-woocommerce/quick-mode.json +91 -0
- package/skills/wix-replatform/resources/rp-quick-woocommerce/scripts/quick-mode.js +255 -0
- package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +80 -10
- package/skills/wix-replatform/resources/rp-setup-discovery/scripts/quick-setup-plan.js +44 -0
- package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +3 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
- package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +21 -1
- package/skills/wix-replatform/resources/rp-source-inputs/SKILL.md +66 -0
- package/skills/wix-replatform/resources/rp-source-sfcc/SKILL.md +153 -0
- package/skills/wix-replatform/resources/rp-source-shopify/SKILL.md +394 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/discovery-reads.js +200 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/import-findings.js +34 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk-sqlite-worker.js +44 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk.js +1470 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-cli.js +446 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-gift-cards.js +474 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-protected-fields.js +879 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-session.js +426 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/articles.graphql +24 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/blogs.graphql +18 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/collections.graphql +40 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/customers.graphql +76 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/delivery-profiles.graphql +51 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/discounts.graphql +35 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/files.graphql +20 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/gift-cards.graphql +18 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/inventory.graphql +31 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/locations.graphql +21 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/menus.graphql +21 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/metaobjects.graphql +30 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-core.graphql +150 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-fulfillments.graphql +36 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-refunds.graphql +48 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/pages.graphql +20 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-address.graphql +8 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-email.graphql +6 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-name.graphql +8 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-phone.graphql +8 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-address.graphql +12 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-email.graphql +6 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-name.graphql +13 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-phone.graphql +13 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/products.graphql +73 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/url-redirects.graphql +13 -0
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-discovery.js +693 -0
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-extract.js +283 -0
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-gift-card-remedy.js +191 -0
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-session-check.js +115 -0
- package/skills/wix-replatform/resources/rp-source-shopify/source-schema.example.json +201 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/PLUGIN-READ-PLANS.md +146 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +736 -22
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/blocked-data-handlers.js +73 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.js +115 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.test-fixture.js +91 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/coupon-discovery.js +440 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/currency-gate.js +125 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.js +252 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.json +183 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-summary.mjs +333 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/invoice-discovery.js +426 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-disposition.js +400 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-entity-read-plan.js +633 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-knowledge.js +1127 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.js +194 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.json +100 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/sampled-ids-batch.js +157 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/secret-value-guard.js +234 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/store-currency.js +101 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/structure-bridge-reader.js +755 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.js +1074 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.test-fixture.js +149 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/woo-inventory.js +25 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +204 -9
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-image-url.js +186 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-plugin-detect.js +1422 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-redirect-sources.js +343 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +262 -26
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/yoast-product-seo-evidence.js +272 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/README.md +373 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/advanced-custom-fields.json +101 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/back-in-stock-notifier-for-woocommerce.json +81 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/capabilities-pending-decision.json +128 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/cms-fallback-eligible.json +18 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/contact-form-7.json +104 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/facebook-for-woocommerce.json +44 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/fingerprint-aliases.json +49 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/free-gifts-for-woocommerce.json +94 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/index.json +863 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mailpoet.json +52 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/membership-for-woocommerce.json +161 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mwb-bookings-for-woocommerce.json +180 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/no-migration-needed.json +286 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pricing-deals-for-woocommerce.json +79 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/product-extras-for-woocommerce.json +120 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pw-woocommerce-gift-cards.json +128 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/requires-development.json +88 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seo-by-rank-math.json +80 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seriously-simple-podcasting.json +46 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/strong-testimonials.json +55 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/subscriptions-for-woocommerce.json +99 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/tablepress.json +55 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/the-events-calendar.json +160 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/ti-woocommerce-wishlist.json +81 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-checkout-field-editor-pro.json +60 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-discount-rules.json +74 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-product-bundle.json +75 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-gift-cards.json +60 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-other-payment-gateway.json +44 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-pdf-invoices-packing-slips.json +57 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-product-addon.json +141 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-progressive-discounts.json +54 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wordpress-seo.json +158 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpc-composite-products.json +97 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpforms-lite.json +86 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/capture-store-settings.js +90 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge-validate.js +51 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge.js +103 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +1668 -33
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-plugin-inventory.js +273 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/secret-value-patterns.v1.json +11 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/sub-parts.json +13 -0
- package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +446 -32
- package/skills/wix-replatform/resources/rp-target-wix/app-page-routing-capabilities.json +36 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +38 -2
- package/skills/wix-replatform/resources/rp-target-wix/domains/SERVICE-PLUGINS.md +322 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/docs-survey.json +70 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +19 -9
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +42 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +54 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +66 -10
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +38 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/docs-survey.json +332 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/domain.json +75 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/booking.json +181 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service-add-on.json +130 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service.json +180 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/docs-survey.json +161 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +15 -4
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +39 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +47 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +7 -1
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/docs-survey.json +204 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +17 -4
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +159 -15
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +80 -12
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +48 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/docs-survey.json +306 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +30 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/delivery-profile.json +171 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/discount-rule.json +182 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-applied-discount.json +129 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-invoice-document.json +192 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item-options.json +123 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +60 -12
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-merchant-note.json +112 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-payment.json +191 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +140 -13
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +383 -18
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/pickup-location.json +122 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/shipping-option.json +98 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/wishlist-item.json +86 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/docs-survey.json +128 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/domain.json +38 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/category.json +73 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/event.json +107 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/registration-form.json +89 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/rsvp.json +118 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/ticket-definition.json +93 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/docs-survey.json +86 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/domain.json +56 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form-submission.json +121 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form.json +134 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/docs-survey.json +41 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/domain.json +50 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card-product.json +87 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card.json +130 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +914 -24
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/docs-survey.json +41 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +14 -4
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +45 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +41 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/docs-survey.json +119 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +13 -3
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +41 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/custom-field.json +82 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member-about.json +77 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +165 -13
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/docs-survey.json +41 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/domain.json +46 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan-order.json +137 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan.json +133 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/docs-survey.json +7 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/domain.json +36 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/amazon-shop-connect.json +71 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/ebay-shop-connect.json +67 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/google-youtube-connect.json +72 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/meta-catalog-connect.json +74 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/pinterest-catalog-connect.json +69 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/tiktok-catalog-connect.json +61 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +28 -1
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/docs-survey.json +109 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/domain.json +73 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/item-seo-tags.json +148 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/seo-pattern.json +91 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/site-seo-tags.json +79 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/docs-survey.json +32 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/domain.json +49 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/entities/business-contact.json +103 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/docs-survey.json +203 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +27 -10
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/back-in-stock-request.json +119 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/brand.json +111 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +52 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +214 -10
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +93 -13
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-customization.json +111 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +52 -10
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +145 -14
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/promotion.json +84 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/review.json +178 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/subscription-product.json +87 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/docs-survey.json +106 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/domain.json +64 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/manual-tax-mapping.json +119 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-group.json +94 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-region.json +113 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-settings.json +65 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-author-attribution.js +165 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-client.js +60 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-duplicates.js +201 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-ledger.js +306 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-report.js +229 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-stage.js +55 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build.js +715 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-media.js +567 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/bulk-results.js +73 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-extended-fields.js +194 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-import.js +133 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +13 -4
- package/skills/wix-replatform/resources/rp-target-wix/lib/coupon-redemption-drift.js +491 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/customer-member.js +104 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/data-extension-schema.js +673 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +453 -2
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-balance-reconciliation.js +119 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-build.js +566 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-redemption-build.js +249 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-applied-discount-build.js +63 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-buyer.js +187 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-channel-build.js +64 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-history.js +1027 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-invoice-contract.js +90 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-payment-mapping.js +420 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/pricing-plan-definition.js +177 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-import.js +151 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-seo.js +723 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/seo-redirects.js +353 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-build.js +1437 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-option-stage.js +354 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/store-config-build.js +134 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-category-attach.js +221 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-inventory.js +248 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +86 -3
- package/skills/wix-replatform/resources/rp-target-wix/lib/tax-build.js +231 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/url-mapper-transport.js +28 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/value-utils.js +14 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/variant-correlation.js +34 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +166 -15
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +19 -2
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +4079 -257
- package/skills/wix-replatform/resources/rp-target-wix/lib/write-verification.js +3 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/docs-survey-sync.js +150 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +40 -2
- package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +6 -1
- package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +148 -8
- package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +83 -15
- package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +1119 -215
- package/skills/wix-replatform/resources/rp-telemetry/lib/transcript-digest.js +318 -0
- package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +2 -2
- package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +106 -4
- package/skills/wix-replatform/resources/rp-website-continuation/SKILL.md +94 -0
- package/skills/wix-replatform/scripts/census-reconciliation.js +25 -0
- package/skills/wix-replatform/scripts/cms-fallback.js +89 -0
- package/skills/wix-replatform/scripts/discovered-census.js +26 -0
- package/skills/wix-replatform/scripts/discovered-set-status.js +33 -0
- package/skills/wix-replatform/scripts/entity-qa-attestation.js +130 -0
- package/skills/wix-replatform/scripts/execution-health-check.js +415 -0
- package/skills/wix-replatform/scripts/execution-manifest-validate.js +1 -1
- package/skills/wix-replatform/scripts/execution-state-prepare.js +1 -1
- package/skills/wix-replatform/scripts/expectations-ledger.js +44 -0
- package/skills/wix-replatform/scripts/import-contract-verify.js +183 -0
- package/skills/wix-replatform/scripts/internal-link-audit.js +90 -0
- package/skills/wix-replatform/scripts/item-seo-tags-verify.js +205 -0
- package/skills/wix-replatform/scripts/migration-completion.js +76 -0
- package/skills/wix-replatform/scripts/orchestration-preflight.js +21 -2
- package/skills/wix-replatform/scripts/orchestration-route.js +32 -1
- package/skills/wix-replatform/scripts/orchestration-state.js +146 -10
- package/skills/wix-replatform/scripts/read-back-gate.js +175 -0
- package/skills/wix-replatform/scripts/replatform-console.js +146 -0
- package/skills/wix-replatform/scripts/replatform.js +436 -0
- package/skills/wix-replatform/scripts/source-secrets.js +77 -0
- package/skills/wix-replatform/scripts/url-redirects.js +286 -0
- package/skills/wix-replatform/scripts/user-action.js +58 -0
- package/skills/wix-replatform/scripts/website-handoff-generate.js +64 -0
- package/skills/wix-replatform/scripts/wix-dashboard-url.js +54 -0
- package/skills/wix-replatform/scripts/wix-destination.js +143 -0
- package/skills/wix-replatform/scripts/wix-headless-scaffold.js +762 -0
- package/skills/wix-vibe-headless/SKILL.md +7 -3
- package/skills/wix-vibe-headless/install/deploy.cjs +61 -34
- package/skills/wix-vibe-headless/platforms/base44.md +1 -0
- package/skills/wix-vibe-headless/references/donations/INSTRUCTIONS.md +88 -0
- package/skills/wix-vibe-headless/references/donations/app/rest/wix-donations.js +112 -0
- package/skills/wix-vibe-headless/references/donations/seed/SEED.md +11 -0
- package/skills/wix-vibe-headless/references/donations/tests/donations.test.mjs +258 -0
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +5 -2
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +4 -1
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js +67 -3
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-client.js +4 -3
- package/skills/wix-replatform/resources/rp-target-wix/SPEC-product-reviews-and-blog-authorship.md +0 -330
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"capabilities": [
|
|
4
|
+
{
|
|
5
|
+
"family": "store-product",
|
|
6
|
+
"frontendType": "headless",
|
|
7
|
+
"supported": true,
|
|
8
|
+
"key": "wix.stores.sub_pages.product",
|
|
9
|
+
"pageIdentifier": "product_page",
|
|
10
|
+
"pageIdentifierType": "tpaPageId",
|
|
11
|
+
"variable": "slug",
|
|
12
|
+
"readMethod": "url-mapper-writer-get",
|
|
13
|
+
"writeMethod": "url-mapper-writer-create",
|
|
14
|
+
"evidence": "Stores product URL Mapper pattern write and separate writer-side read-back verified; served routing remains unverified",
|
|
15
|
+
"request": {
|
|
16
|
+
"key": "wix.stores.sub_pages.product",
|
|
17
|
+
"urlMapping": {
|
|
18
|
+
"key": "wix.stores.sub_pages.product",
|
|
19
|
+
"pageIdentifier": "product_page",
|
|
20
|
+
"pageIdentifierType": "tpaPageId",
|
|
21
|
+
"mapping": "product/{{slug}}"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"readBackFixture": {
|
|
25
|
+
"key": "wix.stores.sub_pages.product",
|
|
26
|
+
"pageIdentifier": "product_page",
|
|
27
|
+
"pageIdentifierType": "tpaPageId",
|
|
28
|
+
"mapping": "product/{{slug}}"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"unverifiedFamilies": [
|
|
33
|
+
"store-category", "blog-post", "blog-category", "blog-list", "bookings-service",
|
|
34
|
+
"bookings-list", "cart", "checkout", "other-app-pages", "portfolio", "builder-blog"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -4,10 +4,46 @@ This directory is the compact, machine-readable knowledge base for Wix target en
|
|
|
4
4
|
suitability. Domain and entity files are the source of truth. `index.json` is generated
|
|
5
5
|
from those files and checked in so mapper/codegen lookups stay token-cheap.
|
|
6
6
|
|
|
7
|
+
## Docs reading contract
|
|
8
|
+
|
|
9
|
+
Authoring or materially editing entities in a domain starts with the domain's full docs menu,
|
|
10
|
+
never a keyword hit:
|
|
11
|
+
|
|
12
|
+
1. Declare the domain's docs menu roots in `domain.json` `docsRoots[]`
|
|
13
|
+
(paths under `https://dev.wix.com/docs/`, e.g. `api-reference/business-solutions/events`).
|
|
14
|
+
A domain may span several roots (stores also owns the Coupons and Business Management → Tags
|
|
15
|
+
trees).
|
|
16
|
+
2. Run `node scripts/docs-survey-sync.js <domain>` — it fetches each root's `.md` menu page and
|
|
17
|
+
writes the surface list into `domains/<domain>/docs-survey.json`. New surfaces arrive as
|
|
18
|
+
`unreviewed`, which fails validation.
|
|
19
|
+
3. Triage every surface to one verdict: `claimed` (with `refs[]` that must resolve),
|
|
20
|
+
`not-importable` (reason required), `not-relevant` (reason required), or `gap`
|
|
21
|
+
(reason + tracking required). Every verdict carries `reviewedOn`.
|
|
22
|
+
4. Any entity classified `native` / `native-plus-cms` must cite its `…-object` docs page in
|
|
23
|
+
`evidence[]` — the field-level facts live on the object, not the method list. A surface with
|
|
24
|
+
no object page anywhere (e.g. Comments, which has no REST reference) declares
|
|
25
|
+
`objectPageException` with the reason.
|
|
26
|
+
|
|
27
|
+
The validator enforces all of it; a domain with entities and no survey fails the build.
|
|
28
|
+
|
|
29
|
+
### Service-plugin surfaces are not import paths — but they are not noise either
|
|
30
|
+
|
|
31
|
+
Every `Service Plugins` surface triages to `not-relevant`, because Wix calls *us*, so it can never
|
|
32
|
+
carry historical records. That verdict is right and it is also the easiest thing in this knowledge
|
|
33
|
+
base to misread: a service plugin cannot import data, but it **can supply a capability the
|
|
34
|
+
destination lacks**, which is exactly the category of gap that otherwise gets written up as "Wix
|
|
35
|
+
cannot do this."
|
|
36
|
+
|
|
37
|
+
That misreading has already cost this project a wrong answer twice on `ecom/discount-rule.json`.
|
|
38
|
+
Before writing a capability gap into a report, check **`SERVICE-PLUGINS.md`** in this directory: it
|
|
39
|
+
holds the escalation rule (native primitive first, always), the honest cost of a plugin, a complete
|
|
40
|
+
worked example, and a catalog of all 25 Wix service plugins with a per-plugin judgment on whether it
|
|
41
|
+
could close a migration gap.
|
|
42
|
+
|
|
7
43
|
## Maintenance
|
|
8
44
|
|
|
9
45
|
- Edit only the affected `domains/<domain>/` subtree when changing domain-owned facts.
|
|
10
|
-
- Keep long analysis
|
|
46
|
+
- Keep long analysis separate from the entity files; entity files should contain
|
|
11
47
|
compact guidance and evidence links.
|
|
12
48
|
- Use `preferredWrite.writerId` only for exported functions from
|
|
13
49
|
`rp-target-wix/lib/wix-writers.js`. Use `null` for direct REST plans, setup work, or
|
|
@@ -17,5 +53,5 @@ from those files and checked in so mapper/codegen lookups stay token-cheap.
|
|
|
17
53
|
- Regenerate and validate the index after edits:
|
|
18
54
|
|
|
19
55
|
```bash
|
|
20
|
-
node skills/replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js --write-index
|
|
56
|
+
node skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js --write-index
|
|
21
57
|
```
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
# Wix service plugins — the fallback when no native primitive fits
|
|
2
|
+
|
|
3
|
+
A **service plugin** (formerly "SPI") inverts the usual direction: instead of us calling Wix,
|
|
4
|
+
**Wix calls us** during one of its own flows, waits for our answer, and continues based on it.
|
|
5
|
+
Wix's own phrasing is *"don't call us, we'll call you."*
|
|
6
|
+
|
|
7
|
+
- Concept: <https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/service-plugins/about-service-plugin-extensions>
|
|
8
|
+
- Full catalog: <https://dev.wix.com/docs/build-apps/get-started/overview/how-apps-extend-wix#service-plugins>
|
|
9
|
+
|
|
10
|
+
## Why this file exists
|
|
11
|
+
|
|
12
|
+
Every service-plugin surface in every `docs-survey.json` was verdicted `not-relevant` with a
|
|
13
|
+
reason along the lines of *"an extension point the site implements, never an import path."*
|
|
14
|
+
|
|
15
|
+
**The "not an import path" half is correct. The implied "therefore useless to a migration" is
|
|
16
|
+
not.** `ecom/discount-rule.json` twice concluded that a WooCommerce buy-X-get-a-different-Y
|
|
17
|
+
discount and a bounded quantity tier were both unmappable. Both conclusions were wrong — but for
|
|
18
|
+
**two different reasons, which are worth keeping apart**:
|
|
19
|
+
|
|
20
|
+
| Source shape | Why it looked unmappable | What actually maps it |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| Buy X, get a **different** Y | The wrong axis was read: `QUANTITY_BASED` on `discountType`, when BOGO lives on `targetType` | **Native.** `targetType: BUY_X_GET_Y` + `buyXGetYInfo` — no service plugin involved |
|
|
23
|
+
| A **bounded** quantity tier (6-10) | A bounded `itemQuantityRange` leaves the rule unrenderable in the dashboard, and the open-ended fallback stacks | **A service plugin** — a Custom Discount Trigger answering yes/no per cart |
|
|
24
|
+
|
|
25
|
+
Only the second is a service-plugin story, and it is the worked example below. The first belongs to
|
|
26
|
+
rung 1 of the ladder — it is the case that proves *read the live enum off the server before
|
|
27
|
+
declaring a capability absent*. Conflating them would teach the wrong lesson for both.
|
|
28
|
+
|
|
29
|
+
A service plugin is never a way to *load records*. It is a way to **supply a capability the
|
|
30
|
+
destination lacks** — which is precisely the category of migration gap that otherwise gets written
|
|
31
|
+
up as "Wix cannot do this."
|
|
32
|
+
|
|
33
|
+
## The decision rule
|
|
34
|
+
|
|
35
|
+
> **Native primitive first, always. A service plugin is the second choice, never the first.**
|
|
36
|
+
|
|
37
|
+
1. **Find the native primitive.** Read the entity's own object page and, for enums, read the live
|
|
38
|
+
enum off the server's own validation error rather than a doc page — post a bogus value and let
|
|
39
|
+
`UnrecognizedEnumValidator` list the real members. `discount-rule.json`'s
|
|
40
|
+
`buy-x-get-y-is-supported-but-undocumented` pitfall exists because a capability that *was*
|
|
41
|
+
native looked absent in both the published schema and the docs example.
|
|
42
|
+
2. **If the primitive exists but the shape is merely awkward, prefer native** — an extra rule per
|
|
43
|
+
tier, a bit more configuration, a field the merchant has to re-enter. Awkward is fine.
|
|
44
|
+
|
|
45
|
+
**Awkward is not the same as inexact, and the line is what a customer pays.** Ask: *does this
|
|
46
|
+
shape change who qualifies, or what they are charged?* A widened scope (variation ids resolving
|
|
47
|
+
up to their parent product, so every variant now qualifies) and a lossy field both **fail** that
|
|
48
|
+
test — they are approximations, not awkwardness, and they belong at rung 4 with the gap. An
|
|
49
|
+
earlier version of this list named "a widened scope" as a preferred native fallback; that was
|
|
50
|
+
wrong and it contradicted rung 4.
|
|
51
|
+
3. **Only when the destination genuinely has no primitive** for a condition the source depends on,
|
|
52
|
+
consider a service plugin — and price it honestly using the cost list below.
|
|
53
|
+
4. **If neither works, it is a real gap — and so is anything you had to approximate to make
|
|
54
|
+
"native" fit.** Record it with the source rule's exact values and say what changed. Never ship
|
|
55
|
+
an approximation silently: an approximated discount is worse than an absent one, because an
|
|
56
|
+
absent one is visible and a wrong one quietly charges the wrong amount.
|
|
57
|
+
|
|
58
|
+
## What it costs — price this before choosing it
|
|
59
|
+
|
|
60
|
+
| Cost | Detail |
|
|
61
|
+
|---|---|
|
|
62
|
+
| **An app** | A service plugin only exists inside a Wix app. Scaffold with `wix generate` → Service Plugin in a Wix CLI project. |
|
|
63
|
+
| **Hosting** | The CLI route lets Wix host the endpoints (`wix release`). Self-hosted means you own an HTTPS endpoint and its uptime. |
|
|
64
|
+
| **Permanent production infrastructure** | This is the one that matters. The plugin is not a migration script that finishes — it is called on **every cart change, forever**. Uninstall the app and every rule depending on its triggers stops resolving. A migration deliverable that must stay running is a support commitment, not a one-off. |
|
|
65
|
+
| **A 3-second budget** | Several plugins document a hard response deadline; a timeout means Wix continues *without* your answer. Degradation is silent. |
|
|
66
|
+
| **⚠️ `wix release` publishes the site** | Verified live 2026-08-31: releasing an app version printed `Site published on …` and the storefront went from unpublished to HTTP 200. Never treat "the site is unpublished" as containment for anything, and check for unsafe-when-live state *before* releasing. |
|
|
67
|
+
|
|
68
|
+
### One supported route: the Wix CLI, inside an app
|
|
69
|
+
|
|
70
|
+
**Build every service plugin with the Wix CLI as an app extension. That is the only route this
|
|
71
|
+
pipeline supports.**
|
|
72
|
+
|
|
73
|
+
Wix's own docs also describe a per-site **Velo** route and a self-hosted route. Neither is
|
|
74
|
+
available here:
|
|
75
|
+
|
|
76
|
+
- **Velo — not supported.** Do not propose it, do not scaffold it, and do not record it as a
|
|
77
|
+
lighter alternative even though it needs no app. It is out of the product regardless of whether
|
|
78
|
+
it would technically work for a single-site migration.
|
|
79
|
+
- **Self-hosted** means owning an HTTPS endpoint and its uptime. The CLI route has Wix host the
|
|
80
|
+
endpoints for you, which is why it is the default here.
|
|
81
|
+
|
|
82
|
+
So the concrete path is always: `wix generate` → Service Plugin → pick the extension → implement
|
|
83
|
+
the handlers → `wix release`.
|
|
84
|
+
|
|
85
|
+
## Worked example — bounded quantity tiers (PROVEN END TO END, 2026-08-31)
|
|
86
|
+
|
|
87
|
+
**The gap.** WooCommerce `woo-discount-rules` expresses a bulk discount as mutually exclusive
|
|
88
|
+
quantity bands: 1-5 → 5% off, 6-10 → 10%, 11-15 → 15%, 16-20 → 20%, 21+ → 25%. Wix's native
|
|
89
|
+
`ITEM_QUANTITY_RANGE` trigger does accept `{from, to}`, but a **bounded** range leaves the rule
|
|
90
|
+
unrenderable in the merchant's Automatic Discounts editor. Falling back to open-ended `{from}` is
|
|
91
|
+
not equivalent: every lower tier stays true once you pass its minimum and Wix stacks them, so a
|
|
92
|
+
21-item cart matched all five tiers for 5+10+15+20+25 = **75% off instead of 25%**. The tiers could
|
|
93
|
+
only ship inactive.
|
|
94
|
+
|
|
95
|
+
**The fix.** The Custom Discount Triggers service plugin answers a plain yes/no per cart, so a band
|
|
96
|
+
is expressible exactly and at most one tier is ever eligible.
|
|
97
|
+
|
|
98
|
+
- Plugin docs: <https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/discounts/custom-discount-triggers-integration-service-plugin/introduction>
|
|
99
|
+
- Add it with the CLI: <https://dev.wix.com/docs/build-apps/develop-your-app/develop-an-app-with-the-cli/supported-extensions/backend/service-plugins/add-service-plugin-extensions-with-the-wix-cli>
|
|
100
|
+
|
|
101
|
+
Scaffold it with `wix generate` → Service Plugin → **Ecom Discount Triggers**, which writes a
|
|
102
|
+
`<name>.ts` handler file and a `<name>.extension.ts` config file. Keep the decision logic in a third
|
|
103
|
+
file with no `@wix` import so it is unit-testable without a deployed app. **Both files below are
|
|
104
|
+
complete and copy-pasteable** — this is the whole implementation, not an excerpt.
|
|
105
|
+
|
|
106
|
+
`bands.ts` — the arithmetic and scope resolution:
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
export type Band = { min: number; max: number | null; scopeKey: string | null };
|
|
110
|
+
|
|
111
|
+
const ID_PREFIX = 'bulk-qty-';
|
|
112
|
+
|
|
113
|
+
// Product ids per scope key. EMPTY when every listed band is storewide.
|
|
114
|
+
// Trigger ids cap at 100 chars and a product GUID is 36, so an id carries a short KEY,
|
|
115
|
+
// not the products — which makes a membership change a redeploy, unlike a bounds change.
|
|
116
|
+
export const SCOPES: Record<string, readonly string[]> = {};
|
|
117
|
+
|
|
118
|
+
export const LISTED_BANDS: Band[] = [
|
|
119
|
+
{ min: 1, max: 5, scopeKey: null },
|
|
120
|
+
{ min: 6, max: 10, scopeKey: null },
|
|
121
|
+
{ min: 11, max: 15, scopeKey: null },
|
|
122
|
+
{ min: 16, max: 20, scopeKey: null },
|
|
123
|
+
{ min: 21, max: null, scopeKey: null },
|
|
124
|
+
];
|
|
125
|
+
|
|
126
|
+
export const bandToId = (b: Band) =>
|
|
127
|
+
`${ID_PREFIX}${b.min}-${b.max === null ? 'plus' : b.max}${b.scopeKey ? `@${b.scopeKey}` : ''}`;
|
|
128
|
+
|
|
129
|
+
export const bandToName = (b: Band) =>
|
|
130
|
+
b.max === null ? `Cart has ${b.min} or more items` : `Cart has ${b.min}-${b.max} items`;
|
|
131
|
+
|
|
132
|
+
/** null for anything malformed OR naming a scope this deployment does not define — fail closed. */
|
|
133
|
+
export function parseTriggerId(id: string): Band | null {
|
|
134
|
+
if (!id.startsWith(ID_PREFIX)) return null;
|
|
135
|
+
const rest = id.slice(ID_PREFIX.length);
|
|
136
|
+
const at = rest.indexOf('@');
|
|
137
|
+
const scopeKey = at === -1 ? null : rest.slice(at + 1);
|
|
138
|
+
if (scopeKey !== null && !Object.prototype.hasOwnProperty.call(SCOPES, scopeKey)) return null;
|
|
139
|
+
const m = /^(\d+)-(\d+|plus)$/.exec(at === -1 ? rest : rest.slice(0, at));
|
|
140
|
+
if (!m) return null;
|
|
141
|
+
const min = Number(m[1]);
|
|
142
|
+
const max = m[2] === 'plus' ? null : Number(m[2]);
|
|
143
|
+
if (!Number.isSafeInteger(min) || min < 0) return null;
|
|
144
|
+
if (max !== null && (!Number.isSafeInteger(max) || max < min)) return null;
|
|
145
|
+
return { min, max, scopeKey };
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export const bandContains = (b: Band, qty: number) =>
|
|
149
|
+
qty >= b.min && (b.max === null || qty <= b.max);
|
|
150
|
+
|
|
151
|
+
type CartLine = { quantity?: number | null; catalogReference?: { catalogItemId?: string | null } | null };
|
|
152
|
+
|
|
153
|
+
/** Units (not lines) that count toward this band, filtered to its scope first. */
|
|
154
|
+
export function eligibleQuantity(band: Band, lineItems: readonly CartLine[] = []): number {
|
|
155
|
+
const allowed = band.scopeKey === null ? null : new Set(SCOPES[band.scopeKey] ?? []);
|
|
156
|
+
return lineItems.reduce((sum, item) => {
|
|
157
|
+
if (allowed !== null) {
|
|
158
|
+
const id = item?.catalogReference?.catalogItemId;
|
|
159
|
+
if (!id || !allowed.has(id)) return sum;
|
|
160
|
+
}
|
|
161
|
+
return sum + (Number(item?.quantity) || 0);
|
|
162
|
+
}, 0);
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**The proof.** Deployed is not the same as working, so it was verified against live carts. With only
|
|
167
|
+
the 6-10 band active, three carts of the same single product were created, calculated, then deleted
|
|
168
|
+
(one unit priced P, so the only thing that varies is quantity):
|
|
169
|
+
|
|
170
|
+
| Cart | Gross | Discount | Result |
|
|
171
|
+
|---|---|---|---|
|
|
172
|
+
| 3 units | 3P | 0 | no discount — below the band ✅ |
|
|
173
|
+
| 7 units | 7P | **exactly 10% of 7P** | discounted, and the applied-discount `name` matched the 6-10 rule ✅ |
|
|
174
|
+
| 11 units | 11P | 0 | no discount — **above** the band ✅ |
|
|
175
|
+
|
|
176
|
+
**The 11-unit row is the one that matters.** Under the old open-ended `{from: 6}` shape it would
|
|
177
|
+
also have been discounted, so it is the only case that distinguishes the two implementations: it
|
|
178
|
+
proves the plugin is genuinely being consulted and that the band's upper bound holds. A passing
|
|
179
|
+
7-unit case alone would have proved nothing. **Design the verification around the case that can
|
|
180
|
+
only pass if the new mechanism is live** — for a service plugin that usually means an input the old
|
|
181
|
+
behaviour would have answered differently.
|
|
182
|
+
|
|
183
|
+
Two required handlers. `listTriggers` is static and only feeds the dashboard dropdown;
|
|
184
|
+
`getEligibleTriggers` is called on every cart change with the cart's line items:
|
|
185
|
+
|
|
186
|
+
```ts
|
|
187
|
+
import { customTriggers } from '@wix/ecom/service-plugins';
|
|
188
|
+
import { LISTED_BANDS, bandToId, bandToName, bandContains, parseTriggerId, eligibleQuantity } from './bands';
|
|
189
|
+
|
|
190
|
+
customTriggers.provideHandlers({
|
|
191
|
+
// NOTE `_id`, not `id` — see the SDK trap below.
|
|
192
|
+
listTriggers: async () => ({
|
|
193
|
+
customTriggers: LISTED_BANDS.map((band) => ({ _id: bandToId(band), name: bandToName(band) })),
|
|
194
|
+
}),
|
|
195
|
+
|
|
196
|
+
getEligibleTriggers: async ({ request }) => {
|
|
197
|
+
const lineItems = request.lineItems ?? [];
|
|
198
|
+
const eligibleTriggers = (request.triggers ?? []).flatMap((trigger) => {
|
|
199
|
+
const id = trigger.customTrigger?._id;
|
|
200
|
+
const identifier = trigger.identifier;
|
|
201
|
+
if (!id || !identifier) return [];
|
|
202
|
+
const band = parseTriggerId(id); // null if malformed OR an unknown scope
|
|
203
|
+
if (!band) return [];
|
|
204
|
+
// eligibleQuantity filters the cart to the band's scope BEFORE summing units —
|
|
205
|
+
// see point 0 below. Summing every line item is the scoped-rule bug.
|
|
206
|
+
if (!bandContains(band, eligibleQuantity(band, lineItems))) return [];
|
|
207
|
+
return [{ customTriggerId: id, identifier }]; // echo `identifier` back EXACTLY
|
|
208
|
+
});
|
|
209
|
+
return { eligibleTriggers };
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Each tier then becomes one ordinary `DiscountRule` pointing at the band:
|
|
215
|
+
|
|
216
|
+
```jsonc
|
|
217
|
+
{
|
|
218
|
+
"trigger": {
|
|
219
|
+
"triggerType": "CUSTOM",
|
|
220
|
+
"customTrigger": { "id": "bulk-qty-6-10", "appId": "<your app id>" }
|
|
221
|
+
},
|
|
222
|
+
"discounts": { "values": [{ "targetType": "SPECIFIC_ITEMS", "discountType": "PERCENTAGE", "percentage": 10,
|
|
223
|
+
"specificItemsInfo": { "scopes": [ /* … */ ] } }] }
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Four things that generalize to any service plugin
|
|
228
|
+
|
|
229
|
+
0. **⚠️ Encode the ELIGIBLE SET too, not just the thresholds.** `GetEligibleTriggersRequest`
|
|
230
|
+
carries the cart's line items and the trigger ids, but **not the discount rule's own
|
|
231
|
+
scope**. A handler that sums every line item therefore gets a product-scoped rule wrong:
|
|
232
|
+
for a tier scoped to product A, a cart of 3×A + 3×B sums to 6, activates a 6-10 band and
|
|
233
|
+
discounts A — while the source rule counted 3 eligible units and would not have fired.
|
|
234
|
+
Resolve the scope from the id and filter the cart **before** summing, and fail closed when
|
|
235
|
+
the id names a scope the deployment does not define. Trigger ids cap at 100 characters and
|
|
236
|
+
a product GUID is 36, so ids carry a short scope KEY that resolves to a product list in
|
|
237
|
+
code — which means changing a scope's membership is a redeploy, unlike changing a band's
|
|
238
|
+
bounds. Test the mixed-product cart explicitly; a single-product cart passes either way.
|
|
239
|
+
1. **Encode parameters in the trigger/entity id** (`bulk-qty-6-10`, `bulk-qty-21-plus`) and parse
|
|
240
|
+
them at evaluation time. Re-cutting a tier then becomes a *data* edit with no redeploy, and the
|
|
241
|
+
listed set is presentation only.
|
|
242
|
+
2. **Keep the decision logic in a module with no `@wix` import** so it is unit-testable without a
|
|
243
|
+
deployed app. The reference implementation's `bands.ts` carries 47 assertions including a
|
|
244
|
+
mutual-exclusivity sweep; the Wix wiring file holds no arithmetic at all.
|
|
245
|
+
3. **Fail closed.** An unparseable id resolves to *not eligible*. A permissive default in a
|
|
246
|
+
discount plugin silently discounts every cart on the site.
|
|
247
|
+
4. **Echo correlation fields back verbatim.** `identifier` is how Wix matches your answer to the
|
|
248
|
+
rule that asked. Returning only the id applies nothing, with no error.
|
|
249
|
+
|
|
250
|
+
### The SDK trap, verified 2026-08-31
|
|
251
|
+
|
|
252
|
+
The SDK renames REST's `id` to `_id` — **inbound only**:
|
|
253
|
+
|
|
254
|
+
| | Field |
|
|
255
|
+
|---|---|
|
|
256
|
+
| `getEligibleTriggers` request | `triggers[].customTrigger._id` |
|
|
257
|
+
| `listTriggers` response | `customTriggers[]._id` |
|
|
258
|
+
| `getEligibleTriggers` response | `eligibleTriggers[].customTriggerId` — **not** renamed |
|
|
259
|
+
| `LineItem` | `quantity` — not renamed |
|
|
260
|
+
|
|
261
|
+
So a correct handler looks internally inconsistent. Writing `id` on the list side compiles clean in
|
|
262
|
+
plain JS and returns a trigger list Wix can never match — the discount just never applies and
|
|
263
|
+
nothing errors. Read `node_modules/@wix/auto_sdk_ecom_custom-triggers/build/cjs/interfaces-*.d.ts`
|
|
264
|
+
rather than the REST docs, and typecheck before releasing.
|
|
265
|
+
|
|
266
|
+
## Catalog — all 25 service plugins
|
|
267
|
+
|
|
268
|
+
`Build` is Wix's own column: **CLI** = Wix can host it for you; **self** = self-managed only.
|
|
269
|
+
`Gap-closing?` is *our* judgment about whether it could make a migration faithful — only the
|
|
270
|
+
Discounts row has actually been used.
|
|
271
|
+
|
|
272
|
+
### eCommerce / Stores
|
|
273
|
+
|
|
274
|
+
| Service plugin | Domain | Build | Gap-closing? |
|
|
275
|
+
|---|---|---|---|
|
|
276
|
+
| [Custom discount triggers](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/discounts/custom-discount-triggers-integration-service-plugin/introduction) | `ecom` | CLI | 🟢 **PROVEN** — bounded quantity bands, and any trigger condition Wix lacks |
|
|
277
|
+
| [Shipping rates](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/shipping-rates/shipping-rates-integration-service-plugin/introduction) | `ecom` | CLI | 🟡 Likely — the natural home for a source rate table Wix cannot express (see `shipping-option.json`; a free-shipping-over-threshold condition and per-shipping-class costs are both known to fail natively) |
|
|
278
|
+
| [Additional fees](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/additional-fees/additional-fees-service-plugin/introduction) | `ecom` | CLI | 🟡 Likely — source surcharges (handling, packaging, COD) with no Wix field |
|
|
279
|
+
| [Validations](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/validations/validations-integration-service-plugin/introduction) | `ecom` | CLI | 🟡 Likely — source purchase restrictions (members-only, min/max quantity, region blocks) |
|
|
280
|
+
| [Tax calculation](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/tax/tax-calculation-integration-service-plugin/introduction) | `tax` | CLI | 🟡 Possible — only if the source's tax logic exceeds Wix tax groups |
|
|
281
|
+
| [Tax groups](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/tax/tax-groups-integration-service-plugin/introduction) | `tax` | self | 🔴 Provider integration, not a migration path |
|
|
282
|
+
| [Catalog](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/catalogs/catalog-service-plugin/introduction) | `ecom` | CLI | 🔴 Makes an *external* catalog sellable on Wix. The opposite of a migration — it keeps data at the source |
|
|
283
|
+
| [Inventory](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/catalogs/inventory-service-plugin/introduction) | `ecom` | self | 🔴 Same — delegates stock to an external system |
|
|
284
|
+
| [Gift vouchers](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/payments/gift-cards/gift-cards-service-plugin/introduction) | `gift-cards` | CLI | 🟡 Worth a look — single-use bearer vouchers are commonly stranded, because Wix rejects a coupon carrying neither scope nor minimum. A voucher provider plugin may be the honest answer |
|
|
285
|
+
| [Memberships](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/payments/memberships/memberships-service-plugin/introduction) | `pricing-plans` | self | 🔴 Payment-provider integration |
|
|
286
|
+
| [Payment settings (3DS)](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/payments/payment-settings/payment-settings-integration-service-plugin/introduction) | `ecom` | CLI | 🔴 Payment configuration, never migrated |
|
|
287
|
+
| [Recommendations](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/other-services/recommendations/recommendations-service-plugin/introduction) | `ecom` | self | 🔴 Algorithm provider. Note: source upsell/cross-sell lists are *data* and belong on the product |
|
|
288
|
+
| [Product restrictions V3](https://dev.wix.com/docs/api-reference/business-solutions/stores/service-plugins/product-restrictions-v3/introduction) | `stores` | self | 🔴 For dropshipping/POD apps locking product fields |
|
|
289
|
+
| [Suppliers Hub marketplace provider](https://dev.wix.com/docs/api-reference/business-solutions/suppliers-hub/marketplace-provider-service-plugin/introduction) | `stores` | CLI | 🔴 Supplier catalog integration |
|
|
290
|
+
|
|
291
|
+
### Bookings
|
|
292
|
+
|
|
293
|
+
| Service plugin | Domain | Build | Gap-closing? |
|
|
294
|
+
|---|---|---|---|
|
|
295
|
+
| [Booking policy](https://dev.wix.com/docs/api-reference/business-solutions/bookings/policies/booking-policy-service-plugin/introduction) | `bookings` | CLI | 🟡 Likely — source cancellation/reschedule windows Wix policies cannot express |
|
|
296
|
+
| [Bookings validation](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings/bookings-validation-service-plugin/introduction) | `bookings` | CLI | 🟡 Likely — source booking constraints |
|
|
297
|
+
| [Pricing integration](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-integration-service-plugin/introduction) | `bookings` | self | 🟡 Possible — source per-service pricing rules |
|
|
298
|
+
| [Availability time slots configuration](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/availability-time-slots-configuration-service-plugin/introduction) | `bookings` | CLI | 🟡 Possible — non-standard slot generation |
|
|
299
|
+
|
|
300
|
+
### Everything else
|
|
301
|
+
|
|
302
|
+
| Service plugin | Domain | Build | Gap-closing? |
|
|
303
|
+
|---|---|---|---|
|
|
304
|
+
| [Form submissions](https://dev.wix.com/docs/api-reference/crm/forms/service-plugins/form-submissions-service-plugin/introduction) | `forms` | CLI | 🔴 Adds live validation. Does **not** accept historical submissions, so it cannot carry a source submission archive |
|
|
305
|
+
| [SEO keyword suggestions](https://dev.wix.com/docs/api-reference/business-management/marketing/seo/seo-keywords-suggestions-service-plugin/introduction) | `seo` | CLI | 🔴 Dashboard suggestions. Note: this is **not** a home for Yoast focus keyphrases (gap §8) — those are per-item data with nowhere to live |
|
|
306
|
+
| [External database](https://dev.wix.com/docs/api-reference/business-solutions/cms/external-databases/external-database-service-plugin/introduction) | `cms` | self | 🔴 Keeps data external. Directly opposed to migrating it in |
|
|
307
|
+
| [Automations action provider](https://dev.wix.com/docs/api-reference/business-management/automations/actions/action-provider-service-plugin/introduction) | — | self | 🔴 Out of scope |
|
|
308
|
+
| [Automations trigger provider](https://dev.wix.com/docs/api-reference/business-management/automations/triggers/trigger-provider-service-plugin/introduction) | — | self | 🔴 Out of scope |
|
|
309
|
+
| [Payments provider](https://dev.wix.com/docs/api-reference/business-management/payments/payment-service-provider-service-plugin/introduction) | — | self | 🔴 Payment gateways are re-established by the owner, never migrated |
|
|
310
|
+
| [App billing custom charges](https://dev.wix.com/docs/api-reference/app-management/app-billing/custom-charges-service-plugin/introduction) | — | self | 🔴 Out of scope |
|
|
311
|
+
|
|
312
|
+
⚠️ **Only the Discounts row is verified.** Every 🟡 is a reasoned guess from reading the plugin's
|
|
313
|
+
own docs, not a live result. Before promising one to an owner, confirm the handler receives the
|
|
314
|
+
inputs your rule needs — that check is what made the discount case work: the decision hinged
|
|
315
|
+
entirely on `GetEligibleTriggersRequest` carrying `lineItems[].quantity`.
|
|
316
|
+
|
|
317
|
+
## When you use one, write it down
|
|
318
|
+
|
|
319
|
+
A service plugin that closes a gap changes the entity's own knowledge file. Add a pitfall on the
|
|
320
|
+
affected entity (as `bounded-quantity-bands-need-a-custom-trigger-spi` does on
|
|
321
|
+
`ecom/discount-rule.json`), and add a row here with the verdict promoted from 🟡 to 🟢 plus a
|
|
322
|
+
pointer to the implementation.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"domain": "blog",
|
|
4
|
+
"fetchedAt": "2026-08-11",
|
|
5
|
+
"roots": [
|
|
6
|
+
"api-reference/business-solutions/blog"
|
|
7
|
+
],
|
|
8
|
+
"surfaces": [
|
|
9
|
+
{
|
|
10
|
+
"id": "api-reference/business-solutions/blog/category",
|
|
11
|
+
"title": "Category",
|
|
12
|
+
"url": "https://dev.wix.com/docs/api-reference/business-solutions/blog/category",
|
|
13
|
+
"group": null,
|
|
14
|
+
"verdict": "claimed",
|
|
15
|
+
"refs": [
|
|
16
|
+
"blog/category"
|
|
17
|
+
],
|
|
18
|
+
"reviewedOn": "2026-08-11"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "api-reference/business-solutions/blog/draft-posts",
|
|
22
|
+
"title": "Draft Posts",
|
|
23
|
+
"url": "https://dev.wix.com/docs/api-reference/business-solutions/blog/draft-posts",
|
|
24
|
+
"group": null,
|
|
25
|
+
"verdict": "claimed",
|
|
26
|
+
"refs": [
|
|
27
|
+
"blog/post"
|
|
28
|
+
],
|
|
29
|
+
"reviewedOn": "2026-08-11"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "api-reference/business-solutions/blog/likes",
|
|
33
|
+
"title": "Likes",
|
|
34
|
+
"url": "https://dev.wix.com/docs/api-reference/business-solutions/blog/likes",
|
|
35
|
+
"group": null,
|
|
36
|
+
"verdict": "not-relevant",
|
|
37
|
+
"reason": "Post likes; WordPress has no post-like concept, no source capability maps.",
|
|
38
|
+
"reviewedOn": "2026-08-11"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "api-reference/business-solutions/blog/posts-stats",
|
|
42
|
+
"title": "Posts & Stats",
|
|
43
|
+
"url": "https://dev.wix.com/docs/api-reference/business-solutions/blog/posts-stats",
|
|
44
|
+
"group": null,
|
|
45
|
+
"verdict": "not-importable",
|
|
46
|
+
"reason": "Read-only published-post queries and view stats; all writes go through Draft Posts (claimed by blog/post).",
|
|
47
|
+
"reviewedOn": "2026-08-11"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "api-reference/business-solutions/blog/skills",
|
|
51
|
+
"title": "Skills",
|
|
52
|
+
"url": "https://dev.wix.com/docs/api-reference/business-solutions/blog/skills",
|
|
53
|
+
"group": null,
|
|
54
|
+
"verdict": "not-relevant",
|
|
55
|
+
"reason": "AI-skill documentation page, not a data surface.",
|
|
56
|
+
"reviewedOn": "2026-08-11"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "api-reference/business-solutions/blog/tags",
|
|
60
|
+
"title": "Tags",
|
|
61
|
+
"url": "https://dev.wix.com/docs/api-reference/business-solutions/blog/tags",
|
|
62
|
+
"group": null,
|
|
63
|
+
"verdict": "claimed",
|
|
64
|
+
"refs": [
|
|
65
|
+
"blog/tag"
|
|
66
|
+
],
|
|
67
|
+
"reviewedOn": "2026-08-11"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
@@ -1,19 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"domain": "blog",
|
|
4
|
+
"dependsOnRequired": true,
|
|
5
|
+
"docsRoots": [
|
|
6
|
+
"api-reference/business-solutions/blog"
|
|
7
|
+
],
|
|
4
8
|
"displayName": "Wix Blog",
|
|
5
9
|
"ownerHint": "Blog posts, categories, tags, authorship, and comments domain owners",
|
|
6
|
-
"wixAppsRequired": [
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
"wixAppsRequired": [
|
|
11
|
+
"Wix Blog"
|
|
12
|
+
],
|
|
13
|
+
"defaultImportOrder": [
|
|
14
|
+
"category",
|
|
15
|
+
"tag",
|
|
16
|
+
"post",
|
|
17
|
+
"comment"
|
|
18
|
+
],
|
|
19
|
+
"sideEffectNotes": [
|
|
20
|
+
"Publishing imported posts may fire public publish side effects."
|
|
21
|
+
],
|
|
9
22
|
"evidence": [
|
|
10
23
|
{
|
|
11
|
-
"type": "
|
|
12
|
-
"path": "
|
|
13
|
-
|
|
14
|
-
{
|
|
15
|
-
"type": "repo-research",
|
|
16
|
-
"path": "research/source-entity-import-suitability-wordpress-woocommerce-wix.md"
|
|
24
|
+
"type": "domain-kb",
|
|
25
|
+
"path": "skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json",
|
|
26
|
+
"note": "per-field import-suitability rationale and evidence for this domain live on the entity files (category, tag, post, comment)"
|
|
17
27
|
}
|
|
18
28
|
]
|
|
19
29
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"domain": "blog",
|
|
4
4
|
"entity": "category",
|
|
5
5
|
"displayName": "Blog Category",
|
|
6
|
+
"capability": "content.blog-category",
|
|
6
7
|
"target": {
|
|
7
8
|
"classification": "native-plus-cms",
|
|
8
9
|
"nativeEntity": "Blog Category",
|
|
@@ -10,9 +11,24 @@
|
|
|
10
11
|
"idPolicy": "server-assigned",
|
|
11
12
|
"crosswalkRequired": true
|
|
12
13
|
},
|
|
14
|
+
"dependsOn": [],
|
|
13
15
|
"sourceAliases": [
|
|
14
|
-
{
|
|
15
|
-
|
|
16
|
+
{
|
|
17
|
+
"sourceSystem": "wordpress",
|
|
18
|
+
"sourceEntity": "category",
|
|
19
|
+
"routes": [
|
|
20
|
+
"/wp/v2/categories"
|
|
21
|
+
],
|
|
22
|
+
"confidence": "high"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"sourceSystem": "wix",
|
|
26
|
+
"sourceEntity": "blogCategory",
|
|
27
|
+
"routes": [
|
|
28
|
+
"Blog Categories"
|
|
29
|
+
],
|
|
30
|
+
"confidence": "high"
|
|
31
|
+
}
|
|
16
32
|
],
|
|
17
33
|
"preferredWrite": {
|
|
18
34
|
"surface": "Blog Categories",
|
|
@@ -23,15 +39,33 @@
|
|
|
23
39
|
"bulk": false
|
|
24
40
|
},
|
|
25
41
|
"fallbacks": [
|
|
26
|
-
{
|
|
42
|
+
{
|
|
43
|
+
"classification": "cms",
|
|
44
|
+
"when": "Use to preserve WordPress category hierarchy because Wix Blog categories are flat."
|
|
45
|
+
}
|
|
27
46
|
],
|
|
28
|
-
"reliability": {
|
|
47
|
+
"reliability": {
|
|
48
|
+
"status": "partially-reliable",
|
|
49
|
+
"flags": []
|
|
50
|
+
},
|
|
29
51
|
"pitfalls": [
|
|
30
|
-
{
|
|
52
|
+
{
|
|
53
|
+
"code": "flat-target",
|
|
54
|
+
"severity": "warning",
|
|
55
|
+
"summary": "Wix Blog categories are flat; WordPress hierarchy needs CMS shadowing if it matters."
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"mappingGuidance": [
|
|
59
|
+
"Resolve category collisions and crosswalk IDs before writing posts."
|
|
60
|
+
],
|
|
61
|
+
"setupRequirements": [
|
|
62
|
+
"Wix Blog app"
|
|
31
63
|
],
|
|
32
|
-
"mappingGuidance": ["Resolve category collisions and crosswalk IDs before writing posts."],
|
|
33
|
-
"setupRequirements": ["Wix Blog app"],
|
|
34
64
|
"evidence": [
|
|
35
|
-
{
|
|
65
|
+
{
|
|
66
|
+
"type": "wix-docs",
|
|
67
|
+
"url": "https://dev.wix.com/docs/api-reference/business-solutions/blog/category/category-object",
|
|
68
|
+
"note": "object page (docs-survey sweep 2026-08-11)"
|
|
69
|
+
}
|
|
36
70
|
]
|
|
37
71
|
}
|