@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
@@ -60,7 +60,7 @@ For any database schema changes, it is advised to:
60
60
 
61
61
  1. Read the changelog breaking changes entries to see what changes to expect
62
62
  2. **Important:** Make a backup of your database!
63
- 3. Create a new database migration as described in the [Migrations guide](/guides/developer-guide/migrations/)
63
+ 3. Create a new database migration as described in the [Migrations guide](/developer-guide/migrations/)
64
64
  4. Manually check the migration script. In some cases manual action is needed to customize the script in order to correctly migrate your existing data.
65
65
  5. Test the migration script against non-production data.
66
66
  6. Only when you have verified that the migration works as expected, run it against your production database.
@@ -3,7 +3,7 @@ title: "Uploading Files"
3
3
  showtoc: true
4
4
  ---
5
5
 
6
- Vendure handles file uploads with the [GraphQL multipart request specification](https://github.com/jaydenseric/graphql-multipart-request-spec). Internally, we use the [graphql-upload package](https://github.com/jaydenseric/graphql-upload). Once uploaded, a file is known as an [Asset](/guides/core-concepts/images-assets/). Assets are typically used for images, but can represent any kind of binary data such as PDF files or videos.
6
+ Vendure handles file uploads with the [GraphQL multipart request specification](https://github.com/jaydenseric/graphql-multipart-request-spec). Internally, we use the [graphql-upload package](https://github.com/jaydenseric/graphql-upload). Once uploaded, a file is known as an [Asset](/core-concepts/images-assets/). Assets are typically used for images, but can represent any kind of binary data such as PDF files or videos.
7
7
 
8
8
  ## Upload clients
9
9
 
@@ -55,11 +55,11 @@ function UploadFile() {
55
55
 
56
56
  ## Custom upload mutations
57
57
 
58
- How about if you want to implement a custom mutation for file uploads? Let's take an example where we want to allow customers to set an avatar image. To do this, we'll add a [custom field](/guides/developer-guide/custom-fields/) to the Customer entity and then define a new mutation in the Shop API.
58
+ How about if you want to implement a custom mutation for file uploads? Let's take an example where we want to allow customers to set an avatar image. To do this, we'll add a [custom field](/developer-guide/custom-fields/) to the Customer entity and then define a new mutation in the Shop API.
59
59
 
60
60
  ### Configuration
61
61
 
62
- Let's define a custom field to associate the avatar `Asset` with the `Customer` entity. To keep everything encapsulated, we'll do all of this in a [plugin](/guides/developer-guide/plugins/)
62
+ Let's define a custom field to associate the avatar `Asset` with the `Customer` entity. To keep everything encapsulated, we'll do all of this in a [plugin](/developer-guide/plugins/)
63
63
 
64
64
  ```ts title="src/plugins/customer-avatar/customer-avatar.plugin.ts"
65
65
  import { Asset, LanguageCode, PluginCommonModule, VendurePlugin } from '@vendure/core';
@@ -13,14 +13,14 @@ in that case you won't be able to use the built-in Angular-specific components.
13
13
 
14
14
  ## Example: Creating a Product Detail View
15
15
 
16
- Let's say you have a plugin which adds a new entity to the database called `ProductReview`. You have already created a [list view](/guides/extending-the-admin-ui/creating-list-views/), and
16
+ Let's say you have a plugin which adds a new entity to the database called `ProductReview`. You have already created a [list view](/extending-the-admin-ui/creating-list-views/), and
17
17
  now you need a detail view which can be used to view and edit individual reviews.
18
18
 
19
19
  ### Extend the TypedBaseDetailComponent class
20
20
 
21
21
  The detail component itself is an Angular component which extends the [BaseDetailComponent](/reference/admin-ui-api/list-detail-views/base-detail-component/) or [TypedBaseDetailComponent](/reference/admin-ui-api/list-detail-views/typed-base-detail-component) class.
22
22
 
23
- This example assumes you have set up your project to use code generation as described in the [GraphQL code generation guide](/guides/how-to/codegen/#codegen-for-admin-ui-extensions).
23
+ This example assumes you have set up your project to use code generation as described in the [GraphQL code generation guide](/how-to/codegen/#codegen-for-admin-ui-extensions).
24
24
 
25
25
  ```ts title="src/plugins/reviews/ui/components/review-detail/review-detail.component.ts"
26
26
  import { ResultOf } from '@graphql-typed-document-node/core';
@@ -236,7 +236,7 @@ export default [
236
236
 
237
237
  ## Supporting custom fields
238
238
 
239
- From Vendure v2.2, it is possible for your [custom entities to support custom fields](/guides/developer-guide/database-entity/#supporting-custom-fields).
239
+ From Vendure v2.2, it is possible for your [custom entities to support custom fields](/developer-guide/database-entity/#supporting-custom-fields).
240
240
 
241
241
  If you have set up your entity to support custom fields, and you want custom fields to be available in the Admin UI detail view,
242
242
  you need to add the following to your detail component:
@@ -39,14 +39,14 @@ type ProductReviewList implements PaginatedList {
39
39
  ```
40
40
 
41
41
  :::info
42
- See the [Paginated Lists guide](/guides/how-to/paginated-list/) for details on how to implement this in your server plugin code.
42
+ See the [Paginated Lists guide](/how-to/paginated-list/) for details on how to implement this in your server plugin code.
43
43
  :::
44
44
 
45
45
  ### Create the list component
46
46
 
47
47
  The list component itself is an Angular component which extends the [BaseListComponent](/reference/admin-ui-api/list-detail-views/base-list-component/) or [TypedBaseListComponent](/reference/admin-ui-api/list-detail-views/typed-base-list-component) class.
48
48
 
49
- This example assumes you have set up your project to use code generation as described in the [GraphQL code generation guide](/guides/how-to/codegen/#codegen-for-admin-ui-extensions).
49
+ This example assumes you have set up your project to use code generation as described in the [GraphQL code generation guide](/how-to/codegen/#codegen-for-admin-ui-extensions).
50
50
 
51
51
  ```ts title="src/plugins/reviews/ui/components/review-list/review-list.component.ts"
52
52
  import { ChangeDetectionStrategy, Component } from '@angular/core';
@@ -247,7 +247,7 @@ export default [
247
247
 
248
248
  ## Supporting custom fields
249
249
 
250
- From Vendure v2.2, it is possible for your [custom entities to support custom fields](/guides/developer-guide/database-entity/#supporting-custom-fields).
250
+ From Vendure v2.2, it is possible for your [custom entities to support custom fields](/developer-guide/database-entity/#supporting-custom-fields).
251
251
 
252
252
  If you have set up your entity to support custom fields, and you want custom fields to be available in the Admin UI list view,
253
253
  you need to add the following to your list component:
@@ -3,7 +3,7 @@ title: 'Custom DataTable Components'
3
3
  weight: 6
4
4
  ---
5
5
 
6
- The Admin UI list views are powered by a data table component which features sorting, advanced filtering, pagination and more. It will also give you the option of displaying any configured [custom fields](/guides/developer-guide/custom-fields/) for the entity in question.
6
+ The Admin UI list views are powered by a data table component which features sorting, advanced filtering, pagination and more. It will also give you the option of displaying any configured [custom fields](/developer-guide/custom-fields/) for the entity in question.
7
7
 
8
8
  With Admin UI extensions, you can specify custom components to use in rendering any column of any data table - both custom fields _and_ built-in fields, using either Angular or React components.
9
9
 
@@ -2,7 +2,7 @@
2
2
  title: 'Custom Form Inputs'
3
3
  ---
4
4
 
5
- You can define custom Angular or React components which can be used to render [Custom Fields](/guides/developer-guide/custom-fields/) you have defined on your entities as well as [configurable args](/reference/typescript-api/configurable-operation-def/config-args/) used by custom [Configurable Operations](/guides/developer-guide/strategies-configurable-operations/#configurable-operations).
5
+ You can define custom Angular or React components which can be used to render [Custom Fields](/developer-guide/custom-fields/) you have defined on your entities as well as [configurable args](/reference/typescript-api/configurable-operation-def/config-args/) used by custom [Configurable Operations](/developer-guide/strategies-configurable-operations/#configurable-operations).
6
6
 
7
7
  ## For Custom Fields
8
8
 
@@ -128,7 +128,7 @@ export default [
128
128
 
129
129
  ### 3. Register the providers
130
130
 
131
- The `providers.ts` is then passed to the `compileUiExtensions()` function as described in the [UI Extensions Getting Started guide](/guides/extending-the-admin-ui/getting-started/):
131
+ The `providers.ts` is then passed to the `compileUiExtensions()` function as described in the [UI Extensions Getting Started guide](/extending-the-admin-ui/getting-started/):
132
132
 
133
133
  ```ts title="src/vendure-config.ts"
134
134
  import * as path from 'path';
@@ -253,7 +253,7 @@ export class RelationReviewInputComponent implements OnInit, FormInputComponent<
253
253
 
254
254
  ## For ConfigArgs
255
255
 
256
- [ConfigArgs](/reference/typescript-api/configurable-operation-def/config-args/) are used by classes which extend [Configurable Operations](/guides/developer-guide/strategies-configurable-operations/#configurable-operations) (such as ShippingCalculator or PaymentMethodHandler). These ConfigArgs allow user-input values to be passed to the operation's business logic.
256
+ [ConfigArgs](/reference/typescript-api/configurable-operation-def/config-args/) are used by classes which extend [Configurable Operations](/developer-guide/strategies-configurable-operations/#configurable-operations) (such as ShippingCalculator or PaymentMethodHandler). These ConfigArgs allow user-input values to be passed to the operation's business logic.
257
257
 
258
258
  They are configured in a very similar way to custom fields, and likewise can use custom form inputs by specifying the `ui` property.
259
259
 
@@ -75,5 +75,5 @@ export default [
75
75
  ];
76
76
  ```
77
77
 
78
- Then we need to add the `providers.ts` file to the `uiExtensions` array as described in the [UI Extensions Getting Started guide](/guides/extending-the-admin-ui/getting-started/).
78
+ Then we need to add the `providers.ts` file to the `uiExtensions` array as described in the [UI Extensions Getting Started guide](/extending-the-admin-ui/getting-started/).
79
79
 
@@ -74,7 +74,7 @@ We also need to define an `NgModule` for this component. This is because we will
74
74
 
75
75
  ### Register the widget
76
76
 
77
- Our widget now needs to be registered in our [providers file](/guides/extending-the-admin-ui/getting-started/#providers):
77
+ Our widget now needs to be registered in our [providers file](/extending-the-admin-ui/getting-started/#providers):
78
78
 
79
79
  ```ts title="src/plugins/reviews/ui/providers.ts"
80
80
  import { registerDashboardWidget } from '@vendure/admin-ui/core';
@@ -6,7 +6,7 @@ Routes allow you to mount entirely custom components at a given URL in the Admin
6
6
 
7
7
  ![Route area](./route-area.webp)
8
8
 
9
- Routes can be defined natively using either **Angular** or **React**. It is also possible to [use other frameworks](/guides/extending-the-admin-ui/using-other-frameworks/) in a more limited capacity.
9
+ Routes can be defined natively using either **Angular** or **React**. It is also possible to [use other frameworks](/extending-the-admin-ui/using-other-frameworks/) in a more limited capacity.
10
10
 
11
11
  ## Example: Creating a "Greeter" route
12
12
 
@@ -565,7 +565,7 @@ export default [
565
565
  ];
566
566
  ```
567
567
 
568
- A more powerful way to set the breadcrumbs is by using the `getBreadcrumbs` property. This is a function that receives any resolved detail data and returns an array of link/label pairs. An example of its use can be seen in the [Creating detail views guide](/guides/extending-the-admin-ui/creating-detail-views/#route-config).
568
+ A more powerful way to set the breadcrumbs is by using the `getBreadcrumbs` property. This is a function that receives any resolved detail data and returns an array of link/label pairs. An example of its use can be seen in the [Creating detail views guide](/extending-the-admin-ui/creating-detail-views/#route-config).
569
569
 
570
570
  ### Dynamically from the component
571
571
 
@@ -2,11 +2,11 @@
2
2
  title: 'Getting Started'
3
3
  ---
4
4
 
5
- :::warning Angular Admin UI Deprecation
6
- The Angular-based Admin UI has been replaced by the new [React Admin Dashboard](/guides/extending-the-dashboard/getting-started/). The Angular Admin UI will not be maintained after **July 2026**.
5
+ :::warning[Angular Admin UI Deprecation]
6
+ The Angular-based Admin UI has been replaced by the new [React Admin Dashboard](/extending-the-dashboard/getting-started/). The Angular Admin UI will not be maintained after **July 2026**.
7
7
  Until then, we will continue patching critical bugs and security issues. Community contributions will always be merged and released.
8
8
 
9
- **For new projects, use the [React Admin Dashboard](/guides/extending-the-dashboard/getting-started/) instead.**
9
+ **For new projects, use the [React Admin Dashboard](/extending-the-dashboard/getting-started/) instead.**
10
10
 
11
11
  If you want to use the Admin UI and the Dashboard together, both plugins can now be used simultaneously without any special configuration.
12
12
  :::
@@ -282,7 +282,7 @@ Routes allow you to define completely custom views in the Admin UI.
282
282
 
283
283
  Your `routes.ts` file exports an array of objects which define new routes in the Admin UI. For example, imagine you have created a plugin which implements a simple content management system. You can define a route for the list of articles, and another for the detail view of an article.
284
284
 
285
- For a detailed instructions, see the [Defining Routes guide](/guides/extending-the-admin-ui/defining-routes/).
285
+ For a detailed instructions, see the [Defining Routes guide](/extending-the-admin-ui/defining-routes/).
286
286
 
287
287
  ## Dev vs Prod mode
288
288
 
@@ -410,7 +410,7 @@ yarn add copyfiles
410
410
 
411
411
  ## Using other frameworks
412
412
 
413
- While the Admin UI natively supports extensions written with Angular or React, it is still possible to create extensions using other front-end frameworks such as Vue or Solid. Note that creating extensions in this way is much more limited, with only the ability to define new routes, and limited access to internal services such as data fetching and notifications. See [UI extensions in other frameworks](/guides/extending-the-admin-ui/using-other-frameworks/).
413
+ While the Admin UI natively supports extensions written with Angular or React, it is still possible to create extensions using other front-end frameworks such as Vue or Solid. Note that creating extensions in this way is much more limited, with only the ability to define new routes, and limited access to internal services such as data fetching and notifications. See [UI extensions in other frameworks](/extending-the-admin-ui/using-other-frameworks/).
414
414
 
415
415
  ## IDE Support
416
416
 
@@ -461,7 +461,7 @@ Angular uses the concept of modules ([NgModules](https://angular.io/guide/ngmodu
461
461
 
462
462
  When creating your UI extensions, you can set your module to be either `lazy` or `shared`. Shared modules are loaded _eagerly_, i.e. their code is bundled up with the main app and loaded as soon as the app loads.
463
463
 
464
- As a rule, modules defining new routes should be lazily loaded (so that the code is only loaded once that route is activated), and modules defining [new navigations items](/guides/extending-the-admin-ui/nav-menu/) and [custom form input](/guides/extending-the-admin-ui/custom-form-inputs/) should be set to `shared`.
464
+ As a rule, modules defining new routes should be lazily loaded (so that the code is only loaded once that route is activated), and modules defining [new navigations items](/extending-the-admin-ui/nav-menu/) and [custom form input](/extending-the-admin-ui/custom-form-inputs/) should be set to `shared`.
465
465
 
466
466
  :::info
467
467
  "lazy" modules are equivalent to the new "routes" API, and "shared" modules are equivalent to the new "providers" API. In fact, behind the scenes,
@@ -10,7 +10,7 @@ access to routes in the app, and can be extended and modified by UI extensions.
10
10
 
11
11
  Once you have defined some custom routes, you need some way for the administrator to access them. For this you will use the [addNavMenuItem](/reference/admin-ui-api/nav-menu/add-nav-menu-item/) and [addNavMenuSection](/reference/admin-ui-api/nav-menu/add-nav-menu-section) functions.
12
12
 
13
- Let's add a new section to the Admin UI main nav bar containing a link to the "greeter" module from the [Getting Started guide](/guides/extending-the-admin-ui/getting-started/#routes) example:
13
+ Let's add a new section to the Admin UI main nav bar containing a link to the "greeter" module from the [Getting Started guide](/extending-the-admin-ui/getting-started/#routes) example:
14
14
 
15
15
  ```ts title="src/plugins/greeter/ui/providers.ts"
16
16
  import { addNavMenuSection } from '@vendure/admin-ui/core';
@@ -202,4 +202,4 @@ If your extension does not have a build step, you can still include the UiDevkit
202
202
 
203
203
  ## Next Steps
204
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/)
205
+ Now you have created your extension, you need a way for your admin to access it. See [Adding Navigation Items](/extending-the-admin-ui/nav-menu/)
@@ -5,7 +5,7 @@ title: 'Creating Detail Pages'
5
5
  ## Setup
6
6
 
7
7
  :::info
8
- 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.
8
+ This guide assumes you have a `CmsPlugin` with an `Article` entity, as covered in the [Extending the Dashboard: Plugin Setup](/extending-the-dashboard/extending-overview/#plugin-setup) guide.
9
9
  :::
10
10
 
11
11
  Detail pages can be created for any entity which has been exposed via the Admin API. Following the
@@ -34,7 +34,7 @@ export function TestPage() {
34
34
  Following this structure ensures that:
35
35
  - Your pages look consistent with the rest of the Dashboard
36
36
  - Your page content is responsive
37
- - Your page can be further extended using the [pageBlocks API](/guides/extending-the-dashboard/customizing-pages/page-blocks)
37
+ - Your page can be further extended using the [pageBlocks API](/extending-the-dashboard/customizing-pages/page-blocks)
38
38
 
39
39
  :::info
40
40
  Note that the [ListPage](/reference/dashboard/list-views/list-page) and [DetailPage](/reference/dashboard/detail-views/detail-page)
@@ -80,7 +80,7 @@ defineDashboardExtension({
80
80
  ```
81
81
 
82
82
  :::info
83
- For a complete guide to the navigation options available, see the [Navigation guide](/guides/extending-the-dashboard/navigation/)
83
+ For a complete guide to the navigation options available, see the [Navigation guide](/extending-the-dashboard/navigation/)
84
84
  :::
85
85
 
86
86
 
@@ -5,10 +5,10 @@ title: 'Creating List Pages'
5
5
  ## Setup
6
6
 
7
7
  :::info
8
- 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.
8
+ This guide assumes you have a `CmsPlugin` with an `Article` entity, as covered in the [Extending the Dashboard: Plugin Setup](/extending-the-dashboard/extending-overview/#plugin-setup) guide.
9
9
  :::
10
10
 
11
- List pages can be easily created for any query in the Admin API that follows the [PaginatedList pattern](/guides/how-to/paginated-list/).
11
+ List pages can be easily created for any query in the Admin API that follows the [PaginatedList pattern](/how-to/paginated-list/).
12
12
 
13
13
  For example, the `articles` query of our `CmsPlugin` looks like this:
14
14
 
@@ -5,7 +5,7 @@ title: 'Creating Tabbed Pages'
5
5
  ## Setup
6
6
 
7
7
  :::info
8
- This guide assumes you have a basic understanding of creating custom pages in the Vendure Dashboard, as covered in the [Creating List Pages](/guides/extending-the-dashboard/creating-pages/list-pages) and [Creating Detail Pages](/guides/extending-the-dashboard/creating-pages/detail-pages) guides.
8
+ This guide assumes you have a basic understanding of creating custom pages in the Vendure Dashboard, as covered in the [Creating List Pages](/extending-the-dashboard/creating-pages/list-pages) and [Creating Detail Pages](/extending-the-dashboard/creating-pages/detail-pages) guides.
9
9
  :::
10
10
 
11
11
  Tabbed pages allow you to organize related content into separate tabs within a single page. This is useful
@@ -84,7 +84,7 @@ Here's how this component will look when rendered in your form:
84
84
 
85
85
  ## Custom Field Components
86
86
 
87
- Let's configure a [custom field](/guides/developer-guide/custom-fields/) which uses the `ColorPickerComponent` as its form component.
87
+ Let's configure a [custom field](/developer-guide/custom-fields/) which uses the `ColorPickerComponent` as its form component.
88
88
 
89
89
  First we need to register the component with the `defineDashboardExtension` function:
90
90
 
@@ -138,7 +138,7 @@ export class MyPlugin {}
138
138
 
139
139
  ## Configurable Operation Components
140
140
 
141
- The `ColorPickerComponent` can also be used as a [configurable operation argument](/guides/developer-guide/strategies-configurable-operations/#configurable-operations) component. For example, we can add a color code
141
+ The `ColorPickerComponent` can also be used as a [configurable operation argument](/developer-guide/strategies-configurable-operations/#configurable-operations) component. For example, we can add a color code
142
142
  to a shipping calculator:
143
143
 
144
144
  ```tsx title="src/plugins/my-plugin/config/custom-shipping-calculator.ts"
@@ -254,7 +254,7 @@ operation argument.
254
254
 
255
255
  You can access validation data for the current field or the whole form by using the `useFormContext` hook.
256
256
 
257
- :::note Error Messages
257
+ :::note[Error Messages]
258
258
  Your component does not need to handle standard error messages - the Dashboard will handle them for you.
259
259
 
260
260
  For example, if your custom field specifies a `pattern` property, the Dashboard will automatically display an error message
@@ -306,7 +306,7 @@ export const ValidatedInputComponent: DashboardFormComponent = ({ value, onChang
306
306
  }
307
307
  ```
308
308
 
309
- :::tip Best Practices
309
+ :::tip[Best Practices]
310
310
 
311
311
  1. **Always use Shadcn UI components** from the `@vendure/dashboard` package for consistent styling
312
312
  2. **Handle React Hook Form events properly** - call `onChange` and `onBlur` appropriately for custom field components
@@ -266,7 +266,7 @@ The dashboard provides several button variants you can use:
266
266
 
267
267
  To find the `pageId` for your action bar items:
268
268
 
269
- 1. Enable [Dev Mode](/guides/extending-the-dashboard/extending-overview/#dev-mode) in the dashboard
269
+ 1. Enable [Dev Mode](/extending-the-dashboard/extending-overview/#dev-mode) in the dashboard
270
270
  2. Navigate to the page where you want to add your action
271
271
  3. The page ID will be shown in the dev mode overlay
272
272
  4. Use this ID in your action bar item configuration
@@ -32,12 +32,12 @@ defineDashboardExtension({
32
32
  });
33
33
  ```
34
34
 
35
- To learn how to build custom form components, see the [Custom Form Elements guide](/guides/extending-the-dashboard/custom-form-components/).
35
+ To learn how to build custom form components, see the [Custom Form Elements guide](/extending-the-dashboard/custom-form-components/).
36
36
 
37
37
  ## Extending the detail query
38
38
 
39
39
  You might want to extend the GraphQL query used to fetch the data for the detail page. For example, to include new
40
- fields that your plugin has defined so that you can render them in [custom page blocks](/guides/extending-the-dashboard/customizing-pages/page-blocks).
40
+ fields that your plugin has defined so that you can render them in [custom page blocks](/extending-the-dashboard/customizing-pages/page-blocks).
41
41
 
42
42
  ```tsx title="index.tsx"
43
43
  import { defineDashboardExtension } from '@vendure/dashboard';
@@ -44,7 +44,7 @@ This will result in a login page like this:
44
44
  ## Fully custom login pages
45
45
 
46
46
  If you need even more control over the login page, you can also create an
47
- [unauthenticated route](/guides/extending-the-dashboard/navigation/#unauthenticated-routes) with a completely
47
+ [unauthenticated route](/extending-the-dashboard/navigation/#unauthenticated-routes) with a completely
48
48
  custom layout.
49
49
 
50
50
  ```tsx title="index.tsx"
@@ -4,7 +4,7 @@ title: 'Customizing Pages'
4
4
 
5
5
  Existing pages in the Dashboard can be customized in many ways:
6
6
 
7
- - [Action bar buttons](/guides/extending-the-dashboard/customizing-pages/action-bar-items) can be added to the top of the page
8
- - [Page blocks](/guides/extending-the-dashboard/customizing-pages/page-blocks) can be added at any position, and existing page blocks can be replaced or removed.
9
- - [Extend list pages](/guides/extending-the-dashboard/customizing-pages/customizing-list-pages) with custom components, data and bulk actions
10
- - [Extend detail pages](/guides/extending-the-dashboard/customizing-pages/customizing-detail-pages) with custom components and data
7
+ - [Action bar buttons](/extending-the-dashboard/customizing-pages/action-bar-items) can be added to the top of the page
8
+ - [Page blocks](/extending-the-dashboard/customizing-pages/page-blocks) can be added at any position, and existing page blocks can be replaced or removed.
9
+ - [Extend list pages](/extending-the-dashboard/customizing-pages/customizing-list-pages) with custom components, data and bulk actions
10
+ - [Extend detail pages](/extending-the-dashboard/customizing-pages/customizing-detail-pages) with custom components and data
@@ -3,7 +3,7 @@ title: 'Page Blocks'
3
3
  ---
4
4
 
5
5
  In the Dashboard, all pages are built from blocks. Every block has a `pageId` and a `blockId` which uniquely locates it in the
6
- app (see [Dev Mode](/guides/extending-the-dashboard/extending-overview/#dev-mode) section).
6
+ app (see [Dev Mode](/extending-the-dashboard/extending-overview/#dev-mode) section).
7
7
 
8
8
  You can also define your own blocks, which can be added to any page and can even replace the default blocks.
9
9
 
@@ -229,12 +229,12 @@ defineDashboardExtension({
229
229
 
230
230
  To find the `pageId` and `blockId` values for positioning your blocks:
231
231
 
232
- 1. Enable [Dev Mode](/guides/extending-the-dashboard/extending-overview/#dev-mode) in the dashboard
232
+ 1. Enable [Dev Mode](/extending-the-dashboard/extending-overview/#dev-mode) in the dashboard
233
233
  2. Navigate to the page where you want to add your block
234
234
  3. Hover over existing blocks to see their IDs
235
235
  4. Use these IDs in your block positioning configuration
236
236
 
237
- :::tip Best Practices
237
+ :::tip[Best Practices]
238
238
 
239
239
  1. **Use descriptive IDs**: Choose clear, unique IDs for your blocks
240
240
  2. **Position thoughtfully**: Consider the user experience when placing blocks
@@ -119,7 +119,7 @@ to a file - by default you can find it at `src/gql/graphql-env.d.ts`.
119
119
  When you then use the `import { graphql } from '@/gql'` function to define your queries and mutations, you get automatic
120
120
  type safety when using the results in your components!
121
121
 
122
- When you have the `@/gql` path mapping correctly [set up as per the getting started guide](/guides/extending-the-dashboard/getting-started/#installation--setup), you should see that
122
+ When you have the `@/gql` path mapping correctly [set up as per the getting started guide](/extending-the-dashboard/getting-started/#installation--setup), you should see that
123
123
  your IDE is able to infer the TypeScript type of your queries and mutations, including the correct inputs and return
124
124
  types!
125
125
 
@@ -51,7 +51,7 @@ export default defineConfig({
51
51
 
52
52
  ### 2. Add DashboardPlugin to Vendure Config
53
53
 
54
- :::info Angular Admin UI compatibility
54
+ :::info[Angular Admin UI compatibility]
55
55
  If you want to use the Angular Admin UI and the Dashboard together, both plugins can now be used simultaneously without any special configuration.
56
56
  :::
57
57
 
@@ -151,7 +151,7 @@ export default defineConfig({
151
151
  });
152
152
  ```
153
153
 
154
- :::warning Build-Time Variables
154
+ :::warning[Build-Time Variables]
155
155
  Environment variables are resolved at **build time** and embedded as static strings in the final bundles. Ensure these variables are available during the build process, not just at runtime.
156
156
  :::
157
157
 
@@ -220,6 +220,6 @@ In Dev Mode, hovering any block in the dashboard will allow you to find the corr
220
220
 
221
221
  Now that you understand the fundamentals of extending the dashboard, explore these specific guides:
222
222
 
223
- - [Creating Pages](/guides/extending-the-dashboard/creating-pages/)
224
- - [Customizing Pages](/guides/extending-the-dashboard/customizing-pages/)
225
- - [Navigation](/guides/extending-the-dashboard/navigation/)
223
+ - [Creating Pages](/extending-the-dashboard/creating-pages/)
224
+ - [Customizing Pages](/extending-the-dashboard/customizing-pages/)
225
+ - [Navigation](/extending-the-dashboard/navigation/)
@@ -185,7 +185,7 @@ npx vite
185
185
 
186
186
  To stop the running dashboard, type `q` and hit enter.
187
187
 
188
- :::info Compatibility with the legacy Admin UI
188
+ :::info[Compatibility with the legacy Admin UI]
189
189
  If you still need to run the legacy Angular-based Admin UI in parallel with the Dashboard,
190
190
  this is totally possible. Both plugins can now be used simultaneously without any special configuration.
191
191
  :::
@@ -16,7 +16,7 @@ Community contributions will always be merged and released.
16
16
  A recommended approach to migrating is to run both the Admin UI _and_ the new Dashboard in parallel. This allows you to start building
17
17
  new features right away with the new Dashboard while maintaining access to existing features that have not yet been migrated.
18
18
 
19
- To do so, follow the instructions to [set up the Dashboard](/guides/extending-the-dashboard/getting-started/#installation--setup).
19
+ To do so, follow the instructions to [set up the Dashboard](/extending-the-dashboard/getting-started/#installation--setup).
20
20
  Both plugins can now be used simultaneously without any special configuration.
21
21
 
22
22
  ## AI-Assisted Migration
@@ -1589,14 +1589,14 @@ It is very likely you'll still need to do _some_ manual cleanup after an AI-assi
1589
1589
  things like:
1590
1590
 
1591
1591
  - Non-optimum styling choices
1592
- - Issues with the [tsconfig setup](/guides/extending-the-dashboard/getting-started/#installation--setup) not being perfectly implemented.
1592
+ - Issues with the [tsconfig setup](/extending-the-dashboard/getting-started/#installation--setup) not being perfectly implemented.
1593
1593
  - For more complex repo structures like a monorepo with plugins as separate libs, you may need to manually implement
1594
1594
  the initial setup of the config files.
1595
1595
 
1596
1596
  ## Manual Migration
1597
1597
 
1598
- If you would rather do a full manual migration, you should first follow the [Dashboard Getting Started guide](/guides/extending-the-dashboard/getting-started/)
1599
- and the [Extending the Dashboard guide](http://localhost:3001/guides/extending-the-dashboard/extending-overview/).
1598
+ If you would rather do a full manual migration, you should first follow the [Dashboard Getting Started guide](/extending-the-dashboard/getting-started/)
1599
+ and the [Extending the Dashboard guide](http://localhost:3001/extending-the-dashboard/extending-overview/).
1600
1600
 
1601
1601
  The remainder of this document details specific features, and how they are now implemented in the new Dashboard.
1602
1602
 
@@ -43,7 +43,7 @@ The dashboard comes with several built-in sections:
43
43
 
44
44
  ### Finding Section IDs & Ordering
45
45
 
46
- You can find the available IDs & their order value for all navigation sections and items using [Dev mode](/guides/extending-the-dashboard/extending-overview/#dev-mode):
46
+ You can find the available IDs & their order value for all navigation sections and items using [Dev mode](/extending-the-dashboard/extending-overview/#dev-mode):
47
47
 
48
48
  ![Dev mode navigation ids](./dev-mode-nav.webp)
49
49
 
@@ -158,7 +158,7 @@ Order values are scoped within each placement area. This means:
158
158
 
159
159
  This means if you want to add a section between Catalog and Sales in the top area, you might use `order: 250`. If you want to add a section before Settings in the bottom area, you could use `order: 150`.
160
160
 
161
- :::note Default Placement
161
+ :::note[Default Placement]
162
162
  If you don't specify a `placement`, sections default to `'top'` placement.
163
163
  :::
164
164
 
@@ -311,7 +311,7 @@ Common icons for navigation sections:
311
311
 
312
312
  ## Best Practices
313
313
 
314
- :::tip Navigation Design Guidelines
314
+ :::tip[Navigation Design Guidelines]
315
315
 
316
316
  1. **Use descriptive section names**: Choose clear, concise names that indicate the section's purpose
317
317
  2. **Group related functionality**: Keep logically related menu items in the same section
@@ -50,8 +50,8 @@ Both GraphQL and REST are valid approaches to building an API. These are some of
50
50
  - **Many resources in a single request**: Very often, a single page in a web app will need to fetch data from multiple resources. For example, a product detail page might need to fetch the product, the product's variants, the product's collections, the product's reviews, and the product's images. With REST, this would require multiple requests. With GraphQL, you can fetch all of this data in a single request.
51
51
  - **Static typing**: GraphQL APIs are always defined by a statically typed schema. This means that you can be sure that the data you receive from the API will always be in the format you expect.
52
52
  - **Developer tooling**: The schema definition allows for powerful developer tooling. For example, the GraphQL Playground above with auto-complete and full documentation is generated automatically from the schema definition. You can also get auto-complete and type-checking directly in your IDE.
53
- - **Code generation**: TypeScript types can be generated automatically from the schema definition. This means that you can be sure that your frontend code is always in sync with the API. This end-to-end type safety is extremely valuable, especially when working on large projects or with teams. See the [GraphQL Code Generation guide](/guides/storefront/codegen/)
54
- - **Extensible**: Vendure is designed with extensibility in mind, and GraphQL is a perfect fit. You can extend the GraphQL API with your own custom queries, mutations, and types. You can also extend the built-in types with your own custom fields, or supply you own custom logic to resolve existing fields. See the [Extend the GraphQL API guide](/guides/developer-guide/extend-graphql-api/)
53
+ - **Code generation**: TypeScript types can be generated automatically from the schema definition. This means that you can be sure that your frontend code is always in sync with the API. This end-to-end type safety is extremely valuable, especially when working on large projects or with teams. See the [GraphQL Code Generation guide](/storefront/codegen/)
54
+ - **Extensible**: Vendure is designed with extensibility in mind, and GraphQL is a perfect fit. You can extend the GraphQL API with your own custom queries, mutations, and types. You can also extend the built-in types with your own custom fields, or supply you own custom logic to resolve existing fields. See the [Extend the GraphQL API guide](/developer-guide/extend-graphql-api/)
55
55
 
56
56
  ## GraphQL Terminology
57
57
 
@@ -398,7 +398,7 @@ type EmailAddressInUseError {
398
398
  ```
399
399
 
400
400
  :::info
401
- In Vendure, we use this pattern for almost all mutations. You can read more about it in the [Error Handling guide](/guides/developer-guide/error-handling/).
401
+ In Vendure, we use this pattern for almost all mutations. You can read more about it in the [Error Handling guide](/developer-guide/error-handling/).
402
402
  :::
403
403
 
404
404
  Now, when we perform this mutation, we need alter the way we select the fields in the response, since the response could be one of two types:
@@ -484,7 +484,7 @@ A resolver is a function which is responsible for fetching the data for a partic
484
484
  would be resolved by a function which fetches the list of customers from the database.
485
485
 
486
486
  To get started with Vendure's APIs, you don't need to know much about resolvers beyond this basic understanding. However,
487
- later on you may want to write your own custom resolvers to extend the API. This is covered in the [Extending the GraphQL API guide](/guides/developer-guide/extend-graphql-api/).
487
+ later on you may want to write your own custom resolvers to extend the API. This is covered in the [Extending the GraphQL API guide](/developer-guide/extend-graphql-api/).
488
488
 
489
489
  ## Querying data
490
490
 
@@ -555,7 +555,7 @@ can use to provide autocomplete.
555
555
 
556
556
  Code generation means the automatic generation of TypeScript types based on your GraphQL schema and your GraphQL operations. This is a very powerful feature that allows you to write your code in a type-safe manner, without you needing to manually write any types for your API calls.
557
557
 
558
- For more information see the [GraphQL Code Generation guide](/guides/storefront/codegen).
558
+ For more information see the [GraphQL Code Generation guide](/storefront/codegen).
559
559
 
560
560
  ## Further reading
561
561
 
@@ -76,7 +76,7 @@ If you'd rather have more control over the configuration, you can choose the "Ma
76
76
 
77
77
  Vendure supports a number of different databases. The `@vendure/create` tool will prompt you to select one.
78
78
 
79
- **To quickly test out Vendure, we recommend using SQLite**, which requires no external dependencies. You can always switch to a different database later [by changing your configuration file](/guides/developer-guide/configuration/#connecting-to-the-database).
79
+ **To quickly test out Vendure, we recommend using SQLite**, which requires no external dependencies. You can always switch to a different database later [by changing your configuration file](/developer-guide/configuration/#connecting-to-the-database).
80
80
 
81
81
  ```text
82
82
  ┌ Let's create a Vendure App ✨
@@ -104,7 +104,7 @@ If you select MySQL, MariaDB, or Postgres, you need to make sure you:
104
104
 
105
105
  3. **Have database credentials**: You need the username and password for a database user that has full permissions (CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT) on the database you created.
106
106
 
107
- For detailed database configuration examples, see the [Configuration guide](/guides/developer-guide/configuration/#connecting-to-the-database).
107
+ For detailed database configuration examples, see the [Configuration guide](/developer-guide/configuration/#connecting-to-the-database).
108
108
 
109
109
  :::
110
110
 
@@ -112,7 +112,7 @@ For detailed database configuration examples, see the [Configuration guide](/gui
112
112
 
113
113
  The final prompt will ask whether to populate your new Vendure server with some sample product data.
114
114
 
115
- **We recommend you do so**, as it will give you a good starting point for exploring the APIs, which we will cover in the [Try the API section](/guides/getting-started/try-the-api/), as well as providing some data to use when building your own storefront.
115
+ **We recommend you do so**, as it will give you a good starting point for exploring the APIs, which we will cover in the [Try the API section](/getting-started/try-the-api/), as well as providing some data to use when building your own storefront.
116
116
 
117
117
  ```text
118
118
  ┌ Let's create a Vendure App ✨
@@ -203,9 +203,9 @@ If you included the Next.js Storefront Starter, you can also access:
203
203
 
204
204
  Congratulations! 🥳 You now have a fully functional Vendure server running locally.
205
205
 
206
- Now you can explore Vendure by following our [Try the API guide](/guides/getting-started/try-the-api/) to learn how to interact with the server.
206
+ Now you can explore Vendure by following our [Try the API guide](/getting-started/try-the-api/) to learn how to interact with the server.
207
207
 
208
- If you are new to GraphQL, you should also check out our [Introducing GraphQL guide](/guides/getting-started/graphql-intro/).
208
+ If you are new to GraphQL, you should also check out our [Introducing GraphQL guide](/getting-started/graphql-intro/).
209
209
 
210
210
  :::tip
211
211
  Open the Dashboard at [http://localhost:3000/dashboard](http://localhost:3000/dashboard) in your browser and log in with the superadmin credentials you specified, which default to:
@@ -2,7 +2,7 @@
2
2
  title: 'Try the API'
3
3
  ---
4
4
 
5
- Once you have successfully installed Vendure locally following the [installation guide](/guides/getting-started/installation),
5
+ Once you have successfully installed Vendure locally following the [installation guide](/getting-started/installation),
6
6
  it's time to try out the API!
7
7
 
8
8
  :::note
@@ -162,7 +162,7 @@ if the response is an `ErrorResult`, we want to include the `errorCode` and `mes
162
162
  Running this mutation a second time should show that the quantity of the product in the order has increased by 1.
163
163
 
164
164
  :::info
165
- For more information about `ErrorResult` and the handling of errors in Vendure, see the [Error Handling guide](/guides/developer-guide/error-handling).
165
+ For more information about `ErrorResult` and the handling of errors in Vendure, see the [Error Handling guide](/developer-guide/error-handling).
166
166
  :::
167
167
 
168
168
  ## Admin API