@vendure/docs 0.0.0-202601221213 → 0.0.0-202601280949

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/dates.generated.js +113 -113
  2. package/docs/guides/core-concepts/auth/index.mdx +1 -1
  3. package/docs/guides/core-concepts/channels/index.mdx +2 -2
  4. package/docs/guides/core-concepts/collections/index.mdx +1 -1
  5. package/docs/guides/core-concepts/customers/index.mdx +1 -1
  6. package/docs/guides/core-concepts/email/index.mdx +1 -1
  7. package/docs/guides/core-concepts/images-assets/index.mdx +1 -1
  8. package/docs/guides/core-concepts/money/index.mdx +3 -3
  9. package/docs/guides/core-concepts/orders/index.mdx +2 -2
  10. package/docs/guides/core-concepts/payment/index.mdx +2 -2
  11. package/docs/guides/core-concepts/products/index.mdx +1 -1
  12. package/docs/guides/core-concepts/promotions/index.mdx +2 -2
  13. package/docs/guides/core-concepts/shipping/index.mdx +2 -2
  14. package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/index.mdx +1 -1
  15. package/docs/guides/deployment/deploy-to-northflank/index.mdx +1 -1
  16. package/docs/guides/deployment/deploy-to-railway/index.mdx +1 -1
  17. package/docs/guides/deployment/deploy-to-render/index.mdx +1 -1
  18. package/docs/guides/deployment/deploying-admin-ui.mdx +1 -1
  19. package/docs/guides/deployment/getting-data-into-production.mdx +2 -2
  20. package/docs/guides/deployment/horizontal-scaling.mdx +2 -2
  21. package/docs/guides/deployment/production-configuration/index.mdx +2 -2
  22. package/docs/guides/deployment/server-resource-requirements.mdx +1 -1
  23. package/docs/guides/developer-guide/cache/index.mdx +1 -1
  24. package/docs/guides/developer-guide/channel-aware/index.mdx +2 -2
  25. package/docs/guides/developer-guide/cli/index.mdx +2 -2
  26. package/docs/guides/developer-guide/configuration/index.mdx +2 -2
  27. package/docs/guides/developer-guide/custom-fields/index.mdx +7 -7
  28. package/docs/guides/developer-guide/custom-permissions/index.mdx +1 -1
  29. package/docs/guides/developer-guide/database-entity/index.mdx +6 -6
  30. package/docs/guides/developer-guide/error-handling/index.mdx +1 -1
  31. package/docs/guides/developer-guide/events/index.mdx +1 -1
  32. package/docs/guides/developer-guide/extend-graphql-api/index.mdx +3 -3
  33. package/docs/guides/developer-guide/has-custom-fields/index.mdx +5 -5
  34. package/docs/guides/developer-guide/importing-data/index.mdx +3 -3
  35. package/docs/guides/developer-guide/migrating-from-v1/breaking-api-changes.mdx +2 -2
  36. package/docs/guides/developer-guide/migrating-from-v1/index.mdx +3 -3
  37. package/docs/guides/developer-guide/migrations/index.mdx +2 -2
  38. package/docs/guides/developer-guide/overview/index.mdx +2 -2
  39. package/docs/guides/developer-guide/plugins/index.mdx +4 -4
  40. package/docs/guides/developer-guide/rest-endpoint/index.mdx +2 -2
  41. package/docs/guides/developer-guide/scheduled-tasks/index.mdx +3 -3
  42. package/docs/guides/developer-guide/stand-alone-scripts/index.mdx +1 -1
  43. package/docs/guides/developer-guide/strategies-configurable-operations/index.mdx +1 -1
  44. package/docs/guides/developer-guide/testing/index.mdx +2 -2
  45. package/docs/guides/developer-guide/the-api-layer/index.mdx +2 -2
  46. package/docs/guides/developer-guide/the-service-layer/index.mdx +1 -1
  47. package/docs/guides/developer-guide/translations/index.mdx +1 -1
  48. package/docs/guides/developer-guide/updating/index.mdx +1 -1
  49. package/docs/guides/developer-guide/uploading-files/index.mdx +3 -3
  50. package/docs/guides/extending-the-admin-ui/creating-detail-views/index.mdx +3 -3
  51. package/docs/guides/extending-the-admin-ui/creating-list-views/index.mdx +3 -3
  52. package/docs/guides/extending-the-admin-ui/custom-data-table-components/index.mdx +1 -1
  53. package/docs/guides/extending-the-admin-ui/custom-form-inputs/index.mdx +3 -3
  54. package/docs/guides/extending-the-admin-ui/custom-timeline-components/index.mdx +1 -1
  55. package/docs/guides/extending-the-admin-ui/dashboard-widgets/index.mdx +1 -1
  56. package/docs/guides/extending-the-admin-ui/defining-routes/index.mdx +2 -2
  57. package/docs/guides/extending-the-admin-ui/getting-started/index.mdx +6 -6
  58. package/docs/guides/extending-the-admin-ui/nav-menu/index.mdx +1 -1
  59. package/docs/guides/extending-the-admin-ui/using-other-frameworks/index.mdx +1 -1
  60. package/docs/guides/extending-the-dashboard/creating-pages/detail-pages.mdx +1 -1
  61. package/docs/guides/extending-the-dashboard/creating-pages/index.mdx +2 -2
  62. package/docs/guides/extending-the-dashboard/creating-pages/list-pages.mdx +2 -2
  63. package/docs/guides/extending-the-dashboard/creating-pages/tabbed-pages.mdx +1 -1
  64. package/docs/guides/extending-the-dashboard/custom-form-components/index.mdx +4 -4
  65. package/docs/guides/extending-the-dashboard/customizing-pages/action-bar-items.mdx +1 -1
  66. package/docs/guides/extending-the-dashboard/customizing-pages/customizing-detail-pages.mdx +2 -2
  67. package/docs/guides/extending-the-dashboard/customizing-pages/customizing-login-page.mdx +1 -1
  68. package/docs/guides/extending-the-dashboard/customizing-pages/index.mdx +4 -4
  69. package/docs/guides/extending-the-dashboard/customizing-pages/page-blocks.mdx +3 -3
  70. package/docs/guides/extending-the-dashboard/data-fetching/index.mdx +1 -1
  71. package/docs/guides/extending-the-dashboard/deployment/index.mdx +2 -2
  72. package/docs/guides/extending-the-dashboard/extending-overview/index.mdx +3 -3
  73. package/docs/guides/extending-the-dashboard/getting-started/index.mdx +1 -1
  74. package/docs/guides/extending-the-dashboard/migration/index.mdx +4 -4
  75. package/docs/guides/extending-the-dashboard/navigation/index.mdx +3 -3
  76. package/docs/guides/getting-started/graphql-intro/index.mdx +5 -5
  77. package/docs/guides/getting-started/installation/index.mdx +5 -5
  78. package/docs/guides/getting-started/try-the-api/index.mdx +2 -2
  79. package/docs/guides/how-to/cms-integration-plugin/index.mdx +19 -19
  80. package/docs/guides/how-to/codegen/index.mdx +2 -2
  81. package/docs/guides/how-to/configurable-products/index.mdx +1 -1
  82. package/docs/guides/how-to/digital-products/index.mdx +1 -1
  83. package/docs/guides/how-to/github-oauth-authentication/index.mdx +1 -1
  84. package/docs/guides/how-to/google-oauth-authentication/index.mdx +3 -3
  85. package/docs/guides/how-to/multi-vendor-marketplaces/index.mdx +2 -2
  86. package/docs/guides/how-to/paginated-list/index.mdx +1 -1
  87. package/docs/guides/how-to/publish-plugin/index.mdx +3 -3
  88. package/docs/guides/how-to/s3-asset-storage/index.mdx +1 -1
  89. package/docs/guides/storefront/active-order/index.mdx +4 -4
  90. package/docs/guides/storefront/checkout-flow/index.mdx +3 -3
  91. package/docs/guides/storefront/codegen/index.mdx +1 -1
  92. package/docs/guides/storefront/connect-api/index.mdx +2 -2
  93. package/docs/guides/storefront/customer-accounts/index.mdx +1 -1
  94. package/docs/guides/storefront/listing-products/index.mdx +1 -1
  95. package/docs/guides/storefront/navigation-menu/index.mdx +1 -1
  96. package/docs/guides/storefront/order-workflow/index.mdx +2 -2
  97. package/docs/guides/storefront/product-detail/index.mdx +4 -4
  98. package/docs/reference/admin-ui-api/ui-devkit/admin-ui-extension.mdx +1 -1
  99. package/docs/reference/core-plugins/admin-ui-plugin/index.mdx +2 -2
  100. package/docs/reference/core-plugins/dashboard-plugin/index.mdx +1 -1
  101. package/docs/reference/core-plugins/telemetry-plugin/index.mdx +1 -1
  102. package/docs/reference/typescript-api/auth/authentication-strategy.mdx +1 -1
  103. package/docs/reference/typescript-api/common/admin-ui/admin-ui-config.mdx +1 -1
  104. package/docs/reference/typescript-api/custom-fields/custom-field-type.mdx +1 -1
  105. package/docs/reference/typescript-api/import-export/import-parser.mdx +1 -1
  106. package/docs/reference/typescript-api/import-export/importer.mdx +1 -1
  107. package/docs/reference/typescript-api/import-export/populate.mdx +1 -1
  108. package/docs/reference/typescript-api/job-queue/default-job-queue-plugin.mdx +1 -1
  109. package/docs/reference/typescript-api/orders/order-item-price-calculation-strategy.mdx +1 -1
  110. package/docs/reference/typescript-api/services/asset-service.mdx +1 -1
  111. package/docs/reference/typescript-api/services/history-service.mdx +1 -1
  112. package/docs/reference/typescript-api/worker/bootstrap-worker.mdx +1 -1
  113. package/docs/user-guide/settings/taxes.mdx +1 -1
  114. package/package.json +2 -2
  115. package/src/dates.generated.ts +113 -113
@@ -6,9 +6,9 @@ A CMS integration plugin allows you to automatically synchronize your Vendure pr
6
6
 
7
7
  This is done in a way that establishes Vendure as the source of truth for the ecommerce's data.
8
8
 
9
- This guide demonstrates how to build a production-ready CMS integration plugin. The principles covered here are designed to be CMS-agnostic, however we do have [working examples](/guides/how-to/cms-integration-plugin/#platform-specific-setup) for various platforms.
9
+ This guide demonstrates how to build a production-ready CMS integration plugin. The principles covered here are designed to be CMS-agnostic, however we do have [working examples](/how-to/cms-integration-plugin/#platform-specific-setup) for various platforms.
10
10
 
11
- Platfroms covered in the [guide](/guides/how-to/cms-integration-plugin/#platform-specific-setup):
11
+ Platfroms covered in the [guide](/how-to/cms-integration-plugin/#platform-specific-setup):
12
12
 
13
13
  - [Payload](https://payloadcms.com/)
14
14
  - [Sanity](https://www.sanity.io/)
@@ -27,16 +27,16 @@ The code examples in this guide are simplified for educational purposes. The act
27
27
  ## Prerequisites
28
28
 
29
29
  - Node.js 20+ with npm package manager
30
- - An existing Vendure project created with the [Vendure create command](/guides/getting-started/installation/)
30
+ - An existing Vendure project created with the [Vendure create command](/getting-started/installation/)
31
31
  - An access key to a CMS platform that provides an API
32
32
 
33
33
  ## Core Concepts
34
34
 
35
- This [plugin](/guides/developer-guide/plugins/) leverages several key Vendure concepts:
35
+ This [plugin](/developer-guide/plugins/) leverages several key Vendure concepts:
36
36
 
37
- - **[EventBus](/guides/developer-guide/events/)**: Provides real-time notifications when entities are created, updated, or deleted.
38
- - **[Job Queues](/guides/developer-guide/worker-job-queue/)**: Ensures that synchronization tasks are performed reliably and asynchronously, with retries on failure.
39
- - **[Plugin API](/guides/developer-guide/plugins/)**: The foundation for extending Vendure with custom capabilities.
37
+ - **[EventBus](/developer-guide/events/)**: Provides real-time notifications when entities are created, updated, or deleted.
38
+ - **[Job Queues](/developer-guide/worker-job-queue/)**: Ensures that synchronization tasks are performed reliably and asynchronously, with retries on failure.
39
+ - **[Plugin API](/developer-guide/plugins/)**: The foundation for extending Vendure with custom capabilities.
40
40
 
41
41
  ## How It Works
42
42
 
@@ -92,11 +92,11 @@ npx vendure add -s CmsSpecificService --selected-plugin CmsPlugin
92
92
  # Explained later in the Event-Driven Synchronization Section
93
93
  ```
94
94
 
95
- Now we start by defining the main [plugin](/guides/developer-guide/plugins/) class, its [services](/guides/developer-guide/the-service-layer/), and the configuration types.
95
+ Now we start by defining the main [plugin](/developer-guide/plugins/) class, its [services](/developer-guide/the-service-layer/), and the configuration types.
96
96
 
97
97
  ### Plugin Definition
98
98
 
99
- The `CmsPlugin` class registers the necessary [services](/guides/developer-guide/the-service-layer/) (`CmsSyncService`, `CmsSpecificService`) and sets up any Admin API extensions.
99
+ The `CmsPlugin` class registers the necessary [services](/developer-guide/the-service-layer/) (`CmsSyncService`, `CmsSpecificService`) and sets up any Admin API extensions.
100
100
 
101
101
  ```ts title="src/plugins/cms/cms.plugin.ts"
102
102
  import { VendurePlugin, PluginCommonModule, Type, OnModuleInit } from '@vendure/core';
@@ -161,9 +161,9 @@ export interface SyncResponse {
161
161
 
162
162
  ## Event-Driven Synchronization
163
163
 
164
- The plugin uses Vendure's [EventBus](/guides/developer-guide/events/) to capture changes in real-time.
164
+ The plugin uses Vendure's [EventBus](/developer-guide/events/) to capture changes in real-time.
165
165
 
166
- In the [onModuleInit](/guides/developer-guide/events/#subscribing-to-events) lifecycle hook, we create job queues and subscribe to entity events.
166
+ In the [onModuleInit](/developer-guide/events/#subscribing-to-events) lifecycle hook, we create job queues and subscribe to entity events.
167
167
 
168
168
  ### Creating Job Queues and Subscribing to Events
169
169
 
@@ -280,7 +280,7 @@ The sync service handles several critical functions:
280
280
 
281
281
  ### Service Structure and Dependencies
282
282
 
283
- The service follows Vendure's [dependency injection pattern](/guides/developer-guide/the-service-layer/) and requires several core Vendure services:
283
+ The service follows Vendure's [dependency injection pattern](/developer-guide/the-service-layer/) and requires several core Vendure services:
284
284
 
285
285
  ```ts title="src/plugins/cms/services/cms-sync.service.ts"
286
286
  @Injectable()
@@ -395,7 +395,7 @@ async findCollectionsForVariant(
395
395
  }
396
396
  ```
397
397
 
398
- :::info Additional Entity Types
398
+ :::info[Additional Entity Types]
399
399
  The service can also includes `syncVariantToCms()` and `syncCollectionToCms()` methods that follow the same pattern as the product sync shown above.
400
400
 
401
401
  These implementations are omitted from this guide for brevity, but they handle their respective entity types with similar data fetching, relationship resolution, and error handling patterns.
@@ -410,7 +410,7 @@ This sync service provides the foundation for handling all Vendure-specific comp
410
410
  <Tabs>
411
411
  <TabItem value="storyblok" label="Storyblok">
412
412
 
413
- :::tip Working Example
413
+ :::tip[Working Example]
414
414
  The complete, production-ready Storyblok implementation can be found in the [Storyblok integration example](https://github.com/vendurehq/examples/tree/master/examples/storyblok-cms-integration). Refer to it for a minimal working implementation.
415
415
  :::
416
416
 
@@ -728,7 +728,7 @@ The complete implementations can be found in the working [example repositories](
728
728
  </TabItem>
729
729
  <TabItem value="contentful" label="Contentful">
730
730
 
731
- :::tip Working Example
731
+ :::tip[Working Example]
732
732
  The complete, production-ready Contentful implementation can be found in the [Contentful integration example](https://github.com/vendurehq/examples/tree/master/examples/contentful-cms-integration). It includes advanced features like locale mapping, bulk operations, and a robust setup process.
733
733
  :::
734
734
 
@@ -966,7 +966,7 @@ This same pattern is used to link variants to their parent product and to their
966
966
 
967
967
  These methods perform the core Create, Read, Update, and Delete logic. They rely on our centralized `makeContentfulRequest` method and handle the specifics of Contentful's API, such as versioning and the publish workflow.
968
968
 
969
- :::info Contentful's Publish Workflow
969
+ :::info[Contentful's Publish Workflow]
970
970
  Contentful requires entries to be explicitly published before they are visible in the Delivery API. After creating or updating an entry, we must make a separate API call to publish it. Similarly, to delete an entry, it must first be unpublished.
971
971
  :::
972
972
 
@@ -1052,7 +1052,7 @@ This configuration provides a complete Contentful CMS integration that automatic
1052
1052
 
1053
1053
  <TabItem value="strapi" label="Strapi">
1054
1054
 
1055
- :::tip Working Example
1055
+ :::tip[Working Example]
1056
1056
  The complete, production-ready Strapi implementation can be found in the [Strapi integration example](https://github.com/vendurehq/examples/tree/master/examples/strapi-cms-integration). It includes advanced features like plugin-based content types, batch operations, and relationship management.
1057
1057
  :::
1058
1058
 
@@ -1382,7 +1382,7 @@ The complete implementations can be found in the working [example repositories](
1382
1382
  </TabItem>
1383
1383
  <TabItem value="Sanity" label="Sanity">
1384
1384
 
1385
- :::tip Working Example
1385
+ :::tip[Working Example]
1386
1386
  The complete, production-ready Sanity implementation can be found in the [Sanity integration example](https://github.com/vendurehq/examples/tree/master/examples/sanity-cms-integration). It includes advanced features like content type management and bulk operations.
1387
1387
  :::
1388
1388
 
@@ -1647,7 +1647,7 @@ https://github.com/vendurehq/examples/tree/master/examples/sanity-cms-integratio
1647
1647
  </TabItem>
1648
1648
  <TabItem value="payload" label="Payload">
1649
1649
 
1650
- :::tip Working Example
1650
+ :::tip[Working Example]
1651
1651
  The complete, production-ready Payload implementation can be found in the [Payload integration example](https://github.com/vendurehq/examples/tree/master/examples/payload-cms-integration). It includes advanced features like local API communication, collection management, and relationship handling.
1652
1652
  :::
1653
1653
 
@@ -16,7 +16,7 @@ directory.
16
16
  :::
17
17
 
18
18
  :::note
19
- This guide is for adding codegen to your Vendure plugins. For a guide on adding codegen to your storefront, see the [Storefront Codegen](/guides/storefront/codegen/) guide.
19
+ This guide is for adding codegen to your Vendure plugins. For a guide on adding codegen to your storefront, see the [Storefront Codegen](/storefront/codegen/) guide.
20
20
  :::
21
21
 
22
22
  ## Installation
@@ -153,7 +153,7 @@ export class OrganizationService {
153
153
 
154
154
  ## Codegen for Admin UI extensions
155
155
 
156
- :::warning Deprecated
156
+ :::warning[Deprecated]
157
157
  This section refers to the deprecated Angular-based Admin UI. The new React-based Dashboard has built-in graphql type safety
158
158
  and does not require additional setup.
159
159
  :::
@@ -8,7 +8,7 @@ A "configurable product" is one where aspects can be configured by the customer,
8
8
  - A gift message inserted with the packaging
9
9
  - An uploaded image to be printed on a t-shirt
10
10
 
11
- In Vendure this is done by defining one or more [custom fields](/guides/developer-guide/custom-fields/) on the [OrderLine](/reference/typescript-api/entities/order-line/) entity.
11
+ In Vendure this is done by defining one or more [custom fields](/developer-guide/custom-fields/) on the [OrderLine](/reference/typescript-api/entities/order-line/) entity.
12
12
 
13
13
  ## Defining custom fields
14
14
 
@@ -40,7 +40,7 @@ export class DigitalProductsPlugin {}
40
40
 
41
41
  :::note
42
42
  You will need to **create a migration** after adding this custom field.
43
- See the [Migrations](/guides/developer-guide/migrations/) guide for more information.
43
+ See the [Migrations](/developer-guide/migrations/) guide for more information.
44
44
  :::
45
45
 
46
46
  We will also define a custom field on the `ShippingMethod` entity to indicate that this shipping method is only available for digital products:
@@ -343,7 +343,7 @@ GitHub-authenticated customers are managed like any other Vendure [Customer](/re
343
343
  - **External ID**: GitHub username stored for future authentication
344
344
  - **Profile**: Name extracted from GitHub profile when available
345
345
 
346
- This means GitHub users work seamlessly with Vendure's [order management](/guides/core-concepts/orders/), [promotions](/guides/core-concepts/promotions/), and customer workflows.
346
+ This means GitHub users work seamlessly with Vendure's [order management](/core-concepts/orders/), [promotions](/core-concepts/promotions/), and customer workflows.
347
347
 
348
348
  ## Testing the Integration
349
349
 
@@ -12,7 +12,7 @@ This is particularly valuable for **consumer-facing stores** where users prefer
12
12
 
13
13
  This guide shows you how to **add Google OAuth support** to your Vendure store using a custom [AuthenticationStrategy](/reference/typescript-api/auth/authentication-strategy/) and Google Identity Services.
14
14
 
15
- An **AuthenticationStrategy** in Vendure defines how users can log in to your store. Learn more about [authentication in Vendure](/guides/core-concepts/auth/).
15
+ An **AuthenticationStrategy** in Vendure defines how users can log in to your store. Learn more about [authentication in Vendure](/core-concepts/auth/).
16
16
 
17
17
  ## Creating the Plugin
18
18
 
@@ -22,7 +22,7 @@ An **AuthenticationStrategy** in Vendure defines how users can log in to your st
22
22
  npx vendure add -p GoogleAuthPlugin
23
23
  ```
24
24
 
25
- This creates a basic [plugin](/guides/developer-guide/plugins/) structure with the necessary files.
25
+ This creates a basic [plugin](/developer-guide/plugins/) structure with the necessary files.
26
26
 
27
27
  ## Installing Dependencies
28
28
 
@@ -477,7 +477,7 @@ mutation AuthenticateWithGoogle {
477
477
  - **Profile**: First and last names from Google profile, with fallbacks
478
478
  - **Security**: No password stored - authentication handled entirely by Google
479
479
 
480
- This means **Google users work seamlessly** with Vendure's [order management](/guides/core-concepts/orders/), [promotions](/guides/core-concepts/promotions/), and all customer workflows.
480
+ This means **Google users work seamlessly** with Vendure's [order management](/core-concepts/orders/), [promotions](/core-concepts/promotions/), and all customer workflows.
481
481
 
482
482
  ## Testing the Integration
483
483
 
@@ -20,7 +20,7 @@ All the concepts presented here have been implemented in our [example multi-vend
20
20
 
21
21
  ## Sellers, Channels & Roles
22
22
 
23
- The core of Vendure's multi-vendor support is Channels. Read the [Channels guide](/guides/core-concepts/channels/) to get a more detailed understanding of how they work.
23
+ The core of Vendure's multi-vendor support is Channels. Read the [Channels guide](/core-concepts/channels/) to get a more detailed understanding of how they work.
24
24
 
25
25
  Each Channel is assigned to a [Seller](/reference/typescript-api/entities/seller/), which is another term for the vendor who is selling things in our marketplace.
26
26
 
@@ -60,7 +60,7 @@ Bob can now log in to the Dashboard using the provided credentials and begin cre
60
60
 
61
61
  In some marketplaces, the same product may be sold by multiple sellers. When this is the case, the product and its variants
62
62
  will be assigned not only to the default channel, but to multiple other channels as well - see the
63
- [Channels, Currencies & Prices section](/guides/core-concepts/channels/#channels-currencies--prices) for a visual explanation of how this works.
63
+ [Channels, Currencies & Prices section](/core-concepts/channels/#channels-currencies--prices) for a visual explanation of how this works.
64
64
 
65
65
  This means that there will be multiple ProductVariantPrice entities per variant, one for each channel.
66
66
 
@@ -7,7 +7,7 @@ to implement your own paginated list queries.
7
7
 
8
8
  ## API definition
9
9
 
10
- Let's start with defining the GraphQL schema for our query. In this example, we'll image that we have defined a [custom entity](/guides/developer-guide/database-entity/) to
10
+ Let's start with defining the GraphQL schema for our query. In this example, we'll image that we have defined a [custom entity](/developer-guide/database-entity/) to
11
11
  represent a `ProductReview`. We want to be able to query a list of reviews in the Admin API. Here's how the schema definition
12
12
  would look:
13
13
 
@@ -2,7 +2,7 @@
2
2
  title: "Publishing a Plugin"
3
3
  ---
4
4
 
5
- Vendure's [plugin-based architecture](/guides/developer-guide/plugins/) means you'll be writing a lot of plugins.
5
+ Vendure's [plugin-based architecture](/developer-guide/plugins/) means you'll be writing a lot of plugins.
6
6
  Some of those plugins may be useful to others, and you may want to share them with the community.
7
7
 
8
8
  We have created [Vendure Hub](https://vendure.io/hub) as a central listing for high-quality Vendure plugins.
@@ -44,7 +44,7 @@ a must. The same goes for any of the transitive dependencies of Vendure core suc
44
44
  that these dependencies will be available in the Vendure project that uses your plugin.
45
45
 
46
46
  As for version compatibility, you should use the
47
- [compatibility property](/guides/developer-guide/plugins/#step-7-specify-compatibility) in your plugin definition to ensure that the Vendure project
47
+ [compatibility property](/developer-guide/plugins/#step-7-specify-compatibility) in your plugin definition to ensure that the Vendure project
48
48
  is using a compatible version of Vendure.
49
49
 
50
50
  ### License
@@ -380,7 +380,7 @@ export class LoyaltyPointsTransactionEvent extends VendureEvent {
380
380
  Testing is an important part of ensuring the quality of your plugin, as well as preventing regressions when you make
381
381
  changes.
382
382
 
383
- For plugins of any complexity, you should aim to have a suite of end-to-end tests as covered in the [testing docs](/guides/developer-guide/testing/).
383
+ For plugins of any complexity, you should aim to have a suite of end-to-end tests as covered in the [testing docs](/developer-guide/testing/).
384
384
 
385
385
  In future we may use the test results to help determine the quality of a plugin.
386
386
 
@@ -14,7 +14,7 @@ Refer to the complete working code for full implementation details.
14
14
  ## Prerequisites
15
15
 
16
16
  - Node.js 20+ with npm package manager
17
- - An existing Vendure project created with the [Vendure create command](/guides/getting-started/installation/)
17
+ - An existing Vendure project created with the [Vendure create command](/getting-started/installation/)
18
18
  - An account with one of the supported S3-compatible storage providers
19
19
 
20
20
  ## S3-Compatible Storage Provider Setup
@@ -100,7 +100,7 @@ query GetActiveOrder {
100
100
 
101
101
  ## Add an item
102
102
 
103
- To add an item to the active order, we use the [`addItemToOrder` mutation](/reference/graphql-api/shop/mutations/#additemtoorder), as we have seen in the [Product Detail Page guide](/guides/storefront/product-detail/).
103
+ To add an item to the active order, we use the [`addItemToOrder` mutation](/reference/graphql-api/shop/mutations/#additemtoorder), as we have seen in the [Product Detail Page guide](/storefront/product-detail/).
104
104
 
105
105
  ```graphql
106
106
  mutation AddItemToOrder($productVariantId: ID!, $quantity: Int!) {
@@ -122,7 +122,7 @@ mutation AddItemToOrder($productVariantId: ID!, $quantity: Int!) {
122
122
 
123
123
  :::info
124
124
  If you have defined any custom fields on the `OrderLine` entity, you will be able to pass them as a `customFields` argument to the `addItemToOrder` mutation.
125
- See the [Configurable Products guide](/guides/how-to/configurable-products/) for more information.
125
+ See the [Configurable Products guide](/how-to/configurable-products/) for more information.
126
126
  :::
127
127
 
128
128
  ## Remove an item
@@ -160,12 +160,12 @@ mutation AdjustOrderLine($orderLineId: ID!, $quantity: Int!) {
160
160
 
161
161
  :::info
162
162
  If you have defined any custom fields on the `OrderLine` entity, you will be able to update their values by passing a `customFields` argument to the `adjustOrderLine` mutation.
163
- See the [Configurable Products guide](/guides/how-to/configurable-products/) for more information.
163
+ See the [Configurable Products guide](/how-to/configurable-products/) for more information.
164
164
  :::
165
165
 
166
166
  ## Applying a coupon code
167
167
 
168
- If you have defined any [Promotions](/guides/core-concepts/promotions/) which use coupon codes, you can apply the a coupon code to the active order
168
+ If you have defined any [Promotions](/core-concepts/promotions/) which use coupon codes, you can apply the a coupon code to the active order
169
169
  using the [`applyCouponCode` mutation](/reference/graphql-api/shop/mutations/#applycouponcode).
170
170
 
171
171
  ```graphql
@@ -4,12 +4,12 @@ title: "Checkout Flow"
4
4
 
5
5
  Once the customer has added the desired products to the active order, it's time to check out.
6
6
 
7
- This guide assumes that you are using the [default OrderProcess](/guides/core-concepts/orders/#the-order-process), so
7
+ This guide assumes that you are using the [default OrderProcess](/core-concepts/orders/#the-order-process), so
8
8
  if you have defined a custom process, some of these steps may be slightly different.
9
9
 
10
10
  :::note
11
11
  In this guide, we will assume that an `ActiveOrder` fragment has been defined, as detailed in the
12
- [Managing the Active Order guide](/guides/storefront/active-order/#define-an-order-fragment), but for the purposes of
12
+ [Managing the Active Order guide](/storefront/active-order/#define-an-order-fragment), but for the purposes of
13
13
  checking out the fragment should also include `customer` `shippingAddress` and `billingAddress` fields.
14
14
  :::
15
15
 
@@ -388,7 +388,7 @@ Our [`MolliePlugin` docs](/reference/core-plugins/payments-plugin/mollie-plugin/
388
388
 
389
389
  ### Other payment providers
390
390
 
391
- For more information on how to integrate with a payment provider, see the [Payment](/guides/core-concepts/payment/) guide.
391
+ For more information on how to integrate with a payment provider, see the [Payment](/core-concepts/payment/) guide.
392
392
 
393
393
  ## Display confirmation
394
394
 
@@ -9,7 +9,7 @@ write any types for your API calls.
9
9
  To do this, we will use [Graphql Code Generator](https://the-guild.dev/graphql/codegen).
10
10
 
11
11
  :::note
12
- This guide is for adding codegen to your storefront. For a guide on adding codegen to your backend Vendure plugins or UI extensions, see the [Plugin Codegen](/guides/how-to/codegen/) guide.
12
+ This guide is for adding codegen to your storefront. For a guide on adding codegen to your backend Vendure plugins or UI extensions, see the [Plugin Codegen](/how-to/codegen/) guide.
13
13
  :::
14
14
 
15
15
  ## Installation
@@ -113,7 +113,7 @@ length of time that a session will stay valid since the last API call.
113
113
 
114
114
  ## Specifying a channel
115
115
 
116
- If your project has multiple [channels](/guides/core-concepts/channels/), you can specify the active channel by setting
116
+ If your project has multiple [channels](/core-concepts/channels/), you can specify the active channel by setting
117
117
  the `vendure-token` header on each request to match the `channelToken` for the desired channel.
118
118
 
119
119
  Let's say you have a channel with the token `uk-channel` and you want to make a request to the Shop API to get the
@@ -161,7 +161,7 @@ POST http://localhost:3000/shop-api?languageCode=de
161
161
  If you are building your storefront with TypeScript, we highly recommend you set up code generation to ensure
162
162
  that the responses from your queries & mutation are always correctly typed according the fields you request.
163
163
 
164
- See the [GraphQL Code Generation guide](/guides/storefront/codegen/) for more information.
164
+ See the [GraphQL Code Generation guide](/storefront/codegen/) for more information.
165
165
 
166
166
  ## Examples
167
167
 
@@ -137,7 +137,7 @@ mutation LogOut {
137
137
  The `login` mutation, as well as the following mutations related to registration & password recovery only
138
138
  apply when using the built-in [`NativeAuthenticationStrategy`](/reference/typescript-api/auth/native-authentication-strategy/).
139
139
 
140
- If you are using alternative authentication strategies in your storefront, you would use the [`authenticate` mutation](/reference/graphql-api/shop/mutations/#authenticate) as covered in the [External Authentication guide](/guides/core-concepts/auth/#external-authentication).
140
+ If you are using alternative authentication strategies in your storefront, you would use the [`authenticate` mutation](/reference/graphql-api/shop/mutations/#authenticate) as covered in the [External Authentication guide](/core-concepts/auth/#external-authentication).
141
141
  :::
142
142
 
143
143
  ## Registering a customer account
@@ -13,7 +13,7 @@ be used to fetch a list of products, but they need to perform much more complex
13
13
 
14
14
  ## Listing products in a collection
15
15
 
16
- Following on from the [navigation example](/guides/storefront/navigation-menu/), let's assume that a customer has
16
+ Following on from the [navigation example](/storefront/navigation-menu/), let's assume that a customer has
17
17
  clicked on a collection item from the menu, and we want to display the products in that collection.
18
18
 
19
19
  Typically, we will know the `slug` of the selected collection, so we can use the `collection` query to fetch the
@@ -4,7 +4,7 @@ title: "Navigation Menu"
4
4
 
5
5
  A navigation menu allows your customers to navigate your store and find the products they are looking for.
6
6
 
7
- Typically, navigation is based on a hierarchy of [collections](/guides/core-concepts/collections/). We can get the top-level
7
+ Typically, navigation is based on a hierarchy of [collections](/core-concepts/collections/). We can get the top-level
8
8
  collections using the `collections` query with the `topLevelOnly` filter:
9
9
 
10
10
 
@@ -10,7 +10,7 @@ An Order is a collection of one or more ProductVariants which can be purchased b
10
10
  Every Order has a `state` property of type [`OrderState`](/reference/typescript-api/orders/order-process/#orderstate). The following diagram shows the default states and how an Order transitions from one to the next.
11
11
 
12
12
  :::note
13
- Note that this default workflow can be modified to better fit your business processes. See the [Customizing the Order Process guide](/guides/core-concepts/orders/#custom-order-processes).
13
+ Note that this default workflow can be modified to better fit your business processes. See the [Customizing the Order Process guide](/core-concepts/orders/#custom-order-processes).
14
14
  :::
15
15
 
16
16
  ![./order_state_diagram.png](./order_state_diagram.png)
@@ -25,7 +25,7 @@ Here is a simplified diagram illustrating this relationship:
25
25
 
26
26
  ## Shop client order workflow
27
27
 
28
- The [GraphQL Shop API Guide](/guides/storefront/active-order) lists the GraphQL operations you will need to implement this workflow in your storefront client application.
28
+ The [GraphQL Shop API Guide](/storefront/active-order) lists the GraphQL operations you will need to implement this workflow in your storefront client application.
29
29
 
30
30
  In this section, we'll cover some examples of how these operations would look in your storefront.
31
31
 
@@ -145,11 +145,11 @@ This single query provides all the data we need to display our PDP.
145
145
 
146
146
  ## Formatting prices
147
147
 
148
- As explained in the [Money & Currency guide](/guides/core-concepts/money/), the prices are returned as integers in the
148
+ As explained in the [Money & Currency guide](/core-concepts/money/), the prices are returned as integers in the
149
149
  smallest unit of the currency (e.g. cents for USD). Therefore, when we display the price, we need to divide by 100 and
150
150
  format it according to the currency's formatting rules.
151
151
 
152
- In the demo at the end of this guide, we'll use the [`formatCurrency` function](/guides/core-concepts/money/#displaying-monetary-values)
152
+ In the demo at the end of this guide, we'll use the [`formatCurrency` function](/core-concepts/money/#displaying-monetary-values)
153
153
  which makes use of the browser's `Intl` API to format the price according to the user's locale.
154
154
 
155
155
  ## Displaying images
@@ -274,9 +274,9 @@ fragment UpdatedOrder on Order {
274
274
 
275
275
  There are some important things to note about this mutation:
276
276
 
277
- - Because the `addItemToOrder` mutation returns a union type, we need to use a [fragment](/guides/getting-started/graphql-intro/#fragments) to specify the fields we want to return.
277
+ - Because the `addItemToOrder` mutation returns a union type, we need to use a [fragment](/getting-started/graphql-intro/#fragments) to specify the fields we want to return.
278
278
  In this case we have defined a fragment called `UpdatedOrder` which contains the fields we are interested in.
279
- - If any [expected errors](/guides/developer-guide/error-handling/) occur, the mutation will return an `ErrorResult` object. We'll be able to
279
+ - If any [expected errors](/developer-guide/error-handling/) occur, the mutation will return an `ErrorResult` object. We'll be able to
280
280
  see the `errorCode` and `message` fields in the response, so that we can display a meaningful error message to the user.
281
281
  - In the special case of the `InsufficientStockError`, in addition to the `errorCode` and `message` fields, we also get the `quantityAvailable` field
282
282
  which tells us how many of the requested quantity are available (and have been added to the order). This is useful information to display to the user.
@@ -8,7 +8,7 @@ Defines extensions to the Admin UI application by specifying additional
8
8
  Angular [NgModules](https://angular.io/guide/ngmodules) which are compiled
9
9
  into the application.
10
10
 
11
- See [Extending the Admin UI](/guides/extending-the-admin-ui/getting-started/) for
11
+ See [Extending the Admin UI](/extending-the-admin-ui/getting-started/) for
12
12
  detailed instructions.
13
13
 
14
14
  ```ts title="Signature"
@@ -4,8 +4,8 @@ generated: true
4
4
  ---
5
5
  <GenerationInfo sourceFile="packages/admin-ui-plugin/src/plugin.ts" sourceLine="147" packageName="@vendure/admin-ui-plugin" />
6
6
 
7
- :::warning Deprecated
8
- From Vendure v3.5.0, the Angular-based Admin UI has been replaced by the new [React Admin Dashboard](/guides/extending-the-dashboard/getting-started/).
7
+ :::warning[Deprecated]
8
+ From Vendure v3.5.0, the Angular-based Admin UI has been replaced by the new [React Admin Dashboard](/extending-the-dashboard/getting-started/).
9
9
  The Angular Admin UI will not be maintained after **July 2026**. Until then, we will continue patching critical bugs and security issues.
10
10
  Community contributions will always be merged and released.
11
11
  :::
@@ -14,7 +14,7 @@ GraphQL extensions needed for the order metrics on the dashboard index page.
14
14
  ## Usage
15
15
 
16
16
  First you need to set up compilation of the Dashboard, using the Vite configuration
17
- described in the [Dashboard Getting Started Guide](/guides/extending-the-dashboard/getting-started/)
17
+ described in the [Dashboard Getting Started Guide](/extending-the-dashboard/getting-started/)
18
18
 
19
19
  ## Development vs Production
20
20
 
@@ -15,7 +15,7 @@ npm install @vendure/telemetry-plugin
15
15
 
16
16
  :::info
17
17
  For a complete guide to setting up and working with Open Telemetry, see
18
- the [Implementing Open Telemetry guide](/guides/how-to/telemetry/).
18
+ the [Implementing Open Telemetry guide](/how-to/telemetry/).
19
19
  :::
20
20
 
21
21
  ## Configuration
@@ -7,7 +7,7 @@ generated: true
7
7
  An AuthenticationStrategy defines how a User (which can be a Customer in the Shop API or
8
8
  and Administrator in the Admin API) may be authenticated.
9
9
 
10
- Real-world examples can be found in the [Authentication guide](/guides/core-concepts/auth/).
10
+ Real-world examples can be found in the [Authentication guide](/core-concepts/auth/).
11
11
 
12
12
  :::info
13
13
 
@@ -128,7 +128,7 @@ A url of a custom image to be used on the login screen, to override the images p
128
128
 
129
129
  Allows you to provide default reasons for a refund or cancellation. This will be used in the
130
130
  refund/cancel dialog. The values can be literal strings (e.g. "Not in stock") or translation
131
- tokens (see [Adding Admin UI Translations](/guides/extending-the-admin-ui/adding-ui-translations/)).
131
+ tokens (see [Adding Admin UI Translations](/extending-the-admin-ui/adding-ui-translations/)).
132
132
 
133
133
 
134
134
  </div>
@@ -20,7 +20,7 @@ datetime | datetime (m,s), timestamp (p) | DateTime
20
20
  struct | json (m), jsonb (p), text (s) | JSON
21
21
  relation | many-to-one / many-to-many relation | As specified in config
22
22
 
23
- Additionally, the CustomFieldType also dictates which [configuration options](/guides/developer-guide/custom-fields/#custom-field-config-properties)
23
+ Additionally, the CustomFieldType also dictates which [configuration options](/developer-guide/custom-fields/#custom-field-config-properties)
24
24
  are available for that custom field.
25
25
 
26
26
  ```ts title="Signature"
@@ -19,7 +19,7 @@ class ImportParser {
19
19
 
20
20
  <MemberInfo kind="method" type={`(input: string | Stream, mainLanguage: <a href='/reference/typescript-api/common/language-code#languagecode'>LanguageCode</a> = this.configService.defaultLanguageCode) => Promise<<a href='/reference/typescript-api/import-export/import-parser#parseresult'>ParseResult</a><<a href='/reference/typescript-api/import-export/import-parser#parsedproductwithvariants'>ParsedProductWithVariants</a>>>`} />
21
21
 
22
- Parses the contents of the [product import CSV file](/guides/developer-guide/importing-data/#product-import-format) and
22
+ Parses the contents of the [product import CSV file](/developer-guide/importing-data/#product-import-format) and
23
23
  returns a data structure which can then be used to populate Vendure using the <DocsLink href="/reference/typescript-api/import-export/fast-importer-service#fastimporterservice">FastImporterService</DocsLink>.
24
24
 
25
25
 
@@ -25,7 +25,7 @@ class Importer {
25
25
 
26
26
  <MemberInfo kind="method" type={`(input: string | Stream, ctxOrLanguageCode: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a> | <a href='/reference/typescript-api/common/language-code#languagecode'>LanguageCode</a>, reportProgress: boolean = false) => Observable<ImportProgress>`} />
27
27
 
28
- Parses the contents of the [product import CSV file](/guides/developer-guide/importing-data/#product-import-format) and imports
28
+ Parses the contents of the [product import CSV file](/developer-guide/importing-data/#product-import-format) and imports
29
29
  the resulting Product & ProductVariants, as well as any associated Assets, Facets & FacetValues.
30
30
 
31
31
  The `ctxOrLanguageCode` argument is used to specify the languageCode to be used when creating the Products.
@@ -6,7 +6,7 @@ generated: true
6
6
 
7
7
  Populates the Vendure server with some initial data and (optionally) product data from
8
8
  a supplied CSV file. The format of the CSV file is described in the section
9
- [Importing Product Data](/guides/developer-guide/importing-data/).
9
+ [Importing Product Data](/developer-guide/importing-data/).
10
10
 
11
11
  If the `channelOrToken` argument is provided, all ChannelAware entities (Products, ProductVariants,
12
12
  Assets, ShippingMethods, PaymentMethods etc.) will be assigned to the specified Channel.
@@ -5,7 +5,7 @@ generated: true
5
5
  <GenerationInfo sourceFile="packages/core/src/plugin/default-job-queue-plugin/default-job-queue-plugin.ts" sourceLine="127" packageName="@vendure/core" />
6
6
 
7
7
  A plugin which configures Vendure to use the SQL database to persist the JobQueue jobs using the <DocsLink href="/reference/typescript-api/job-queue/sql-job-queue-strategy#sqljobqueuestrategy">SqlJobQueueStrategy</DocsLink>. If you add this
8
- plugin to an existing Vendure installation, you'll need to run a [database migration](/guides/developer-guide/migrations), since this
8
+ plugin to an existing Vendure installation, you'll need to run a [database migration](/developer-guide/migrations), since this
9
9
  plugin will add a new "job_record" table to the database.
10
10
 
11
11
  *Example*
@@ -49,7 +49,7 @@ A custom OrderItemPriceCalculationStrategy can be used to implement things like:
49
49
  * A gift-wrapping service, where a boolean custom field is defined on the OrderLine. If `true`,
50
50
  a gift-wrapping surcharge would be added to the price.
51
51
  * A product-configurator where e.g. various finishes, colors, and materials can be selected and stored
52
- as OrderLine custom fields (see [the Custom Fields guide](/guides/developer-guide/custom-fields/).
52
+ as OrderLine custom fields (see [the Custom Fields guide](/developer-guide/custom-fields/).
53
53
  * Price lists or bulk pricing, where different price bands are stored e.g. in a customField on the ProductVariant, and this
54
54
  is used to calculate the price based on the current quantity.
55
55
 
@@ -71,7 +71,7 @@ Create an Asset based on a file uploaded via the GraphQL API. The file should be
71
71
  using the [GraphQL multipart request specification](https://github.com/jaydenseric/graphql-multipart-request-spec),
72
72
  e.g. using the [apollo-upload-client](https://github.com/jaydenseric/apollo-upload-client) npm package.
73
73
 
74
- See the [Uploading Files docs](/guides/developer-guide/uploading-files) for an example of usage.
74
+ See the [Uploading Files docs](/developer-guide/uploading-files) for an example of usage.
75
75
  ### update
76
76
 
77
77
  <MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, input: UpdateAssetInput) => Promise<<a href='/reference/typescript-api/entities/asset#asset'>Asset</a>>`} />
@@ -98,7 +98,7 @@ export class VerificationService {
98
98
  ```
99
99
  :::info
100
100
  It is also possible to define a UI component to display custom history entry types. See the
101
- [Custom History Timeline Components guide](/guides/extending-the-admin-ui/custom-timeline-components/).
101
+ [Custom History Timeline Components guide](/extending-the-admin-ui/custom-timeline-components/).
102
102
  :::
103
103
 
104
104
  ```ts title="Signature"
@@ -8,7 +8,7 @@ Bootstraps a Vendure worker. Resolves to a <DocsLink href="/reference/typescript
8
8
  NestJs [standalone application](https://docs.nestjs.com/standalone-applications) as well as convenience
9
9
  methods for starting the job queue and health check server.
10
10
 
11
- Read more about the [Vendure Worker](/guides/developer-guide/worker-job-queue/).
11
+ Read more about the [Vendure Worker](/developer-guide/worker-job-queue/).
12
12
 
13
13
  *Example*
14
14
 
@@ -27,4 +27,4 @@ Tax rates set the rate of tax for a given **tax category** destined for a partic
27
27
 
28
28
  ## Tax Compliance
29
29
 
30
- Please note that tax compliance is a complex topic that varies significantly between countries. Vendure does not (and cannot) offer a complete out-of-the-box tax solution which is guaranteed to be compliant with your use-case. What we strive to do is to provide a very flexible set of tools that your developers can use to tailor tax calculations exactly to your needs. These are covered in the [Developer's guide to taxes](/guides/core-concepts/taxes/).
30
+ Please note that tax compliance is a complex topic that varies significantly between countries. Vendure does not (and cannot) offer a complete out-of-the-box tax solution which is guaranteed to be compliant with your use-case. What we strive to do is to provide a very flexible set of tools that your developers can use to tailor tax calculations exactly to your needs. These are covered in the [Developer's guide to taxes](/core-concepts/taxes/).