@vendure/docs 0.0.0-202601221213 → 0.0.0-202601271334
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dates.generated.js +111 -111
- package/docs/guides/core-concepts/auth/index.mdx +1 -1
- package/docs/guides/core-concepts/channels/index.mdx +2 -2
- package/docs/guides/core-concepts/collections/index.mdx +1 -1
- package/docs/guides/core-concepts/customers/index.mdx +1 -1
- package/docs/guides/core-concepts/email/index.mdx +1 -1
- package/docs/guides/core-concepts/images-assets/index.mdx +1 -1
- package/docs/guides/core-concepts/money/index.mdx +3 -3
- package/docs/guides/core-concepts/orders/index.mdx +2 -2
- package/docs/guides/core-concepts/payment/index.mdx +2 -2
- package/docs/guides/core-concepts/products/index.mdx +1 -1
- package/docs/guides/core-concepts/promotions/index.mdx +2 -2
- package/docs/guides/core-concepts/shipping/index.mdx +2 -2
- package/docs/guides/deployment/deploy-to-digital-ocean-app-platform/index.mdx +1 -1
- package/docs/guides/deployment/deploy-to-northflank/index.mdx +1 -1
- package/docs/guides/deployment/deploy-to-railway/index.mdx +1 -1
- package/docs/guides/deployment/deploy-to-render/index.mdx +1 -1
- package/docs/guides/deployment/deploying-admin-ui.mdx +1 -1
- package/docs/guides/deployment/getting-data-into-production.mdx +2 -2
- package/docs/guides/deployment/horizontal-scaling.mdx +2 -2
- package/docs/guides/deployment/production-configuration/index.mdx +2 -2
- package/docs/guides/deployment/server-resource-requirements.mdx +1 -1
- package/docs/guides/developer-guide/cache/index.mdx +1 -1
- package/docs/guides/developer-guide/channel-aware/index.mdx +2 -2
- package/docs/guides/developer-guide/cli/index.mdx +2 -2
- package/docs/guides/developer-guide/configuration/index.mdx +2 -2
- package/docs/guides/developer-guide/custom-fields/index.mdx +7 -7
- package/docs/guides/developer-guide/custom-permissions/index.mdx +1 -1
- package/docs/guides/developer-guide/database-entity/index.mdx +6 -6
- package/docs/guides/developer-guide/error-handling/index.mdx +1 -1
- package/docs/guides/developer-guide/events/index.mdx +1 -1
- package/docs/guides/developer-guide/extend-graphql-api/index.mdx +3 -3
- package/docs/guides/developer-guide/has-custom-fields/index.mdx +5 -5
- package/docs/guides/developer-guide/importing-data/index.mdx +3 -3
- package/docs/guides/developer-guide/migrating-from-v1/breaking-api-changes.mdx +2 -2
- package/docs/guides/developer-guide/migrating-from-v1/index.mdx +3 -3
- package/docs/guides/developer-guide/migrations/index.mdx +2 -2
- package/docs/guides/developer-guide/overview/index.mdx +2 -2
- package/docs/guides/developer-guide/plugins/index.mdx +4 -4
- package/docs/guides/developer-guide/rest-endpoint/index.mdx +2 -2
- package/docs/guides/developer-guide/scheduled-tasks/index.mdx +3 -3
- package/docs/guides/developer-guide/stand-alone-scripts/index.mdx +1 -1
- package/docs/guides/developer-guide/strategies-configurable-operations/index.mdx +1 -1
- package/docs/guides/developer-guide/testing/index.mdx +2 -2
- package/docs/guides/developer-guide/the-api-layer/index.mdx +2 -2
- package/docs/guides/developer-guide/the-service-layer/index.mdx +1 -1
- package/docs/guides/developer-guide/translations/index.mdx +1 -1
- package/docs/guides/developer-guide/updating/index.mdx +1 -1
- package/docs/guides/developer-guide/uploading-files/index.mdx +3 -3
- package/docs/guides/extending-the-admin-ui/creating-detail-views/index.mdx +3 -3
- package/docs/guides/extending-the-admin-ui/creating-list-views/index.mdx +3 -3
- package/docs/guides/extending-the-admin-ui/custom-data-table-components/index.mdx +1 -1
- package/docs/guides/extending-the-admin-ui/custom-form-inputs/index.mdx +3 -3
- package/docs/guides/extending-the-admin-ui/custom-timeline-components/index.mdx +1 -1
- package/docs/guides/extending-the-admin-ui/dashboard-widgets/index.mdx +1 -1
- package/docs/guides/extending-the-admin-ui/defining-routes/index.mdx +2 -2
- package/docs/guides/extending-the-admin-ui/getting-started/index.mdx +5 -5
- package/docs/guides/extending-the-admin-ui/nav-menu/index.mdx +1 -1
- package/docs/guides/extending-the-admin-ui/using-other-frameworks/index.mdx +1 -1
- package/docs/guides/extending-the-dashboard/creating-pages/detail-pages.mdx +1 -1
- package/docs/guides/extending-the-dashboard/creating-pages/index.mdx +2 -2
- package/docs/guides/extending-the-dashboard/creating-pages/list-pages.mdx +2 -2
- package/docs/guides/extending-the-dashboard/creating-pages/tabbed-pages.mdx +1 -1
- package/docs/guides/extending-the-dashboard/custom-form-components/index.mdx +2 -2
- package/docs/guides/extending-the-dashboard/customizing-pages/action-bar-items.mdx +1 -1
- package/docs/guides/extending-the-dashboard/customizing-pages/customizing-detail-pages.mdx +2 -2
- package/docs/guides/extending-the-dashboard/customizing-pages/customizing-login-page.mdx +1 -1
- package/docs/guides/extending-the-dashboard/customizing-pages/index.mdx +4 -4
- package/docs/guides/extending-the-dashboard/customizing-pages/page-blocks.mdx +2 -2
- package/docs/guides/extending-the-dashboard/data-fetching/index.mdx +1 -1
- package/docs/guides/extending-the-dashboard/extending-overview/index.mdx +3 -3
- package/docs/guides/extending-the-dashboard/migration/index.mdx +4 -4
- package/docs/guides/extending-the-dashboard/navigation/index.mdx +1 -1
- package/docs/guides/getting-started/graphql-intro/index.mdx +5 -5
- package/docs/guides/getting-started/installation/index.mdx +5 -5
- package/docs/guides/getting-started/try-the-api/index.mdx +2 -2
- package/docs/guides/how-to/cms-integration-plugin/index.mdx +12 -12
- package/docs/guides/how-to/codegen/index.mdx +1 -1
- package/docs/guides/how-to/configurable-products/index.mdx +1 -1
- package/docs/guides/how-to/digital-products/index.mdx +1 -1
- package/docs/guides/how-to/github-oauth-authentication/index.mdx +1 -1
- package/docs/guides/how-to/google-oauth-authentication/index.mdx +3 -3
- package/docs/guides/how-to/multi-vendor-marketplaces/index.mdx +2 -2
- package/docs/guides/how-to/paginated-list/index.mdx +1 -1
- package/docs/guides/how-to/publish-plugin/index.mdx +3 -3
- package/docs/guides/how-to/s3-asset-storage/index.mdx +1 -1
- package/docs/guides/storefront/active-order/index.mdx +4 -4
- package/docs/guides/storefront/checkout-flow/index.mdx +3 -3
- package/docs/guides/storefront/codegen/index.mdx +1 -1
- package/docs/guides/storefront/connect-api/index.mdx +2 -2
- package/docs/guides/storefront/customer-accounts/index.mdx +1 -1
- package/docs/guides/storefront/listing-products/index.mdx +1 -1
- package/docs/guides/storefront/navigation-menu/index.mdx +1 -1
- package/docs/guides/storefront/order-workflow/index.mdx +2 -2
- package/docs/guides/storefront/product-detail/index.mdx +4 -4
- package/docs/reference/admin-ui-api/ui-devkit/admin-ui-extension.mdx +1 -1
- package/docs/reference/core-plugins/admin-ui-plugin/index.mdx +1 -1
- package/docs/reference/core-plugins/dashboard-plugin/index.mdx +1 -1
- package/docs/reference/core-plugins/telemetry-plugin/index.mdx +1 -1
- package/docs/reference/typescript-api/auth/authentication-strategy.mdx +1 -1
- package/docs/reference/typescript-api/common/admin-ui/admin-ui-config.mdx +1 -1
- package/docs/reference/typescript-api/custom-fields/custom-field-type.mdx +1 -1
- package/docs/reference/typescript-api/import-export/import-parser.mdx +1 -1
- package/docs/reference/typescript-api/import-export/importer.mdx +1 -1
- package/docs/reference/typescript-api/import-export/populate.mdx +1 -1
- package/docs/reference/typescript-api/job-queue/default-job-queue-plugin.mdx +1 -1
- package/docs/reference/typescript-api/orders/order-item-price-calculation-strategy.mdx +1 -1
- package/docs/reference/typescript-api/services/asset-service.mdx +1 -1
- package/docs/reference/typescript-api/services/history-service.mdx +1 -1
- package/docs/reference/typescript-api/worker/bootstrap-worker.mdx +1 -1
- package/docs/user-guide/settings/taxes.mdx +1 -1
- package/package.json +1 -1
- package/src/dates.generated.ts +111 -111
|
@@ -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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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
|

|
|
@@ -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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
11
|
+
See [Extending the Admin UI](/extending-the-admin-ui/getting-started/) for
|
|
12
12
|
detailed instructions.
|
|
13
13
|
|
|
14
14
|
```ts title="Signature"
|
|
@@ -5,7 +5,7 @@ generated: true
|
|
|
5
5
|
<GenerationInfo sourceFile="packages/admin-ui-plugin/src/plugin.ts" sourceLine="147" packageName="@vendure/admin-ui-plugin" />
|
|
6
6
|
|
|
7
7
|
:::warning Deprecated
|
|
8
|
-
From Vendure v3.5.0, the Angular-based Admin UI has been replaced by the new [React Admin Dashboard](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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](/
|
|
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/).
|