@vendure/docs 0.0.0-202601161541
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/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +3 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +857 -0
- package/dist/manifest.js.map +1 -0
- package/docs/guides/core-concepts/auth/admin-role.webp +0 -0
- package/docs/guides/core-concepts/auth/admin.webp +0 -0
- package/docs/guides/core-concepts/auth/customer.webp +0 -0
- package/docs/guides/core-concepts/auth/index.md +557 -0
- package/docs/guides/core-concepts/auth/roles.webp +0 -0
- package/docs/guides/core-concepts/channels/channel-token.webp +0 -0
- package/docs/guides/core-concepts/channels/channels.webp +0 -0
- package/docs/guides/core-concepts/channels/channels_currencies_diagram.png +0 -0
- package/docs/guides/core-concepts/channels/channels_diagram.png +0 -0
- package/docs/guides/core-concepts/channels/channels_prices_diagram.png +0 -0
- package/docs/guides/core-concepts/channels/default-currency.webp +0 -0
- package/docs/guides/core-concepts/channels/index.md +154 -0
- package/docs/guides/core-concepts/channels/variant-prices.webp +0 -0
- package/docs/guides/core-concepts/collections/collection-filters.webp +0 -0
- package/docs/guides/core-concepts/collections/collections.webp +0 -0
- package/docs/guides/core-concepts/collections/filter-inheritance.webp +0 -0
- package/docs/guides/core-concepts/collections/index.mdx +125 -0
- package/docs/guides/core-concepts/customers/customer.webp +0 -0
- package/docs/guides/core-concepts/customers/index.mdx +21 -0
- package/docs/guides/core-concepts/email/email-plugin-flow.webp +0 -0
- package/docs/guides/core-concepts/email/index.mdx +155 -0
- package/docs/guides/core-concepts/images-assets/asset-flow.webp +0 -0
- package/docs/guides/core-concepts/images-assets/asset-tags.webp +0 -0
- package/docs/guides/core-concepts/images-assets/index.mdx +42 -0
- package/docs/guides/core-concepts/money/index.mdx +246 -0
- package/docs/guides/core-concepts/orders/custom-order-ui.webp +0 -0
- package/docs/guides/core-concepts/orders/index.md +366 -0
- package/docs/guides/core-concepts/orders/order-process.webp +0 -0
- package/docs/guides/core-concepts/orders/order.webp +0 -0
- package/docs/guides/core-concepts/payment/index.md +410 -0
- package/docs/guides/core-concepts/payment/payment-method.webp +0 -0
- package/docs/guides/core-concepts/payment/payment_sequence_one_step.png +0 -0
- package/docs/guides/core-concepts/payment/payment_sequence_two_step.png +0 -0
- package/docs/guides/core-concepts/products/facets.webp +0 -0
- package/docs/guides/core-concepts/products/index.mdx +59 -0
- package/docs/guides/core-concepts/products/product-relations.webp +0 -0
- package/docs/guides/core-concepts/products/products-variants.webp +0 -0
- package/docs/guides/core-concepts/promotions/index.md +324 -0
- package/docs/guides/core-concepts/shipping/index.md +225 -0
- package/docs/guides/core-concepts/shipping/shipping-method.webp +0 -0
- package/docs/guides/core-concepts/stock-control/global-stock-control.webp +0 -0
- package/docs/guides/core-concepts/stock-control/index.md +233 -0
- package/docs/guides/core-concepts/stock-control/stock-levels.webp +0 -0
- package/docs/guides/core-concepts/taxes/index.mdx +76 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/01-create-space.webp +0 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/02-space-access-keys.webp +0 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/03-create-app.webp +0 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/04-configure-server.webp +0 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/05-open-server-settings.webp +0 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/06-admin-app-route.webp +0 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/07-open-app.webp +0 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/deploy-to-do-app-platform.webp +0 -0
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/index.md +246 -0
- package/docs/guides/deployment/deploy-to-google-cloud-run/deploy-to-gcr.webp +0 -0
- package/docs/guides/deployment/deploy-to-google-cloud-run/index.md +53 -0
- package/docs/guides/deployment/deploy-to-northflank/01-create-template-screen.webp +0 -0
- package/docs/guides/deployment/deploy-to-northflank/02-paste-config.webp +0 -0
- package/docs/guides/deployment/deploy-to-northflank/03-run-template.webp +0 -0
- package/docs/guides/deployment/deploy-to-northflank/04-find-project.webp +0 -0
- package/docs/guides/deployment/deploy-to-northflank/05-server-service.webp +0 -0
- package/docs/guides/deployment/deploy-to-northflank/06-find-url.webp +0 -0
- package/docs/guides/deployment/deploy-to-northflank/deploy-to-northflank.webp +0 -0
- package/docs/guides/deployment/deploy-to-northflank/index.md +606 -0
- package/docs/guides/deployment/deploy-to-railway/01-new-service.webp +0 -0
- package/docs/guides/deployment/deploy-to-railway/02-env-vars.webp +0 -0
- package/docs/guides/deployment/deploy-to-railway/03-test-server.webp +0 -0
- package/docs/guides/deployment/deploy-to-railway/deploy-to-railway.webp +0 -0
- package/docs/guides/deployment/deploy-to-railway/index.md +202 -0
- package/docs/guides/deployment/deploy-to-render/01-create-db.webp +0 -0
- package/docs/guides/deployment/deploy-to-render/02-env-group.webp +0 -0
- package/docs/guides/deployment/deploy-to-render/03-db-connection.webp +0 -0
- package/docs/guides/deployment/deploy-to-render/04-link-env-group.webp +0 -0
- package/docs/guides/deployment/deploy-to-render/05-server-url.webp +0 -0
- package/docs/guides/deployment/deploy-to-render/deploy-to-render.webp +0 -0
- package/docs/guides/deployment/deploy-to-render/index.md +221 -0
- package/docs/guides/deployment/deploying-admin-ui.md +130 -0
- package/docs/guides/deployment/getting-data-into-production.md +50 -0
- package/docs/guides/deployment/horizontal-scaling.md +75 -0
- package/docs/guides/deployment/production-configuration/env-var-ui.webp +0 -0
- package/docs/guides/deployment/production-configuration/index.md +140 -0
- package/docs/guides/deployment/server-resource-requirements.md +29 -0
- package/docs/guides/deployment/using-docker.md +193 -0
- package/docs/guides/developer-guide/cache/cache-service.webp +0 -0
- package/docs/guides/developer-guide/cache/index.mdx +327 -0
- package/docs/guides/developer-guide/channel-aware/index.md +117 -0
- package/docs/guides/developer-guide/cli/add-command.webp +0 -0
- package/docs/guides/developer-guide/cli/index.md +418 -0
- package/docs/guides/developer-guide/cli/migrate-command.webp +0 -0
- package/docs/guides/developer-guide/cli/schema-command.webp +0 -0
- package/docs/guides/developer-guide/configuration/index.md +226 -0
- package/docs/guides/developer-guide/custom-fields/custom-fields-data-table.webp +0 -0
- package/docs/guides/developer-guide/custom-fields/custom-fields-ui.webp +0 -0
- package/docs/guides/developer-guide/custom-fields/index.md +1423 -0
- package/docs/guides/developer-guide/custom-permissions/index.md +186 -0
- package/docs/guides/developer-guide/custom-strategies-in-plugins/index.mdx +467 -0
- package/docs/guides/developer-guide/database-entity/index.md +136 -0
- package/docs/guides/developer-guide/dataloaders/index.md +137 -0
- package/docs/guides/developer-guide/db-subscribers/index.md +115 -0
- package/docs/guides/developer-guide/error-handling/index.mdx +324 -0
- package/docs/guides/developer-guide/events/index.mdx +406 -0
- package/docs/guides/developer-guide/extend-graphql-api/index.md +501 -0
- package/docs/guides/developer-guide/has-custom-fields/index.md +174 -0
- package/docs/guides/developer-guide/importing-data/index.md +488 -0
- package/docs/guides/developer-guide/importing-data/reindex.webp +0 -0
- package/docs/guides/developer-guide/logging/index.md +77 -0
- package/docs/guides/developer-guide/migrating-from-v1/breaking-api-changes.md +213 -0
- package/docs/guides/developer-guide/migrating-from-v1/database-migration.md +39 -0
- package/docs/guides/developer-guide/migrating-from-v1/index.md +41 -0
- package/docs/guides/developer-guide/migrating-from-v1/storefront-migration.md +30 -0
- package/docs/guides/developer-guide/migrations/index.md +197 -0
- package/docs/guides/developer-guide/migrations/migration.webp +0 -0
- package/docs/guides/developer-guide/nest-devtools/index.md +74 -0
- package/docs/guides/developer-guide/nest-devtools/nest-devtools-bootstrap-perf.webp +0 -0
- package/docs/guides/developer-guide/nest-devtools/nest-devtools-graph.webp +0 -0
- package/docs/guides/developer-guide/overview/Vendure_docs-architecture.webp +0 -0
- package/docs/guides/developer-guide/overview/index.md +40 -0
- package/docs/guides/developer-guide/plugins/index.mdx +806 -0
- package/docs/guides/developer-guide/rest-endpoint/index.md +99 -0
- package/docs/guides/developer-guide/scheduled-tasks/index.md +298 -0
- package/docs/guides/developer-guide/security/index.md +264 -0
- package/docs/guides/developer-guide/settings-store/index.mdx +553 -0
- package/docs/guides/developer-guide/stand-alone-scripts/index.md +119 -0
- package/docs/guides/developer-guide/strategies-configurable-operations/collection-filters-args.webp +0 -0
- package/docs/guides/developer-guide/strategies-configurable-operations/collection-filters.webp +0 -0
- package/docs/guides/developer-guide/strategies-configurable-operations/index.mdx +373 -0
- package/docs/guides/developer-guide/testing/index.md +254 -0
- package/docs/guides/developer-guide/the-api-layer/Vendure_docs-api_request.webp +0 -0
- package/docs/guides/developer-guide/the-api-layer/index.mdx +474 -0
- package/docs/guides/developer-guide/the-service-layer/index.mdx +311 -0
- package/docs/guides/developer-guide/translatable/index.md +224 -0
- package/docs/guides/developer-guide/translations/index.md +165 -0
- package/docs/guides/developer-guide/updating/index.md +79 -0
- package/docs/guides/developer-guide/uploading-files/index.md +220 -0
- package/docs/guides/developer-guide/worker-job-queue/Vendure_docs-job-queue-2.webp +0 -0
- package/docs/guides/developer-guide/worker-job-queue/Vendure_docs-job-queue-3.webp +0 -0
- package/docs/guides/developer-guide/worker-job-queue/Vendure_docs-job-queue.webp +0 -0
- package/docs/guides/developer-guide/worker-job-queue/index.mdx +522 -0
- package/docs/guides/developer-guide/worker-job-queue/worker-job-queue.webp +0 -0
- package/docs/guides/extending-the-admin-ui/add-actions-to-pages/index.md +233 -0
- package/docs/guides/extending-the-admin-ui/add-actions-to-pages/ui-extensions-actionbar-dropdown.webp +0 -0
- package/docs/guides/extending-the-admin-ui/add-actions-to-pages/ui-extensions-actionbar.webp +0 -0
- package/docs/guides/extending-the-admin-ui/adding-ui-translations/index.md +113 -0
- package/docs/guides/extending-the-admin-ui/adding-ui-translations/ui-translations-01.webp +0 -0
- package/docs/guides/extending-the-admin-ui/admin-ui-theming-branding/index.md +133 -0
- package/docs/guides/extending-the-admin-ui/alerts/alerts-01.webp +0 -0
- package/docs/guides/extending-the-admin-ui/alerts/index.md +56 -0
- package/docs/guides/extending-the-admin-ui/bulk-actions/bulk-actions-screenshot.webp +0 -0
- package/docs/guides/extending-the-admin-ui/bulk-actions/index.md +78 -0
- package/docs/guides/extending-the-admin-ui/creating-detail-views/index.md +332 -0
- package/docs/guides/extending-the-admin-ui/creating-list-views/index.md +331 -0
- package/docs/guides/extending-the-admin-ui/custom-data-table-components/custom-data-table-location.webp +0 -0
- package/docs/guides/extending-the-admin-ui/custom-data-table-components/custom-data-table.webp +0 -0
- package/docs/guides/extending-the-admin-ui/custom-data-table-components/index.md +111 -0
- package/docs/guides/extending-the-admin-ui/custom-detail-components/detail-component.webp +0 -0
- package/docs/guides/extending-the-admin-ui/custom-detail-components/index.md +198 -0
- package/docs/guides/extending-the-admin-ui/custom-form-inputs/index.md +285 -0
- package/docs/guides/extending-the-admin-ui/custom-form-inputs/ui-extensions-custom-field-default.webp +0 -0
- package/docs/guides/extending-the-admin-ui/custom-form-inputs/ui-extensions-custom-field-slider.webp +0 -0
- package/docs/guides/extending-the-admin-ui/custom-timeline-components/index.md +79 -0
- package/docs/guides/extending-the-admin-ui/custom-timeline-components/timeline-entry.webp +0 -0
- package/docs/guides/extending-the-admin-ui/dashboard-widgets/dashboard-widgets.webp +0 -0
- package/docs/guides/extending-the-admin-ui/dashboard-widgets/index.md +149 -0
- package/docs/guides/extending-the-admin-ui/defining-routes/index.md +777 -0
- package/docs/guides/extending-the-admin-ui/defining-routes/route-area.webp +0 -0
- package/docs/guides/extending-the-admin-ui/defining-routes/ui-extensions-greeter.webp +0 -0
- package/docs/guides/extending-the-admin-ui/getting-started/index.md +656 -0
- package/docs/guides/extending-the-admin-ui/getting-started/provider-extension-points.webp +0 -0
- package/docs/guides/extending-the-admin-ui/nav-menu/index.md +97 -0
- package/docs/guides/extending-the-admin-ui/nav-menu/nav-menu-id.webp +0 -0
- package/docs/guides/extending-the-admin-ui/nav-menu/ui-extensions-navbar.webp +0 -0
- package/docs/guides/extending-the-admin-ui/page-tabs/index.md +44 -0
- package/docs/guides/extending-the-admin-ui/page-tabs/ui-extensions-tabs.webp +0 -0
- package/docs/guides/extending-the-admin-ui/ui-library/buttons.webp +0 -0
- package/docs/guides/extending-the-admin-ui/ui-library/card.webp +0 -0
- package/docs/guides/extending-the-admin-ui/ui-library/form-inputs.webp +0 -0
- package/docs/guides/extending-the-admin-ui/ui-library/icons.webp +0 -0
- package/docs/guides/extending-the-admin-ui/ui-library/index.md +356 -0
- package/docs/guides/extending-the-admin-ui/ui-library/layout.webp +0 -0
- package/docs/guides/extending-the-admin-ui/using-other-frameworks/index.md +205 -0
- package/docs/guides/extending-the-admin-ui/using-other-frameworks/ui-extensions-cra.jpg +0 -0
- package/docs/guides/extending-the-dashboard/alerts/alert.webp +0 -0
- package/docs/guides/extending-the-dashboard/alerts/index.md +89 -0
- package/docs/guides/extending-the-dashboard/creating-pages/detail-pages.md +316 -0
- package/docs/guides/extending-the-dashboard/creating-pages/index.md +90 -0
- package/docs/guides/extending-the-dashboard/creating-pages/list-pages.md +206 -0
- package/docs/guides/extending-the-dashboard/creating-pages/tabbed-page-example.webp +0 -0
- package/docs/guides/extending-the-dashboard/creating-pages/tabbed-pages.md +144 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/color-picker.webp +0 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/dev-mode.webp +0 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/example-currency-input.webp +0 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/example-email-input.webp +0 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/example-slug-input.webp +0 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/example-tags-input.webp +0 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/form-component-examples.mdx +445 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/index.md +465 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/locator.webp +0 -0
- package/docs/guides/extending-the-dashboard/custom-form-components/relation-selectors.md +687 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/action-bar-button.webp +0 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/action-bar-dropdown.webp +0 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/action-bar-items.md +272 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/custom-widget.webp +0 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/customizing-detail-pages.md +129 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/customizing-list-pages.md +93 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/customizing-login-page.md +66 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/history-entries.md +43 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/history-entry.webp +0 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/index.md +10 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/insights-widgets.md +57 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/login-page.webp +0 -0
- package/docs/guides/extending-the-dashboard/customizing-pages/page-blocks.md +244 -0
- package/docs/guides/extending-the-dashboard/data-fetching/index.md +126 -0
- package/docs/guides/extending-the-dashboard/data-fetching/type-inference.webp +0 -0
- package/docs/guides/extending-the-dashboard/deployment/index.md +200 -0
- package/docs/guides/extending-the-dashboard/extending-overview/dev-mode.webp +0 -0
- package/docs/guides/extending-the-dashboard/extending-overview/index.md +228 -0
- package/docs/guides/extending-the-dashboard/extending-overview/location-id.webp +0 -0
- package/docs/guides/extending-the-dashboard/getting-started/detail-view.webp +0 -0
- package/docs/guides/extending-the-dashboard/getting-started/index.md +194 -0
- package/docs/guides/extending-the-dashboard/getting-started/list-view-empty.webp +0 -0
- package/docs/guides/extending-the-dashboard/getting-started/list-view-full.webp +0 -0
- package/docs/guides/extending-the-dashboard/getting-started/page-block.webp +0 -0
- package/docs/guides/extending-the-dashboard/getting-started/test-page.webp +0 -0
- package/docs/guides/extending-the-dashboard/localization/index.md +94 -0
- package/docs/guides/extending-the-dashboard/migration/index.md +1902 -0
- package/docs/guides/extending-the-dashboard/navigation/dev-mode-nav.webp +0 -0
- package/docs/guides/extending-the-dashboard/navigation/index.md +322 -0
- package/docs/guides/extending-the-dashboard/navigation/unauthenticated-page.webp +0 -0
- package/docs/guides/extending-the-dashboard/tech-stack/index.md +395 -0
- package/docs/guides/extending-the-dashboard/theming/index.md +180 -0
- package/docs/guides/extending-the-dashboard/theming/show-colour-value-inspection.gif +0 -0
- package/docs/guides/getting-started/graphql-intro/index.mdx +572 -0
- package/docs/guides/getting-started/installation/app-screens.webp +0 -0
- package/docs/guides/getting-started/installation/index.md +234 -0
- package/docs/guides/getting-started/try-the-api/graphiql-docs.jpeg +0 -0
- package/docs/guides/getting-started/try-the-api/graphiql.jpeg +0 -0
- package/docs/guides/getting-started/try-the-api/index.mdx +238 -0
- package/docs/guides/how-to/cms-integration-plugin/index.mdx +2083 -0
- package/docs/guides/how-to/codegen/index.md +280 -0
- package/docs/guides/how-to/configurable-products/index.md +138 -0
- package/docs/guides/how-to/digital-products/index.mdx +485 -0
- package/docs/guides/how-to/digital-products/product-variant.webp +0 -0
- package/docs/guides/how-to/digital-products/shipping-method.webp +0 -0
- package/docs/guides/how-to/github-oauth-authentication/index.mdx +360 -0
- package/docs/guides/how-to/google-oauth-authentication/index.mdx +494 -0
- package/docs/guides/how-to/multi-vendor-marketplaces/aggregate-order.webp +0 -0
- package/docs/guides/how-to/multi-vendor-marketplaces/index.md +197 -0
- package/docs/guides/how-to/paginated-list/index.mdx +360 -0
- package/docs/guides/how-to/publish-plugin/index.mdx +402 -0
- package/docs/guides/how-to/s3-asset-storage/index.mdx +572 -0
- package/docs/guides/how-to/telemetry/grafana-logs.webp +0 -0
- package/docs/guides/how-to/telemetry/grafana-trace.webp +0 -0
- package/docs/guides/how-to/telemetry/index.md +260 -0
- package/docs/guides/how-to/telemetry/jaeger-trace.webp +0 -0
- package/docs/guides/storefront/active-order/index.mdx +201 -0
- package/docs/guides/storefront/checkout-flow/index.mdx +428 -0
- package/docs/guides/storefront/codegen/index.mdx +157 -0
- package/docs/guides/storefront/connect-api/index.mdx +677 -0
- package/docs/guides/storefront/customer-accounts/index.mdx +389 -0
- package/docs/guides/storefront/customer-accounts/pw-reset.webp +0 -0
- package/docs/guides/storefront/customer-accounts/verification.webp +0 -0
- package/docs/guides/storefront/listing-products/index.mdx +711 -0
- package/docs/guides/storefront/navigation-menu/index.mdx +157 -0
- package/docs/guides/storefront/order-workflow/index.md +231 -0
- package/docs/guides/storefront/order-workflow/order_class_diagram.png +0 -0
- package/docs/guides/storefront/order-workflow/order_state_diagram.png +0 -0
- package/docs/guides/storefront/product-detail/index.mdx +295 -0
- package/docs/guides/storefront/storefront-starters/angular-storefront.webp +0 -0
- package/docs/guides/storefront/storefront-starters/index.mdx +69 -0
- package/docs/guides/storefront/storefront-starters/next-storefront.webp +0 -0
- package/docs/guides/storefront/storefront-starters/qwik-storefront.webp +0 -0
- package/docs/guides/storefront/storefront-starters/remix-storefront.webp +0 -0
- package/docs/reference/admin-ui-api/action-bar/action-bar-context.md +82 -0
- package/docs/reference/admin-ui-api/action-bar/action-bar-dropdown-menu-item.md +93 -0
- package/docs/reference/admin-ui-api/action-bar/action-bar-item.md +106 -0
- package/docs/reference/admin-ui-api/action-bar/action-bar-location-id.md +17 -0
- package/docs/reference/admin-ui-api/action-bar/add-action-bar-dropdown-menu-item.md +38 -0
- package/docs/reference/admin-ui-api/action-bar/add-action-bar-item.md +36 -0
- package/docs/reference/admin-ui-api/action-bar/index.md +5 -0
- package/docs/reference/admin-ui-api/action-bar/page-location-id.md +61 -0
- package/docs/reference/admin-ui-api/action-bar/router-link-definition.md +16 -0
- package/docs/reference/admin-ui-api/alerts/alert-config.md +88 -0
- package/docs/reference/admin-ui-api/alerts/alert-context.md +52 -0
- package/docs/reference/admin-ui-api/alerts/index.md +5 -0
- package/docs/reference/admin-ui-api/alerts/register-alert.md +23 -0
- package/docs/reference/admin-ui-api/bulk-actions/bulk-action.md +229 -0
- package/docs/reference/admin-ui-api/bulk-actions/index.md +5 -0
- package/docs/reference/admin-ui-api/bulk-actions/register-bulk-action.md +63 -0
- package/docs/reference/admin-ui-api/components/asset-picker-dialog-component.md +160 -0
- package/docs/reference/admin-ui-api/components/chip-component.md +63 -0
- package/docs/reference/admin-ui-api/components/currency-input-component.md +174 -0
- package/docs/reference/admin-ui-api/components/data-table-component.md +238 -0
- package/docs/reference/admin-ui-api/components/data-table2component.md +354 -0
- package/docs/reference/admin-ui-api/components/datetime-picker-component.md +262 -0
- package/docs/reference/admin-ui-api/components/dropdown-component.md +86 -0
- package/docs/reference/admin-ui-api/components/facet-value-selector-component.md +155 -0
- package/docs/reference/admin-ui-api/components/index.md +5 -0
- package/docs/reference/admin-ui-api/components/object-tree-component.md +86 -0
- package/docs/reference/admin-ui-api/components/order-state-label-component.md +41 -0
- package/docs/reference/admin-ui-api/components/product-variant-selector-component.md +75 -0
- package/docs/reference/admin-ui-api/components/rich-text-editor-component.md +108 -0
- package/docs/reference/admin-ui-api/components/zone-selector-component.md +124 -0
- package/docs/reference/admin-ui-api/custom-detail-components/custom-detail-component-config.md +41 -0
- package/docs/reference/admin-ui-api/custom-detail-components/custom-detail-component-location-id.md +36 -0
- package/docs/reference/admin-ui-api/custom-detail-components/custom-detail-component.md +36 -0
- package/docs/reference/admin-ui-api/custom-detail-components/index.md +5 -0
- package/docs/reference/admin-ui-api/custom-detail-components/register-custom-detail-component.md +69 -0
- package/docs/reference/admin-ui-api/custom-history-entry-components/customer-history-entry-component.md +32 -0
- package/docs/reference/admin-ui-api/custom-history-entry-components/history-entry-component.md +57 -0
- package/docs/reference/admin-ui-api/custom-history-entry-components/history-entry-config.md +35 -0
- package/docs/reference/admin-ui-api/custom-history-entry-components/index.md +5 -0
- package/docs/reference/admin-ui-api/custom-history-entry-components/order-history-entry-component.md +32 -0
- package/docs/reference/admin-ui-api/custom-history-entry-components/register-history-entry-component.md +79 -0
- package/docs/reference/admin-ui-api/custom-input-components/default-inputs.md +1034 -0
- package/docs/reference/admin-ui-api/custom-input-components/form-input-component.md +56 -0
- package/docs/reference/admin-ui-api/custom-input-components/index.md +5 -0
- package/docs/reference/admin-ui-api/custom-input-components/register-form-input-component.md +71 -0
- package/docs/reference/admin-ui-api/custom-table-components/custom-column-component.md +32 -0
- package/docs/reference/admin-ui-api/custom-table-components/data-table-component-config.md +48 -0
- package/docs/reference/admin-ui-api/custom-table-components/index.md +5 -0
- package/docs/reference/admin-ui-api/custom-table-components/register-data-table-component.md +55 -0
- package/docs/reference/admin-ui-api/dashboard-widgets/dashboard-widget-config.md +60 -0
- package/docs/reference/admin-ui-api/dashboard-widgets/index.md +5 -0
- package/docs/reference/admin-ui-api/dashboard-widgets/register-dashboard-widget.md +27 -0
- package/docs/reference/admin-ui-api/dashboard-widgets/set-dashboard-widget-layout.md +22 -0
- package/docs/reference/admin-ui-api/dashboard-widgets/widget-layout-definition.md +16 -0
- package/docs/reference/admin-ui-api/directives/if-multichannel-directive.md +41 -0
- package/docs/reference/admin-ui-api/directives/if-permissions-directive.md +43 -0
- package/docs/reference/admin-ui-api/directives/index.md +5 -0
- package/docs/reference/admin-ui-api/index.md +13 -0
- package/docs/reference/admin-ui-api/list-detail-views/base-detail-component.md +168 -0
- package/docs/reference/admin-ui-api/list-detail-views/base-entity-resolver.md +54 -0
- package/docs/reference/admin-ui-api/list-detail-views/base-list-component.md +155 -0
- package/docs/reference/admin-ui-api/list-detail-views/detail-component-with-resolver.md +52 -0
- package/docs/reference/admin-ui-api/list-detail-views/index.md +5 -0
- package/docs/reference/admin-ui-api/list-detail-views/typed-base-detail-component.md +51 -0
- package/docs/reference/admin-ui-api/list-detail-views/typed-base-list-component.md +125 -0
- package/docs/reference/admin-ui-api/nav-menu/add-nav-menu-item.md +52 -0
- package/docs/reference/admin-ui-api/nav-menu/add-nav-menu-section.md +47 -0
- package/docs/reference/admin-ui-api/nav-menu/index.md +5 -0
- package/docs/reference/admin-ui-api/nav-menu/nav-menu-item.md +66 -0
- package/docs/reference/admin-ui-api/nav-menu/nav-menu-section.md +83 -0
- package/docs/reference/admin-ui-api/nav-menu/navigation-types.md +38 -0
- package/docs/reference/admin-ui-api/pipes/asset-preview-pipe.md +41 -0
- package/docs/reference/admin-ui-api/pipes/duration-pipe.md +45 -0
- package/docs/reference/admin-ui-api/pipes/file-size-pipe.md +38 -0
- package/docs/reference/admin-ui-api/pipes/has-permission-pipe.md +51 -0
- package/docs/reference/admin-ui-api/pipes/index.md +5 -0
- package/docs/reference/admin-ui-api/pipes/locale-currency-name-pipe.md +47 -0
- package/docs/reference/admin-ui-api/pipes/locale-currency-pipe.md +54 -0
- package/docs/reference/admin-ui-api/pipes/locale-date-pipe.md +48 -0
- package/docs/reference/admin-ui-api/pipes/locale-language-name-pipe.md +47 -0
- package/docs/reference/admin-ui-api/pipes/locale-region-name-pipe.md +47 -0
- package/docs/reference/admin-ui-api/pipes/time-ago-pipe.md +44 -0
- package/docs/reference/admin-ui-api/react-components/action-bar.md +36 -0
- package/docs/reference/admin-ui-api/react-components/card.md +36 -0
- package/docs/reference/admin-ui-api/react-components/cds-icon.md +34 -0
- package/docs/reference/admin-ui-api/react-components/form-field.md +42 -0
- package/docs/reference/admin-ui-api/react-components/index.md +5 -0
- package/docs/reference/admin-ui-api/react-components/link.md +34 -0
- package/docs/reference/admin-ui-api/react-components/page-block.md +36 -0
- package/docs/reference/admin-ui-api/react-components/page-detail-layout.md +36 -0
- package/docs/reference/admin-ui-api/react-components/rich-text-editor.md +42 -0
- package/docs/reference/admin-ui-api/react-extensions/index.md +5 -0
- package/docs/reference/admin-ui-api/react-extensions/react-custom-detail-component-config.md +41 -0
- package/docs/reference/admin-ui-api/react-extensions/react-data-table-component-config.md +48 -0
- package/docs/reference/admin-ui-api/react-extensions/register-react-custom-detail-component.md +23 -0
- package/docs/reference/admin-ui-api/react-extensions/register-react-data-table-component.md +55 -0
- package/docs/reference/admin-ui-api/react-extensions/register-react-form-input-component.md +26 -0
- package/docs/reference/admin-ui-api/react-extensions/register-react-route-component-options.md +18 -0
- package/docs/reference/admin-ui-api/react-extensions/register-react-route-component.md +22 -0
- package/docs/reference/admin-ui-api/react-hooks/index.md +5 -0
- package/docs/reference/admin-ui-api/react-hooks/use-detail-component-data.md +39 -0
- package/docs/reference/admin-ui-api/react-hooks/use-form-control.md +36 -0
- package/docs/reference/admin-ui-api/react-hooks/use-injector.md +39 -0
- package/docs/reference/admin-ui-api/react-hooks/use-lazy-query.md +74 -0
- package/docs/reference/admin-ui-api/react-hooks/use-mutation.md +62 -0
- package/docs/reference/admin-ui-api/react-hooks/use-page-metadata.md +36 -0
- package/docs/reference/admin-ui-api/react-hooks/use-query.md +59 -0
- package/docs/reference/admin-ui-api/react-hooks/use-rich-text-editor.md +30 -0
- package/docs/reference/admin-ui-api/react-hooks/use-route-params.md +29 -0
- package/docs/reference/admin-ui-api/routes/index.md +5 -0
- package/docs/reference/admin-ui-api/routes/register-route-component-options.md +28 -0
- package/docs/reference/admin-ui-api/routes/register-route-component.md +57 -0
- package/docs/reference/admin-ui-api/services/data-service.md +142 -0
- package/docs/reference/admin-ui-api/services/index.md +5 -0
- package/docs/reference/admin-ui-api/services/modal-service.md +199 -0
- package/docs/reference/admin-ui-api/services/notification-service.md +126 -0
- package/docs/reference/admin-ui-api/tabs/index.md +5 -0
- package/docs/reference/admin-ui-api/tabs/page-tab-config.md +70 -0
- package/docs/reference/admin-ui-api/tabs/register-page-tab.md +38 -0
- package/docs/reference/admin-ui-api/ui-devkit/admin-ui-extension.md +417 -0
- package/docs/reference/admin-ui-api/ui-devkit/compile-ui-extensions.md +22 -0
- package/docs/reference/admin-ui-api/ui-devkit/helpers.md +39 -0
- package/docs/reference/admin-ui-api/ui-devkit/index.md +5 -0
- package/docs/reference/admin-ui-api/ui-devkit/ui-devkit-client.md +160 -0
- package/docs/reference/admin-ui-api/ui-devkit/ui-extension-build-command.md +16 -0
- package/docs/reference/admin-ui-api/ui-devkit/ui-extension-compiler-options.md +118 -0
- package/docs/reference/admin-ui-api/ui-devkit/ui-extension-compiler-process-argument.md +16 -0
- package/docs/reference/core-plugins/admin-ui-plugin/admin-ui-plugin-options.md +67 -0
- package/docs/reference/core-plugins/admin-ui-plugin/index.md +94 -0
- package/docs/reference/core-plugins/asset-server-plugin/asset-server-options.md +106 -0
- package/docs/reference/core-plugins/asset-server-plugin/cache-config.md +36 -0
- package/docs/reference/core-plugins/asset-server-plugin/hashed-asset-naming-strategy.md +47 -0
- package/docs/reference/core-plugins/asset-server-plugin/image-transform-mode.md +21 -0
- package/docs/reference/core-plugins/asset-server-plugin/image-transform-preset.md +57 -0
- package/docs/reference/core-plugins/asset-server-plugin/image-transform-strategy.md +144 -0
- package/docs/reference/core-plugins/asset-server-plugin/index.md +189 -0
- package/docs/reference/core-plugins/asset-server-plugin/local-asset-storage-strategy.md +74 -0
- package/docs/reference/core-plugins/asset-server-plugin/preset-only-strategy.md +118 -0
- package/docs/reference/core-plugins/asset-server-plugin/s3asset-storage-strategy.md +225 -0
- package/docs/reference/core-plugins/asset-server-plugin/sharp-asset-preview-strategy.md +118 -0
- package/docs/reference/core-plugins/dashboard-plugin/dashboard-plugin-options.md +43 -0
- package/docs/reference/core-plugins/dashboard-plugin/index.md +106 -0
- package/docs/reference/core-plugins/elasticsearch-plugin/elasticsearch-options.md +695 -0
- package/docs/reference/core-plugins/elasticsearch-plugin/index.md +193 -0
- package/docs/reference/core-plugins/email-plugin/email-event-handler-with-async-data.md +33 -0
- package/docs/reference/core-plugins/email-plugin/email-event-handler.md +299 -0
- package/docs/reference/core-plugins/email-plugin/email-event-listener.md +42 -0
- package/docs/reference/core-plugins/email-plugin/email-generator.md +78 -0
- package/docs/reference/core-plugins/email-plugin/email-plugin-options.md +154 -0
- package/docs/reference/core-plugins/email-plugin/email-plugin-types.md +276 -0
- package/docs/reference/core-plugins/email-plugin/email-send-event.md +34 -0
- package/docs/reference/core-plugins/email-plugin/email-sender.md +92 -0
- package/docs/reference/core-plugins/email-plugin/email-utils.md +54 -0
- package/docs/reference/core-plugins/email-plugin/index.md +309 -0
- package/docs/reference/core-plugins/email-plugin/template-loader.md +96 -0
- package/docs/reference/core-plugins/email-plugin/transport-options.md +241 -0
- package/docs/reference/core-plugins/graphiql-plugin/index.md +89 -0
- package/docs/reference/core-plugins/harden-plugin/default-vendure-complexity-estimator.md +30 -0
- package/docs/reference/core-plugins/harden-plugin/harden-plugin-options.md +106 -0
- package/docs/reference/core-plugins/harden-plugin/index.md +169 -0
- package/docs/reference/core-plugins/index.md +5 -0
- package/docs/reference/core-plugins/job-queue-plugin/bull-mqjob-queue-plugin.md +211 -0
- package/docs/reference/core-plugins/job-queue-plugin/bull-mqjob-queue-strategy.md +93 -0
- package/docs/reference/core-plugins/job-queue-plugin/bull-mqplugin-options.md +142 -0
- package/docs/reference/core-plugins/job-queue-plugin/index.md +5 -0
- package/docs/reference/core-plugins/job-queue-plugin/pub-sub-job-queue-strategy.md +65 -0
- package/docs/reference/core-plugins/job-queue-plugin/pub-sub-plugin.md +36 -0
- package/docs/reference/core-plugins/payments-plugin/braintree-plugin.md +350 -0
- package/docs/reference/core-plugins/payments-plugin/index.md +5 -0
- package/docs/reference/core-plugins/payments-plugin/mollie-plugin.md +209 -0
- package/docs/reference/core-plugins/payments-plugin/stripe-plugin.md +355 -0
- package/docs/reference/core-plugins/sentry-plugin/index.md +158 -0
- package/docs/reference/core-plugins/sentry-plugin/sentry-plugin-options.md +32 -0
- package/docs/reference/core-plugins/sentry-plugin/sentry-service.md +47 -0
- package/docs/reference/core-plugins/stellate-plugin/index.md +277 -0
- package/docs/reference/core-plugins/stellate-plugin/purge-rule.md +91 -0
- package/docs/reference/core-plugins/stellate-plugin/stellate-plugin-options.md +65 -0
- package/docs/reference/core-plugins/stellate-plugin/stellate-service.md +71 -0
- package/docs/reference/core-plugins/telemetry-plugin/get-sdk-configuration.md +92 -0
- package/docs/reference/core-plugins/telemetry-plugin/index.md +131 -0
- package/docs/reference/core-plugins/telemetry-plugin/otel-logger.md +102 -0
- package/docs/reference/core-plugins/telemetry-plugin/register-method-hooks.md +46 -0
- package/docs/reference/core-plugins/telemetry-plugin/telemetry-plugin-options.md +77 -0
- package/docs/reference/dashboard/components/asset-gallery.md +127 -0
- package/docs/reference/dashboard/components/asset-picker-dialog.md +76 -0
- package/docs/reference/dashboard/components/channel-chip.md +22 -0
- package/docs/reference/dashboard/components/detail-page-button.md +49 -0
- package/docs/reference/dashboard/components/facet-value-chip.md +22 -0
- package/docs/reference/dashboard/components/facet-value-selector.md +85 -0
- package/docs/reference/dashboard/components/index.md +5 -0
- package/docs/reference/dashboard/components/permission-guard.md +63 -0
- package/docs/reference/dashboard/components/vendure-image.md +199 -0
- package/docs/reference/dashboard/detail-views/detail-page.md +91 -0
- package/docs/reference/dashboard/detail-views/index.md +5 -0
- package/docs/reference/dashboard/detail-views/use-detail-page.md +234 -0
- package/docs/reference/dashboard/detail-views/use-generated-form.md +105 -0
- package/docs/reference/dashboard/extensions-api/action-bar.md +66 -0
- package/docs/reference/dashboard/extensions-api/alerts.md +78 -0
- package/docs/reference/dashboard/extensions-api/data-tables.md +55 -0
- package/docs/reference/dashboard/extensions-api/define-dashboard-extension.md +142 -0
- package/docs/reference/dashboard/extensions-api/detail-forms.md +81 -0
- package/docs/reference/dashboard/extensions-api/form-components.md +188 -0
- package/docs/reference/dashboard/extensions-api/history-entries.md +246 -0
- package/docs/reference/dashboard/extensions-api/index.md +5 -0
- package/docs/reference/dashboard/extensions-api/login.md +113 -0
- package/docs/reference/dashboard/extensions-api/navigation.md +128 -0
- package/docs/reference/dashboard/extensions-api/page-blocks.md +143 -0
- package/docs/reference/dashboard/extensions-api/routes.md +69 -0
- package/docs/reference/dashboard/extensions-api/widgets.md +61 -0
- package/docs/reference/dashboard/form-components/affixed-input.md +34 -0
- package/docs/reference/dashboard/form-components/boolean-input.md +22 -0
- package/docs/reference/dashboard/form-components/checkbox-input.md +22 -0
- package/docs/reference/dashboard/form-components/date-time-input.md +22 -0
- package/docs/reference/dashboard/form-components/form-field-wrapper.md +80 -0
- package/docs/reference/dashboard/form-components/index.md +5 -0
- package/docs/reference/dashboard/form-components/money-input.md +23 -0
- package/docs/reference/dashboard/form-components/number-input.md +22 -0
- package/docs/reference/dashboard/form-components/password-input.md +22 -0
- package/docs/reference/dashboard/form-components/rich-text-input.md +22 -0
- package/docs/reference/dashboard/form-components/slug-input.md +57 -0
- package/docs/reference/dashboard/form-components/text-input.md +13 -0
- package/docs/reference/dashboard/form-components/textarea-input.md +22 -0
- package/docs/reference/dashboard/form-components/translatable-form-field-wrapper.md +70 -0
- package/docs/reference/dashboard/hooks/index.md +5 -0
- package/docs/reference/dashboard/hooks/use-alerts.md +65 -0
- package/docs/reference/dashboard/hooks/use-auth.md +84 -0
- package/docs/reference/dashboard/hooks/use-channel.md +72 -0
- package/docs/reference/dashboard/hooks/use-custom-field-config.md +24 -0
- package/docs/reference/dashboard/hooks/use-display-locale.md +32 -0
- package/docs/reference/dashboard/hooks/use-drag-and-drop.md +22 -0
- package/docs/reference/dashboard/hooks/use-local-format.md +30 -0
- package/docs/reference/dashboard/hooks/use-paginated-list.md +29 -0
- package/docs/reference/dashboard/hooks/use-permissions.md +25 -0
- package/docs/reference/dashboard/hooks/use-sorted-languages.md +30 -0
- package/docs/reference/dashboard/hooks/use-ui-language-loader.md +18 -0
- package/docs/reference/dashboard/hooks/use-widget-filters.md +16 -0
- package/docs/reference/dashboard/list-views/bulk-actions.md +199 -0
- package/docs/reference/dashboard/list-views/data-table-cell-component.md +45 -0
- package/docs/reference/dashboard/list-views/data-table.md +209 -0
- package/docs/reference/dashboard/list-views/index.md +5 -0
- package/docs/reference/dashboard/list-views/list-page.md +493 -0
- package/docs/reference/dashboard/list-views/paginated-list-data-table.md +303 -0
- package/docs/reference/dashboard/page-layout/index.md +54 -0
- package/docs/reference/dashboard/page-layout/page-action-bar.md +62 -0
- package/docs/reference/dashboard/page-layout/page-block.md +137 -0
- package/docs/reference/dashboard/page-layout/page-title.md +22 -0
- package/docs/reference/dashboard/page-layout/page.md +100 -0
- package/docs/reference/dashboard/page-layout/use-page-block.md +32 -0
- package/docs/reference/dashboard/vite-plugin/index.md +5 -0
- package/docs/reference/dashboard/vite-plugin/vendure-dashboard-plugin.md +356 -0
- package/docs/reference/graphql-api/_index.md +16 -0
- package/docs/reference/graphql-api/admin/_index.md +13 -0
- package/docs/reference/graphql-api/admin/enums.md +1142 -0
- package/docs/reference/graphql-api/admin/input-types.md +4631 -0
- package/docs/reference/graphql-api/admin/mutations.md +1985 -0
- package/docs/reference/graphql-api/admin/object-types.md +4515 -0
- package/docs/reference/graphql-api/admin/queries.md +760 -0
- package/docs/reference/graphql-api/shop/_index.md +13 -0
- package/docs/reference/graphql-api/shop/enums.md +1072 -0
- package/docs/reference/graphql-api/shop/input-types.md +1192 -0
- package/docs/reference/graphql-api/shop/mutations.md +431 -0
- package/docs/reference/graphql-api/shop/object-types.md +3406 -0
- package/docs/reference/graphql-api/shop/queries.md +247 -0
- package/docs/reference/index.mdx +38 -0
- package/docs/reference/links.webp +0 -0
- package/docs/reference/typescript-api/_index.md +13 -0
- package/docs/reference/typescript-api/assets/asset-naming-strategy.md +56 -0
- package/docs/reference/typescript-api/assets/asset-options.md +58 -0
- package/docs/reference/typescript-api/assets/asset-preview-strategy.md +45 -0
- package/docs/reference/typescript-api/assets/asset-storage-strategy.md +84 -0
- package/docs/reference/typescript-api/assets/default-asset-naming-strategy.md +39 -0
- package/docs/reference/typescript-api/assets/index.md +5 -0
- package/docs/reference/typescript-api/auth/auth-options.md +165 -0
- package/docs/reference/typescript-api/auth/authentication-strategy.md +97 -0
- package/docs/reference/typescript-api/auth/bcrypt-password-hashing-strategy.md +38 -0
- package/docs/reference/typescript-api/auth/cookie-options.md +108 -0
- package/docs/reference/typescript-api/auth/default-password-validation-strategy.md +44 -0
- package/docs/reference/typescript-api/auth/default-session-cache-strategy.md +73 -0
- package/docs/reference/typescript-api/auth/default-verification-token-strategy.md +47 -0
- package/docs/reference/typescript-api/auth/external-authentication-service.md +98 -0
- package/docs/reference/typescript-api/auth/in-memory-session-cache-strategy.md +63 -0
- package/docs/reference/typescript-api/auth/index.md +5 -0
- package/docs/reference/typescript-api/auth/native-authentication-strategy.md +58 -0
- package/docs/reference/typescript-api/auth/noop-session-cache-strategy.md +51 -0
- package/docs/reference/typescript-api/auth/password-hashing-strategy.md +45 -0
- package/docs/reference/typescript-api/auth/password-validation-strategy.md +43 -0
- package/docs/reference/typescript-api/auth/permission-definition.md +269 -0
- package/docs/reference/typescript-api/auth/session-cache-strategy.md +275 -0
- package/docs/reference/typescript-api/auth/superadmin-credentials.md +36 -0
- package/docs/reference/typescript-api/auth/verification-token-strategy.md +45 -0
- package/docs/reference/typescript-api/cache/cache-config.md +44 -0
- package/docs/reference/typescript-api/cache/cache-service.md +76 -0
- package/docs/reference/typescript-api/cache/cache-strategy.md +103 -0
- package/docs/reference/typescript-api/cache/default-cache-plugin.md +73 -0
- package/docs/reference/typescript-api/cache/index.md +79 -0
- package/docs/reference/typescript-api/cache/redis-cache-plugin.md +85 -0
- package/docs/reference/typescript-api/cache/redis-cache-strategy.md +75 -0
- package/docs/reference/typescript-api/cache/request-context-cache-service.md +54 -0
- package/docs/reference/typescript-api/cache/self-refreshing-cache.md +152 -0
- package/docs/reference/typescript-api/cache/sql-cache-strategy.md +87 -0
- package/docs/reference/typescript-api/common/admin-ui/admin-ui-app-config.md +43 -0
- package/docs/reference/typescript-api/common/admin-ui/admin-ui-app-dev-mode-config.md +47 -0
- package/docs/reference/typescript-api/common/admin-ui/admin-ui-config.md +139 -0
- package/docs/reference/typescript-api/common/admin-ui/index.md +5 -0
- package/docs/reference/typescript-api/common/async-queue.md +38 -0
- package/docs/reference/typescript-api/common/bootstrap.md +129 -0
- package/docs/reference/typescript-api/common/currency-code.md +174 -0
- package/docs/reference/typescript-api/common/entity-relation-paths.md +34 -0
- package/docs/reference/typescript-api/common/i18n-service.md +74 -0
- package/docs/reference/typescript-api/common/id.md +17 -0
- package/docs/reference/typescript-api/common/index.md +5 -0
- package/docs/reference/typescript-api/common/injectable-strategy.md +48 -0
- package/docs/reference/typescript-api/common/injector.md +47 -0
- package/docs/reference/typescript-api/common/job-state.md +23 -0
- package/docs/reference/typescript-api/common/json-compatible.md +23 -0
- package/docs/reference/typescript-api/common/language-code.md +177 -0
- package/docs/reference/typescript-api/common/middleware.md +72 -0
- package/docs/reference/typescript-api/common/paginated-list.md +36 -0
- package/docs/reference/typescript-api/common/permission.md +136 -0
- package/docs/reference/typescript-api/common/price-calculation-result.md +36 -0
- package/docs/reference/typescript-api/common/process-context.md +55 -0
- package/docs/reference/typescript-api/common/vendure_version.md +22 -0
- package/docs/reference/typescript-api/configurable-operation-def/config-arg-type.md +22 -0
- package/docs/reference/typescript-api/configurable-operation-def/config-args.md +89 -0
- package/docs/reference/typescript-api/configurable-operation-def/configurable-operation-def-options.md +57 -0
- package/docs/reference/typescript-api/configurable-operation-def/default-form-component-id.md +34 -0
- package/docs/reference/typescript-api/configurable-operation-def/default-form-config-hash.md +137 -0
- package/docs/reference/typescript-api/configurable-operation-def/index.md +149 -0
- package/docs/reference/typescript-api/configurable-operation-def/localized-string-array.md +28 -0
- package/docs/reference/typescript-api/configuration/api-options.md +159 -0
- package/docs/reference/typescript-api/configuration/collection-filter.md +76 -0
- package/docs/reference/typescript-api/configuration/default-config.md +13 -0
- package/docs/reference/typescript-api/configuration/default-slug-strategy.md +46 -0
- package/docs/reference/typescript-api/configuration/entity-duplicator.md +195 -0
- package/docs/reference/typescript-api/configuration/entity-id-decorator.md +24 -0
- package/docs/reference/typescript-api/configuration/entity-id-strategy.md +168 -0
- package/docs/reference/typescript-api/configuration/entity-options.md +153 -0
- package/docs/reference/typescript-api/configuration/index.md +5 -0
- package/docs/reference/typescript-api/configuration/merge-config.md +49 -0
- package/docs/reference/typescript-api/configuration/product-variant-price-selection-strategy.md +71 -0
- package/docs/reference/typescript-api/configuration/product-variant-price-update-strategy.md +185 -0
- package/docs/reference/typescript-api/configuration/runtime-vendure-config.md +111 -0
- package/docs/reference/typescript-api/configuration/settings-store-fields.md +29 -0
- package/docs/reference/typescript-api/configuration/slug-strategy.md +47 -0
- package/docs/reference/typescript-api/configuration/system-options.md +50 -0
- package/docs/reference/typescript-api/configuration/trust-proxy-options.md +19 -0
- package/docs/reference/typescript-api/configuration/vendure-config.md +168 -0
- package/docs/reference/typescript-api/custom-fields/custom-field-config.md +25 -0
- package/docs/reference/typescript-api/custom-fields/custom-field-type.md +42 -0
- package/docs/reference/typescript-api/custom-fields/index.md +70 -0
- package/docs/reference/typescript-api/custom-fields/struct-custom-field-config.md +21 -0
- package/docs/reference/typescript-api/custom-fields/struct-field-config.md +41 -0
- package/docs/reference/typescript-api/custom-fields/typed-custom-single-field-config.md +24 -0
- package/docs/reference/typescript-api/data-access/calculated-property-subscriber.md +38 -0
- package/docs/reference/typescript-api/data-access/calculated.md +62 -0
- package/docs/reference/typescript-api/data-access/entity-hydrator.md +103 -0
- package/docs/reference/typescript-api/data-access/get-entity-or-throw-options.md +53 -0
- package/docs/reference/typescript-api/data-access/hydrate-options.md +40 -0
- package/docs/reference/typescript-api/data-access/index.md +5 -0
- package/docs/reference/typescript-api/data-access/list-query-builder.md +239 -0
- package/docs/reference/typescript-api/data-access/transactional-connection.md +173 -0
- package/docs/reference/typescript-api/default-search-plugin/default-search-plugin-init-options.md +126 -0
- package/docs/reference/typescript-api/default-search-plugin/index.md +64 -0
- package/docs/reference/typescript-api/default-search-plugin/mysql-search-strategy.md +56 -0
- package/docs/reference/typescript-api/default-search-plugin/postgres-search-strategy.md +56 -0
- package/docs/reference/typescript-api/default-search-plugin/search-strategy.md +58 -0
- package/docs/reference/typescript-api/default-search-plugin/sqlite-search-strategy.md +57 -0
- package/docs/reference/typescript-api/entities/address.md +124 -0
- package/docs/reference/typescript-api/entities/administrator.md +78 -0
- package/docs/reference/typescript-api/entities/anonymous-session.md +34 -0
- package/docs/reference/typescript-api/entities/asset.md +135 -0
- package/docs/reference/typescript-api/entities/authenticated-session.md +48 -0
- package/docs/reference/typescript-api/entities/authentication-method.md +156 -0
- package/docs/reference/typescript-api/entities/channel.md +233 -0
- package/docs/reference/typescript-api/entities/collection.md +152 -0
- package/docs/reference/typescript-api/entities/country.md +40 -0
- package/docs/reference/typescript-api/entities/customer-group.md +63 -0
- package/docs/reference/typescript-api/entities/customer-history-entry.md +40 -0
- package/docs/reference/typescript-api/entities/customer.md +122 -0
- package/docs/reference/typescript-api/entities/facet-value.md +98 -0
- package/docs/reference/typescript-api/entities/facet.md +89 -0
- package/docs/reference/typescript-api/entities/fulfillment.md +84 -0
- package/docs/reference/typescript-api/entities/global-settings.md +66 -0
- package/docs/reference/typescript-api/entities/history-entry.md +66 -0
- package/docs/reference/typescript-api/entities/index.md +5 -0
- package/docs/reference/typescript-api/entities/interfaces.md +125 -0
- package/docs/reference/typescript-api/entities/order-history-entry.md +40 -0
- package/docs/reference/typescript-api/entities/order-line-reference.md +174 -0
- package/docs/reference/typescript-api/entities/order-line.md +344 -0
- package/docs/reference/typescript-api/entities/order-modification.md +103 -0
- package/docs/reference/typescript-api/entities/order.md +284 -0
- package/docs/reference/typescript-api/entities/orderable-asset.md +61 -0
- package/docs/reference/typescript-api/entities/payment-method.md +94 -0
- package/docs/reference/typescript-api/entities/payment.md +96 -0
- package/docs/reference/typescript-api/entities/product-option-group.md +84 -0
- package/docs/reference/typescript-api/entities/product-option.md +90 -0
- package/docs/reference/typescript-api/entities/product-variant-price.md +70 -0
- package/docs/reference/typescript-api/entities/product-variant.md +251 -0
- package/docs/reference/typescript-api/entities/product.md +134 -0
- package/docs/reference/typescript-api/entities/promotion.md +190 -0
- package/docs/reference/typescript-api/entities/province.md +39 -0
- package/docs/reference/typescript-api/entities/refund.md +120 -0
- package/docs/reference/typescript-api/entities/region.md +87 -0
- package/docs/reference/typescript-api/entities/role.md +62 -0
- package/docs/reference/typescript-api/entities/seller.md +63 -0
- package/docs/reference/typescript-api/entities/session.md +87 -0
- package/docs/reference/typescript-api/entities/settings-store-entry.md +57 -0
- package/docs/reference/typescript-api/entities/shipping-line.md +150 -0
- package/docs/reference/typescript-api/entities/shipping-method.md +123 -0
- package/docs/reference/typescript-api/entities/stock-level.md +87 -0
- package/docs/reference/typescript-api/entities/stock-location.md +76 -0
- package/docs/reference/typescript-api/entities/stock-movement.md +270 -0
- package/docs/reference/typescript-api/entities/surcharge.md +102 -0
- package/docs/reference/typescript-api/entities/tag.md +40 -0
- package/docs/reference/typescript-api/entities/tax-category.md +68 -0
- package/docs/reference/typescript-api/entities/tax-rate.md +138 -0
- package/docs/reference/typescript-api/entities/user.md +111 -0
- package/docs/reference/typescript-api/entities/vendure-entity.md +49 -0
- package/docs/reference/typescript-api/entities/zone.md +78 -0
- package/docs/reference/typescript-api/errors/error-handler-strategy.md +88 -0
- package/docs/reference/typescript-api/errors/error-result-union.md +30 -0
- package/docs/reference/typescript-api/errors/error-types.md +197 -0
- package/docs/reference/typescript-api/errors/i18n-error.md +39 -0
- package/docs/reference/typescript-api/errors/index.md +5 -0
- package/docs/reference/typescript-api/errors/is-graph-ql-error-result.md +40 -0
- package/docs/reference/typescript-api/events/blocking-event-handler-options.md +57 -0
- package/docs/reference/typescript-api/events/event-bus.md +136 -0
- package/docs/reference/typescript-api/events/event-types.md +1689 -0
- package/docs/reference/typescript-api/events/index.md +5 -0
- package/docs/reference/typescript-api/events/vendure-entity-event.md +57 -0
- package/docs/reference/typescript-api/events/vendure-event.md +35 -0
- package/docs/reference/typescript-api/fulfillment/fulfillment-handler.md +173 -0
- package/docs/reference/typescript-api/fulfillment/fulfillment-process.md +71 -0
- package/docs/reference/typescript-api/fulfillment/fulfillment-state.md +21 -0
- package/docs/reference/typescript-api/fulfillment/fulfillment-states.md +18 -0
- package/docs/reference/typescript-api/fulfillment/fulfillment-transition-data.md +41 -0
- package/docs/reference/typescript-api/fulfillment/index.md +5 -0
- package/docs/reference/typescript-api/health-check/health-check-registry-service.md +70 -0
- package/docs/reference/typescript-api/health-check/health-check-strategy.md +70 -0
- package/docs/reference/typescript-api/health-check/http-health-check-strategy.md +61 -0
- package/docs/reference/typescript-api/health-check/index.md +5 -0
- package/docs/reference/typescript-api/health-check/type-ormhealth-check-strategy.md +64 -0
- package/docs/reference/typescript-api/import-export/asset-import-strategy.md +46 -0
- package/docs/reference/typescript-api/import-export/asset-importer.md +32 -0
- package/docs/reference/typescript-api/import-export/default-asset-import-strategy.md +48 -0
- package/docs/reference/typescript-api/import-export/fast-importer-service.md +67 -0
- package/docs/reference/typescript-api/import-export/import-export-options.md +36 -0
- package/docs/reference/typescript-api/import-export/import-parser.md +280 -0
- package/docs/reference/typescript-api/import-export/importer.md +54 -0
- package/docs/reference/typescript-api/import-export/index.md +5 -0
- package/docs/reference/typescript-api/import-export/initial-data.md +71 -0
- package/docs/reference/typescript-api/import-export/populate.md +71 -0
- package/docs/reference/typescript-api/import-export/populator.md +38 -0
- package/docs/reference/typescript-api/job-queue/default-job-queue-plugin.md +245 -0
- package/docs/reference/typescript-api/job-queue/in-memory-job-buffer-storage-strategy.md +55 -0
- package/docs/reference/typescript-api/job-queue/in-memory-job-queue-strategy.md +110 -0
- package/docs/reference/typescript-api/job-queue/index.md +84 -0
- package/docs/reference/typescript-api/job-queue/inspectable-job-queue-strategy.md +60 -0
- package/docs/reference/typescript-api/job-queue/job-buffer-storage-strategy.md +78 -0
- package/docs/reference/typescript-api/job-queue/job-buffer.md +119 -0
- package/docs/reference/typescript-api/job-queue/job-queue-options.md +56 -0
- package/docs/reference/typescript-api/job-queue/job-queue-service.md +128 -0
- package/docs/reference/typescript-api/job-queue/job-queue-strategy.md +59 -0
- package/docs/reference/typescript-api/job-queue/job.md +195 -0
- package/docs/reference/typescript-api/job-queue/polling-job-queue-strategy.md +122 -0
- package/docs/reference/typescript-api/job-queue/sql-job-queue-strategy.md +84 -0
- package/docs/reference/typescript-api/job-queue/subscribable-job.md +44 -0
- package/docs/reference/typescript-api/job-queue/types.md +199 -0
- package/docs/reference/typescript-api/logger/default-logger.md +81 -0
- package/docs/reference/typescript-api/logger/index.md +120 -0
- package/docs/reference/typescript-api/logger/log-level.md +30 -0
- package/docs/reference/typescript-api/logger/vendure-logger.md +60 -0
- package/docs/reference/typescript-api/migration/generate-migration.md +28 -0
- package/docs/reference/typescript-api/migration/index.md +5 -0
- package/docs/reference/typescript-api/migration/migration-options.md +36 -0
- package/docs/reference/typescript-api/migration/revert-last-migration.md +23 -0
- package/docs/reference/typescript-api/migration/run-migrations.md +23 -0
- package/docs/reference/typescript-api/money/big-int-money-strategy.md +68 -0
- package/docs/reference/typescript-api/money/default-money-strategy.md +47 -0
- package/docs/reference/typescript-api/money/index.md +5 -0
- package/docs/reference/typescript-api/money/money-decorator.md +23 -0
- package/docs/reference/typescript-api/money/money-strategy.md +116 -0
- package/docs/reference/typescript-api/money/round-money.md +26 -0
- package/docs/reference/typescript-api/orders/active-order-service.md +69 -0
- package/docs/reference/typescript-api/orders/active-order-strategy.md +203 -0
- package/docs/reference/typescript-api/orders/changed-price-handling-strategy.md +51 -0
- package/docs/reference/typescript-api/orders/custom-order-states.md +18 -0
- package/docs/reference/typescript-api/orders/default-active-order-strategy.md +52 -0
- package/docs/reference/typescript-api/orders/default-guest-checkout-strategy.md +93 -0
- package/docs/reference/typescript-api/orders/default-order-item-price-calculation-strategy.md +33 -0
- package/docs/reference/typescript-api/orders/default-order-placed-strategy.md +33 -0
- package/docs/reference/typescript-api/orders/default-stock-allocation-strategy.md +33 -0
- package/docs/reference/typescript-api/orders/guest-checkout-strategy.md +56 -0
- package/docs/reference/typescript-api/orders/index.md +5 -0
- package/docs/reference/typescript-api/orders/merge-strategies.md +114 -0
- package/docs/reference/typescript-api/orders/order-by-code-access-strategy.md +91 -0
- package/docs/reference/typescript-api/orders/order-code-strategy.md +88 -0
- package/docs/reference/typescript-api/orders/order-interceptor.md +250 -0
- package/docs/reference/typescript-api/orders/order-item-price-calculation-strategy.md +91 -0
- package/docs/reference/typescript-api/orders/order-merge-strategy.md +80 -0
- package/docs/reference/typescript-api/orders/order-options.md +145 -0
- package/docs/reference/typescript-api/orders/order-placed-strategy.md +54 -0
- package/docs/reference/typescript-api/orders/order-process.md +271 -0
- package/docs/reference/typescript-api/orders/order-seller-strategy.md +124 -0
- package/docs/reference/typescript-api/orders/stock-allocation-strategy.md +46 -0
- package/docs/reference/typescript-api/payment/default-payment-process.md +13 -0
- package/docs/reference/typescript-api/payment/default-refund-process.md +13 -0
- package/docs/reference/typescript-api/payment/dummy-payment-handler.md +31 -0
- package/docs/reference/typescript-api/payment/index.md +5 -0
- package/docs/reference/typescript-api/payment/payment-method-config-options.md +69 -0
- package/docs/reference/typescript-api/payment/payment-method-eligibility-checker.md +95 -0
- package/docs/reference/typescript-api/payment/payment-method-handler.md +83 -0
- package/docs/reference/typescript-api/payment/payment-method-types.md +386 -0
- package/docs/reference/typescript-api/payment/payment-options.md +57 -0
- package/docs/reference/typescript-api/payment/payment-process.md +62 -0
- package/docs/reference/typescript-api/payment/payment-state.md +20 -0
- package/docs/reference/typescript-api/payment/payment-states.md +18 -0
- package/docs/reference/typescript-api/payment/payment-transition-data.md +42 -0
- package/docs/reference/typescript-api/payment/refund-process.md +55 -0
- package/docs/reference/typescript-api/payment/refund-state.md +16 -0
- package/docs/reference/typescript-api/payment/refund-states.md +18 -0
- package/docs/reference/typescript-api/payment/refund-transition-data.md +41 -0
- package/docs/reference/typescript-api/plugin/index.md +5 -0
- package/docs/reference/typescript-api/plugin/plugin-common-module.md +28 -0
- package/docs/reference/typescript-api/plugin/plugin-utilities.md +96 -0
- package/docs/reference/typescript-api/plugin/vendure-plugin-metadata.md +147 -0
- package/docs/reference/typescript-api/plugin/vendure-plugin.md +52 -0
- package/docs/reference/typescript-api/products-stock/catalog-options.md +70 -0
- package/docs/reference/typescript-api/products-stock/default-product-variant-price-calculation-strategy.md +38 -0
- package/docs/reference/typescript-api/products-stock/default-stock-display-strategy.md +40 -0
- package/docs/reference/typescript-api/products-stock/default-stock-location-strategy.md +47 -0
- package/docs/reference/typescript-api/products-stock/index.md +5 -0
- package/docs/reference/typescript-api/products-stock/multi-channel-stock-location-strategy.md +47 -0
- package/docs/reference/typescript-api/products-stock/product-variant-price-calculation-strategy.md +95 -0
- package/docs/reference/typescript-api/products-stock/stock-display-strategy.md +47 -0
- package/docs/reference/typescript-api/products-stock/stock-location-strategy.md +157 -0
- package/docs/reference/typescript-api/promotions/facet-value-checker.md +78 -0
- package/docs/reference/typescript-api/promotions/index.md +5 -0
- package/docs/reference/typescript-api/promotions/promotion-action.md +454 -0
- package/docs/reference/typescript-api/promotions/promotion-condition.md +117 -0
- package/docs/reference/typescript-api/promotions/promotion-options.md +35 -0
- package/docs/reference/typescript-api/request/allow-decorator.md +53 -0
- package/docs/reference/typescript-api/request/api-decorator.md +28 -0
- package/docs/reference/typescript-api/request/api-type.md +16 -0
- package/docs/reference/typescript-api/request/ctx-decorator.md +23 -0
- package/docs/reference/typescript-api/request/index.md +5 -0
- package/docs/reference/typescript-api/request/relations-decorator.md +116 -0
- package/docs/reference/typescript-api/request/request-context-service.md +47 -0
- package/docs/reference/typescript-api/request/request-context.md +205 -0
- package/docs/reference/typescript-api/request/transaction-decorator.md +82 -0
- package/docs/reference/typescript-api/scheduled-tasks/clean-sessions-task.md +40 -0
- package/docs/reference/typescript-api/scheduled-tasks/default-scheduler-plugin.md +86 -0
- package/docs/reference/typescript-api/scheduled-tasks/default-scheduler-strategy.md +76 -0
- package/docs/reference/typescript-api/scheduled-tasks/index.md +5 -0
- package/docs/reference/typescript-api/scheduled-tasks/scheduled-task.md +196 -0
- package/docs/reference/typescript-api/scheduled-tasks/scheduler-options.md +47 -0
- package/docs/reference/typescript-api/scheduled-tasks/scheduler-service.md +62 -0
- package/docs/reference/typescript-api/scheduled-tasks/scheduler-strategy.md +141 -0
- package/docs/reference/typescript-api/service-helpers/entity-duplicator-service.md +43 -0
- package/docs/reference/typescript-api/service-helpers/index.md +5 -0
- package/docs/reference/typescript-api/service-helpers/order-calculator.md +54 -0
- package/docs/reference/typescript-api/service-helpers/order-modifier.md +91 -0
- package/docs/reference/typescript-api/service-helpers/product-price-applicator.md +62 -0
- package/docs/reference/typescript-api/service-helpers/slug-validator.md +86 -0
- package/docs/reference/typescript-api/service-helpers/translatable-saver.md +66 -0
- package/docs/reference/typescript-api/service-helpers/translator-service.md +63 -0
- package/docs/reference/typescript-api/services/administrator-service.md +71 -0
- package/docs/reference/typescript-api/services/asset-service.md +177 -0
- package/docs/reference/typescript-api/services/auth-service.md +54 -0
- package/docs/reference/typescript-api/services/channel-service.md +111 -0
- package/docs/reference/typescript-api/services/collection-service.md +186 -0
- package/docs/reference/typescript-api/services/country-service.md +71 -0
- package/docs/reference/typescript-api/services/customer-group-service.md +77 -0
- package/docs/reference/typescript-api/services/customer-service.md +203 -0
- package/docs/reference/typescript-api/services/entity-slug-service.md +37 -0
- package/docs/reference/typescript-api/services/facet-service.md +95 -0
- package/docs/reference/typescript-api/services/facet-value-service.md +104 -0
- package/docs/reference/typescript-api/services/fulfillment-service.md +69 -0
- package/docs/reference/typescript-api/services/global-settings-service.md +41 -0
- package/docs/reference/typescript-api/services/history-service.md +172 -0
- package/docs/reference/typescript-api/services/index.md +5 -0
- package/docs/reference/typescript-api/services/initializer-service.md +36 -0
- package/docs/reference/typescript-api/services/order-service.md +440 -0
- package/docs/reference/typescript-api/services/order-testing-service.md +44 -0
- package/docs/reference/typescript-api/services/payment-method-service.md +105 -0
- package/docs/reference/typescript-api/services/payment-service.md +105 -0
- package/docs/reference/typescript-api/services/product-option-group-service.md +67 -0
- package/docs/reference/typescript-api/services/product-option-service.md +64 -0
- package/docs/reference/typescript-api/services/product-service.md +111 -0
- package/docs/reference/typescript-api/services/product-variant-service.md +179 -0
- package/docs/reference/typescript-api/services/promotion-service.md +127 -0
- package/docs/reference/typescript-api/services/province-service.md +59 -0
- package/docs/reference/typescript-api/services/role-service.md +113 -0
- package/docs/reference/typescript-api/services/search-service.md +37 -0
- package/docs/reference/typescript-api/services/seller-service.md +65 -0
- package/docs/reference/typescript-api/services/session-service.md +105 -0
- package/docs/reference/typescript-api/services/settings-store-service.md +194 -0
- package/docs/reference/typescript-api/services/shipping-method-service.md +95 -0
- package/docs/reference/typescript-api/services/slug-service.md +35 -0
- package/docs/reference/typescript-api/services/stock-level-service.md +62 -0
- package/docs/reference/typescript-api/services/stock-location-service.md +115 -0
- package/docs/reference/typescript-api/services/stock-movement-service.md +95 -0
- package/docs/reference/typescript-api/services/tag-service.md +71 -0
- package/docs/reference/typescript-api/services/tax-category-service.md +59 -0
- package/docs/reference/typescript-api/services/tax-rate-service.md +66 -0
- package/docs/reference/typescript-api/services/user-service.md +132 -0
- package/docs/reference/typescript-api/services/zone-service.md +77 -0
- package/docs/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-options.md +48 -0
- package/docs/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-result.md +41 -0
- package/docs/reference/typescript-api/settings-store/index.md +38 -0
- package/docs/reference/typescript-api/settings-store/orphaned-settings-store-entry.md +48 -0
- package/docs/reference/typescript-api/settings-store/set-settings-store-value-result.md +42 -0
- package/docs/reference/typescript-api/settings-store/settings-store-field-config.md +92 -0
- package/docs/reference/typescript-api/settings-store/settings-store-registration.md +36 -0
- package/docs/reference/typescript-api/settings-store/settings-store-scope-function.md +35 -0
- package/docs/reference/typescript-api/settings-store/settings-store-scopes.md +36 -0
- package/docs/reference/typescript-api/shipping/check-shipping-eligibility-checker-fn.md +27 -0
- package/docs/reference/typescript-api/shipping/default-shipping-line-assignment-strategy.md +33 -0
- package/docs/reference/typescript-api/shipping/index.md +5 -0
- package/docs/reference/typescript-api/shipping/shipping-calculator.md +121 -0
- package/docs/reference/typescript-api/shipping/shipping-eligibility-checker-config.md +39 -0
- package/docs/reference/typescript-api/shipping/shipping-eligibility-checker.md +60 -0
- package/docs/reference/typescript-api/shipping/shipping-line-assignment-strategy.md +75 -0
- package/docs/reference/typescript-api/shipping/shipping-options.md +63 -0
- package/docs/reference/typescript-api/shipping/should-run-check-fn.md +44 -0
- package/docs/reference/typescript-api/state-machine/fsm.md +66 -0
- package/docs/reference/typescript-api/state-machine/index.md +5 -0
- package/docs/reference/typescript-api/state-machine/state-machine-config.md +103 -0
- package/docs/reference/typescript-api/state-machine/transitions.md +43 -0
- package/docs/reference/typescript-api/tax/address-based-tax-zone-strategy.md +57 -0
- package/docs/reference/typescript-api/tax/default-tax-line-calculation-strategy.md +33 -0
- package/docs/reference/typescript-api/tax/default-tax-zone-strategy.md +35 -0
- package/docs/reference/typescript-api/tax/index.md +5 -0
- package/docs/reference/typescript-api/tax/tax-line-calculation-strategy.md +90 -0
- package/docs/reference/typescript-api/tax/tax-options.md +35 -0
- package/docs/reference/typescript-api/tax/tax-zone-strategy.md +54 -0
- package/docs/reference/typescript-api/telemetry/index.md +5 -0
- package/docs/reference/typescript-api/telemetry/instrument.md +47 -0
- package/docs/reference/typescript-api/telemetry/instrumentation-strategy.md +35 -0
- package/docs/reference/typescript-api/telemetry/wrapped-method-args.md +56 -0
- package/docs/reference/typescript-api/testing/create-error-result-guard.md +33 -0
- package/docs/reference/typescript-api/testing/create-test-environment.md +47 -0
- package/docs/reference/typescript-api/testing/error-result-guard.md +73 -0
- package/docs/reference/typescript-api/testing/get-superadmin-context.md +23 -0
- package/docs/reference/typescript-api/testing/index.md +5 -0
- package/docs/reference/typescript-api/testing/register-initializer.md +27 -0
- package/docs/reference/typescript-api/testing/simple-graph-qlclient.md +123 -0
- package/docs/reference/typescript-api/testing/test-config.md +30 -0
- package/docs/reference/typescript-api/testing/test-db-initializer.md +60 -0
- package/docs/reference/typescript-api/testing/test-environment.md +42 -0
- package/docs/reference/typescript-api/testing/test-server-options.md +47 -0
- package/docs/reference/typescript-api/testing/test-server.md +60 -0
- package/docs/reference/typescript-api/testing/testing-logger.md +140 -0
- package/docs/reference/typescript-api/worker/bootstrap-worker.md +76 -0
- package/docs/reference/typescript-api/worker/index.md +5 -0
- package/docs/reference/typescript-api/worker/vendure-worker.md +50 -0
- package/docs/reference/typescript-api/worker/worker-health-check-config.md +41 -0
- package/docs/user-guide/catalog/collections.md +27 -0
- package/docs/user-guide/catalog/facets.md +34 -0
- package/docs/user-guide/catalog/product-variants.png +0 -0
- package/docs/user-guide/catalog/products.md +35 -0
- package/docs/user-guide/catalog/screen-facet-add.webp +0 -0
- package/docs/user-guide/catalog/screen-facet-list.webp +0 -0
- package/docs/user-guide/catalog/screen-inventory.webp +0 -0
- package/docs/user-guide/customers/index.md +30 -0
- package/docs/user-guide/customers/screen-customer-group.webp +0 -0
- package/docs/user-guide/index.md +7 -0
- package/docs/user-guide/localization/index.md +42 -0
- package/docs/user-guide/localization/screen-ui-language.webp +0 -0
- package/docs/user-guide/orders/draft-orders.md +28 -0
- package/docs/user-guide/orders/order-state-diagram-for-admin.png +0 -0
- package/docs/user-guide/orders/orders.md +65 -0
- package/docs/user-guide/orders/screen-fulfillment-shipped.webp +0 -0
- package/docs/user-guide/orders/screen-fulfillment.webp +0 -0
- package/docs/user-guide/orders/screen-modification.webp +0 -0
- package/docs/user-guide/orders/screen-modify-button.webp +0 -0
- package/docs/user-guide/orders/screen-refund-button.webp +0 -0
- package/docs/user-guide/orders/screen-settle-payment.webp +0 -0
- package/docs/user-guide/promotions/index.md +44 -0
- package/docs/user-guide/settings/administrators-roles.md +34 -0
- package/docs/user-guide/settings/channels.md +18 -0
- package/docs/user-guide/settings/countries-zones.md +12 -0
- package/docs/user-guide/settings/global-settings.md +12 -0
- package/docs/user-guide/settings/payment-methods.md +32 -0
- package/docs/user-guide/settings/screen-shipping-test.webp +0 -0
- package/docs/user-guide/settings/screen-translations.webp +0 -0
- package/docs/user-guide/settings/shipping-methods.md +55 -0
- package/docs/user-guide/settings/taxes.md +32 -0
- package/package.json +32 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Using Other Frameworks'
|
|
3
|
+
weight: 1
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
From version 2.1.0, Admin UI extensions can be written in either Angular or React. Prior to v2.1.0, only Angular was natively supported.
|
|
7
|
+
|
|
8
|
+
It is, however, possible to extend the Admin UI using other frameworks such as Vue, Svelte, Solid etc. Note that the extension experience is much more limited than with Angular or React, but depending on your needs it may be sufficient.
|
|
9
|
+
|
|
10
|
+
:::info
|
|
11
|
+
For working examples of a UI extensions built with **Vue**, see the [real-world-vendure ui extensions](https://github.com/vendurehq/real-world-vendure/tree/master/src/ui-extensions)
|
|
12
|
+
:::
|
|
13
|
+
|
|
14
|
+
There is still a small amount of Angular "glue code" needed to let the compiler know how to integrate your extension, so let's take a look at how this is done.
|
|
15
|
+
|
|
16
|
+
## 1. Install `@vendure/ui-devkit`
|
|
17
|
+
|
|
18
|
+
To create UI extensions, you'll need to install the `@vendure/ui-devkit` package. This package contains a compiler for building your customized version of the Admin UI, as well as the Angular dependencies you'll need to create your extensions.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
yarn add @vendure/ui-devkit
|
|
22
|
+
|
|
23
|
+
# or
|
|
24
|
+
|
|
25
|
+
npm install @vendure/ui-devkit
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 2. Create the folder structure
|
|
29
|
+
|
|
30
|
+
In this example, we will work with the following folder structure, and use Create React App our example.
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
src
|
|
34
|
+
└─plugins
|
|
35
|
+
└─ my-plugin
|
|
36
|
+
└─ ui
|
|
37
|
+
├─ routes.ts
|
|
38
|
+
└─ vue-app
|
|
39
|
+
└─ (directory created by `vue create`, for example)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 3. Create an extension module
|
|
43
|
+
|
|
44
|
+
Here's the Angular code needed to tell the compiler where to find your extension:
|
|
45
|
+
|
|
46
|
+
```ts title="src/plugins/my-plugin/ui/routes.ts"
|
|
47
|
+
import { hostExternalFrame } from '@vendure/admin-ui/core';
|
|
48
|
+
|
|
49
|
+
export default [
|
|
50
|
+
hostExternalFrame({
|
|
51
|
+
path: '',
|
|
52
|
+
|
|
53
|
+
// You can also use parameters which allow the app
|
|
54
|
+
// to have dynamic routing, e.g.
|
|
55
|
+
// path: ':slug'
|
|
56
|
+
// Then you can use the getActivatedRoute() function from the
|
|
57
|
+
// UiDevkitClient in order to access the value of the "slug"
|
|
58
|
+
// parameter.
|
|
59
|
+
|
|
60
|
+
breadcrumbLabel: 'Vue App',
|
|
61
|
+
// This is the URL to the compiled React app index.
|
|
62
|
+
// The next step will explain the "assets/react-app" path.
|
|
63
|
+
extensionUrl: './assets/vue-app/index.html',
|
|
64
|
+
openInNewTab: false,
|
|
65
|
+
})
|
|
66
|
+
];
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 4. Define the AdminUiExtension config
|
|
70
|
+
|
|
71
|
+
Next we will define an [AdminUiExtension](/reference/admin-ui-api/ui-devkit/admin-ui-extension/) object which is passed to the `compileUiExtensions()` function in your Vendure config:
|
|
72
|
+
|
|
73
|
+
```ts title="src/vendure-config.ts"
|
|
74
|
+
import path from 'path';
|
|
75
|
+
import { VendureConfig } from '@vendure/core';
|
|
76
|
+
import { AdminUiPlugin } from '@vendure/admin-ui-plugin';
|
|
77
|
+
import { compileUiExtensions } from '@vendure/ui-devkit/compiler';
|
|
78
|
+
|
|
79
|
+
export const config: VendureConfig = {
|
|
80
|
+
// ...
|
|
81
|
+
plugins: [
|
|
82
|
+
AdminUiPlugin.init({
|
|
83
|
+
route: 'admin',
|
|
84
|
+
port: 3002,
|
|
85
|
+
app: compileUiExtensions({
|
|
86
|
+
outputPath: path.join(__dirname, '../admin-ui'),
|
|
87
|
+
extensions: [{
|
|
88
|
+
// Points to the path containing our Angular "glue code" module
|
|
89
|
+
extensionPath: path.join(__dirname, 'plugins/my-plugin/ui'),
|
|
90
|
+
routes: [{ route: 'vue-ui', filePath: 'routes.ts' }],
|
|
91
|
+
staticAssets: [
|
|
92
|
+
// This is where we tell the compiler to copy the compiled Vue app
|
|
93
|
+
// artifacts over to the Admin UI's `/static` directory. In this case we
|
|
94
|
+
// also rename "build" to "vue-app". This is why the `extensionUrl`
|
|
95
|
+
// in the module config points to './assets/vue-app/index.html'.
|
|
96
|
+
{path: path.join(__dirname, 'plugins/my-plugin/ui/vue-app/dist'), rename: 'vue-app'},
|
|
97
|
+
],
|
|
98
|
+
}],
|
|
99
|
+
devMode: true,
|
|
100
|
+
}),
|
|
101
|
+
}),
|
|
102
|
+
]
|
|
103
|
+
};
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## 5. Build your extension
|
|
107
|
+
|
|
108
|
+
To ensure things are working we can now build our Vue app by running `yarn build` in the `vue-app` directory. This will build and output the app artifacts to the `vue-app/build` directory - the one we pointed to in the `staticAssets` array above.
|
|
109
|
+
|
|
110
|
+
Once build, we can start the Vendure server.
|
|
111
|
+
|
|
112
|
+
The `compileUiExtensions()` function returns a `compile()` function which will be invoked by the AdminUiPlugin upon server bootstrap. During this compilation process, a new directory will be generated at `/admin-ui` (as specified by the `outputPath` option) which will contains the un-compiled sources of your new Admin UI app.
|
|
113
|
+
|
|
114
|
+
Next, these source files will be run through the Angular compiler, the output of which will be visible in the console.
|
|
115
|
+
|
|
116
|
+
Now go to the Admin UI app in your browser and log in. You should now be able to manually enter the URL `http://localhost:3000/admin/extensions/vue-ui` and you should see the Vue app rendered in the Admin UI.
|
|
117
|
+
|
|
118
|
+
## Integrate with the Admin UI
|
|
119
|
+
|
|
120
|
+
### Styling
|
|
121
|
+
The `@vendure/admin-ui` package (which will be installed alongside the ui-devkit) provides a stylesheet to allow your extension to fit visually with the rest of the Admin UI.
|
|
122
|
+
|
|
123
|
+
If you have a build step, you can import it into your app like this:
|
|
124
|
+
|
|
125
|
+
```ts
|
|
126
|
+
import '@vendure/admin-ui/static/theme.min.css';
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
If your extension does not have a build step, you can still include the theme stylesheet as a local resource:
|
|
130
|
+
|
|
131
|
+
```HTML
|
|
132
|
+
<!-- src/ui-extension/plain-js-app/index.html -->
|
|
133
|
+
<head>
|
|
134
|
+
<link rel="stylesheet" href="../../theme.min.css" />
|
|
135
|
+
</head>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### UiDevkitClient
|
|
139
|
+
|
|
140
|
+
The `@vendure/ui-devkit` package provides a number of helper methods which allow your extension to seamlessly interact with the underlying Admin UI infrastructure, collectively known as the [UiDevkitClient](/reference/admin-ui-api/ui-devkit/ui-devkit-client/). The client allows your extension to:
|
|
141
|
+
|
|
142
|
+
* Make GraphQL queries & mutations, without the need for your own HTTP or GraphQL client, with full integration with the Admin UI client-side GraphQL cache.
|
|
143
|
+
* Display toast notifications.
|
|
144
|
+
|
|
145
|
+
#### setTargetOrigin
|
|
146
|
+
|
|
147
|
+
The UiDevkitClient uses the browser's [postMessage API](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) to communicate between the Admin UI app and your extension. For security reasons this communication channel is restricted to a specific domain (where your extension app will be running from). To configure this, use the [setTargetOrigin](/reference/admin-ui-api/ui-devkit/ui-devkit-client/#settargetorigin) function:
|
|
148
|
+
|
|
149
|
+
```ts
|
|
150
|
+
import { setTargetOrigin } from '@vendure/ui-devkit';
|
|
151
|
+
|
|
152
|
+
setTargetOrigin('http://my-domain.com');
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If this is mis-configured you will see an error along the lines of "Failed to execute 'postMessage' on 'DOMWindow'".
|
|
157
|
+
|
|
158
|
+
For apps with a build step, you can use these functions like this:
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
import { graphQlMutation, notify } from '@vendure/ui-devkit';
|
|
162
|
+
|
|
163
|
+
// somewhere in your component
|
|
164
|
+
const disableProduct = (id: string) => {
|
|
165
|
+
graphQlMutation(`
|
|
166
|
+
mutation DisableProduct($id: ID!) {
|
|
167
|
+
updateProduct(input: { id: $id, enabled: false }) {
|
|
168
|
+
id
|
|
169
|
+
enabled
|
|
170
|
+
}
|
|
171
|
+
}`, { id }).then(result => {
|
|
172
|
+
notify({
|
|
173
|
+
message: 'Updated Product',
|
|
174
|
+
});
|
|
175
|
+
})
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
If your extension does not have a build step, you can still include the UiDevkitClient as a local resource, which will expose a `VendureUiClient` global object:
|
|
180
|
+
|
|
181
|
+
```html
|
|
182
|
+
<!-- src/ui-extension/plain-js-app/index.html -->
|
|
183
|
+
<head>
|
|
184
|
+
<script src="../devkit/ui-devkit.js"></script>
|
|
185
|
+
</head>
|
|
186
|
+
<script>
|
|
187
|
+
const disableProduct = id => {
|
|
188
|
+
VendureUiClient.graphQlMutation(`
|
|
189
|
+
mutation DisableProduct($id: ID!) {
|
|
190
|
+
updateProduct(input: { id: $id, enabled: false }) {
|
|
191
|
+
id
|
|
192
|
+
enabled
|
|
193
|
+
}
|
|
194
|
+
}`, { id }).then(result => {
|
|
195
|
+
VendureUiClient.notify({
|
|
196
|
+
message: 'Updated Product',
|
|
197
|
+
});
|
|
198
|
+
})
|
|
199
|
+
}
|
|
200
|
+
</script>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Next Steps
|
|
204
|
+
|
|
205
|
+
Now you have created your extension, you need a way for your admin to access it. See [Adding Navigation Items](/guides/extending-the-admin-ui/nav-menu/)
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Alerts'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Alerts allow you to display important information to the administrators who use the Dashboard. They can be used to notify users about
|
|
6
|
+
pending tasks, system status, or any conditions that require attention.
|
|
7
|
+
|
|
8
|
+
:::info
|
|
9
|
+
This API is further documented in the [DashboardAlertDefinition API reference](/reference/dashboard/extensions-api/alerts)
|
|
10
|
+
:::
|
|
11
|
+
|
|
12
|
+
## Creating a Custom Alert
|
|
13
|
+
|
|
14
|
+
To create a custom alert, you need to define a `DashboardAlertDefinition` object and register it with the Dashboard.
|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
18
|
+
### Example: Pending Search Index Updates Alert
|
|
19
|
+
|
|
20
|
+
Let's take the built-in "pending search index updates" as an example, since it demonstrates many features you'll also use
|
|
21
|
+
in your own custom alerts.
|
|
22
|
+
|
|
23
|
+
```tsx title="pending-updates-alert.tsx"
|
|
24
|
+
import { graphql } from '@/gql';
|
|
25
|
+
import { api, DashboardAlertDefinition } from '@vendure/dashboard';
|
|
26
|
+
import { toast } from 'sonner';
|
|
27
|
+
|
|
28
|
+
const pendingSearchIndexUpdatesDocument = graphql(`
|
|
29
|
+
query GetPendingSearchIndexUpdates {
|
|
30
|
+
pendingSearchIndexUpdates
|
|
31
|
+
}
|
|
32
|
+
`);
|
|
33
|
+
|
|
34
|
+
export const runPendingSearchIndexUpdatesDocument = graphql(`
|
|
35
|
+
mutation RunPendingSearchIndexUpdates {
|
|
36
|
+
runPendingSearchIndexUpdates {
|
|
37
|
+
success
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`);
|
|
41
|
+
|
|
42
|
+
export const pendingSearchIndexUpdatesAlert: DashboardAlertDefinition<number> = {
|
|
43
|
+
id: 'pending-search-index-updates',
|
|
44
|
+
// The `check` function is called periodically based on the `recheckInterval`.
|
|
45
|
+
// It will typically do something like checking an API for data. The result
|
|
46
|
+
// of this function is then used to decide whether an alert needs to be
|
|
47
|
+
// displayed.
|
|
48
|
+
check: async () => {
|
|
49
|
+
const data = await api.query(pendingSearchIndexUpdatesDocument);
|
|
50
|
+
return data.pendingSearchIndexUpdates;
|
|
51
|
+
},
|
|
52
|
+
recheckInterval: 10_000,
|
|
53
|
+
// Determines whether to display the alert. In our case, we want to display
|
|
54
|
+
// and alert if there are one or more pendingSearchIndexUpdates
|
|
55
|
+
shouldShow: data => data > 0,
|
|
56
|
+
title: data => `${data} pending search index updates`,
|
|
57
|
+
description: 'Runs all pending search index updates',
|
|
58
|
+
// The severity (info, warning, error) can be a static string, or can
|
|
59
|
+
// be dynamically set based on the data returned by the `check` function.
|
|
60
|
+
severity: data => (data < 10 ? 'info' : 'warning'),
|
|
61
|
+
// Actions allow the administrator to take some action based on the
|
|
62
|
+
// alert.
|
|
63
|
+
actions: [
|
|
64
|
+
{
|
|
65
|
+
label: `Run pending updates`,
|
|
66
|
+
onClick: async ({ dismiss }) => {
|
|
67
|
+
await api.mutate(runPendingSearchIndexUpdatesDocument, {});
|
|
68
|
+
toast.success('Running pending search index updates');
|
|
69
|
+
// Calling this function will immediately dismiss
|
|
70
|
+
// the alert.
|
|
71
|
+
dismiss();
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
};
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
This alert is the registered in your dashboard extensions extry point:
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
import { defineDashboardExtension } from '@vendure/dashboard';
|
|
82
|
+
|
|
83
|
+
import { pendingSearchIndexUpdatesAlert } from './pending-updates-alert';
|
|
84
|
+
|
|
85
|
+
defineDashboardExtension({
|
|
86
|
+
alerts: [pendingSearchIndexUpdatesAlert],
|
|
87
|
+
});
|
|
88
|
+
```
|
|
89
|
+
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Creating Detail Pages'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
import Tabs from '@theme/Tabs';
|
|
6
|
+
import TabItem from '@theme/TabItem';
|
|
7
|
+
|
|
8
|
+
## Setup
|
|
9
|
+
|
|
10
|
+
:::info
|
|
11
|
+
This guide assumes you have a `CmsPlugin` with an `Article` entity, as covered in the [Extending the Dashboard: Plugin Setup](/guides/extending-the-dashboard/extending-overview/#plugin-setup) guide.
|
|
12
|
+
:::
|
|
13
|
+
|
|
14
|
+
Detail pages can be created for any entity which has been exposed via the Admin API. Following the
|
|
15
|
+
above setup of the `CmsPlugin` will result in the following additions to your API schema:
|
|
16
|
+
|
|
17
|
+
```graphql
|
|
18
|
+
type Article implements Node {
|
|
19
|
+
id: ID!
|
|
20
|
+
createdAt: DateTime!
|
|
21
|
+
updatedAt: DateTime!
|
|
22
|
+
slug: String!
|
|
23
|
+
title: String!
|
|
24
|
+
body: String!
|
|
25
|
+
isPublished: Boolean!
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
type Query {
|
|
29
|
+
# ...
|
|
30
|
+
article(id: ID!): Article
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
type Mutation {
|
|
34
|
+
# ...
|
|
35
|
+
createArticle(input: CreateArticleInput!): Article!
|
|
36
|
+
updateArticle(input: UpdateArticleInput!): Article!
|
|
37
|
+
deleteArticle(id: ID!): DeletionResponse!
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Simple Detail Pages
|
|
42
|
+
|
|
43
|
+
Now let's create a detail page so we can start adding articles.
|
|
44
|
+
|
|
45
|
+
We'll begin with the simplest approach, where the form will be auto-generated for us based on the GraphQL schema
|
|
46
|
+
using the [DetailPage](/reference/dashboard/detail-views/detail-page) component.
|
|
47
|
+
This is useful for quickly getting started, but you can also to customize the form later on.
|
|
48
|
+
|
|
49
|
+
Create a new file called `article-detail.tsx` in the `./src/plugins/cms/dashboard` directory:
|
|
50
|
+
|
|
51
|
+
```tsx title="src/plugins/cms/dashboard/article-detail.tsx"
|
|
52
|
+
import { DashboardRouteDefinition, DetailPage, detailPageRouteLoader } from '@vendure/dashboard';
|
|
53
|
+
import { graphql } from '@/gql';
|
|
54
|
+
|
|
55
|
+
const articleDetailDocument = graphql(`
|
|
56
|
+
query GetArticleDetail($id: ID!) {
|
|
57
|
+
article(id: $id) {
|
|
58
|
+
id
|
|
59
|
+
createdAt
|
|
60
|
+
updatedAt
|
|
61
|
+
isPublished
|
|
62
|
+
title
|
|
63
|
+
slug
|
|
64
|
+
body
|
|
65
|
+
customFields
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
`);
|
|
69
|
+
|
|
70
|
+
const createArticleDocument = graphql(`
|
|
71
|
+
mutation CreateArticle($input: CreateArticleInput!) {
|
|
72
|
+
createArticle(input: $input) {
|
|
73
|
+
id
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
`);
|
|
77
|
+
|
|
78
|
+
const updateArticleDocument = graphql(`
|
|
79
|
+
mutation UpdateArticle($input: UpdateArticleInput!) {
|
|
80
|
+
updateArticle(input: $input) {
|
|
81
|
+
id
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`);
|
|
85
|
+
|
|
86
|
+
export const articleDetail: DashboardRouteDefinition = {
|
|
87
|
+
path: '/articles/$id',
|
|
88
|
+
loader: detailPageRouteLoader({
|
|
89
|
+
queryDocument: articleDetailDocument,
|
|
90
|
+
breadcrumb: (isNew, entity) => [
|
|
91
|
+
{ path: '/articles', label: 'Articles' },
|
|
92
|
+
isNew ? 'New article' : entity?.title,
|
|
93
|
+
],
|
|
94
|
+
}),
|
|
95
|
+
component: route => {
|
|
96
|
+
return (
|
|
97
|
+
<DetailPage
|
|
98
|
+
pageId="article-detail"
|
|
99
|
+
queryDocument={articleDetailDocument}
|
|
100
|
+
createDocument={createArticleDocument}
|
|
101
|
+
updateDocument={updateArticleDocument}
|
|
102
|
+
route={route}
|
|
103
|
+
title={article => article?.title ?? 'New article'}
|
|
104
|
+
setValuesForUpdate={article => {
|
|
105
|
+
return {
|
|
106
|
+
id: article?.id ?? '',
|
|
107
|
+
isPublished: article?.isPublished ?? false,
|
|
108
|
+
title: article?.title ?? '',
|
|
109
|
+
slug: article?.slug ?? '',
|
|
110
|
+
body: article?.body ?? '',
|
|
111
|
+
};
|
|
112
|
+
}}
|
|
113
|
+
/>
|
|
114
|
+
);
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Now we can register this route in our `index.tsx` file:
|
|
120
|
+
|
|
121
|
+
```tsx title="src/plugins/cms/dashboard/index.tsx"
|
|
122
|
+
import { defineDashboardExtension } from '@vendure/dashboard';
|
|
123
|
+
|
|
124
|
+
import { articleList } from './article-list';
|
|
125
|
+
// highlight-next-line
|
|
126
|
+
import { articleDetail } from './article-detail';
|
|
127
|
+
|
|
128
|
+
defineDashboardExtension({
|
|
129
|
+
routes: [
|
|
130
|
+
articleList,
|
|
131
|
+
// highlight-next-line
|
|
132
|
+
articleDetail,
|
|
133
|
+
],
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
You should now be able to click on the "New article" button in the list view, and see the detail page:
|
|
138
|
+

|
|
139
|
+
|
|
140
|
+
Congratulations! You can now add, edit and delete articles in the dashboard.
|
|
141
|
+
|
|
142
|
+

|
|
143
|
+
|
|
144
|
+
## Customizing the detail page
|
|
145
|
+
|
|
146
|
+
The auto-generated [DetailPage](/reference/dashboard/detail-views/detail-page) is a great way to get started and quickly be able
|
|
147
|
+
to interact with your entities. But let's now see how we can fully customize the layout and form fields.
|
|
148
|
+
|
|
149
|
+
```tsx title="src/plugins/cms/dashboard/article-detail.tsx"
|
|
150
|
+
import {
|
|
151
|
+
DashboardRouteDefinition,
|
|
152
|
+
detailPageRouteLoader,
|
|
153
|
+
useDetailPage,
|
|
154
|
+
Page,
|
|
155
|
+
PageTitle,
|
|
156
|
+
PageActionBar,
|
|
157
|
+
PageActionBarRight,
|
|
158
|
+
PermissionGuard,
|
|
159
|
+
Button,
|
|
160
|
+
PageLayout,
|
|
161
|
+
PageBlock,
|
|
162
|
+
FormFieldWrapper,
|
|
163
|
+
DetailFormGrid,
|
|
164
|
+
Switch,
|
|
165
|
+
Input,
|
|
166
|
+
RichTextInput,
|
|
167
|
+
CustomFieldsPageBlock,
|
|
168
|
+
} from '@vendure/dashboard';
|
|
169
|
+
import { AnyRoute, useNavigate } from '@tanstack/react-router';
|
|
170
|
+
import { toast } from 'sonner';
|
|
171
|
+
|
|
172
|
+
import { graphql } from '@/gql';
|
|
173
|
+
|
|
174
|
+
const articleDetailDocument = graphql(`
|
|
175
|
+
query GetArticleDetail($id: ID!) {
|
|
176
|
+
article(id: $id) {
|
|
177
|
+
id
|
|
178
|
+
createdAt
|
|
179
|
+
updatedAt
|
|
180
|
+
isPublished
|
|
181
|
+
title
|
|
182
|
+
slug
|
|
183
|
+
body
|
|
184
|
+
customFields
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
`);
|
|
188
|
+
|
|
189
|
+
const createArticleDocument = graphql(`
|
|
190
|
+
mutation CreateArticle($input: CreateArticleInput!) {
|
|
191
|
+
createArticle(input: $input) {
|
|
192
|
+
id
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
`);
|
|
196
|
+
|
|
197
|
+
const updateArticleDocument = graphql(`
|
|
198
|
+
mutation UpdateArticle($input: UpdateArticleInput!) {
|
|
199
|
+
updateArticle(input: $input) {
|
|
200
|
+
id
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
`);
|
|
204
|
+
|
|
205
|
+
export const articleDetail: DashboardRouteDefinition = {
|
|
206
|
+
path: '/articles/$id',
|
|
207
|
+
loader: detailPageRouteLoader({
|
|
208
|
+
queryDocument: articleDetailDocument,
|
|
209
|
+
breadcrumb: (isNew, entity) => [
|
|
210
|
+
{ path: '/articles', label: 'Articles' },
|
|
211
|
+
isNew ? 'New article' : entity?.title,
|
|
212
|
+
],
|
|
213
|
+
}),
|
|
214
|
+
component: route => {
|
|
215
|
+
return <ArticleDetailPage route={route} />;
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
function ArticleDetailPage({ route }: { route: AnyRoute }) {
|
|
220
|
+
const params = route.useParams();
|
|
221
|
+
const navigate = useNavigate();
|
|
222
|
+
const creatingNewEntity = params.id === 'new';
|
|
223
|
+
|
|
224
|
+
const { form, submitHandler, entity, isPending, resetForm } = useDetailPage({
|
|
225
|
+
queryDocument: articleDetailDocument,
|
|
226
|
+
createDocument: createArticleDocument,
|
|
227
|
+
updateDocument: updateArticleDocument,
|
|
228
|
+
setValuesForUpdate: article => {
|
|
229
|
+
return {
|
|
230
|
+
id: article?.id ?? '',
|
|
231
|
+
isPublished: article?.isPublished ?? false,
|
|
232
|
+
title: article?.title ?? '',
|
|
233
|
+
slug: article?.slug ?? '',
|
|
234
|
+
body: article?.body ?? '',
|
|
235
|
+
};
|
|
236
|
+
},
|
|
237
|
+
params: { id: params.id },
|
|
238
|
+
onSuccess: async data => {
|
|
239
|
+
toast('Successfully updated article');
|
|
240
|
+
resetForm();
|
|
241
|
+
if (creatingNewEntity) {
|
|
242
|
+
await navigate({ to: `../$id`, params: { id: data.id } });
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
onError: err => {
|
|
246
|
+
toast('Failed to update article', {
|
|
247
|
+
description: err instanceof Error ? err.message : 'Unknown error',
|
|
248
|
+
});
|
|
249
|
+
},
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
return (
|
|
253
|
+
<Page pageId="article-detail" form={form} submitHandler={submitHandler}>
|
|
254
|
+
<PageTitle>{creatingNewEntity ? 'New article' : (entity?.title ?? '')}</PageTitle>
|
|
255
|
+
<PageActionBar>
|
|
256
|
+
<PageActionBarRight>
|
|
257
|
+
<PermissionGuard requires={['UpdateProduct', 'UpdateCatalog']}>
|
|
258
|
+
<Button
|
|
259
|
+
type="submit"
|
|
260
|
+
disabled={!form.formState.isDirty || !form.formState.isValid || isPending}
|
|
261
|
+
>
|
|
262
|
+
Update
|
|
263
|
+
</Button>
|
|
264
|
+
</PermissionGuard>
|
|
265
|
+
</PageActionBarRight>
|
|
266
|
+
</PageActionBar>
|
|
267
|
+
<PageLayout>
|
|
268
|
+
<PageBlock column="side" blockId="publish-status">
|
|
269
|
+
<FormFieldWrapper
|
|
270
|
+
control={form.control}
|
|
271
|
+
name="isPublished"
|
|
272
|
+
label="Is Published"
|
|
273
|
+
render={({ field }) => (
|
|
274
|
+
<Switch checked={field.value} onCheckedChange={field.onChange} />
|
|
275
|
+
)}
|
|
276
|
+
/>
|
|
277
|
+
</PageBlock>
|
|
278
|
+
<PageBlock column="main" blockId="main-form">
|
|
279
|
+
<DetailFormGrid>
|
|
280
|
+
<FormFieldWrapper
|
|
281
|
+
control={form.control}
|
|
282
|
+
name="title"
|
|
283
|
+
label="Title"
|
|
284
|
+
render={({ field }) => <Input {...field} />}
|
|
285
|
+
/>
|
|
286
|
+
<FormFieldWrapper
|
|
287
|
+
control={form.control}
|
|
288
|
+
name="slug"
|
|
289
|
+
label="Slug"
|
|
290
|
+
render={({ field }) => <Input {...field} />}
|
|
291
|
+
/>
|
|
292
|
+
</DetailFormGrid>
|
|
293
|
+
<FormFieldWrapper
|
|
294
|
+
control={form.control}
|
|
295
|
+
name="body"
|
|
296
|
+
label="Content"
|
|
297
|
+
render={({ field }) => (
|
|
298
|
+
<RichTextInput value={field.value ?? ''} onChange={field.onChange} />
|
|
299
|
+
)}
|
|
300
|
+
/>
|
|
301
|
+
</PageBlock>
|
|
302
|
+
<CustomFieldsPageBlock column="main" entityType="Article" control={form.control} />
|
|
303
|
+
</PageLayout>
|
|
304
|
+
</Page>
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
In the above example, we have:
|
|
310
|
+
|
|
311
|
+
- Used the [Page](/reference/dashboard/page-layout/page), [PageTitle](/reference/dashboard/page-layout/page-title),
|
|
312
|
+
[PageActionBar](/reference/dashboard/page-layout/page-action-bar) and [PageLayout](/reference/dashboard/page-layout) components to create a layout for our page.
|
|
313
|
+
- Used [PageBlock](/reference/dashboard/page-layout/page-block) components to structure the page into blocks.
|
|
314
|
+
- Used [FormFieldWrapper](/reference/dashboard/form-components/form-field-wrapper) around form components for consistent styling and
|
|
315
|
+
layout of inputs.
|
|
316
|
+
- Used custom form components (such as the [RichTextInput](/reference/dashboard/form-components/rich-text-input)) to better represent the data.
|