Skip to content

Commit 220c022

Browse files
authored
Merge pull request #6307 from mattbrailsford/uc-v14-docs
Umbraco Commerce v14 Docs Updates
2 parents 4207af3 + 41325df commit 220c022

File tree

60 files changed

+982
-322
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+982
-322
lines changed

14/umbraco-commerce/README.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,6 @@ Umbraco Commerce is the official Umbraco e-commerce addon for your Umbraco CMS w
2121
[go-behind-the-scenes.md](reference/go-behind-the-scenes.md)
2222
{% endcontent-ref %}
2323
24-
{% hint style="info" %}
25-
Are you looking for Vendr documentation?
26-
27-
The articles and topics covered on this documentation site are for Umbraco Commerce.
28-
29-
Documentation for Vendr is located on the [Vendr Documentation site](https://vendr.net/docs/).
30-
{% endhint %}
31-
3224
### Using These Docs
3325
3426
**These docs are aimed at developers** who have at least a basic understanding of [Umbraco](https://umbraco.com), as well as C# and MVC principals.

14/umbraco-commerce/SUMMARY.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040

4141
* [Get to know the main features](key-concepts/overview.md)
4242
* [Base Currency](key-concepts/base-currency.md)
43-
* [Bulk Actions](key-concepts/bulk-actions.md)
4443
* [Calculators](key-concepts/calculators.md)
44+
* [Currency Exchange Rate Service Provider](key-concepts/currency-exchange-rate-service-providers.md)
4545
* [Dependency Injection](key-concepts/dependency-injection.md)
4646
* [Discount Rules / Rewards](key-concepts/discount-rules-and-rewards.md)
4747
* [Events](key-concepts/events)
@@ -66,7 +66,13 @@
6666
* [Shipping Providers](key-concepts/shipping-providers.md)
6767
* [Shipping Range/Rate Providers](key-concepts/shipping-range-and-rate-providers.md)
6868
* [Tax Sources](key-concepts/tax-sources.md)
69-
* [UI Config Files](key-concepts/ui-config-files.md)
69+
* [UI Extensions](key-concepts/ui-extensions/README.md)
70+
* [Analytics Widgets](key-concepts/ui-extensions/analytics-widgets.md)
71+
* [Entity Quick Actions](key-concepts/ui-extensions/entity-quick-actions.md)
72+
* [Order Properties](key-concepts/ui-extensions/order-properties.md)
73+
* [Order Collection Properties](key-concepts/ui-extensions/order-collection-properties.md)
74+
* [Order Line Properties](key-concepts/ui-extensions/order-line-properties.md)
75+
* [Store Menu Items](key-concepts/ui-extensions/store-menu-items.md)
7076
* [Umbraco Properties](key-concepts/umbraco-properties.md)
7177
* [Unit of Work](key-concepts/unit-of-work.md)
7278
* [Umbraco Commerce Builder](key-concepts/umbraco-commerce-builder.md)
@@ -95,4 +101,5 @@
95101
* [Payment method](reference/storefront-api/endpoints/payment-method.md)
96102
* [Shipping method](reference/storefront-api/endpoints/shipping-method.md)
97103
* [Content](reference/storefront-api/endpoints/content.md)
104+
* [Management API](reference/management-api/README.md)
98105
* [Go behind the scenes](reference/go-behind-the-scenes.md)

14/umbraco-commerce/getting-started/introduction.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: Getting Started with Umbraco Commerce.
66

77
In this section, you will find information about the key steps necessary to get you started with Umbraco Commerce.
88

9-
It is assumed that you have an Umbraco 12+ website configured, ready to install Umbraco Commerce into.
9+
It is assumed that you have an Umbraco 14+ website configured, ready to install Umbraco Commerce into.
1010

1111
{% hint style="info" %}
1212
Find detailed instructions on how to install the latest version of Umbraco in the [Umbraco CMS documentation](https://docs.umbraco.com/umbraco-cms/fundamentals/setup/install).
@@ -16,7 +16,7 @@ Find detailed instructions on how to install the latest version of Umbraco in th
1616

1717
The minimum requirements for using Umbraco Commerce are as follows:
1818

19-
* Umbraco CMS version 12+
19+
* Umbraco CMS version 14+
2020
* SQL Server 2015+ Database
2121
* **SQLite** is fine for testing, but not recommended for live deployments. See [Configuring SQLite support](../how-to-guides/configure-sqlite-support.md) for more details.
2222

14/umbraco-commerce/getting-started/user-interface.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,34 @@ The **Settings** section is where the configuration of all Store settings is man
1616

1717
The UI for the **Settings** section consists of a Tree which lists all available Stores and their key areas available for configuration. It also contains a right-hand editor panel. This can either act as an editor interface or as a list view interface for listing items within that given configuration area.
1818

19-
![Umbraco Commerce Settings - Editor View](../media/umbraco-commerce\_settings\_section\_editor\_view.png)
19+
![Umbraco Commerce Settings - Editor View](../media/v14/store-settings.png)
2020

21-
![Umbraco Commerce Settings - List View](../media/umbraco-commerce\_settings\_section\_list\_view.png)
21+
![Umbraco Commerce Settings - List View](../media/v14/order-status-list-view.png)
2222

23-
Each Store has 8 key areas of configuration accessible within the **Settings** section:
23+
Each Store has a number of key areas of configuration accessible within the **Settings** section:
2424

2525
* **Store**: Each Store node contain Store level configuration settings.
26+
* **Locations** contain the configuration of the different locations of the store.
2627
* **Order Statuses** contain the configuration of the different Statuses an order can be in. Think of these as an organizational structure for your Orders.
2728
* **Shipping Methods** contains the list of Shipping Methods available to a Store.
2829
* **Payment Methods** contains the list of Payment Methods available to a Store.
2930
* **Countries** contain the list of Countries the Store is able to trade with.
3031
* **Currencies** contain the list of accepted Currencies for the Store.
3132
* **Taxes** contains the list of Tax Classes and their Tax Rates for the Store.
3233
* **Email Templates** contains the list of Email Templates supported by the Store.
34+
* **Print Templates** contains the list of Print Templates supported by the Store.
35+
* **Export Templates** contains the list of Export Templates supported by the Store.
3336

3437
## Commerce Section
3538

3639
The **Commerce** section contains a Tree to access the Stores and their different features, as well as a right-hand panel for managing the items.
3740

38-
![Umbraco Commerce Orders View](../media/commerce\_orders\_view.png)
41+
![Umbraco Commerce Orders View](../media/v14/order-list-view.png)
3942

40-
![Umbraco Commerce Order Editor](../media/commerce\_order\_details.png)
43+
![Umbraco Commerce Order Editor](../media/v14/order-editor.png)
4144

4245
## Content Section
4346

4447
The **Content** section is where the Umbraco Commerce product nodes are managed. Managing products with Umbraco Commerce is similar to working with regular content nodes.
4548

46-
![Umbraco Commerce Store Picker Dialog](../media/content\_store\_picker.png)
49+
![Umbraco Commerce Store Picker Dialog](../media/v14/product-node.png)

14/umbraco-commerce/installation/install.md

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,76 @@ Alternatively, you can also find and install the NuGet package via the NuGet Pac
2525

2626
For most sites using a single solution, the above will be all you need to install Umbraco Commerce into your project. When you have a more complex solution structure consisting of multiple projects, Umbraco Commerce is available in multiple sub-packages with varying dependencies.
2727

28-
<table><thead><tr><th width="282">Sub-package</th><th>Description</th></tr></thead><tbody><tr><td><strong>Umbraco.Commerce.Common</strong></td><td>A shared project of common, non-Commerce-specific patterns and helpers.</td></tr><tr><td><strong>Umbraco.Commerce.Core</strong></td><td>Core Commerce functionality that doesn't require any infrastructure-specific dependencies.</td></tr><tr><td><strong>Umbraco.Commerce.Infrastructure</strong></td><td>Infrastructure-specific project containing implementations of core Commerce functionality.</td></tr><tr><td><strong>Umbraco.Commerce.Persistence.SqlServer</strong></td><td>Persistence-specific project containing implementations of core Commerce persistence functionality for SQL Server.</td></tr><tr><td><strong>Umbraco.Commerce.Persistence.Sqllite</strong></td><td>Persistence-specific project containing implementations of core Commerce persistence functionality for SQLite.</td></tr><tr><td><strong>Umbraco.Commerce.Web</strong></td><td>Core Commerce functionality that requires a web context.</td></tr><tr><td><strong>Umbraco.Commerce.Cms</strong></td><td>Core Commerce functionality that requires an Umbraco dependency.</td></tr><tr><td><strong>Umbraco.Commerce.Cms.Web</strong></td><td>The Commerce functionality for the Umbraco presentation layer.</td></tr><tr><td><strong>Umbraco.Commerce.Cms.Web.UI</strong></td><td>The static Commerce assets for the Umbraco presentation layer.</td></tr><tr><td><strong>Umbraco.Commerce.Cms.Startup</strong></td><td>The Commerce functionality for registering Commerce with Umbraco.</td></tr><tr><td><strong>Umbraco.Commerce</strong></td><td>The main Commerce package entry point package.</td></tr></tbody></table>
28+
<table>
29+
<thead>
30+
<tr>
31+
<th width="282">Sub-package</th>
32+
<th>Description</th>
33+
</tr>
34+
</thead>
35+
<tbody>
36+
<tr>
37+
<td><strong>Umbraco.Commerce.Common</strong></td>
38+
<td>A shared project of common, non-Commerce-specific patterns and helpers.</td>
39+
</tr>
40+
<tr>
41+
<td><strong>Umbraco.Commerce.Core</strong></td>
42+
<td>Core Commerce functionality that doesn't require any infrastructure-specific dependencies.</td>
43+
</tr>
44+
<tr>
45+
<td><strong>Umbraco.Commerce.Infrastructure</strong></td>
46+
<td>Infrastructure-specific project containing implementations of core Commerce functionality.</td>
47+
</tr>
48+
<tr>
49+
<td><strong>Umbraco.Commerce.Persistence.SqlServer</strong></td>
50+
<td>Persistence-specific project containing implementations of core Commerce persistence functionality for SQL Server.</td>
51+
</tr>
52+
<tr>
53+
<td><strong>Umbraco.Commerce.Persistence.Sqllite</strong></td>
54+
<td>Persistence-specific project containing implementations of core Commerce persistence functionality for SQLite.</td>
55+
</tr>
56+
<tr>
57+
<td><strong>Umbraco.Commerce.Web</strong></td>
58+
<td>Core Commerce functionality that requires a web context.</td>
59+
</tr>
60+
<tr>
61+
<td><strong>Umbraco.Commerce.Cms</strong></td>
62+
<td>Core Commerce functionality that requires an Umbraco dependency.</td>
63+
</tr>
64+
<tr>
65+
<td><strong>Umbraco.Commerce.Cms.Web</strong></td>
66+
<td>The Commerce functionality for the Umbraco presentation layer.</td>
67+
</tr>
68+
<tr>
69+
<td><strong>Umbraco.Commerce.Cms.Web.Api</strong></td>
70+
<td>A shared project of common API specific functionality.</td>
71+
</tr>
72+
<tr>
73+
<td><strong>Umbraco.Commerce.Cms.Web.Api.Management</strong></td>
74+
<td>The backoffice Management API layer.</td>
75+
</tr>
76+
<tr>
77+
<td><strong>Umbraco.Commerce.Cms.Web.Api.Payment</strong></td>
78+
<td>The Payment handling API layer.</td>
79+
</tr>
80+
<tr>
81+
<td><strong>Umbraco.Commerce.Cms.Web.Api.Storefront</strong></td>
82+
<td>The frontend Storefront API layer.</td>
83+
</tr>
84+
<tr>
85+
<td><strong>Umbraco.Commerce.Cms.Web.UI</strong></td>
86+
<td>The static Commerce assets for the Umbraco presentation layer.</td>
87+
</tr>
88+
<tr>
89+
<td><strong>Umbraco.Commerce.Cms.Startup</strong></td>
90+
<td>The Commerce functionality for registering Commerce with Umbraco.</td>
91+
</tr>
92+
<tr>
93+
<td><strong>Umbraco.Commerce</strong></td>
94+
<td>The main Commerce package entry point package.</td>
95+
</tr>
96+
</tbody>
97+
</table>
2998

3099
## Installing a License
31100

14/umbraco-commerce/key-concepts/base-currency.md

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,6 @@ When you configure a store you need to assign a base currency to it. This curren
1010

1111
When a store has a base currency configured, any order placed will track the price of the order in the customer's chosen currency. It will also track the current exchange rate between that currency and the store's base currency. Whenever a report is run the order total prices will be converted using this exchange rate. This means that they can all be automatically presented in the single base currency of the store.
1212

13-
## Currency Exchange Rates
13+
## Currency Exchange Rate Services
1414

15-
Umbraco Commerce uses an `ICurrencyExchangeRateService` to retrieve the most up-to-date rate to be able to track the current exchange rate. This is done for each individual order.
16-
17-
Out of the box, Umbraco Commerce comes with a number of available services you can choose to use. Some are free services, whilst others require a paid subscription.
18-
19-
* **ExchangeRatesApiCurrencyExchangeRateService** uses the free [exchangeratesapi.io](https://exchangeratesapi.io/) API and is the default option.
20-
* **FixerCurrencyExchangeRateService** uses the [fixer.io](https://fixer.io/) API which is a reliable paid option (with a reasonable free plan).
21-
* **CurrencyLayerCurrencyExchangeRateService** uses the [currencylayer.com](https://currencylayer.com/) API which is another reliable paid option (with a reasonable free plan).
22-
23-
If you wish to change the currency exchange rate service used, you can do so via the [dependency injection](dependency-injection.md) approach. This is used to override the default service configuration. For services that require configuration to be passed in, such as service API keys, you'll need to use the factory-based override as follows:
24-
25-
```csharp
26-
public static class UmbracoCommerceUmbracoBuilderExtensions
27-
{
28-
public static IUmbracoCommerceBuilder AddMyServices(IUmbracoCommerceBuilder builder)
29-
{
30-
// Register the fixer tax service with your API key
31-
builder.Services.AddUnique<ICurrencyExchangeRateService>(new FixerCurrencyExchangeRateService("YOUR_FIXER_API_KEY"));
32-
33-
// Return the builder to continue the chain
34-
return builder;
35-
}
36-
}
37-
```
38-
39-
## Historic Orders
40-
41-
Umbraco Commerce has a background service that will attempt to ensure that all historic orders without an exchange rate defined get updated. This is done in case the third-party APIs fail and we need a method of cleaning data. It is also done in case the store base currency is ever changed. In this case, we need to re-process all orders again with the newly selected base currency.
42-
43-
The currency exchange rate background task will run once every 24 hours or after 20 seconds after an app pool recycle.
15+
Umbraco Commerce uses an `ICurrencyExchangeRateService` to retrieve the most up-to-date rate and track the current exchange rate. For more details on configuring an exchange rate service, see the [Currency Exchange Rate Service Providers](./currency-exchange-rate-service-providers.md) article.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
description: Currency Exchange Rate Service Provider for currency conversion in Umbraco Commerce.
3+
---
4+
5+
Umbraco Commerce can track the current exchange rate of orders compared to the stores [Base Currency](./base-currency.md). This is necessary to produce reports and analytics in a single currency.
6+
7+
8+
## Currency Exchange Rate Services
9+
10+
Umbraco Commerce uses an `ICurrencyExchangeRateService` to retrieve the most up-to-date rate and track the current exchange rate. This is done for each order.
11+
12+
13+
Out of the box, Umbraco Commerce comes with a number of available services you can choose to use. Some are free services, while others require a paid subscription.
14+
15+
16+
* **ExchangeRateHostCurrencyExchangeRateService** uses the free [exchangerate.host](https://exchangerate.host/) API.
17+
* **ExchangeRatesApiCurrencyExchangeRateService** uses the free [exchangeratesapi.io](https://exchangeratesapi.io/) API.
18+
* **FixerCurrencyExchangeRateService** uses the [fixer.io](https://fixer.io/) API which is a reliable paid option (with a reasonable free plan).
19+
* **CurrencyLayerCurrencyExchangeRateService** uses the [currencylayer.com](https://currencylayer.com/) API which is another reliable paid option (with a reasonable free plan).
20+
21+
If you are using multiple currencies in your store then you should sign up for and configure an exchange rate service to ensure accurate reporting. You can do so via the [dependency injection](dependency-injection.md) approach. This is used to override the default service configuration. For services that require configuration to be passed in, such as service API keys, you'll need to use the factory-based override as follows:
22+
23+
```csharp
24+
public static class UmbracoCommerceUmbracoBuilderExtensions
25+
{
26+
public static IUmbracoCommerceBuilder AddMyServices(IUmbracoCommerceBuilder builder)
27+
{
28+
// Register the fixer tax service with your API key
29+
builder.Services.AddUnique<ICurrencyExchangeRateService>(new FixerCurrencyExchangeRateService("YOUR_FIXER_API_KEY"));
30+
31+
// Return the builder to continue the chain
32+
return builder;
33+
}
34+
}
35+
```
36+
37+
If you have multiple currencies enabled but have not configured an exchange rate service, Umbraco Commerce will display a warning. This alert appears on the store dashboard and analytics section, indicating that the reported data may be inaccurate.
38+
39+
![No Exchange Rate Service Provider Warning](../media/v14/no-exchange-rate-provider.png)
40+
41+
## Historic Orders
42+
43+
Umbraco Commerce has a background service that will attempt to ensure that all historic orders without an exchange rate defined get updated. This is done in case the third-party APIs fail and we need a method of cleaning data. It is also done in case the store base currency is ever changed. In this case, we need to re-process all orders again with the newly selected base currency.
44+
45+
The currency exchange rate background task will run once every 24 hours or after 20 seconds after an app pool recycle.

0 commit comments

Comments
 (0)