Looking to learn more about the different concepts and features of Umbraco Commerce? You can find detailed information about each of them in this section.
-
-## Quick links
-
-{% content-ref url="reference/go-behind-the-scenes.md" %}
-[go-behind-the-scenes.md](reference/go-behind-the-scenes.md)
-{% endcontent-ref %}
-
-### Using These Docs
-
-**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.
-
-If you require assistance you can use our support channels to seek assistance.
diff --git a/14/umbraco-commerce/SUMMARY.md b/14/umbraco-commerce/SUMMARY.md
deleted file mode 100644
index 49913d47871..00000000000
--- a/14/umbraco-commerce/SUMMARY.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# Table of contents
-
-* [Umbraco Commerce Documentation](README.md)
-* [Release Notes](release-notes/README.md)
- * [v14.0.0](release-notes/v14.0.0.md)
- * [v14.0.0-Alpha](release-notes/v14.0.0-alpha.md)
-
-## Commerce Products
-
-* [Commerce Packages](https://docs.umbraco.com/umbraco-commerce-packages)
-* [Commerce Payment Providers](https://docs.umbraco.com/umbraco-commerce-payment-providers)
-* [Commerce Shipping Providers](https://docs.umbraco.com/umbraco-commerce-shipping-providers)
-
-## Getting Started
-
-* [Requirements](getting-started/requirements.md)
-* [Installation](getting-started/install.md)
-* [Licensing](getting-started/the-licensing-model.md)
-* [Configuration](getting-started/umbraco-configuration.md)
-* [User Interface](getting-started/user-interface.md)
-
-## Upgrading
-
-* [Upgrading Umbraco Commerce](upgrading/upgrade.md)
-* [Version Specific Upgrade Notes](upgrading/version-specific-upgrades.md)
-* [Migrate from Vendr to Umbraco Commerce](upgrading/migrate-from-vendr-to-umbraco-commerce/README.md)
- * [Migrate Umbraco Commerce Checkout](upgrading/migrate-from-vendr-to-umbraco-commerce/migrate-umbraco-commerce-checkout.md)
- * [Migrate custom Payment Providers](upgrading/migrate-from-vendr-to-umbraco-commerce/migrate-custom-payment-providers.md)
-
-## How-To Guides
-
-* [Overview](how-to-guides/overview.md)
-* [Configure SQLite support](how-to-guides/configure-sqlite-support.md)
-* [Limit Order Line Quantity](how-to-guides/limit-orderline-quantity.md)
-* [Use an Alternative Database for Umbraco Commerce Tables](how-to-guides/use-an-alternative-database-for-umbraco-commerce-tables.md)
-* [Add item to Cart](how-to-guides/add-item.md)
-* [Update Cart](how-to-guides/update-cart.md)
-* [Delete item from Cart](how-to-guides/delete-item.md)
-
-## Key Concepts
-
-* [Get to know the main features](key-concepts/overview.md)
-* [Base Currency](key-concepts/base-currency.md)
-* [Calculators](key-concepts/calculators.md)
-* [Currency Exchange Rate Service Provider](key-concepts/currency-exchange-rate-service-providers.md)
-* [Dependency Injection](key-concepts/dependency-injection.md)
-* [Discount Rules / Rewards](key-concepts/discount-rules-and-rewards.md)
-* [Events](key-concepts/events/README.md)
- * [List of validation events](key-concepts/events/list-of-validation-events.md)
- * [List of notification events](key-concepts/events/list-of-notification-events.md)
-* [Fluent API](key-concepts/fluent-api.md)
-* [Order Calculation State](key-concepts/order-calculation-state.md)
-* [Payment Forms](key-concepts/payment-forms.md)
-* [Payment Providers](key-concepts/payment-providers.md)
-* [Pipelines](key-concepts/pipelines.md)
-* [Price/Amount Adjustments](key-concepts/price-amount-adjustments.md)
-* [Price Freezing](key-concepts/price-freezing.md)
-* [Product Adapters](key-concepts/product-adapters.md)
-* [Product Bundles](key-concepts/product-bundles.md)
-* [Product Variants](key-concepts/product-variants/README.md)
- * [Complex Variants](key-concepts/product-variants/complex-variants.md)
-* [Properties](key-concepts/properties.md)
-* [ReadOnly and Writable Entities](key-concepts/readonly-and-writable-entities.md)
-* [Sales Tax Providers](key-concepts/sales-tax-providers.md)
-* [Search Specifications](key-concepts/search-specifications.md)
-* [Settings Objects](key-concepts/settings-objects.md)
-* [Shipping Package Factories](key-concepts/shipping-package-factories.md)
-* [Shipping Providers](key-concepts/shipping-providers.md)
-* [Shipping Range/Rate Providers](key-concepts/shipping-range-and-rate-providers.md)
-* [Tax Sources](key-concepts/tax-sources.md)
-* [UI Extensions](key-concepts/ui-extensions/README.md)
- * [Analytics Widgets](key-concepts/ui-extensions/analytics-widgets.md)
- * [Entity Quick Actions](key-concepts/ui-extensions/entity-quick-actions.md)
- * [Order Properties](key-concepts/ui-extensions/order-properties.md)
- * [Order Collection Properties](key-concepts/ui-extensions/order-collection-properties.md)
- * [Order Line Properties](key-concepts/ui-extensions/order-line-properties.md)
- * [Store Menu Items](key-concepts/ui-extensions/store-menu-items.md)
-* [Umbraco Properties](key-concepts/umbraco-properties.md)
-* [Unit of Work](key-concepts/unit-of-work.md)
-* [Umbraco Commerce Builder](key-concepts/umbraco-commerce-builder.md)
-* [Webhooks](key-concepts/webhooks.md)
-
-## Reference
-
-* [Stores](reference/stores/README.md)
-* [Shipping](reference/shipping/README.md)
- * [Fixed Rate Shipping](reference/shipping/fixed-rate-shipping.md)
- * [Dynamic Rate Shipping](reference/shipping/dynamic-rate-shipping.md)
- * [Realtime Rate Shipping](reference/shipping/realtime-rate-shipping.md)
-* [Taxes](reference/taxes/README.md)
- * [Fixed Tax Rates](reference/taxes/fixed-tax-rates.md)
- * [Calculated Tax Rates](reference/taxes/calculated-tax-rates.md)
-* [Storefront API](reference/storefront-api/README.md)
- * [Endpoints](reference/storefront-api/endpoints/README.md)
- * [Order](reference/storefront-api/endpoints/order.md)
- * [Checkout](reference/storefront-api/endpoints/checkout.md)
- * [Product](reference/storefront-api/endpoints/product.md)
- * [Customer](reference/storefront-api/endpoints/customer.md)
- * [Store](reference/storefront-api/endpoints/store.md)
- * [Currency](reference/storefront-api/endpoints/currency.md)
- * [Country](reference/storefront-api/endpoints/country.md)
- * [Payment method](reference/storefront-api/endpoints/payment-method.md)
- * [Shipping method](reference/storefront-api/endpoints/shipping-method.md)
- * [Content](reference/storefront-api/endpoints/content.md)
-* [Management API](reference/management-api/README.md)
-* [Go behind the scenes](reference/go-behind-the-scenes.md)
-* [Telemetry](reference/telemetry.md)
-
-## Tutorials
-
-* [Overview](tutorials/overview.md)
-* [Getting started with Umbraco Commerce: The Backoffice](tutorials/getting-started-with-commerce.md)
diff --git a/14/umbraco-commerce/changelog-archive/Vendr-core.md b/14/umbraco-commerce/changelog-archive/Vendr-core.md
deleted file mode 100644
index 2de685aae2f..00000000000
--- a/14/umbraco-commerce/changelog-archive/Vendr-core.md
+++ /dev/null
@@ -1,920 +0,0 @@
----
-title: Changelog
-description: Changelog for the Core Vendr product
----
-
-# Changelog
-
-### v3.0.11
-
-**Date:** 2023-03-22\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed a bug where order line quantities were being multiplied by 10 due to culture-related issues ([#405](https://github.com/vendrhub/vendr/issues/405)).
-* Fixed bug Vendr tree would vanish if installed with Umbraco Workflow due to controllers having the same class name. All Vendr trees have now been prefixed with `Vendr` ([#408](https://github.com/vendrhub/vendr/issues/408)).
-* Fixed bug where date-based order advanced filters used UTC time when all other front-end dates were in local time. Vendr now converts the dates to UTC before applying the filters ([#406](https://github.com/vendrhub/vendr/issues/406)).
-* Changed the default product adapter to also search child variants names, not just SKUs.
-* Changed the multi-variants property editor to construct an SKU from the parent node if the variant node doesn't have an SKU defined.
-
-### v3.0.10
-
-**Date:** 2023-02-24\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed issue where discount codes wouldn't persist changes when being updated.
-
-### v3.0.8/9
-
-**Date:** 2023-02-14\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added debug symbols to NuGet packages.
-* Fixed session manager incorrectly storing the default shipping method in the default shipping country cookie value ([#404](https://github.com/vendrhub/vendr/issues/404)).
-
-### v3.0.7
-
-**Date:** 2023-02-07\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added extra logging around payment request handler failures.
-* Fixed error when processing payment requests and an order number can't be found. Now returns 200 status to allow webhook notification to stop, but logs the error locally.
-
-### v3.0.6
-
-**Date:** 2023-01-16\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added an extra `CalculatePrice` extension method to `IProductSnapshot` that can accept a current order as a reference to save on processing if a current order is known to exist.
-* The product Attribute value sort order is now correctly honored.
-* Fixed entity controllers actions not working for users with the only `Commerce` role assigned. We misunderstood how the authorize attribute works as we assumed it enforced them as an OR operation, but it appears it enforces them as an `AND` operation and so we now have an explicit `SettingsOrCommerce` section policy.
-
-### v3.0.5
-
-**Date:** 2022-12-01\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added readme for new Umbraco marketplace.
-* Changed the product adapter so that it only searches for published products.
-* Fixed an issue where calls to entity services inside event handlers didn't have the most up-to-date entity because the temporary cache wasn't pushed back before the event handlers were called.
-* Fixed the telemetry data service failing in Umbraco v11 due to it using an obsolete constructor that got removed in v11.
-* Fixed the product adapter search not working for multi-word phrases.
-* Fixed bug with price property editor erroring if there is no fraction config.
-
-### v3.0.4
-
-**Date:** 2022-11-08\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added Umbraco marketplace tag to main NuGet package.
-* Check `X-Forwarded-Host` when determining the base URL for payment provider links.
-* Re-cache the order state if the order changes during save events.
-* Fixed error when order properties are searched when not in the correct `alias:value` format. Now ignores values not in this format.
-* Fixed the tags order filter not actually taking supplied tag values into account.
-
-### v3.0.3
-
-**Date:** 2022-10-17\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed error screen when using dictionary input fields due to the resolution of a scoped service from a singleton ([#392](https://github.com/vendrhub/vendr/issues/392)).
-* Fixed error screen when generating models builder models in Umbraco 10.3.0 RC due to changes in block editor base classes ([#393](https://github.com/vendrhub/vendr/issues/393)).
-
-### v3.0.2
-
-**Date:** 2022-10-11\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed issue when deleting allowed shipping method countries causing an error due to them referencing a `paymentMethodId` in their SQL statements rather than `shippingMethodId`.
-* Fixed issue with NPoco `ExecuteScalar` not handling Guid conversions.
-* Fixed bug in the order list not pulling back child entities correctly due to an inner join having its order by clause removed causing a miss-match of orders being fetched.
-* Fixed issue where joins with an order by's would throw an exception if there wasn't an offset applied to the query. We now always apply an offset, even if one isn't necessary.
-* Fixed bug where `BeginPaymentForm` would overwrite the customer reference if one was already set. It now only sets the customer reference if one isn't already present.
-
-### v3.0.1
-
-**Date:** 2022-09-29\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed DB migration error due to `DF__vendrOrderLine__quantity` prevent a migration step to execute when migrating from a v2 install.
-* Fixed bug where Azure would automatically use `System.Data.SqlClient` when it should use `Microsoft.Data.SqlClient`
-* Fixed Vendr health checks failing due to shipping method exception ([#388](https://github.com/vendrhub/vendr/issues/388)).
-* Fixed `Unit of work has already been completed` error when creating all countries from the ISO country list ([#389](https://github.com/vendrhub/vendr/issues/389)).
-
-## v3.0.0
-
-**Date:** 2022-09-21\
-**Description:** Minor release with additional features and bug fixes
-
-* Added `IVendrBuilder` concept to encapsulate Vendr's build configuration.
-* Added option SQLite support for testing purposes.
-* Added ability to store Vendr data in the alternative database to Umbraco.
-* Added optimistic concurrency checks to ensure an entity hasn't changed since the last save.
-* Added databased indexes on all `storeId` and `orderId` columns to aid performance.
-* Added async support to `BeginPaymentForm` extension.
-* Added support for bundle base price adjustments.
-* Added new `BundleOrderLine` and `BundledOrderLine` entities for strongly typed access to bundle-specific features.
-* Added new `IsBundle` and `GetBundles` methods to make working with bundles easier.
-* Added default values support to payment provider/discount settings objects.
-* Changed Umbraco dependency persistence layer for our own implementation.
-* Changed Unit of Work to use an `Execute` method rather than using the `Create` method in a using statement.
-* Changed `AsWritable` to automatically fetch the latest entity from the database instead of copying the in-memory state.
-* Fixed issue where reverting a cart would revert stock levels when this should only occur for finalized orders.
-* Dropped Umbraco v8 and v9 support
-* Retargeted for Umbraco v10+
-
-### v2.4.1
-
-**Date:** 2022-10-11\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed bug where `BeginPaymentForm` would overwrite the customer reference if one was already set. It now only sets the customer reference if one isn't already present.
-
-## v2.4.0
-
-**Date:** 2022-08-13\
-**Description:** Minor release with additional features and bug fixes
-
-* Added support for Cart/Order list config files to enable displaying order properties in the order list view.
-* Fixed bug in property editor dialog passing the `orderId` in the `storeId` config setting.
-* Fixed bug in the session manager storing the default payment method under the default country session ID.
-
-### v2.3.4
-
-**Date:** 2022-08-22\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added more null checking to the `UmbracoStockSynchronizer` as the fix in 2.3.3 didn't quite fix the issue.
-* Fixed regression with `AsyncHelper` causing error/hanging when attempting to send emails.
-
-### v2.3.3
-
-**Date:** 2022-08-08\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed issue with `UmbracoStockSynchronizer` causing an exception if there is no previous data stored in the variants property editor.
-* Fixed a bug in export logic where exporting multiple templates would actually just export the first template multiple times.
-* Fixes issue with `AsyncHelper` causing `AggregateException` by switching to our newer style of `AsyncHelper` from v3.
-
-### v2.3.2
-
-**Date:** 2022-07-06\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed v10 regression causing indexing of products/variants in Lucene to fail.
-* Fixed null error in `RaiseOrderLineChangeEvents` as original Tax Class ID can be null for new order lines.
-* Fixed `XSS` issue in custom order table cell rendering. Now HTML escapes all user input before rendering.
-* Fixed bug on licenses dashboard now showing the Refresh button for subscription licenses.
-
-### v2.3.1
-
-**Date:** 2022-06-21\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed v10 regression due to Umbraco API change where saving / publishing content would cause an error screen.
-* Fixed v10 regression due to Umbraco API change where internal index would not rebuild and so Vendr store finders would not run.
-* Fixed bug in Content based store finder due to incorrectly overriding base method.
-
-## v2.3.0
-
-**Date:** 2022-06-21\
-**Description:** Minor release with Umbraco v10 support
-
-* Added decimal place configuration to `Vendr: Price` property editor.
-* Added logging to payment callback handler.
-* Added validation events to payment capture, cancel and refund actions to allow validating whether those actions should occur or not ([#369](https://github.com/vendrhub/vendr/issues/369)).
-* Added support for default settings in payment providers and discounts rules / rewards. Can now set default values on settings Poco and these will apply during create.
-* Updated DB migrations to work with SQLite (v10 only).
-* Fixed v10 compatability issues.
-* Fixed order editor UI issue with bundle order lines showing the parent order line prices.
-* Fixed bug with unit price discounts being capped at a bundle order lines base price.
-* Fixed bug where deleting carts would restock items. Now only reverts an order if it has been finalized.
-* Fixed bug where Export Templates weren't being deleted ([#373](https://github.com/vendrhub/vendr/issues/373)).
-
-### v2.2.1
-
-**Date:** 2022-05-23\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added ability to change the tax class of an order line.
-* Added ability to set the number of decimal places a stock input field should accept.
-* Fixed bug in stock input field formatting the number incorrectly for the current users culture ([#367](https://github.com/vendrhub/vendr/issues/367)).
-* Fixed error when saving stock due to setting property value to string `"-1"` when it expects to be the decimal `-1` ([#368](https://github.com/vendrhub/vendr/issues/368)).
-
-## v2.2.0
-
-**Date:** 2022-05-06\
-**Description:** Minor release with some breaking changes
-
-* Added `GetCurrentOrder` method to `SessionManager` that accepts a `customerReference` to allow finding an order via `IOrderFinder`.
-* `GetCurrentOrder` on `SessionManager` with no `customerReference` parameter now calls the new `GetCurrentOrder` method passing in the current logged in members ID. This shouldn't change any behaviour for the majority of stores without order finders, but if intalls do have order finders you'll now need to pass `null` to the `customerReference` parameter if you want to get the current order whilst avoiding using order finders.
-* `IOrderFinder.FindOrder` now accetps an additional `storeId` parameter.
-* `IOrderService.FindOrder` now accetps an additional `storeId` parameter.
-
-### v2.1.3
-
-**Date:** 2022-04-28\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Updated price calculation process to set total prices temporarily as the pipelines goes along so that any stage within the calculation process you can get the total prices at the current state.
-* Updated the licensing dialog to display a warning if there is an inactive license installed which usually means the local environment has been updraded beyond the installed licenses upgrade window ([#360](https://github.com/vendrhub/vendr/issues/360)).
-* Fixed order table layout issue due to too large a `colspan` attribute.
-* Fixed recuring tasks having the delay / interval in the wrong order in Umbraco v9.
-* Fixed conflicting routes issue in Umbraco v9.5RC due to Umbraco introducing a new AnalyticsController. Have now prefixed all Vendr controllers with `Vendr` ([#362](https://github.com/vendrhub/vendr/issues/362)).
-* Fixed product related analytics reports not passing the `storeId` into the product adapter when fetching up to date product info ([#364](https://github.com/vendrhub/vendr/issues/364)).
-* Fixed bug when using own order editor config view where the order editor still trys to fix notes fields. Now does a null check before attempting. ([#363](https://github.com/vendrhub/vendr/issues/363)).
-
-### v2.1.2
-
-**Date:** 2022-03-23\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added order activity log to order edit screen ([#351](https://github.com/vendrhub/vendr/issues/351)).
-* We no longer maintain a cache of all Gift Cards in memory, instead, we do the same as we do with orders and just maintain active Gift Cards on a sliding expiration.
-* Fixed issue when using `VariantsEditorValueConverter` in background threads due to the use of scoped services. Now no longer require effective services to be scoped.
-* Fixed activity logs not recording the user ID of the user that performed the given task ([#350](https://github.com/vendrhub/vendr/issues/350)).
-* Fixed error when saving product attributes due to a bug in deep-equals logic ([#354](https://github.com/vendrhub/vendr/issues/354)).
-
-### v2.1.1
-
-**Date:** 2022-03-07\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added constants for the built-in payment provider aliases.
-* Added `IUmbracoProductSnapshot` interface to allow snapshots to be swapped out, but still have the default Umbraco node-based stock implementation work.
-* Added `ParentOrderLineId` and `ParentBundleId` properties to order lines to be able to easily identify an order line's parent.
-* Discount `UsageLimit` is set to `0` if `IsUnlimited` is set to `true`.
-* Payment provider callback handler without order info now returns OK status if it can't handle the supplied order, rather than Bad Request.
-* Fixed cart edit form submitting on enter for Discount/Gift Card Codes field ([#344](https://github.com/vendrhub/vendr/issues/344)).
-* Fixed issue with discounts not updating correctly due to deep comparisons not working. Switched from using `DeepEqual` library to `CompareNetObject` library instead ([#347](https://github.com/vendrhub/vendr/issues/347)).
-
-## v2.1.0
-
-**Date:** 2022-02-14\
-**Description:** Minor release with new features and some breaking changes
-
-* Added `Carts` feature to `Commerce` section.
-* Added `ProductAdapterBase` as a new base class for product adapters.
-* Added `Cart` category for email, print, and export templates.
-* Added `cart.editor.config.js` file support for controlling editable cart fields differently from editable order fields.
-* Added `IUmbracoNodeStoreFinder` interface to allow custom ways of locating a store from an Umbraco node. Default finders and their order are `UmbracoPublishedContentStoreFinder`, `UmbracoLuceneStoreFinder` and `UmbracoContentStoreFinder`. Additional store finders can be added via the `WithUmbracoNodeStoreFinders` collection builder API available on the `IUmbracoBuilder` interface.
-* Added Change Status bulk action to allow changing the order status of multiple orders at once ([#335](https://github.com/vendrhub/vendr/issues/335)).
-* Added advanced search filter feature to allow searching for orders/carts in a more targeted way. This can also be extended by adding custom `AdvancedFilterBase` implementations to the DI container.
-* Added Order tagging support to allow tagging orders with custom tags that can be used for filtering ([#324](https://github.com/vendrhub/vendr/issues/324)).
-* Added custom `OutfieldDigitalExchangeRateService` and set as the default implementation that just acts as a proxy to the exchangerate.host API. This is to ensure that we can fix this in the future without people needing to upgrade, should that service ever stop working like the Exchange Rates API service did.
-* Order editor customer information dialog now allows the countries to be edited.
-* Order search now searches the customer's email too.
-* Updated all places that located a store based on an Umbraco node/content item to use the new `IUmbracoNodeStoreFinder` implementations.
-* Fixed bug when searching for orders that have an email address assigned (previously threw a malformed SQL error).
-* Fixed bug where only admins could pick from store entity pickers ([#342](https://github.com/vendrhub/vendr/issues/342)).
-* Fixed path inconsistencies on Linux due to case-sensitive file system ([#341](https://github.com/vendrhub/vendr/issues/341)).
-* Fixed variant item editor not showing variant attribute summary in Umbraco v8.
-* Fixed the issue with sorting not working due to the change to .NET Core.
-* Fixed error when deleting bundle order lines due to items being deleted in the wrong order and thus causing an FK violation.
-* Fixed styling issues in store entity picker pre-value editor UI.
-* `IProductAdapter` now exposes `SearchProductSummaries`, `GetProductVariantAttributes` and `SearchProductVariantSummaries` methods for editable cart support.
-* `IProductAdapter`, `IStockService`, `IProductService`, `IVendrApi` methods that accept a `productReference` / `productVariantReference` parameter now receives a `storeId` parameter as well ([#339](https://github.com/vendrhub/vendr/issues/339)).
-* `IPaymentCalculator` and `IShippingCalculator` now accept a nullable `countryId` parameter.
-
-### v2.0.6
-
-**Date:** 2022-02-01\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added explicit checks for the use of CloudFlares Flexible Secure Socket Layer (SSL) feature when resolving Vendr URLs.
-* Added extra null checks in exchange rate service implementations.
-* Added new `ExchangeRateHostCurrencyExchangeRateService` implementation.
-* The payment controller now only returns `BadRequest` status if the URL has been tampered with. All other code paths now return a `OK` status so that webhooks won't keep attempting notifications for orders/transactions that can't be handled.
-* Move the shipping company name field to be in the same location as the billing company name field.
-* Updated the resolution of the `order.editor.config.js` file to prefer a config on disk over a legacy entry in the database table.
-* Updated the default `ICurrencyExchangeRateService` to use the free `ExchangeRateHostCurrencyExchangeRateService`.
-* Updated the `ExchangeRatesApiCurrencyExchangeRateService` to require an API key as this now appears to be required.
-* Fixed license domains list not displaying correctly in the Vendr settings dashboard.
-* Fixed divide-by-zero issues when applying exchange rates to an order.
-
-### v2.0.5
-
-**Date:** 2022-01-17\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Changed `EventBus` and `Pipeline` implementations to no use lazy dependencies as in some occasions it's possible in Umbraco that these get resolved too early before registration is complete and can end up caching a `null` value.
-* Changed from using `IStartupFilter` for some core startup configurations to using `IComponent` due to issues with Umbraco Deploy firing too early.
-* Fixed regression in license limitations checks for custom product adapters when using a lite license. Then namespace had changed in v2, but we didn't update the limitation check.
-
-### v2.0.4
-
-**Date:** 2021-12-06\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Changed the stock synchronizer to use an internal cache rather than rely on scoped dependencies.
-* Removed Matryoshka override styles as shouldn't be necessary anymore.
-* Fixed variants attribute group not showing in variants editor due to core changes in how tabs work.
-
-### v2.0.3
-
-**Date:** 2021-10-26\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed issue with Opayo payment provider not working due to the `HttpRequestMessage` already having been read ([#4](https://github.com/vendrhub/vendr-payment-provider-opayo/issues/4)).
-* Fixed issue with Order Export Template rendering everything on one line due to newline characters being escaped ([#330](https://github.com/vendrhub/vendr/issues/330)).
-
-### v2.0.2
-
-**Date:** 2021-10-20\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed issue with the Variants property editor creating an empty `General` tab when using tabs on the product document type.
-
-### v2.0.1
-
-**Date:** 2021-10-18\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added more null handling when accessing `ProductSnapshot` properties ([#327](https://github.com/vendrhub/vendr/issues/327)).
-* Updated the Nuget build tasks to only replace the `App_Plugins\Vendr\backoffice` folder on `Clean`.
-* Fixed bug in payment provider callback handler erroring for URLs where the order number isn't known.
-* Fixed bug in payment provider context not populating `Request` property when converting to a strongly typed context.
-* Fixed regression where deleted gift cards were showing in the gift cards list ([#326](https://github.com/vendrhub/vendr/issues/326)).
-* Fixed a number of async deadlock issues.
-* Fixed incorrect minimum Umbraco version in Umbraco `package.xml`.
-
-## v2.0.0
-
-**Date:** 2021-10-07\
-**Description:** Major new release with breaking changes
-
-* Added v9 / .NET Core support.
-* Added custom rounding support ([#168](ttps://github.com/vendrhub/vendr/issues/168)).
-* Payment providers are now .netstandard2.0.
-* Payment provider methods are now async.
-* Payment providers now take in a `PaymentProviderContext` for most methods.
-* Big project restructuring.
-* More details on what's changed in the [v2.0.0 release blog post](https://vendr.net/blog/vendr-2-0-0-release/).
-
-### v1.8.6
-
-**Date:** 2021-08-27\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added more null handling in exchange rate service providers.
-* Updated the default order number generator to improve randomness and thus prevent collisions, especially in load-balanced environments.
-* Fixed intermittent concurrency errors with `EntityCacheKeys`. Switched to a concurrent dictionary for cache key storage.
-* Fixed issue with payment provider URLs forcing port 443 for non-localhost URLs.
-* Updated the price property editor to allow an explicit zero value to be set ([#314](https://github.com/vendrhub/vendr/issues/314)).
-* Fixed issue with analytics dashboard not allowing the viewing of todays figures ([#319](https://github.com/vendrhub/vendr/issues/319)).
-
-### v1.8.5
-
-**Date:** 2021-07-23\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Fixed regression where order editor configs weren't getting resolved correctly (1.8.4 didn't actually fix this).
-
-### v1.8.4
-
-**Date:** 2021-07-22\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added refresh license button to licenses dashboard for subscription licenses.
-* Removed `ILicensingService` and have a core `LicensingService` (which is now `sealed`) dependency instead.
-* Fixed error where payment interactions from the order editor weren't having any effect ([#316](https://github.com/vendrhub/vendr/issues/316)).
-* Fixed regression where order editor configs weren't getting resolved correctly.
-
-### v1.8.3
-
-**Date:** 2021-06-21\
-**Description:** Patch release with minor bug fixes and non-breaking enhancements
-
-* Added ability to define reply to the email address on email templates ([#287](https://github.com/vendrhub/vendr/issues/287)).
-* Added ability to replace and remove event handlers via the Vendr API ([#256](https://github.com/vendrhub/vendr/issues/256))
-* Added support for convention-based resolution of the order editor config, inline with how analytics and gift cards configs work.
-* Implemented a `IPaymentService` to encapsulate the Capture, Cancel and Refund actions of a payment gateway to allow re-use outside of the Vendr UI.
-* Umbraco Product Adapter now uses `IUmbracoContextFactory` instead of `IUmbracoContextAccessor` so that it can create a context if one isn't present, allowing it to run in background tasks.
-* Updated cache refreshers to load their dependencies Lazily as was causing errors in some random instances.
-* Updated Store editor to allow default email templates to be un-set in order to allow disabling of default emails ([#223](https://github.com/vendrhub/vendr/issues/223)).
-* Updated County and Regions editor to allow Default Country, Payment Methods and Shipping Methods to be not set ([#305](https://github.com/vendrhub/vendr/issues/305)).
-* Updated product attribute editor to allow camel case attribute aliases inline with all other aliases ([#269](https://github.com/vendrhub/vendr/issues/269)).
-* Updated the stock input field to display the same "No store found" message if the product node has no store setting defined ([#193](https://github.com/vendrhub/vendr/issues/193)).
-* Updated the stock property editor save event handlers to use `MemoryCache` to remember the state, rather than the `RequestCache` as there is no request cache when a content node is published via a schedule.
-* Updated the payment controller actions to not continue with the processing if the order reference on file does not match that in the URL.
-* Fixed errors in exchange rate services returning null. Now handles null values.
-* Fixed an issue with analytics reports showing data in UTC and not in the local time zone ([#303](https://github.com/vendrhub/vendr/issues/303)).
-* Fixed bug in top-selling product analytics chart erroring if a product's name changes at some point in the date range ([#297](https://github.com/vendrhub/vendr/issues/297)).
-* Fixed a bug where the injected `vendr_variants` tab is displayed when using Matroyhska. Custom CSS has been added to ensure this remains hidden ([#304](https://github.com/vendrhub/vendr/issues/304)).
-* Fixed a bug where payment provider settings weren't being translated before being passed to the payment provider within the Capture, Cancel, and Refund actions.
-
-### v1.8.2
-
-**Date:** 2021-05-26\
-**Description:** Patch release with minor bug fixes.
-
-* Added `esc` keyboard shortcut to close the exports dialog ([#301](https://github.com/vendrhub/vendr/issues/301)).
-* No longer errors if the same discount/gift card code is applied for a second time.
-* Fixed error when creating Gift Cards in backoffice due to no currency defined yet.
-* Fixed bug in gift cards searches API not initializing the gift card state correctly.
-
-### v1.8.1
-
-**Date:** 2021-05-13\
-**Description:** Patch release with minor bug fixes
-
-* Added `Try` methods to `IStockService` and `IProductService` for all get/set stock methods.
-* Made `PricePropertyValue` implement `IEnumerable` returning any price with a value.
-* Fixed a bug in the shipping cost calculation not using the shipping tax rate ([#298](https://github.com/vendrhub/vendr/issues/298)).
-* Removed obsolete `ProductVariantCollectionExtensions` causing naming conflicts.
-* Fixed bug in variants editor save event handler not persisting initial stock levels.
-
-## v1.8.0
-
-**Date:** 2021-05-05\
-**Description:** Minor release with new features and minor bug fixes
-
-* Added export templates section to the Store settings area.
-* Added export bulk action to Orders, Gift Cards, and Discounts list views to allow exporting.
-* Updated print dialog to disable the print button whilst there are no templates selected ([#292](https://github.com/vendrhub/vendr/issues/292)).
-
-### v1.7.3
-
-**Date:** 2021-05-04\
-**Description:** Patch release with minor bug fixes
-
-* Updated the `ProductOrderLineAmountDiscountRewardProvider` with an `OrderLineSource` settings to allow choosing whether the matching product should be located anywhere on the order, or within the matching rule results.
-
-### v1.7.2
-
-**Date:** 2021-04-26\
-**Description:** Patch release with minor bug fixes
-
-* Changed it so that when setting stock levels, if the stock source can't be found it no longer throws an error. Instead, it fails silently and logs a debug message.
-* Changed the entity cache wrappers to use cache accessor functions so that the cache wrappers can be reused locally.
-
-### v1.7.1
-
-**Date:** 2021-04-20\
-**Description:** Patch release with minor bug fixes
-
-* Fixed a bug in the new cache mechanism where changes weren't being pushed back into the global cache if an entity was accessed outside of a UoW within the same request prior to changes being made to that entity.
-
-### v1.7.0
-
-**Date:** 2021-04-15\
-**Description:** Minor release with new features and minor bug fixes
-
-* Added new `EntityCaches` for independent cache repositories of entities.
-* Order and Price Freezer caches now auto-expire items if they are not used.
-* Added a new stock caching layer to help improve performance.
-* Added new Order and GiftCard search API for more flexible searching ([#110](https://github.com/vendrhub/vendr/issues/110)).
-* `EntityStateCache` has now been obsoleted in favor of a new `EntityCaches` with an improved caching mechanism.
-* Transactional cache has now been updated to work with the new `EntityCaches` rather than the `EntityStateCache`.
-* Old Order and GiftCard search methods have been obsoleted in favor of the new search API.
-
-## v1.6.0
-
-**Date:** 2021-04-06\
-**Description:** Minor release with new features and minor bug fixes
-
-* Added order printing action button ([#79](https://github.com/vendrhub/vendr/issues/79)).
-* Added bulk order printing feature to orders list.
-* Email Templates are now located in a Templating parent folder to encompass both Email and Print templates
-* Fixed hardcoded `/umbraco` URL prefixes preventing sites from running with non-standard admin path ([#290](https://github.com/vendrhub/vendr/issues/290)).
-
-### v1.5.3
-
-**Date:** 2021-03-24\
-**Description:** Patch release with minor bug fixes
-
-* Fixed issue where the variants property editor was not recursively transforming property values when converting from editor to DB ([#285](https://github.com/vendrhub/vendr/issues/285)).
-* Fixed minor styling issues in the default email templates ([#286](https://github.com/vendrhub/vendr/issues/286)).
-
-### v1.5.2
-
-**Date:** 2021-03-17\
-**Description:** Patch release with minor bug fixes
-
-* Fixed error screen when fetching too many sub-entities in one SQL query. All sub-entity queries are now batched into groups of 2000 entities at a time ([#280](https://github.com/vendrhub/vendr/issues/280)).
-* Fixed regression in `ZeroValuePaymentProvider` since 1.4.0 release due to it not being updated to use the `TransactionAmount` property ([#281](https://github.com/vendrhub/vendr/issues/281)).
-* Added new event handlers when a content node with a variants editor is saved/copied/moved to automatically inject the related `storeId` for the variants editor into it's data structure. This is mainly to provide context to the `Vendr.Deploy` package.
-* Added `Create` methods to `ProductAttribute` and `ProductAttributePreset` to allow the passing in of an ID. This is to enable them to be deployed in `Vendr.Deploy`.
-* Updated the `UmbracoProductAdapter.GetProductSnapshot` introduced in 1.5.0 which accepts a `productVariantReference` to be virtual inline with the existing `GetProductSnapshot` method ([#282](https://github.com/vendrhub/vendr/issues/282)).
-* Updated the product variants editor value converter to automatically lookup the related store so that a `storeId` isn't needed when using the `GetInUseProductAttributes` method.
-
-### v1.5.1
-
-**Date:** 2021-02-26\
-**Description:** Patch release with minor bug fixes
-
-* Fixed stock property editor erroring on newly created variants in pre-existing product nodes.
-* Fixed error due to variants prop editor being moved to first group. Now moved to it's own group and that group is then hidden.
-* Fixed errors when using variants prop editor with content variants.
-* As block list editors don't support content variants yet, the variants editor has been updated to grey out and prevent editing on non-default language variant editors.
-
-## v1.5.0
-
-**Date:** 2021-02-11\
-**Description:** Minor release with new multi-variants feature
-
-* Multi-variants property editor.
-* Added new Options node to stores in the Commerce section with subsections for new Product Attributes and Product Attribute Presets features.
-* `AddProduct` API's now accept a new productVariantReference.
-* Order Lines now expose a `ProductVariantReference` property.
-* Order Lines now expose an `Attributes` property.
-* Minimum Umbraco version updated to 8.10.+ due block list editor API requirement.
-* Additional `IProductAdapter.GetProductSnapshot` method accepting a productVariantReference has been added.
-* `IProductAdapter.GetProductReference` changed to `IProductAdapter.TryGetProductReference`.
-* `IProductSnapshot` now exposes a `ProductVariantReference` property.
-* `IProductSnapshot` now exposes an `Attributes` property.
-
-### v1.4.2
-
-**Date:** 2021-02-04\
-**Description:** Patch release with minor bug fixes and enhancements
-
-* Added confirmation dialogs to Cancel, Refund, and Capture payment actions ([#251](https://github.com/vendrhub/vendr/issues/251)).
-* Added extra events to fire when adding or updating order lines via the `AddProduct` methods ([#248](https://github.com/vendrhub/vendr/issues/248)).
-* Added `IOrderFinder` interface so custom order locating can be added if no order is found for a customer reference.
-* Fixed bug where Member ID wasn't being auto-assigned to orders ([#263](https://github.com/vendrhub/vendr/issues/263)).
-* Fixed Vendr cache refreshers not refreshing distributed caches correctly ([#250](https://github.com/vendrhub/vendr/issues/250)).
-* Fixed an issue where log files are getting filled with unnecessary log messages ([#249](https://github.com/vendrhub/vendr/issues/249)).
-* Fixed an issue where using a Gift Card resulted in the order erroring ([#247](https://github.com/vendrhub/vendr/issues/247)).
-* Fixed issue with analytics fixed timeframes not updating ([#234](https://github.com/vendrhub/vendr/issues/234)).
-* Fixed styling issue where long order status labels were getting cropped ([#230](https://github.com/vendrhub/vendr/issues/230)).
-* Fixed issue where `GetOrCreateCurrentOrder` could return an order for a previous logged-in member ([#216](https://github.com/vendrhub/vendr/issues/216)).
-* Fixed formatting bug in menu actions interceptor.
-* Fixed bug in Store Dashboard where error order statuses were linking to the order list view with the wrong query string parameter.
-
-### v1.4.1
-
-**Date:** 2020-12-21\
-**Description:** Patch release with minor bug fixes and enhancements
-
-* Fixed bug with license checking erroring during Umbraco Deploy deployments ([#233](https://github.com/vendrhub/vendr/issues/233)).
-* Fixed issue with order confirmation email using payment country name in place of shipping country name.
-* Fixed spelling error in auto-generated error email template alias.
-* Fixed regression where custom product adapter was not being allowed on a trial license.
-* Updated discounts to apply percentage values differently depending on whether tax is included in prices or not (rounding issue).
-* Fixed error screen when assigning an orders order status prior to finalization due to the activity logger. The activity logger now only logs activity for finalized orders.
-* Updated the `Price` entity to prioritize tax rounding over base price rounding.
-
-## v1.4.0
-
-**Date:** 2020-12-10\
-**Description:** Major breaking changes release
-
-For more details on this release, including a recommended upgrade strategy, please see the [Vendr 1.4.0 RC blog post](https://vendr.net/blog/vendr-1-4-0-release-candidate/).
-
-* Added price adjustments/adjusters.
-* Added amount adjustments/adjusters.
-* Changed licensing factory to support subscription licenses in the future.
-* Discounts are now Price Adjustments and so all price "Discount" related properties have been renamed to "Adjustment" related properties.
-* Because Discounts are now Price Adjustments, Discounts are now no longer calculated as their own calculation pipeline task (`CalculateOrderDiscountsTask`). Instead, there is now an adjustments calculation pipeline task that calculates all adjustments (`ApplyOrderPriceAdjustmentsTask`), of which Discounts are now a type of adjuster (`DiscountsPriceAdjuster`).
-* Because price adjustments can be positive or negative, all discount adjustments are now negative in value (important if you using discounts to calculate a value).
-* All order calculation pipeline tasks related to "Discounts"/"Discounted" have all been renamed to "Adjustments"/"Adjusted" task names. All previous tasks have been marked obsolete with IntelliSense to guide you to the new implementation.
-* Gift Cards are now Amount Adjustments and so all "Gift Card" related properties are now found in the "Adjustment" related properties.
-* Because Gift Cards are now Amount Adjustments, Gift Cards are now no longer calculated as their own calculation pipeline task (`CalculateOrderGiftCardAmountsTask`). Instead, there is now an adjustments calculation pipeline task that calculates all adjustments (`ApplyOrderAmountAdjustmentsTask`), of which Gift Cards are now a type of adjuster (`GiftCardsAmountAdjuster`).
-* Gift Card / Amount Adjustment values are now found on the `TransactionAmount` property rather than the `TotalPrice` property of an order.
-
-### v1.3.5
-
-**Date:** 2020-12-07\
-**Description:** Patch release with minor bug fixes and enhancements
-
-* Fixed a bug in the backoffice rendering of bundled items where total columns were not lining up.
-* Fixed a bug where deleting a discount fired the `DiscountedCodeAdded` validation event and prevented a discount code from being removed ([#222](https://github.com/vendrhub/vendr/issues/222)).
-* Fixed bug in `UmbracoBooleanJsonConverter` not handling null values ([#224](https://github.com/vendrhub/vendr/issues/224)).
-* Added extra logging to cache refreshers so these can be debugged.
-
-### v1.3.4
-
-**Date:** 2020-11-23\
-**Description:** Patch release with minor bug fixes and enhancements
-
-* Bulk actions are now extendable ([#218](https://github.com/vendrhub/vendr/issues/218)).
-* Added validation error when redeeming a discount/gift card where the code doesn't exist.
-* Added order line `bundleId` to uniqueness properties list by default to enforce all bundles being unique order lines.
-* Added `HMACSHA1Hash` helper to payment provider base class.
-* Fixed an issue where logged-in customers weren't assigned to newly created orders ([#213](https://github.com/vendrhub/vendr/issues/213)).
-* Fixed bug in `PropertyValue` constructor not settings `IsServerSideOnly` and `IsReadOnly` to pass in values.
-* Put the Vendr stores tree into the "Commerce" group so that if anyone adds a new tree to the commerce section, the store's node does not appear under a generic "Third Party" group.
-* Fixed spelling mistakes in `RegisteredCustomerInfo` method name.
-* Fixed bug in default Tax Class validation rule being passed the wrong ID to validate.
-* Fixed bug with discount rules provider not filtering "All" rules fulfilled order lines correctly.
-
-### v1.3.3
-
-**Date:** 2020-10-28\
-**Description:** Patch release with minor bug fixes and enhancements
-
-* Added extra hashing method to the Payment Provider base class ([#209](https://github.com/vendrhub/vendr/issues/209)).
-* Added `UnassignFromCustomer` convenience method to order.
-* Stock is now replenished if an order payment status is `Cancelled` ([#196](https://github.com/vendrhub/vendr/issues/196)).
-* Added distributed cache refresher for gift cards ([#212](https://github.com/vendrhub/vendr/issues/212)).
-* Added validation rules to ensure entities set as "defaults" can't be deleted until a new default is set ([#201](https://github.com/vendrhub/vendr/issues/201)).
-* Fixed minor alignment issues on the store actions list ([#192](https://github.com/vendrhub/vendr/issues/192)).
-* Fixed `TotalPrice.TotalDiscount` not taking into account payment/shipping discounts ([#207](https://github.com/vendrhub/vendr/issues/207)).
-* Fixed discount distributed cache refresher not being hooked up ([#211](https://github.com/vendrhub/vendr/issues/211)).
-* Fixed typo in validation error for invalid combination of currency/country ([#205](https://github.com/vendrhub/vendr/issues/205)).
-* Fixed issue where member discounts aren't recalculated when the order customer changes ([#204](https://github.com/vendrhub/vendr/issues/204)).
-* Fixed conditional input break after 7.7 UI breaking change ([#203](https://github.com/vendrhub/vendr/issues/203)).
-* Changed the breakpoint at which the Vendr layout reduces to mobile ([#202](https://github.com/vendrhub/vendr/issues/202)).
-* Changed how percentage discounts work so that they calculate the percentage of pre-tax + tax prices rather than the pre-tax + the orders tax rate.
-
-### v1.3.2
-
-**Date:** 2020-10-05\
-**Description:** Patch release with minor bug fixes and enhancements
-
-* Added unique code validation rule for Gift Cards.
-* Expose the NPoco database type in the DatabaseUnitOfWork.
-* Fixed a bug where users would get logged out when editing discounts/gift cards due to the tree Controller checking the wrong permission ([#197](https://github.com/vendrhub/vendr/issues/197)).
-* Fixed SQL date error in the Analytics section when using **British English - English** DB culture ([#198](https://github.com/vendrhub/vendr/issues/198)).
-* Removed redundant code fetching members in order editor ([#185](https://github.com/vendrhub/vendr/issues/185)).
-
-### v1.3.1
-
-**Date:** 2020-10-05\
-**Description:** Patch release with minor bug fixes and enhancements
-
-* Added `Formatted()` extension method to `DiscountedPrice`.
-* Added extra methods to order service to get Finalized, Open, and All orders for a customer.
-* Added Region info to billing/shipping address details ([#180](https://github.com/vendrhub/vendr/issues/180)).
-* Added Discount entity to DiscountRuleContext inline with DiscountRewardContext ([#189](https://github.com/vendrhub/vendr/issues/189))
-* Added `StoreActionsRenderingNotification` and `ActivityLogEntriesRenderingNotification` events to allow extending the store dashboard.
-* Added support for a `VendrLicensesDirectory` app setting to override where licenses are loaded from.
-* Fixed error when deleting an order connected to a Gift Card ([#186](https://github.com/vendrhub/vendr/issues/186)).
-* Fixed a spelling error in the search term model for the item picker directive.
-* Fixed performance issue introduced in 1.3.0 where constantly loading an entity become significantly slower. Introduced a new `EntityStateCacheAccessor` to only use the new transactional entity state cache when necessary ([#191](https://github.com/vendrhub/vendr/issues/191)).
-* Fixed migration error if installing on a site where the Vendr tables already exist, Vendr hasn't been installed yet ([#190](https://github.com/vendrhub/vendr/issues/190)).
-* Removed redundant code fetching members in order editor ([#185](https://github.com/vendrhub/vendr/issues/185)).
-
-## v1.3.0
-
-**Date:** 2020-09-17\
-**Description:** Minor release including new features and some bug fixes/breaking changes
-
-* Added a new store summary dashboard featuring a sales summary, links to pertinent actions as well as an activity log.
-* Added commerce route dashboard giving a summary of stores the current user has access to.
-* Added analytics section to stores to provide basic analytics reporting on the store's performance.
-* Added ability to handle Vendr subscription-based licenses.
-* Added Vendr logo to Umbraco package.
-* Fixed Umbraco 8.8 RC styling issues mostly around icons.
-* `IEntityStateCache` is now no longer an injectable dependency, instead it is accessed via the Unit of Work.
-* List view buttons now use the outline style as per the latest Umbraco.
-* `IProductCalculator` now accepts a `ProductCalculatorContext`.
-* `IUnitOfWork` interface now provides access to the entity state cache.
-* `UnitOfWork` now accepts a `VendrUnitOfWorkTransaction`.
-
-### v1.2.10
-
-**Date:** 2020-09-11\
-**Description:** Patch release with minor bug fixes mostly around the Umbraco 8.7 release
-
-* Fixed a styling bug in the order details header that got missed in the previous release.
-
-### v1.2.9
-
-**Date:** 2020-09-11\
-**Description:** Patch release with minor bug fixes mostly around the Umbraco 8.7 release
-
-* Fixed a bug in the session manager remembering an order after it had been moved to finalized.
-* Fixed bug in UI not matching the same colors used by Umbraco ([#174](https://github.com/vendrhub/vendr/issues/174)).
-* Fixed bug with price + store entity pickers not working correctly in Umbraco 8.7 ([#176](https://github.com/vendrhub/vendr/issues/176)).
-* Fixed a series of style changes in the recent Umbraco 8.7 release.
-
-### v1.2.8
-
-**Date:** 2020-08-21\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Added a new customer info panel accessible via a user icon next to the customer name to be able to display registered customer info + order history ([#129](https://github.com/vendrhub/vendr/issues/129)).
-* Added helpful exception messages if you attempt to create an order but the required store default config isn't yet in place. It now tells you what needs fixing, and how to fix it ([#158](https://github.com/vendrhub/vendr/issues/158)).
-* Use `umb-loader` component in Vendr list view rather than raw markup + css classes ([#161](https://github.com/vendrhub/vendr/issues/161)).
-* Improved accessibility in a number of areas ([#162](https://github.com/vendrhub/vendr/issues/162)).
-* Removed `umb-overlay` directive usage in favor of the `overlayService` ([#163](https://github.com/vendrhub/vendr/issues/163)).
-* Expanded any self-closing directive DOM tags as this is considered bad practice for directives ([#164](https://github.com/vendrhub/vendr/issues/164)).
-* Fixed a bug where creating a new order via the session manager wasn't populating a default shipping country/shipping method ([#156](https://github.com/vendrhub/vendr/issues/156)).
-* Fixed bug in session manager SetDefaultCurrency and SetDefaultTaxClass where exception was thrown if `applyToCurrentOrder` is `true` ([#160](https://github.com/vendrhub/vendr/issues/160)).
-* Add null checks and error logs if there is a problem calculating the order gift card amount if a gift card is deleted ([#167](https://github.com/vendrhub/vendr/issues/167)).
-* Fixed long order line names flowing off-screen. They are now truncated with ... ([#147](https://github.com/vendrhub/vendr/issues/147)).
-* Fixed bug in Member Group Discount Rule throwing an error screen due to DI resource not being found. Now use `IMemberService` for everything.
-* Fixed rounding issue when applying a discount amount but the order line totals calculation doesn't match the price + tax of the discount exactly.
-
-### v1.2.7
-
-**Date:** 2020-07-29\
-**Description:** Patch release with minor bug fixes/enhancements
-
-***
-
-* Added payment provider feature to fetch an order's payment status from the payment gateway when an order is opened in the same way Tea Commerce does.
-* Updated how the stock property editor loads and persists its value so that it doesn't cause a stock update every time it's saved.
-* Orders now finalize if the payment status is anything but Initialized (previously didn't finalize if the status was PendingExternalSystem).
-* The pending payment status is now displayed as purple in the backoffice so that it's not the same color as the canceled status.
-* Updated the store entity picker to support multiple store resolution modes so that the picker can be used outside of the content section ([#141](https://github.com/vendrhub/vendr/issues/141)).
-* Fixed bug when creating US country regions from preset ([#159](https://github.com/vendrhub/vendr/issues/159)).
-* Fixed issue with payment provider continue/cancel/error URLs escaping query strings ([#157](https://github.com/vendrhub/vendr/issues/157)).
-* Fixed <= price discount rule not displaying correct symbol ([#155](https://github.com/vendrhub/vendr/issues/155)).
-
-### v1.2.6
-
-**Date:** 2020-07-02\
-**Description:** Patch release with minor bug fixes/enhancements and some breaking changes
-
-* Thawing prices now causes existing, unfinalized orders to recalculate and re-freeze prices at the current rate ([#145](https://github.com/vendrhub/vendr/issues/145)).
-* Fixed error screen when applying a discount with multiple rewards for the same price target. Applied discounts now accumulate all rewards per price type ([#136](https://github.com/vendrhub/vendr/issues/136)).
-* Fixed a bug in discounts where the "Block discount if previous discounts already apply" setting was not being honored ([#142](https://github.com/vendrhub/vendr/issues/142)).
-* Fixed bug in discounts where Order Total based percentage discounts were not being applied ([#143](https://github.com/vendrhub/vendr/issues/143)).
-* Fixed error when creating an order and adding order lines in the same UoW. This ultimately came down to the price freezing logic freezing prices too early. For new orders, prices are now frozen after the initial save ([#140](https://github.com/vendrhub/vendr/issues/140)).
-* Fixed an issue in migrations where some installs seem to convert unique indexes into unique constraints and so an error is thrown when attempting to drop the index. We now check to see if a constraint exists first and then perform the appropriate task ([#116](https://github.com/vendrhub/vendr/issues/116)).
-* `IShippingCalculator` methods now take in `ShippingCalculatorContext` with a reference to the current order/order calculation should one be available ([#146](https://github.com/vendrhub/vendr/issues/146)).
-* `IPaymentCalculator` methods now take in `PaymentCalculatorContext` with a reference to the current order/order calculation should one be available ([#146](https://github.com/vendrhub/vendr/issues/146)).
-
-### v1.2.5
-
-**Date:** 2020-06-17\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Added license warning message to gift cards, discounts, and store settings sections.
-* Fixed the issue where the sort dialog displays the wrong error message if there is an error whilst sorting ([#131](https://github.com/vendrhub/vendr/issues/131)).
-* Fixed issue where Dates were incorrect due to use of DateTime.Now rather than DateTime.UtcNow ([#134](https://github.com/vendrhub/vendr/issues/134)).
-* Fixed rounding issue in order calculation ([#126](https://github.com/vendrhub/vendr/issues/126)).
-* Fixed issue with the entity cache storing null values which shouldn't be allowed.
-* Fixed issue where setting an explicit sort order on a new entity would be ignored on save.
-* Fixed regression issue from 1.2.3 where loading orders from the database was switching the order id and currency id of the order causing calculation problems.
-* Fixed issue with spelling mistake in discount rules / reward configurations for `Amounts Include Tax` properties ([#135](https://github.com/vendrhub/vendr/issues/135)).
-* Fixed the issue with discounts not maintaining their sort order when loading from the database ([#132](https://github.com/vendrhub/vendr/issues/132)).
-* Deprecated "Master" terminology in the code base so `MasterRelation` is now `ProductSource` (This is currently deprecated so the existing `MasterRelation` will still work, but moving forward `ProductSource` will be the recommended terminology).
-* Updated the payment methods and create-dialog to exclude any payment providers marked with an `[Obsolete]` attribute. Obsolete payment providers can still be used, but they won't be selectable for new payment methods.
-* Removed the sort option from the Gift Cards section as gift cards aren't sortable ([#131](https://github.com/vendrhub/vendr/issues/131)).
-* Made the `Order.InitializeTransaction` method public to allow people to create and finalize a transaction in code without having to go via a payment gateway.
-* Store `Create` method extended to make store auto population configurable. This is needed for Vendr.Deploy.
-
-### v1.2.4
-
-**Date:** 2020-06-12\
-**Description:** Patch release with minor bug fixes / enhancements and some minor breaking changes
-
-* Added support for `UmbracoLicensesDirectory` app setting to define where licenses are located ([#119](https://github.com/vendrhub/vendr/issues/119)).
-* Added `CanProcessOrder` method to payment providers so that payment providers can pre-check whether they would be capable of processing a given order.
-* Fixed an issue where it wasn't possible to update a product's stock back to the previously entered stock level ([#127](https://github.com/vendrhub/vendr/issues/127)).
-* Fixed issue where multiple operations within a single UoW were not being persisted due to stale state not getting updated correctly ([#128](https://github.com/vendrhub/vendr/issues/128)).
-* Fixed issue with the `Extract` helper method throwing an exception if the given item to extract couldn't be found.
-* Fixed issue where null order/order line properties would cause persistence error.
-* Updated the percentage amount discounts rewards to only allow positive percentage values ([#113](https://github.com/vendrhub/vendr/issues/113)).
-* Renamed the `Persistance` namespace to the correct `Persistence` spelling. This is a breaking change, but people shouldn't be using the persistence resources directly.
-* Moved `ValidationError` to `Models` namespace. This is a breaking change, but people shouldn't be using the `ValidationError` model directly.
-* With the introduction of the `UmbracoLicensesDirectory` app setting, if you are running on Umbraco Cloud and have a license installed, because Umbraco Cloud auto sets this setting to `~\App_Plugins\UmbracoLicenses\` you will need to move your license files from the `App_Data` folder to this new location.
-
-### v1.2.3
-
-**Date:** 2020-06-05\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Fixed issue with recent gift card config settings not being copied when a store is deep cloned.
-* Fixed issue with the store "allowed users" not persisting due to incorrect variable name in views.
-* Fixed issue where domain events that affect the saving entity model were not being persisted due to a variable reference issue and deep comparisons not working.
-* Fixed the issue with the sort dialog close button not working ([#123](https://github.com/vendrhub/vendr/issues/123)).
-* Fixed issue where deleted gift cards were still showing in list view ([#124](https://github.com/vendrhub/vendr/issues/124)).
-* Fixed issue where stock values were being cached at the page level where they should be at the request level ([#125](https://github.com/vendrhub/vendr/issues/125)).
-* Only show payment/shipping "via" in the backoffice if a payment/shipping method is known.
-* Added script to NuGet packages to auto increment client dependency version.
-* Order calculation now rounds prices to the currencies defined decimal places level after each calculation step in order to prevent rounding issues ([#126](https://github.com/vendrhub/vendr/issues/126)).
-* Payment Provider cancel, continue, and callback URL hashes now include the actual URL, and not only the reference as part of the hash. This is to prevent tampering of the URLs.
-* Session cookies are now flagged as `HttpOnly` (this can be disabled by setting an app setting `Vendr:Cookies:HttpOnly` to `false`), and when the site is accessed over HTTPS, also flagged as `Secure`. This is to protect the session cookies from being hijacked by malicious entities.
-* The current finalized order is now stored in its own session cookie with a limited lifetime of 5 minutes providing enough time to display a confirmation page, but no longer persisting until a new order took its place.
-
-### v1.2.1/2
-
-**Date:** 2020-05-28\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Fixed bug in discount service preventing discount/gift cards from being redeemed 🤦♂️
-* Reverted fix for ([#116](https://github.com/vendrhub/vendr/issues/116)) as it was preventing clean installs so needs investigating further 🤦♂️
-
-## v1.2.0
-
-**Date:** 2020-05-28\
-**Description:** Minor version release predominantly for the Gift Cards feature with a few bug fixes too
-
-* Added gift cards feature which includes a new sub-section in the commerce section along with the ability to create gift cards manually and additional automation for automatically creating gift cards and sending gift card emails when a gift card is purchased.
-* Added `IGiftCardCodeGenerator` to allow for a custom gift card code generation strategy.
-* Added Zero Value payment provider in core to allow the passing through of orders whose final value is 0 and thus no payment needs to be taken. This will be up to the implementer however to set up and select this payment method accordingly.
-* Added gift card service methods to the global `IVendrApi` helper.
-* Added support of dynamic lambda statements in the syntax of `{Model.Value}` in email template subject lines ([#107](https://github.com/vendrhub/vendr/issues/107)).
-* Added validation to the `AddProduct` method to ensure a price for the order currency exists.
-* Added `_ViewStart.cshtml` file to the Vendr views folder to reset any global layout that might have been defined ([#117](https://github.com/vendrhub/vendr/issues/117)).
-* Fixed NullReference exception when adding a product to an order when missing a price ([#112](https://github.com/vendrhub/vendr/issues/112)).
-* Fixed a number of migration SQL errors when upgrading using SQL Server ([#116](https://github.com/vendrhub/vendr/issues/116)).
-* Fixed error with discount property rule not working correctly when a property doesn't exist ([#115](https://github.com/vendrhub/vendr/issues/115)).
-* Fixed bug with discount code validation incorrectly reporting the discount code is already in use.
-* Store configuration now has additional gift card configuration fields.
-* Email Templates now have a category used to filter the email templates to display in "send email" dialogs.
-* Updated the store create-pipeline to auto-create the default gift card email.
-* Updated the store create-pipeline to assign generated emails to the relevant categories.
-* Send email dialogs now have the ability to override the `To` address before sending.
-* Improved the `PricePropertyValue` model's `HasValue` method to also check for null values.
-* Updated the `UmbracoProductSnapshot.Prices` property to check for values for the given currency before assuming it has a value.
-* `IProductAdapater` interface now has a new `IsGiftCard` property.
-
-### v1.1.4
-
-**Date:** 2020-05-19\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Fixed JavaScript error when refreshing the order list view after an order is deleted ([#96](https://github.com/vendrhub/vendr/issues/96)).
-* Fixed formatting issue in table view selection message where `X of Y` the message was being displayed without spaces.
-* Fixed error screen when deleting an order line that has discounts applied to it ([#98](https://github.com/vendrhub/vendr/issues/98)).
-* Fixed order lines are limited to a max of 100 quantities ([#101](https://github.com/vendrhub/vendr/issues/101)).
-* Fixed error in backoffice when displaying the transaction info dialog when some keys have an empty value ([#104](https://github.com/vendrhub/vendr/issues/104)).
-* Fixed error when adding a suborder line to a bundle ([#106](https://github.com/vendrhub/vendr/issues/106)).
-
-### v1.1.3
-
-**Date:** 2020-05-06\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Patch release `dll` timestamp is not formatted in the correct way.
-* Fixed bug in TaxClassRepository.GetIdByAlias method which had a malformed SQL statement.
-* Fixed NuGet install script not working correctly in directories containing spaces.
-* When saving a product node with a stock property, only sync the value back to the stock database table if the property is dirty ([#93](https://github.com/vendrhub/vendr/issues/93)).
-
-### v1.1.2
-
-**Date:** 2020-05-05\
-**Description:** Patch release with minor bug fixes / enhancements
-
-* Added `*.xip.io`, `*.nip.io` and `*.sslip.io` as valid test domains.
-* Added strongly typed value converter for the store entity picker property editor.
-* Added missing validation events for Discount code add/update/remove.
-* Added validation events to all entities to validate the uniqueness of aliases/codes.
-* Added `Exists` methods to all entity services to make it easier to check for the existence of an entity.
-* Fixed bug in product uniqueness logic throwing an error if you add a product with no uniqueness properties after one that is already in the cart ([#88](https://github.com/vendrhub/vendr/issues/88)).
-* Fixed build script formatting the patch release timestamp incorrectly.
-* Fixed error when removing items from a cart and using SQL CE. This was due to a SQL statement that doesn't work on SQL CE. Now updated to work across the board ([#89](https://github.com/vendrhub/vendr/issues/89)).
-* Fixed bug where discount codes declared on deleted discounts couldn't be reused ([#91](https://github.com/vendrhub/vendr/issues/91)).
-* Discount aliases are now validated before saving and display a friendly error message ([#91](https://github.com/vendrhub/vendr/issues/91)).
-* Changed picker property editor 'add' buttons to use a button element, rather than a link tag ([#86](https://github.com/vendrhub/vendr/issues/86)).
-* Changed table view 'create' buttons to use a button element, rather than a link tag ([#87](https://github.com/vendrhub/vendr/issues/87)).
-* Implemented friendlier display of validation errors ([#91](https://github.com/vendrhub/vendr/issues/91)).
-
-### v1.1.1
-
-**Date:** 2020-04-29\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Fixed issue with the v1.1.0 NuGet package not copying email templates to the Views folder 🤦♂️.
-
-### v1.1.0
-
-**Date:** 2020-04-29\
-**Description:** Minor release with new features and some minor bug fixes/enhancements
-
-* Added "Unlimited" checkbox to discount codes to allow them to have unlimited usage ([#50](https://github.com/vendrhub/vendr/issues/50)).
-* Added basic Order/Payment Status filters to the Order list ([#63](https://github.com/vendrhub/vendr/issues/63)).
-* Added escape key shortcut to close Discount rule/rewards settings editor dialog ([#60](https://github.com/vendrhub/vendr/issues/60)).
-* Added feedback when copying order details to clipboard ([#22](https://github.com/vendrhub/vendr/issues/22)).
-* Added a new store entity picker property editor to merge together all store entity pickers. Tax Class picker is now obsolete in favour of this new picker.
-* Added email templates for the default Confirmation / Error emails.
-* Fixed error when accessing transaction info for an order where the Payment Provider no longer existed. Now perform null checks on data ([#58](https://github.com/vendrhub/vendr/issues/58)).
-* Fixed issue with NuGet packages not copying content files on upgrade. Added a PowerShell script to perform the copy.
-* Fixed bug where customer details weren't being persisted into the dedicated fields in the database table (they are still present in the properties collection where they are referenced from 99% of the time) ([#85](https://github.com/vendrhub/vendr/issues/85)).
-* Rule / Reward builders now support infinite editing when creating a rule so closing the editor via the 'close' link now goes back to the rule / reward picker. ([#81](https://github.com/vendrhub/vendr/issues/81)).
-* Removed code for shipping method / payment method picker property editors in favour of the new store entity picker. These were never made public as actual property editors, as they were only used by the rule / reward builder so this won't be classed as a breaking change.
-
-### v1.0.3
-
-**Date:** 2020-04-24\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Added missing Product discount rule to discounts rule builder ([#76](https://github.com/vendrhub/vendr/issues/76)).
-* Added basic Order Line Amount Reward that applies to all Order Lines.
-* Product prices now thaw when the last product of a type is removed from the cart ([#71](https://github.com/vendrhub/vendr/issues/71)).
-* Fixed error when saving a property with a null value. The property is now removed if the value is null ([#78](https://github.com/vendrhub/vendr/issues/78)).
-* Changed the name of the Products Order Line Amount Reward to Order Line (with Product) Amount Reward as it's more descriptive of its purpose.
-
-### v1.0.2
-
-**Date:** 2020-04-15\
-**Description:** Patch release with minor bug fixes/enhancements
-
-* Added the ability to delete an order from the action menu.
-* Added permission checks to all entity controller actions.
-* Fixed ability to delete orders ([#49](https://github.com/vendrhub/vendr/issues/49)).
-* Fixed issue with orders not finalizing if an error occurs sending emails. Email sending is now wrapped in a try-catch that logs errors to the error log instead ([#52](https://github.com/vendrhub/vendr/issues/52)).
-* Fixed bug in EmailTemplateService.SendEmail where it wasn't sent to the supplied To email address unless "Send to Customer" on the email template was checked. This setting now only applies if you call the SendEmail method version that accepts an Order. The signature with the explicit `toEmailAddress` parameter will always send to the provided email address ([#54](https://github.com/vendrhub/vendr/issues/54)).
-* Percentage reward inputs now only accept decimals ([#59](https://github.com/vendrhub/vendr/issues/59)).
-* Fixed property discount rule, property alias field description describing the wrong thing ([#62](https://github.com/vendrhub/vendr/issues/62)).
-* Changed payment status colours so Authorized is now blue and Refunded is orange so that Refunded doesn't look like an error ([#61](https://github.com/vendrhub/vendr/issues/61)).
-
-### v1.0.1
-
-**Date:** 2020-04-06\
-**Description:** Patch release with minor fixes found post-launch
-
-* Fixed the wrong license URL displayed in the installer.
-* Fixed stock input field not allowing a stock level greater than 100 ([#44](https://github.com/vendrhub/vendr/issues/44)).
-* Fixed stock input field rounding decimal stock levels on save ([#45](https://github.com/vendrhub/vendr/issues/45)).
-* Updated all caches to use a `GetOrAddIfNotNull` method to ensure null entities don't end up in the internal cache.
-
-## v1.0.0
-
-**Date:** 2020-03-30\
-**Description:** Initial Vendr release
diff --git a/14/umbraco-commerce/getting-started/install.md b/14/umbraco-commerce/getting-started/install.md
deleted file mode 100644
index 87675b8f70f..00000000000
--- a/14/umbraco-commerce/getting-started/install.md
+++ /dev/null
@@ -1,142 +0,0 @@
----
-description: >-
- Learn the steps needed in order to install Umbraco Commerce into your Umbraco CMS website.
----
-
-# Installation
-
-In this article, you will learn how to install Umbraco Commerce into your Umbraco CMS implementation.
-
-## Prerequisites
-
-For system requirements, see the [Requirements](../getting-started/requirements.md) article.
-
-## Umbraco Commerce Installation
-
-There are different ways to install Umbraco Commerce:
-
-- [NuGet Package Installation](#nuget-package-installation)
-- [Visual Studio Installation](#visual-studio-installation)
-
-### NuGet Package Installation
-
-Umbraco Commerce is available via [NuGet.Org](https://www.nuget.org/packages/Umbraco.Commerce/).
-
-To install Umbraco Commerce via NuGet:
-
-1. Run the following command in the NuGet Manager Console window:
-
- ```bash
- dotnet add package Umbraco.Commerce
- ```
-
-2. Restart the application using the following command:
-
- ```bash
- dotnet run
- ```
-
-### Visual Studio Installation
-
-To install via Visual Studio, follow these steps:
-
-1. Open your project in Visual Studio.
-2. Go to **Tools** -> **NuGet Package Manager** -> **Manage NuGet Packages for Solution...**
-3. Browse for **Umbraco.Commerce**.
-
- 
-
-4. Select the appropriate version from the **Version** drop-down depending on the Umbraco version you are using.
-5. Click **Install**.
-6. Ensure that the package reference is added to the **.csproj** file once the installation is complete:
-
- ```cs
-
-
-
- ```
-
-For most projects, you only need a single package to install Umbraco Commerce. But if your solution is more complex with multiple projects, Umbraco Commerce provides sub-packages to match different dependencies.
-
-
-
-
-
Sub-package
-
Description
-
-
-
-
-
Umbraco.Commerce.Common
-
A shared project of common, non-Commerce-specific patterns and helpers.
-
-
-
Umbraco.Commerce.Core
-
Core Commerce functionality that doesn't require any infrastructure-specific dependencies.
-
-
-
Umbraco.Commerce.Infrastructure
-
Infrastructure-specific project containing implementations of core Commerce functionality.
-
-
-
Umbraco.Commerce.Persistence.SqlServer
-
Persistence-specific project containing implementations of core Commerce persistence functionality for SQL Server.
-
-
-
Umbraco.Commerce.Persistence.Sqllite
-
Persistence-specific project containing implementations of core Commerce persistence functionality for SQLite.
-
-
-
Umbraco.Commerce.Web
-
Core Commerce functionality that requires a web context.
-
-
-
Umbraco.Commerce.Cms
-
Core Commerce functionality that requires an Umbraco dependency.
-
-
-
Umbraco.Commerce.Cms.Web
-
The Commerce functionality for the Umbraco presentation layer.
-
-
-
Umbraco.Commerce.Cms.Web.Api
-
A shared project of common API specific functionality.
-
-
-
Umbraco.Commerce.Cms.Web.Api.Management
-
The backoffice Management API layer.
-
-
-
Umbraco.Commerce.Cms.Web.Api.Payment
-
The Payment handling API layer.
-
-
-
Umbraco.Commerce.Cms.Web.Api.Storefront
-
The frontend Storefront API layer.
-
-
-
Umbraco.Commerce.Cms.Web.UI
-
The static Commerce assets for the Umbraco presentation layer.
-
-
-
Umbraco.Commerce.Cms.Startup
-
The Commerce functionality for registering Commerce with Umbraco.
-
-
-
Umbraco.Commerce
-
The main Commerce package entry point package.
-
-
-
-
-{% hint style="info" %}
-If you encounter an SQLite error after installing Umbraco Commerce, you may need to enable SQLite support. For more information, see the [Configure SQLite support](../how-to-guides/configure-sqlite-support.md) article.
-{% endhint %}
-
-## Installing a License
-
-For details on how to install a license, see the [Licensing](../getting-started/the-licensing-model.md) article.
-
-## Using Umbraco Commerce
-
-Once Umbraco Commerce is installed, you can find it in the Umbraco backoffice under the **Settings** and **Content** sections. To access the **Commerce** section, additional configuration is required. For more details, see the [Configuration](../getting-started/umbraco-configuration.md) article.
diff --git a/14/umbraco-commerce/getting-started/requirements.md b/14/umbraco-commerce/getting-started/requirements.md
deleted file mode 100644
index 51b3d636f50..00000000000
--- a/14/umbraco-commerce/getting-started/requirements.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-description: Getting Started with Umbraco Commerce.
----
-
-# Requirements
-
-In this article, you will find the key steps needed to get started with Umbraco Commerce.
-
-It is assumed that you have an Umbraco 14+ website configured and ready for the Umbraco Commerce installation.
-
-{% hint style="info" %}
-For detailed instructions on installing the latest version of Umbraco, refer to the [Umbraco CMS documentation](https://docs.umbraco.com/umbraco-cms/fundamentals/setup/install).
-{% endhint %}
-
-## System Requirements
-
-The minimum requirements for using Umbraco Commerce are:
-
-* Umbraco CMS version 14+
-* SQL Server 2015+ Database
- * **SQLite** is acceptable for testing but not recommended for live deployments. For more details, see the [Configuring SQLite support](../how-to-guides/configure-sqlite-support.md) article.
-
-## Versioning
-
-Umbraco Commerce is an add-on product for Umbraco CMS and follows the [versioning strategy outlined for Umbraco CMS](https://umbraco.com/products/knowledge-center/versioning-and-release-cadence/).
diff --git a/14/umbraco-commerce/getting-started/the-licensing-model.md b/14/umbraco-commerce/getting-started/the-licensing-model.md
deleted file mode 100644
index b232f3c9bf3..00000000000
--- a/14/umbraco-commerce/getting-started/the-licensing-model.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# Licensing
-
-Umbraco Commerce is a commercial product. You can run Umbraco Commerce unrestricted locally without the need for a license. Running Umbraco Commerce in the public domain will display a warning banner in the backoffice and will limit the maximum number of orders to 20. To remove these restrictions, you'll need to have a **valid license**.
-
-## How does it work?
-
-Licenses are sold per backoffice domain and will also work on all subdomains. If you have alternative staging/QA environment domains, additional domains can be added to the license on request.
-
-{% hint style="info" %}
-The licenses are not bound to a specific product version. They will work for all versions of the related product.
-{% endhint %}
-
-Let's say that you have a license configured for your domain, `mysite.com`, and you've requested two development domains, `devdomain.com` and `devdomain2.com`.
-
-The license will cover the following domains:
-
-* `localhost`
-* `*.local`
-* `*.mysite.com`
-* `www.mysite.com`
-* `devdomain.com`
-* `www.devdomain.com`
-* `devdomain2.com`
-* `www.devdomain2.com`
-
-{% hint style="info" %}
-You can have only 1 license per Umbraco installation.
-{% endhint %}
-
-## What does a license cover?
-
-There are a few differences as to what the licenses cover:
-
-* A single license covers the installation of Umbraco Commerce in 1 production backoffice domain, as well as in any requested development domains.
-* The production domain includes **all subdomains** (e.g. `*.mysite.com`).
-* The development domains work with or without the `www` subdomain.
-* The license allows for an unlimited number of orders.
-* The license also includes `localhost` and `*.local` as a valid domain.
-
-{% hint style="info" %}
-If you have multiple backoffice domains pointing at the same installation, you have the option to purchase and [add **additional domains**](the-licensing-model.md#add-additional-domains) to your license.
-
-This is an add-on domain for existing licenses. Refunds will not be given for this product.
-{% endhint %}
-
-## Configuring your license
-
-You can look at the pricing, features, and purchase a license on the [Umbraco Commerce](https://umbraco.com/products/add-ons/commerce/) page. A member of the sales team will manage this process. You will need to provide all domains you wish to have covered by the license such as primary and development/staging/QA domains. You should then receive a license code to be installed in your solution.
-
-### Add additional domains
-
-If you require to add addition domains to the license, [reach out the sales team](https://umbraco.com/products/add-ons/commerce/) with your request and they will manage this process.
-
-## Installing your license
-
-Once you have received your license code it needs to be installed on your site.
-
-1. Open the root directory for your project files.
-2. Locate and open the `appSettings.json` file.
-3. Add your Umbraco Commerce license key to `Umbraco:Licenses:Products:Umbraco.Commerce`:
-
-```json
-"Umbraco": {
- "Licenses": {
- "Products": {
- "Umbraco.Commerce": "YOUR_LICENSE_KEY"
- }
- }
-}
-```
-
-{% hint style="info" %}
-You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems.
-
-```json
-"Umbraco_Commerce": "YOUR_LICENSE_KEY"
-```
-{% endhint %}
-
-### Verify the license installation
-
-You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a license dashboard which should display the status of your license.
-
-
-
-### When and how to configure an `UmbracoApplicationUrl`
-
-If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`.
-
-If you have different domains for your frontend and backend, then it's advised that you configure an `UmbracoApplicationUrl` set to your backoffice URL. This helps the licensing engine know which URL should be used for validation checks. Without this configuration setting, the licensing engine will try and work out the domain to validate from the HTTP request object. This can lead to errors when switching between domains.
-
-An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so:
-
-```json
-{
- "Umbraco": {
- "CMS": {
- "WebRouting": {
- "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/"
- }
- }
- }
-}
-```
-
-See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting.
-
-#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud
-
-If you are hosting on Umbraco Cloud you will find the configuration described above won't be reflected in your environment. The reason for this is that Umbraco Cloud sets this value as an environment variable set to the Cloud project domain (`.umbraco.io`). This overrides what is set via the `appSettings.json` file.
-
-There are two options in this case:
-
-* Either the domains for each of your Cloud environments can be added to your license.
-* Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code.
-
-For example, in your `Program.cs`:
-
-```csharp
-services.Configure(o => o.UmbracoApplicationUrl = "");
-```
-
-In practice, you will probably want to make this a bit more sophisticated. You can read the value from another configuration key, removing the need to hard-code it and have it set as appropriate in different environments. You can also move this code into a composer or an extension method if you prefer not to clutter up the `Program.cs` file.
-
-### Validating a license without an outgoing Internet connection
-
-Some Umbraco installations will have a highly locked down production environment, with firewall rules that prevent outgoing HTTP requests. This will interfere with the normal process of license validation.
-
-On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Commerce will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`.
-
-If it's possible to do so, the firewall rules should be adjusted to allow this request.
-
-If such a change is not feasible, there is another approach you can use.
-
-You will need to have a server, or serverless function, that is running and can make a request to the online license validation service. That needs to run on a daily schedule, making a request and relaying it onto the restricted Umbraco environment.
-
-To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 13.1 or higher. If the version of Commerce you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`.
-
-Then configure a random string as an authorization key in configuration. This is used as protection to ensure only valid requests are handled. You can also disable the normal regular license checks - as there is no point in these running if they will be blocked:
-
-```json
- "Umbraco": {
- "Licenses": {
- "Umbraco.Commerce": ""
- },
- "LicensesOptions": {
- "EnableScheduledValidation": false,
- "ValidatedLicenseRelayAuthKey": ""
- }
-```
-
-Your Internet-enabled server should make a request of the following form to the online license validation service:
-
-```
-POST https://license-validation.umbraco.com/api/ValidateLicense
-{
- "ProductId": "Umbraco.Commerce",
- "LicenseKey": "",
- "Domain": ""
-}
-```
-
-The response should be relayed exactly via an HTTP request to your restricted Umbraco environment:
-
-```
-POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey=
-```
-
-A header with a key of `X-AUTH-KEY` and the value of the authorization key you have configured should be provided.
-
-This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed.
diff --git a/14/umbraco-commerce/getting-started/umbraco-configuration.md b/14/umbraco-commerce/getting-started/umbraco-configuration.md
deleted file mode 100644
index edd69d2948e..00000000000
--- a/14/umbraco-commerce/getting-started/umbraco-configuration.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-description: Configuring Umbraco for Umbraco Commerce.
----
-
-# Configuration
-
-Before you can start to use Umbraco Commerce, you need to configure Umbraco to allow access to the relevant sections. The Umbraco Commerce UI is split over three sections within the Umbraco backoffice:
-
-* **Settings** for managing the different store settings.
-* **Commerce** for managing store-related content (orders, discounts, etc).
-* **Content** for managing the Umbraco Commerce products.
-
-In order to access these sections, you will need to ensure a User account with the relevant permissions to do so. When logged in as Administrator, access to the **Settings** and **Content** sections is already granted.
-
-To gain access to the **Commerce** section additional configuration is needed.
-
-## Creating a Commerce User Group
-
-To gain access to the **Commerce** section, it is advised to create a new User Group called **Commerce**.
-
-1. Navigate to the **User** section of the Umbraco backoffice.
-2. Open the **User Groups** page.
-3. Create a new User Group called **Commerce**.
-4. Allow that User Group access to the **Commerce** section as a whole.
-5. Click **Save**.
-6. Navigate to the **Users** section.
-7. Click on the User.
-8. Choose **Commerce** in the **Groups** field to assign the user access to the Commerce section.
-9. Click **Save**.
-
-Creating a custom User Group provides a way of managing Users who have access to the **Commerce** section, rather than allowing individual Users access.
-
-Learn more about [Users and User Groups in the Umbraco CMS Documentation](https://docs.umbraco.com/umbraco-cms/fundamentals/data/users).
-
-
-
-## Accessing the Commerce Section
-
-Once created and assigned, you should be able to refresh the backoffice and see that we now have access to the new **Commerce** section.
-
-
diff --git a/14/umbraco-commerce/getting-started/user-interface.md b/14/umbraco-commerce/getting-started/user-interface.md
deleted file mode 100644
index 245264e5800..00000000000
--- a/14/umbraco-commerce/getting-started/user-interface.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-description: The User Interface for Umbraco Commerce.
----
-
-# User Interface
-
-The Umbraco Commerce UI consists of a number of key areas, split over three sections within the Umbraco backoffice:
-
-* **Settings** for managing the different store settings.
-* **Commerce** for managing store-related content (orders, discounts, etc).
-* **Content** for managing the Umbraco Commerce products.
-
-## Settings Section
-
-The **Settings** section is where the configuration of all Store settings is managed. From here you can manage how the Store works as well as what options will be available within the Store.
-
-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.
-
-
-
-
-
-Each Store has a number of key areas of configuration accessible within the **Settings** section:
-
-* **Store**: Each Store node contain Store level configuration settings.
-* **Locations** contain the configuration of the different locations of the store.
-* **Order Statuses** contain the configuration of the different Statuses an order can be in. Think of these as an organizational structure for your Orders.
-* **Shipping Methods** contains the list of Shipping Methods available to a Store.
-* **Payment Methods** contains the list of Payment Methods available to a Store.
-* **Countries** contain the list of Countries the Store is able to trade with.
-* **Currencies** contain the list of accepted Currencies for the Store.
-* **Taxes** contains the list of Tax Classes and their Tax Rates for the Store.
-* **Email Templates** contains the list of Email Templates supported by the Store.
-* **Print Templates** contains the list of Print Templates supported by the Store.
-* **Export Templates** contains the list of Export Templates supported by the Store.
-
-## Commerce Section
-
-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.
-
-
-
-
-
-## Content Section
-
-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.
-
-
diff --git a/14/umbraco-commerce/how-to-guides/add-item.md b/14/umbraco-commerce/how-to-guides/add-item.md
deleted file mode 100644
index ab0b9282f76..00000000000
--- a/14/umbraco-commerce/how-to-guides/add-item.md
+++ /dev/null
@@ -1,199 +0,0 @@
----
-description: How-To Guide to add an item to your cart.
----
-
-# Add item to Cart
-
-To add an item to the cart, configure Umbraco with a store and add the necessary properties for interaction. Learn more by following the [Getting started with Umbraco Commerce: The Backoffice tutorial](../tutorials/getting-started-with-commerce.md).
-
-You will need the front end to be set up to allow an item to be added to the cart. This can be done by adding a button to the front end to call the Action to add the item to the cart.
-
-Create a new Document Type with the template. Call it **Product Page** with the following property aliases: `productTitle`, `productDescription`, `price`, `stock`.
-
-The following property editors are recommended to be used for the above:
-
-* `productTitle`: TextString
-* `productDescription`: TextArea
-* `price`: Umbraco Commerce Price
-* `stock`: Umbraco Commerce Stock
-
-The Product Page template can be implemented as shown below.
-
-```csharp
-@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
-@{
-var store = Model.Value("store", fallback: Fallback.ToAncestors);
-var product = CommerceApi.Instance.GetProduct(store.Id, Model.Key.ToString(), "en-GB");
-var price = product.TryCalculatePrice().ResultOrThrow("Unable to calculate product price");
-}
-```
-
-The code above does the following:
-
-- You need to access the store to access the relevant properties for your product, such as price. The store has a fallback property allowing you to traverse the tree to find the store.
-- You retrieve the product based on the store and a reference for the product. The 'productReference' comes from the Model which is a single product.
-- The Product is returned as a ProductSnapshot which is Umbraco Commerce obtaining the page ID and carrying out necessary processes to bring in the data for further processing.
-- Finally, you need to calculate the price which is then displayed without VAT. This can also be displayed with VAT.
-
-To display this you need to add some markup or at least amend it to include a button to add an item. Add the following to the same file:
-
-```csharp
-@using (Html.BeginUmbracoForm("AddToCart", "CartSurface"))
-{
- @Html.Hidden("productReference", Model.Key.ToString())
-
- }
- else
- {
-
- }
-
-}
-```
-
-The hidden field uses the `productReference` to be passed across to the Controller.
-
-## Adding the Controller
-
-For the button to work, you need to implement a controller. An example of this is shown below.
-
-Create a new Controller called `CartSurfaceController.cs`.
-
-{% hint style="warning" %}
-
-The namespaces used in this Controller are important and need to be included.
-
-```
-using Microsoft.AspNetCore.Mvc;
-using Umbraco.Cms.Core.Cache;
-using Umbraco.Cms.Core.Logging;
-using Umbraco.Cms.Core.Models.PublishedContent;
-using Umbraco.Cms.Core.Routing;
-using Umbraco.Cms.Core.Services;
-using Umbraco.Cms.Core.Web;
-using Umbraco.Cms.Infrastructure.Persistence;
-using Umbraco.Cms.Web.Website.Controllers;
-using Umbraco.Commerce.Common.Validation;
-using Umbraco.Commerce.Core.Api;
-using Umbraco.Commerce.Core.Models;
-using Umbraco.Commerce.Extensions;
-using Umbraco.Extensions;
-```
-
-{% endhint %}
-
-```csharp
-public class CartSurfaceController : SurfaceController
-{
- public CartSurfaceController(IUmbracoContextAccessor umbracoContextAccessor,
- IUmbracoDatabaseFactory databaseFactory,
- ServiceContext services, AppCaches appCaches,
- IProfilingLogger profilingLogger,
- IPublishedUrlProvider publishedUrlProvider,
- IUmbracoCommerceApi commerceApi)
- : base(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
- {
- _commerceApi = commerceApi;
- }
-}
-```
-
-Below you can see the equivalent code for having this as a Primary Constructor:
-
-```csharp
-public class CartSurfaceController(IUmbracoContextAccessor umbracoContextAccessor,
- IUmbracoDatabaseFactory databaseFactory,
- ServiceContext services, AppCaches appCaches,
- IProfilingLogger profilingLogger,
- IPublishedUrlProvider publishedUrlProvider)
- : SurfaceController(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
-{
-}
-```
-
-The CartDto class below is used to pass the `productReference` across to the Controller. This class has only one property for the `productReference`.
-
-```csharp
-public class CartDto
-{
- public string ProductReference { get; set; }
-}
-```
-
-We now need to add the Action to add the item to the cart. This action will be called when the button is clicked.
-
-```csharp
-[HttpPost]
-public IActionResult AddToBasket(CartDto cart)
-{
- commerceApi.Uow.Execute(uow =>
- {
- var store = CurrentPage.Value("store", fallback: Fallback.ToAncestors);
-
- if (store == null) return;
-
- try
- {
- var order = commerceApi.GetOrCreateCurrentOrder(store.Id)
- .AsWritable(uow)
- .AddProduct(cart.ProductReference, 1);
-
- commerceApi.SaveOrder(order);
-
- uow.Complete();
-
- TempData["SuccessFeedback"] = "Product added to cart";
- return RedirectToCurrentUmbracoPage();
- }
- catch (ValidationException ve)
- {
- throw new ValidationException(ve.Errors);
- }
- catch (Exception ex)
- {
- logger.Error(ex, "An error occurred.");
- }
- });
-}
-```
-
-The code above does the following:
-
-- The `store` variable is used to access the store to get the store ID.
-- A try-catch block captures any errors that may occur when adding the item to the cart, including any validation errors.
-- `order` is used to retrieve the current order if one exists or create a new order against the store found. In the Commerce API, everything is read-only for performance so you need to make it writable to add the product.
-- `AddProduct` is called and `productReference` is passed along with the quantity.
-- `SaveOrder` is called to save the order.
-- `TempData` stores a message to be displayed to the user if the product has been added to the cart.
-
-{% hint style="warning" %}
-Umbraco Commerce uses the Unit of Work pattern to complete saving the item (`uow.Complete`). When retrieving or saving data ideally you would want the entire transaction to be committed. However, if there is an error nothing is changed on the database.
-{% endhint %}
-
-Finally, you need to add the `TempData` to tell the user that the product has been added to the cart.
-
-## Add a partial view to display the message
-
-Create a new partial view called `Feedback.cshtml`.
-
-```csharp
-@Html.ValidationSummary(true, "", new { @class = "danger" })
-
-@{
- var success = TempData["SuccessFeedback"]?.ToString();
-
- if (!string.IsNullOrWhiteSpace(success))
- {
-
@success
- }
-}
-```
-
-You can now run the application, click the button, and see the product added to the cart with a message displayed to the user.
diff --git a/14/umbraco-commerce/how-to-guides/configure-sqlite-support.md b/14/umbraco-commerce/how-to-guides/configure-sqlite-support.md
deleted file mode 100644
index 2fbaf3a6b1c..00000000000
--- a/14/umbraco-commerce/how-to-guides/configure-sqlite-support.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-description: How-To Guide to configure SQLite support for Umbraco Commerce.
----
-
-# Configure SQLite support
-
-Out of the box, Umbraco Commerce only supports SQL Server-based databases as this is the recommended database platform for live environments. To aid testing and rapid prototyping, however, Umbraco Commerce can be configured to use an SQLite database.
-
-{% hint style="warning" %}
-Whilst Umbraco Commerce does support SQLite for testing, we do not recommend using it in a live environment. Due to the high levels of active connections required to manage concurrent shopping carts, this is not something SQLite handles well at all.
-{% endhint %}
-
-## Install SQLite dependencies
-
-To add SQLite support, you will need to install the SQLite persistence layer NuGet package for Umbraco Commerce.
-
-```bash
-PM> dotnet add package Umbraco.Commerce.Persistence.Sqlite
-```
-
-Once the NuGet package is installed, you need to register SQLite support with Umbraco Commerce via the [`IUmbracoCommerceBuilder`](../key-concepts/umbraco-commerce-builder.md) interface.
-
-Add .`AddUmbracoCommerce()` below `.AddWebsite()` in the `Program.cs` file.
-
-```csharp
-.AddUmbracoCommerce(builder => {
- builder.AddSQLite();
-})
-```
-
-After configuring Umbraco CMS with SQLite, Umbraco Commerce will automatically utilize the same database configuration. If you wish to install Umbraco Commerce into its own SQLite database you can configure its connection string in the `appSettings.json` like so:
-
-```json
-{
- ...
- "ConnectionStrings": {
- "umbracoDbDSN": "Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Private;Foreign Keys=True;Pooling=True",
- "umbracoDbDSN_ProviderName": "Microsoft.Data.Sqlite",
- "umbracoCommerceDbDSN": "Data Source=|DataDirectory|/Umbraco.Commerce.sqlite.db;Mode=ReadWrite;Foreign Keys=True;Pooling=True;Cache=Private",
- "umbracoCommerceDbDSN_ProviderName": "Microsoft.Data.Sqlite"
- },
- ...
-}
-
-```
diff --git a/14/umbraco-commerce/how-to-guides/delete-item.md b/14/umbraco-commerce/how-to-guides/delete-item.md
deleted file mode 100644
index ec7ac680cef..00000000000
--- a/14/umbraco-commerce/how-to-guides/delete-item.md
+++ /dev/null
@@ -1,174 +0,0 @@
----
-description: Learn how to remove items added to the shopping cart.
----
-
-# Delete item from cart
-
-{% hint style="info" %}
-This guide builds on the [Update Cart](update-cart.md) guide. It is recommended to follow that guide before starting this one.
-{% endhint %}
-
-This will teach you how to delete an item from the cart.
-
-Your view for the `cart.cshtml` page will be similar to the example below.
-
-```csharp
-@inherits UmbracoViewPage
-@{
- var store = Model.Value("store", fallback: Fallback.ToAncestors);
- var currentOrder = CommerceApi.Instance.GetCurrentOrder(store!.Id);
- if (currentOrder == null) return;
-
- @using (Html.BeginUmbracoForm("UpdateCart", "CartSurface"))
- {
- @foreach (var item in currentOrder.OrderLines.Select((ol, i) => new
- {
- OrderLine = ol,
- Index = i
- }))
- {
-
-
- }
-
-
-
- var success = TempData["SuccessMessage"]?.ToString();
-
- if (!string.IsNullOrWhiteSpace(success))
- {
-
@success
- }
- }
-}
-```
-
-The code below allows the Umbraco `SurfaceAction` to call `RemoveFromCart` when the link is clicked. It will also pass the `OrderLineId`.
-
-```csharp
-Remove
-```
-
-## Adding the Controller
-
-For the button to work, you need to add some functionality via a Controller.
-
-Create a new Controller called `CartSurfaceController.cs`
-
-{% hint style="warning" %}
-
-The namespaces used in this Controller are important and need to be included.
-
-```cs
-using Microsoft.AspNetCore.Mvc;
-using Umbraco.Cms.Core.Cache;
-using Umbraco.Cms.Core.Logging;
-using Umbraco.Cms.Core.Models.PublishedContent;
-using Umbraco.Cms.Core.Routing;
-using Umbraco.Cms.Core.Services;
-using Umbraco.Cms.Core.Web;
-using Umbraco.Cms.Infrastructure.Persistence;
-using Umbraco.Cms.Web.Website.Controllers;
-using Umbraco.Commerce.Common.Validation;
-using Umbraco.Commerce.Core.Api;
-using Umbraco.Commerce.Core.Models;
-using Umbraco.Commerce.Extensions;
-using Umbraco.Extensions;
-```
-
-{% endhint %}
-
-```csharp
-public class CartSurfaceController : SurfaceController
-{
- public CartSurfaceController(IUmbracoContextAccessor umbracoContextAccessor,
- IUmbracoDatabaseFactory databaseFactory,
- ServiceContext services,
- AppCaches appCaches,
- IProfilingLogger profilingLogger,
- IPublishedUrlProvider publishedUrlProvider,
- IUmbracoCommerceApi commerceApi)
- : base(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
- {
- _commerceApi = commerceApi;
- }
-}
-```
-
-The example below is the equivalent code for having this as a Primary Constructor:
-
-```csharp
-public class CartSurfaceController(IUmbracoContextAccessor umbracoContextAccessor,
- IUmbracoDatabaseFactory databaseFactory,
- ServiceContext services,
- AppCaches appCaches,
- IProfilingLogger profilingLogger,
- IPublishedUrlProvider publishedUrlProvider,
- IUmbracoCommerceApi commerceApi)
- : SurfaceController(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
-{
-}
-```
-
-The `CartDto` is a class used to pass data to the Controller. In this instance, it passes over the `OrderLineId`.
-
-```csharp
- public class CartDto
- {
- public Guid OrderLineId { get; set; }
- }
-```
-
-You need to add the `Action` to delete the item from the cart. This will be called when the button is clicked.
-
-```csharp
-[HttpGet]
-public IActionResult RemoveFromCart(CartDto cart)
-{
- try
- {
- _commerceApi.Uow.Execute(uow =>
- {
- var store = CurrentPage?.Value("store", fallback: Fallback.ToAncestors);
-
- if (store == null) return;
-
- var order = _commerceApi.GetOrCreateCurrentOrder(store.Id)
- .AsWritable(uow)
- .RemoveOrderLine(cart.OrderLineId);
-
- _commerceApi.SaveOrder(order);
-
- uow.Complete();
- });
- }
- catch (ValidationException)
- {
- ModelState.AddModelError(string.Empty, "Failed to remove product from cart");
-
- return CurrentUmbracoPage();
- }
-
- TempData["SuccessMessage"] = "Item removed";
-
- return RedirectToCurrentUmbracoPage();
-}
-```
-
-- A `try-catch` block captures any validation errors that may occur when updating items in the cart.
-- The `store` variable is used to access the store to retrieve the store ID.
-- `order` is used to retrieve the current order. In the Commerce API, everything is read-only for performance so you need to make it writable to add the product.
-- `SaveOrder` is called to save the order.
-- If there are any validation errors, they are added to a `ModelState` error, and the user is redirected back to the current page.
-- `TempData` stores a message to be displayed to the user if the product has been successfully updated.
-
-{% hint style="warning" %}
-Umbraco Commerce uses the Unit of Work pattern to complete saving the item (`uow.Complete`). When retrieving or saving data ideally you would want the entire transaction to be committed. However, if there is an error nothing is changed on the database.
-{% endhint %}
-
-If you have followed the [Add item to cart](add-item.md) article, run the application, add an item to your cart, and navigate to your `cart.cshtml` page. Clicking the `Remove Item` button will delete the item in your cart and display a message.
diff --git a/14/umbraco-commerce/how-to-guides/limit-orderline-quantity.md b/14/umbraco-commerce/how-to-guides/limit-orderline-quantity.md
deleted file mode 100644
index 41bc1edd17a..00000000000
--- a/14/umbraco-commerce/how-to-guides/limit-orderline-quantity.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-description: How-To Guide to limit order line quantity in Umbraco Commerce.
----
-
-# Limit Order Line Quantity
-
-In this guide, we will be looking at Validation events in Umbraco Commerce. These enabled you to limit order line quantity based on:
-
-* The existing stock value of the product, and
-* The existing quantity of the product in the cart.
-
-## ProductAddValidationHandler
-
-When adding a product to the cart we need to verify that the product is in stock. We also need to verify that the customer does not already have the remaining quantities in the cart.
-
-```csharp
-public class ProductAddValidationHandler : ValidationEventHandlerBase
-{
- private readonly IProductService _productService;
-
- public ProductAddValidationHandler(IProductService productService)
- {
- _productService = productService;
- }
-
- public override void Validate(ValidateOrderProductAdd evt)
- {
- var order = evt.Order;
- var productReference = evt.ProductReference;
-
- var stock = _productService.GetProductStock(productReference);
-
- var totalQuantities = order?.OrderLines.Where(x => x.ProductReference == productReference).Sum(x => x.Quantity) ?? 0;
-
- if (stock.HasValue && totalQuantities >= stock.Value)
- evt.Fail($"Only {stock} quantities can be purchased for {productReference}.");
- }
-}
-
-```
-
-## OrderLineQuantityValidationHandler
-
-When changing the order line quantity on the cart page, we need to ensure that the quantities being changed are in stock.
-
-```csharp
-public class OrderLineQuantityValidationHandler : ValidationEventHandlerBase
-{
- private readonly IProductService _productService;
-
- public OrderLineQuantityValidationHandler(IProductService productService)
- {
- _productService = productService;
- }
-
- public override void Validate(ValidateOrderLineQuantityChange evt)
- {
- var orderLine = evt.OrderLine;
- var productReference = orderLine.ProductReference;
-
- var stock = _productService.GetProductStock(productReference);
-
- if (stock.HasValue && evt.Quantity.To > stock.Value)
- evt.Fail($"Only {stock} quantities can be purchased for {productReference}.");
- }
-}
-
-```
-
-## Register event handlers
-
-Finally, we need to register the Umbraco Commerce event handlers via an `IUmbracoCommerceBuilder` extension.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddEventHandlers(IUmbracoCommerceBuilder builder)
- {
- // Register event handlers
- builder.WithValidationEvent()
- .RegisterHandler();
-
- builder.WithValidationEvent()
- .RegisterHandler();
-
- return builder;
- }
-}
-```
diff --git a/14/umbraco-commerce/how-to-guides/overview.md b/14/umbraco-commerce/how-to-guides/overview.md
deleted file mode 100644
index 472ba99c910..00000000000
--- a/14/umbraco-commerce/how-to-guides/overview.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-description: How-to Guides on how to perform specific tasks in Umbraco Commerce.
----
-
-# Overview
-
-In this section, we will provide a series of How-To Guides, showcasing how to perform specific tasks within Umbraco Commerce.
-
-## Available guides
-
-
diff --git a/14/umbraco-commerce/how-to-guides/update-cart.md b/14/umbraco-commerce/how-to-guides/update-cart.md
deleted file mode 100644
index acc5f71ee2f..00000000000
--- a/14/umbraco-commerce/how-to-guides/update-cart.md
+++ /dev/null
@@ -1,218 +0,0 @@
----
-description: Learn how to update your cart when one or more quantities have changed.
----
-
-# Update Cart
-
-Functionality is needed to update the cart once an item has been added. In this guide, you can learn how to add this functionality.
-
-You need a new page to summarize the items in the cart and allow users to update each item.
-
-Create a new Document With a Template. Call it "Cart Page" and update the template with the following code:
-
-```csharp
-@inherits UmbracoViewPage
-@{
- var store = Model.Value("store", fallback: Fallback.ToAncestors);
- var currentOrder = CommerceApi.Instance.GetCurrentOrder(store!.Id);
- if (currentOrder == null) return;
-}
-```
-
-- You need to access the store to see the relevant data for the current cart/order. The store has a `fallback` property allowing you to traverse the tree to find the store.
-- `currentOrder` is used to get the current order for the store. If the current order is null then there is nothing to display.
-
-To display the default layout when an order does exist, you need to add some markup or amend it to include the desired functionality. Add the following code to the template:
-
-```csharp
-@using (Html.BeginUmbracoForm("UpdateCart", "CartSurface"))
-{
- @foreach (var item in currentOrder.OrderLines.Select((ol, i) => new
- {
- OrderLine = ol,
- Index = i
- }))
- {
-
-
- }
-
-
-
- var success = TempData["SuccessMessage"]?.ToString();
-
- if (!string.IsNullOrWhiteSpace(success))
- {
-
@success
- }
-}
-```
-
-You first loop through each item in the `cart/order` and display the product name and quantity.
-
-A hidden input is added for the order ID, quantity, and product reference. This is so you can update the cart with the new number.
-
-```csharp
- @Html.Hidden($"orderLines[{item.Index}].OrderId", item.OrderLine.Id)
-```
-
-The line below sets the ID of the order line (or the item in the current cart/order).
-
-```csharp
- @item.OrderLine.Name @Html.Hidden($"orderLines[{item.Index}].Quantity", (int)item.OrderLine.Quantity, new { @type = "number" })
-```
-
-As well as setting the product name, the line below sets the quantity of the product in the cart/order. Finally, the number is set to a number input type.
-
-```csharp
- @Html.Hidden($"orderLines[{item.Index}].ProductReference", item.OrderLine.ProductReference)
-```
-
-This is setting the product reference in the cart/order so there is a way to distinguish between products. This is hidden as it does not need to be displayed to the user.
-
-{% hint style="warning" %}
-
-The `remove` button is added here but is not covered in this guide. Learn more in the [Delete item from Cart](delete-item.md) article.
-
-{% endhint %}
-
-Finally, a button is added to submit the form to update the cart. This will call the `UpdateCart` action in the `CartSurfaceController` which will then show a success message to the user.
-
-## Adding the Controller
-
-Create a new Controller called `CartSurfaceController.cs`
-
-{% hint style="warning" %}
-
-The namespaces used in this Controller are important and need to be included.
-
-```cs
-using Microsoft.AspNetCore.Mvc;
-using Umbraco.Cms.Core.Cache;
-using Umbraco.Cms.Core.Logging;
-using Umbraco.Cms.Core.Models.PublishedContent;
-using Umbraco.Cms.Core.Routing;
-using Umbraco.Cms.Core.Services;
-using Umbraco.Cms.Core.Web;
-using Umbraco.Cms.Infrastructure.Persistence;
-using Umbraco.Cms.Web.Website.Controllers;
-using Umbraco.Commerce.Common.Validation;
-using Umbraco.Commerce.Core.Api;
-using Umbraco.Commerce.Core.Models;
-using Umbraco.Commerce.Extensions;
-using Umbraco.Extensions;
-```
-
-{% endhint %}
-
-```csharp
-public class CartSurfaceController : SurfaceController
-{
- public CartSurfaceController(IUmbracoContextAccessor umbracoContextAccessor,
- IUmbracoDatabaseFactory databaseFactory,
- ServiceContext services, AppCaches appCaches,
- IProfilingLogger profilingLogger,
- IPublishedUrlProvider publishedUrlProvider,
- IUmbracoCommerceApi commerceApi)
- : base(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
- {
- _commerceApi = commerceApi;
- }
-}
-```
-
-The following is the equivalent code for having this as a Primary Constructor:
-
-```csharp
-public class CartSurfaceController(IUmbracoContextAccessor umbracoContextAccessor,
- IUmbracoDatabaseFactory databaseFactory,
- ServiceContext services, AppCaches appCaches,
- IProfilingLogger profilingLogger,
- IPublishedUrlProvider publishedUrlProvider,
- IUmbracoCommerceApi commerceApi)
- : SurfaceController(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
-{
-}
-```
-
-The `CartDto` is a class that passes data to the Controller. This is a class that has a property for the `productReference` and an array of `OrderLineQuantityDto[]`.
-
-```csharp
- public class CartDto
- {
- public string ProductReference { get; set; }
- public OrderLineQuantityDto[] OrderLines { get; set; }
- }
-
- public class OrderLineQuantityDto
- {
- public Guid Id { get; set; }
- public decimal Quantity { get; set; }
- }
-```
-
-{% hint style="warning" %}
-The code example above adds the `ProductReference` but it is not used in this guide.
-
-It is an example of passing the product reference to the controller for similar tasks.
-{% endhint %}
-
-You need to add the `Action` to update the items in the cart. This will be called when the button is clicked.
-
-```csharp
-[HttpPost]
- public IActionResult UpdateCart(CartDto cart)
- {
- try
- {
- _commerceApi.Uow.Execute(uow =>
- {
- var store = CurrentPage?.Value("store", fallback: Fallback.ToAncestors);
-
- if (store == null) return;
-
- var order = _commerceApi.GetCurrentOrder(store.Id)
- .AsWritable(uow);
-
- foreach (var orderLine in cart.OrderLines)
- {
- order.WithOrderLine(orderLine.Id)
- .SetQuantity(orderLine.Quantity);
- }
-
- _commerceApi.SaveOrder(order);
-
- uow.Complete();
- });
- }
- catch (ValidationException)
- {
- ModelState.AddModelError(string.Empty, "Failed to update cart");
-
- return CurrentUmbracoPage();
- }
-
- TempData["SuccessMessage"] = "Cart updated";
-
- return RedirectToCurrentUmbracoPage();
- }
-```
-
-- A `try-catch` block captures any validation errors that may occur when updating items in the cart.
-- The `store` variable is used to access the store to retrieve the store ID.
-- `order` is used to retrieve the current order. In the Commerce API, everything is read-only for performance so you need to make it writable to add the product.
-- You loop through all the `orderLines(items)` in the cart, set the new quantity amount set in the View, and pass it to the CartDto model.
-- `SaveOrder` is called to save the order.
-- If there are any validation errors, they are added to `ModelState` error, and the user is redirected back to the current page.
-- `TempData` stores a message to be displayed to the user if the product has been successfully updated.
-
-{% hint style="warning" %}
-Umbraco Commerce uses the Unit of Work pattern to complete saving the item (`uow.Complete`). When retrieving or saving data you want the entire transaction to be committed. However, if there is an error nothing is changed on the database.
-{% endhint %}
-
-If you have followed the [Add item to cart](add-item.md) article then run the application, add an item to your cart, and navigate to your `cart.cshtml` page. Enter a new quantity, click the Update Cart button, and the item(s) in your cart will tell you the values have been updated.
diff --git a/14/umbraco-commerce/how-to-guides/use-an-alternative-database-for-umbraco-commerce-tables.md b/14/umbraco-commerce/how-to-guides/use-an-alternative-database-for-umbraco-commerce-tables.md
deleted file mode 100644
index 2c75a466ba7..00000000000
--- a/14/umbraco-commerce/how-to-guides/use-an-alternative-database-for-umbraco-commerce-tables.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-description: >-
- How-To Guide to configure using an alternative database for the tables of
- Umbraco Commerce.
----
-
-# Use an Alternative Database for Umbraco Commerce Tables
-
-By default, Umbraco Commerce will use the same database as Umbraco to store its data in. As e-commerce and content management have different database needs, it may be beneficial to house the Umbraco Commerce database tables in an alternative database.
-
-To do this, you can configure a Umbraco Commerce-specific connection string in your app settings `ConnectionStrings` section using the `umbracoCommerceDbDSN` prefix.
-
-```json
-{
- ...
- "ConnectionStrings": {
- "umbracoDbDSN": "Server=umbracoServerAddress;Database=myUmbracoDb;User Id=myUsername;Password=myPassword;",
- "umbracoDbDSN_ProviderName": "Microsoft.Data.SqlClient",
- "umbracoCommerceDbDSN": "Server=umbracoCommerceServerAddress;Database=myUmbracoCommerceDb;User Id=myUsername;Password=myPassword;",
- "umbracoCommerceDbDSN_ProviderName": "Microsoft.Data.SqlClient"
- },
- ...
-}
-```
-
-When Umbraco Commerce runs, it will perform all of its migrations and operations against this database instead of the default Umbraco database.
diff --git a/14/umbraco-commerce/key-concepts/base-currency.md b/14/umbraco-commerce/key-concepts/base-currency.md
deleted file mode 100644
index 0be13e56b98..00000000000
--- a/14/umbraco-commerce/key-concepts/base-currency.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: Base Currency for standardized reporting in Umbraco Commerce.
----
-
-# Base Currency
-
-Within Umbraco Commerce we have support for showing analytics reports, including summaries of sales figures. At the same time, Umbraco Commerce also supports orders being placed in multiple currencies. These pose a problem of how to display a succinct sales figure when the orders are placed in multiple currencies. The answer to this is the store's **Base Currency**.
-
-When you configure a store you need to assign a base currency to it. This currency is there to identify which currency the store should use as its basis for reports and sales figures. This will be used regardless of whatever currency the order was placed in.
-
-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.
-
-## Currency Exchange Rate Services
-
-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.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/bulk-actions.md b/14/umbraco-commerce/key-concepts/bulk-actions.md
deleted file mode 100644
index 0c509a89da4..00000000000
--- a/14/umbraco-commerce/key-concepts/bulk-actions.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-description: Perform bulk operations on entities in Umbraco Commerce.
----
-
-# Bulk Actions
-
-{% hint style="danger" %}
-This feature has changed in v14 and requires updated documentation.
-{% endhint %}
-
-You might need to execute a custom action for each entity in a selection while extending Umbraco Commerce. For example, being able to trigger label printing for a series of orders, or printing physical gift cards for specific gift card entities.
-
-Umbraco Commerce allows extending the different table views, adding in **Bulk Actions** to the bulk action bar that appears when you select multiple items. Out of the box all list views contain at minimum a **Delete** bulk action.
-
-## Injecting a Bulk Action
-
-Bulk actions are client-side concepts and so additional bulk actions are injected with JavaScript in an AngularJS configuration module.
-
-To create a configuration module you can create a custom folder in the `App_Plugins` directory and create a JavaScript file to hold your configuration in.
-
-1. Create a custom folder in the `App_Plugins` directory.
-2. Create a JavaScript file with this new folder.
-
-```bash
-App_Plugins\MyPlugin\backoffice\config\umbraco-commerce-bulk-actions-config.js
-```
-
-3. Register the file in a `package.manifest` file within the same folder.
-
-```bash
-App_Plugins\MyPlugin\package.manifest
-```
-
-4. Add the following JSON to the `package.manifest` file:
-
-```javascript
-{
- "javascript": [
- "~/App_Plugins/MyPlugin/backoffice/config/umbraco-commerce-bulk-actions-config.js"
- ]
-}
-```
-
-5. Inject a bulk action inside the `umbraco-commerce-bulk-actions-config.js` by adding the following:
-
-```csharp
-angular.module('umbracoCommerce')
- .config(['umbracoCommerceActionsProvider', function (umbracoCommerceActionsProvider) {
- umbracoCommerceActionsProvider.bulkActions.push(['myResource', function (myResource)
- {
- return {
- name: 'My Action',
- icon: 'icon-box',
- itemAction: function (bulkItem) {
- return myResource.doAction(bulkItem.id);
- },
- condition: function (ctx) {
- return ctx.entityType == 'Order'
- },
- sortOrder: 110
- }
- }]);
- }]);
-
-```
-
-Once created, the bulk action will be displayed in the bulk actions bar for the configured entities.
-
-
-
-## Bulk Action Options
-
-| Property | Description |
-| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `name` | Name of your bulk action that will be displayed in the bulk action button. |
-| `icon` | Icon for your bulk action that will be displayed in the bulk action button next to the name. |
-| `sortOrder` | The order in which to display this action in the bulk actions bar. System bulk actions sort orders are in multiples of `100` in order to allow the positioning of items between system bulk actions. |
-
-| Method | Description |
-| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `configure(items)` | A function to run before the bulk operation in order to provide configuration for the bulk action. Returns a Promise that returns an object which is then passed to the item/bulk action methods. |
-| `itemAction(item, config)` | Individual action to perform per selected item. A status will be displayed after each processed item shows progress. Returns a Promise. |
-| `bulkAction(items, config)` | Single action to be performed for all selected items in one go. Returns a Promise. |
-| `getConfirmMessage(total)` | A function that can provide a message to display before a bulk action is triggered should confirmation be required for the action to run. Returns a Promise that returns a string. |
-| `getStatusMessage(count, total)` | Function used to provide a status message after each item has been processed. Displayed in the bulk actions bar after each `itemAction` has been called. Returns a Promise that returns a string. |
-| `getSuccessMessage(total)` | A function to return a success message after all bulk actions have been performed. Returns a Promise that returns a string. |
-| `condition(context)` | As all bulk actions are registered globally for all entity types, the `condition` function can be used to filter when, and for which entities a bulk action will display. |
-
-Only an `itemAction` or a `bulkAction` method can be defined for a bulk action configuration. If both are present, the `bulkAction` will be used and the `itemAction` will be ignored. If processing of items can be done individually, it is better to use the `itemAction` in order to provide user feedback. The `bulkAction` can only be used where items need to be processed in a single action.
-
-## Important Notes
-
-* Most methods apart from `itemAction` or `bulkAction` are optional. If methods aren't present, a default implementation will be used. Where the methods trigger, specific functionality such as the `configure` or `getConfirmMessage` methods will become disabled.
-* The array-based syntax for registering is a bulk action with angular dependencies. Each bulk action is registered as an array, where all dependencies are defined first and then a factory function is defined last which returns the actual bulk action definition.
-* Whilst these docs outline how to define a bulk action, you will likely need to register further resources or services that can perform the given bulk operation and include these as a dependency for your action.
-
-## Examples
-
-The following section display an example of a bulk action with dialog configuration step:
-
-```csharp
-angular.module('umbracoCommerce')
- .config(['umbracoCommerceActionsProvider', function (umbracoCommerceActionsProvider) {
- umbracoCommerceActionsProvider.bulkActions.push(['$q', 'editorService', 'myResource', function ($q, editorService, myResource)
- {
- return {
- name: 'My Action',
- icon: 'icon-box',
- configure: function (selected) {
- return $q(function (resolve, reject) {
- editorService.open({
- view: '/app_plugins/myplugin/views/dialogs/config.html',
- size: 'small',
- config: {
- items: selected
- },
- submit: function (model) {
- editorService.close();
- resolve(model);
- },
- close: function () {
- editorService.close();
- reject();
- }
- });
- });
- },
- bulkAction: function (items) {
- var ids = items.map(itm => itm.id);
- return myResource.doAction(ids);
- },
- condition: function (ctx) {
- return ctx.entityType == 'Order'
- },
- sortOrder: 110
- }
- }]);
- }]);
-
-```
diff --git a/14/umbraco-commerce/key-concepts/calculators.md b/14/umbraco-commerce/key-concepts/calculators.md
deleted file mode 100644
index d1cff883162..00000000000
--- a/14/umbraco-commerce/key-concepts/calculators.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-description: Performing calculations with Calculators in Umbraco Commerce.
----
-
-# Calculators
-
-Calculators are small service implementations with the sole responsibility of calculating prices for a given aspect of an Order. There are five main Calculator service interfaces in Umbraco Commerce:
-
-* **IShippingCalculator** - Responsible for calculating the Shipping Method price/tax rate of a given Shipping Method.
-* **IPaymentCalculator** - Responsible for calculating the Payment Method price/tax rate of a given Payment Method.
-* **IProductCalculator** - Responsible for calculating the Product unit price/tax rate of a given Product.
-* **IOrderLineCalculator** - Responsible for calculating the price/tax rate of a given OrderLine.
-* **IOrderCalculator** - Responsible for calculating the entire Order.
-
-All Calculator services can be replaced with alternative implementations should you wish to change how Umbraco Commerce performs its calculations.
-
-## Defining a Custom Calculator Implementation
-
-The individual Calculator interfaces may differ but the process for defining a custom Calculator implementation is the same for all of them. It is possible to create a new class that implements the default system Calculator that you wish to replace. You can then override the relevant calculation methods.
-
-```csharp
-public class MyProductCalculator : ProductCalculator
-{
- public MyProductCalculator(ITaxService taxService, IStoreService storeService)
- : base(taxService, storeService)
- { }
-
- public override TaxRate CalculateProductTaxRate(IProductSnapshot productSnapshot, TaxSource taxSource, TaxRate fallbackTaxRate)
- {
- // Do custom tax rate calculation here
- }
-
- public override Price CalculateProductPrice(IProductSnapshot productSnapshot, Guid currencyId, TaxRate taxRate)
- {
- // Do custom price calculation here
- }
-}
-
-```
-
-## Registering a custom Calculator implementation
-
-Calculators are [registered via the IUmbracoCommerceBuilder](umbraco-commerce-builder.md) interface using the `AddUnique()` method on the `Services` property. The `TServiceInterface` parameter in this case is the Calculator interface Type you wish to replace and `TReplacementService` is the Type of your custom Calculator implementation.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyServices(IUmbracoCommerceBuilder builder)
- {
- // Replacing the product calculator implementation
- builder.Services.AddUnique();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/currency-exchange-rate-service-providers.md b/14/umbraco-commerce/key-concepts/currency-exchange-rate-service-providers.md
deleted file mode 100644
index 84fecd0d536..00000000000
--- a/14/umbraco-commerce/key-concepts/currency-exchange-rate-service-providers.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-description: Currency Exchange Rate Service Provider for currency conversion in Umbraco Commerce.
----
-
-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.
-
-
-## Currency Exchange Rate Services
-
-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.
-
-
-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.
-
-
-* **ExchangeRateHostCurrencyExchangeRateService** uses the free [exchangerate.host](https://exchangerate.host/) API.
-* **ExchangeRatesApiCurrencyExchangeRateService** uses the free [exchangeratesapi.io](https://exchangeratesapi.io/) API.
-* **FixerCurrencyExchangeRateService** uses the [fixer.io](https://fixer.io/) API which is a reliable paid option (with a reasonable free plan).
-* **CurrencyLayerCurrencyExchangeRateService** uses the [currencylayer.com](https://currencylayer.com/) API which is another reliable paid option (with a reasonable free plan).
-
-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:
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyServices(IUmbracoCommerceBuilder builder)
- {
- // Register the fixer tax service with your API key
- builder.Services.AddUnique(new FixerCurrencyExchangeRateService("YOUR_FIXER_API_KEY"));
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-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.
-
-
-
-## Historic Orders
-
-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.
-
-The currency exchange rate background task will run once every 24 hours or after 20 seconds after an app pool recycle.
diff --git a/14/umbraco-commerce/key-concepts/dependency-injection.md b/14/umbraco-commerce/key-concepts/dependency-injection.md
deleted file mode 100644
index 238d5c93202..00000000000
--- a/14/umbraco-commerce/key-concepts/dependency-injection.md
+++ /dev/null
@@ -1,135 +0,0 @@
----
-description: Minimizing dependencies via dependency injection with Umbraco Commerce.
----
-
-# Dependency Injection
-
-Dependency Injection (DI) can be an intimidating subject. DI reduces the number of hard-coded dependencies within a codebase by providing a means to define dependencies independently and have them "injected" dynamically. These dependencies are often exposed as interfaces, rather than concrete types. This enables them to be swapped out or replaced with minimal effort.
-
-The ability to "swap out" dependencies is used in Umbraco Commerce in a number of places to allow developers to provide alternative implementations of specific features. This could be the ability to:
-
-* Swap out the default Product Calculator to change how product prices are calculated.
-* Swap out the default Order Number Generator should you wish to provide an alternative order numbering strategy.
-
-Umbraco Commerce makes heavy use of the dependency injection mechanism in Umbraco to manage many of the features. It is important to understand how to work with the registration process.
-
-What follows are examples of common tasks you'll need to be able to perform via the DI container in order to work effectively with Umbraco Commerce. For more detailed documentation, it is highly recommended that you read the [Umbraco CMS Dependency Injection and IoC documentation](https://docs.umbraco.com/umbraco-cms/reference/using-ioc).
-
-## Registering Dependencies
-
-Registering dependencies is an important ability to understand as this is used to register Umbraco Commerce event handlers and to extend system pipelines.
-
-To register a dependency you need to do so via the `IUmbracoBuilder` interface. This is exposed within the main `Program.cs` file, between the `AddComposers()` method call and the `Build()` method call.
-
-```csharp
-builder.CreateUmbracoBuilder()
- .AddBackOffice()
- .AddWebsite()
- .AddDeliveryApi()
- .AddComposers()
- // Append your dependencies here...
- .Build();
-```
-
-You can also add your registration logic inside an `IUmbracoBuilder` extension method and then call that within the `Program.cs` file. This is the recommended approach.
-
-```csharp
-public static class UmbracoBuilderExtensions
-{
- public static IUmbracoBuilder AddMyDependencies(this IUmbracoBuilder builder)
- {
- // Register my dependencies here via the builder parameter
- ...
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-```csharp
-builder.CreateUmbracoBuilder()
- .AddBackOffice()
- .AddWebsite()
- .AddDeliveryApi()
- .AddComposers()
- .AddMyDependencies()
- .Build();
-```
-
-Registering a dependency is achieved by working with the `IUmbracoBuilder` API:
-
-```csharp
-public static class UmbracoBuilderExtensions
-{
- public static IUmbracoBuilder AddMyDependencies(this IUmbracoBuilder builder)
- {
- // Register a singleton dependency
- builder.Services.AddSingleton();
-
- // Register a transient dependency
- builder.Services.AddTransient();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-## Replacing Dependencies
-
-Like it is possible to add new dependencies it is also possible to replace existing dependencies. This could be dependencies such as the different Calculators available in Umbraco Commerce.
-
-Where a feature is replaceable, replacing that dependency is also achieved via the `IUmbracoBuilder` API:
-
-```csharp
-public static class UmbracoBuilderExtensions
-{
- public static IUmbracoBuilder AddMyDependencies(this IUmbracoBuilder builder)
- {
- // Replacing the product calculator implementation
- builder.Services.AddUnique();
-
- // Replacing the default product adapter
- builder.Services.AddUnique();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-## Injecting Dependencies
-
-As well as registering dependencies, you will also need to know how to access Umbraco Commerce dependencies from within your Controllers. To do this, we add parameters to our Controllers constructor for the dependencies we require. Then, the IoC container will inject them automatically for us.
-
-```csharp
-using Umbraco.Commerce.Core.Api;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.ViewEngines;
-using Microsoft.Extensions.Logging;
-using Umbraco.Cms.Core.Web;
-using Umbraco.Cms.Web.Common.Controllers;
-
-namespace MyProject.Web.Controllers
-{
- public class HomeController : RenderController
- {
- private readonly IUmbracoCommerceApi _umbracoCommerceApi;
-
- public HomeController(IUmbracoCommerceApi umbracoCommerceApi, ILogger logger,
- ICompositeViewEngine compositeViewEngine, IUmbracoContextAccessor umbracoContextAccessor)
- : base(logger, compositeViewEngine, umbracoContextAccessor)
- {
- _umbracoCommerceApi = umbracoCommerceApi;
- }
-
- public override IActionResult Index()
- {
- // Work with the _umbracoCommerceApi here
-
- return CurrentTemplate(CurrentPage);
- }
- }
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/discount-rules-and-rewards.md b/14/umbraco-commerce/key-concepts/discount-rules-and-rewards.md
deleted file mode 100644
index b09fc6b0cfb..00000000000
--- a/14/umbraco-commerce/key-concepts/discount-rules-and-rewards.md
+++ /dev/null
@@ -1,220 +0,0 @@
----
-description: Define when a Discount should apply and what should be the Reward in Umbraco Commerce.
----
-
-# Discount Rules / Rewards
-
-Discounts in Umbraco Commerce are defined using a series of rules and reward builders that let you configure the following:
-
-* When a Discount should apply.
-* What the Reward should be for that Discount.
-
-These builders come with a handful of the most common Rules and Rewards that should suit the majority of web stores' needs. When need to create your own Rules or Rewards then these are extendable via a Provider model allowing you to incorporate your own custom logic.
-
-## Discount Rules
-
-There are two types of Discount Rules in Umbraco Commerce:
-
-* **Order Discount Rules**: Determine whether a discount should apply to an Order. Returns a Fulfilled/Unfulfilled status depending on whether the Rule logic has been met.
-* **Order Line Discount Rules**: Determine whether a discount should apply to an Order Line within an Order. Returns a Fulfilled/Unfulfilled status depending on whether the Rule logic has been met. Where the status is Fulfilled, a list of all Order Lines that are fulfilled by this Rule is also returned.
-
-### Example: Custom Order Discount Rule Provider
-
-An example of an Order Discount Rule Provider would look something like this:
-
-```csharp
-[DiscountRuleProvider("myCustomOrderRule")]
-public class MyCustomOrderRuleProvider : OrderDiscountRuleProviderBase
-{
- public override DiscountRuleResult ValidateRule(DiscountRuleContext ctx, MyCustomOrderRuleProviderSettings settings)
- {
- if (/* Some custom logic */)
- return Fulfilled();
-
- return Unfulfilled();
- }
-}
-
-public class MyCustomOrderRuleProviderSettings
-{
- [DiscountRuleProviderSetting(Key = "priceType")]
- public OrderPriceType PriceType { get; set; }
-
- ...
-}
-
-```
-
-All Order Discount Rule Providers inherit from a base class `OrderDiscountRuleProviderBase`. `TSettings` is the type of a Plain Old Class Object (POCO) model class representing the Discount Rule Providers settings.
-
-{% hint style="info" %}
-See the [Settings Objects](discount-rules-and-rewards.md#settings-objects) section below for more information on Settings objects.
-{% endhint %}
-
-The class must be decorated with `DiscountRuleProviderAttribute` which defines the Discount Rule Providers `alias` and `name`, and can also specify a `description` or `icon` to be displayed in the backoffice. The `DiscountRuleProviderAttribute` is also responsible for defining a `labelView` for the Provider.
-
-{% hint style="info" %}
-See the [Label views](discount-rules-and-rewards.md#label-views) section below for more information on Label Views.
-{% endhint %}
-
-Rule Providers have a `ValidateRule` method that accepts a `DiscountRuleContext` as well as an instance of the Providers `TSettings` settings model. Inside this you can perform your custom logic, returning a `DiscountRuleResult` to notify Umbraco Commerce of the Rule outcome.
-
-If the passed-in context (which contains a reference to the Order) meets the Rule's criteria, then a fulfilled `DiscountRuleResult` can be returned by calling `return Fulfilled();`. Alternatively, if the Order didn't meet the Rules criteria an unfulfilled `DiscountRuleResult` can be returned by calling `return Unfulfilled();`.
-
-### Example: Custom Order Line Discount Rule Provider
-
-An example of an Order Line Discount Rule Provider would look something like this:
-
-```csharp
-[DiscountRuleProvider("myCustomOrderLineRule")]
-public class MyCustomOrderLineRuleProvider : OrderLineDiscountRuleProviderBase
-{
- public override DiscountRuleResult ValidateRule(DiscountRuleContext ctx, MyCustomOrderLineRuleProviderSettings settings)
- {
- if (/* Some custom logic */)
- return Fulfilled(fulfilledOrderLines);
-
- return Unfulfilled();
- }
-}
-
-public class MyCustomOrderLineRuleProviderSettings
-{
- [DiscountRuleProviderSetting(Key = "priceType")]
- public OrderPriceType PriceType { get; set; }
-
- ...
-}
-
-```
-
-All Order Line Discount Rule Providers inherit from a base class `OrderLineDiscountRuleProviderBase` and follows much the same requirements as the Order Discount Rule Provider defined above. Where they differ is in the `ValidateRule` method implementation and when a fulfilled `DiscountRuleResult` is returned. In this case, an Order Line Discount Rule returns a collection of Order Lines processed by the Rule that have met the rules criteria. Whether the rules are met, is checked by calling `return Fulfilled(fulfilledOrderLines);`.
-
-## Discount Rewards
-
-### Example: Custom Discount Reward Provider
-
-An example of a Discount Reward Provider would look something like this:
-
-```csharp
-[DiscountRewardProvider("myDiscountReward")]
-public class MyDiscountRewardProvider : DiscountRewardProviderBase
-{
- public override DiscountRewardCalculation CalculateReward(DiscountRewardContext ctx, MyDiscountRewardProviderSettings settings)
- {
- var result = new DiscountRewardCalculation();
-
- // Some custom calculation logic goes here
-
- return result;
- }
-}
-
-public class MyDiscountRewardProviderSettings
-{
- [DiscountRewardProviderSetting(Key = "priceType")]
- public OrderPriceType PriceType { get; set; }
-
- ...
-}
-
-```
-
-All Discount Reward Providers inherit from a base class `DiscountRewardProviderBase`. `TSettings` is the Type of a POCO model class representing the Discount Reward Providers settings.
-
-{% hint style="info" %}
-See the [Settings Objects](settings-objects.md) documentation for more information on Settings objects.
-{% endhint %}
-
-The class must be decorated with `DiscountRewardProviderAttribute` which defines the Discount Reward Providers `alias` and `name`. It can also specify a `description` or `icon` to be displayed in the Umbraco Commerce backoffice. The `DiscountRewardProviderAttribute` is responsible for defining a `labelView` for the Provider.
-
-{% hint style="info" %}
-See the [Label views](discount-rules-and-rewards.md#label-views) section below for more information on Label Views.
-{% endhint %}
-
-Reward Providers have a `CalculateReward` method that accepts a `DiscountRewardContext` as well as an instance of the Providers `TSettings` settings model. Inside this, you can perform your custom calculation logic, returning a `DiscountRewardCalculation` instance that defines any Reward values to apply to the Order.
-
-```csharp
-// Add a shipping total discount
-result.ShippingTotalPriceAdjustments.Add(new DiscountAdjustment(ctx.Discount, price));
-
-// Add a subtotal discount
-result.SubtotalPriceAdjustments.Add(new DiscountAdjustment(ctx.Discount, price));
-```
-
-## Common Features
-
-### Settings Objects
-
-{% hint style="info" %}
-See the [Settings Objects](settings-objects.md) documentation for more information on Settings objects.
-{% endhint %}
-
-### Labels
-
-Both the `DiscountRuleProviderAttribute` and the `DiscountRewardProviderAttribute` allow you to define a `LabelUiAlias` for the Provider. This should be the alias of a UI component registered as a Property Editor UI implementation.
-
-A basic label component is defined as follows:
-
-```typescript
-import { customElement, html, property } from "@umbraco-cms/backoffice/external/lit";
-import { UmbLitElement } from "@umbraco-cms/backoffice/lit-element";
-
-@customElement('my-discount-rule-label')
-export class MyDiscountRuleLabelElement extends UmbLitElement {
-
- @property()
- value?:Record;
-
- render() {
- return html`-- CREATE YOUR LABEL HERE --`
- }
-}
-
-export default MyDiscountRuleLabelElement;
-
-declare global {
- interface HTMLElementTagNameMap {
- 'my-discount-rule-label': MyDiscountRuleLabelElement;
- }
-}
-
-```
-
-The component will pass a `Record` value representing the rule/rewards configured values. Use this value to create your label.
-
-Once defined, your component can be registered as a Property Editor UI via a manifest entry.
-
-```javascript
-const myDiscountRuleLabelManifest = {
- type: "propertyEditorUi",
- alias: "My.PropertyEditorUi.MyDiscountRuleLabel",
- name: "My Discount Rule Label",
- element: () => import('./my-discount-rule-label.element.js')
- };
-
- export const manifests = [ myDiscountRuleLabelManifest ];
-```
-
-{% hint style="info" %}
-Without a defined scheme, the Property Editor UI will not display in Umbraco's backoffice as a pickable property editor for use on Document Types.
-{% endhint %}
-
-The Rule/Reward Label component should provide a user-friendly summary of its settings to display in the relevant Builder UI.
-
-
-
-## Localization
-
-When displaying your rule/reward in the picker modal, or when displaying the configurable settings for your your rule/reward, it is neceserray to provide localizable labels. This is controlled by Umbracos [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-| --- | --- |
-| `ucDiscount{type}Providers_{providerAlias}Label` | A main label for the rule/reward provider |
-| `ucDiscount{type}Providers_{providerAlias}Description` | A description for the rule/reward provider |
-| `ucDiscount{type}Providers_{providerAlias}Settings{settingAlias}Label` | A label for a rule/reward provider setting |
-| `ucDiscount{type}Providers_{providerAlias}Settings{settingAlias}Description` | A description for a rule/reward provider setting |
-
-Here `{type}` can be either `Rule` or `Reward`. `{providerAlias}` is the alias of the rule/reward provider, and `{settingAlias}` is the alias of a setting.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/events/README.md b/14/umbraco-commerce/key-concepts/events/README.md
deleted file mode 100644
index 9ddbe3b0354..00000000000
--- a/14/umbraco-commerce/key-concepts/events/README.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-description: Listening for changes within Umbraco Commerce.
----
-
-# Events
-
-Much like the standard events in .NET, Umbraco Commerce has an events system to notify you when certain things happen within the application. However, Umbraco Commerce differs slightly in the types of events that are fired and how you register your event handlers.
-
-Events in Umbraco Commerce are registered via the [`IUmbracoCommerceBuilder`](../umbraco-commerce-builder.md) interface, rather than via static event delegates. This has a number of advantages, such as being able to control the order of when event handlers are fired. It also allows us to inject dependencies into the event handlers making it a much more decoupled approach to eventing.
-
-In Umbraco Commerce, there are two main types of events you can create handlers for. Both are explained in detail below.
-
-## Validation events
-
-Validation events are events that fire immediately before a change is about to be made to an entity. These events allow you to inject your own logic to decide whether an action should be possible or not. We already have a number of validation handlers built in to maintain the consistency of your data. Validation events allow you to extend this behavior with your own rules.
-
-A full list of validation events can be found in the [List of validation events](list-of-validation-events.md).
-
-### Example: Validation event handler
-
-An example of a Validation event handler would look something like this:
-
-```csharp
-public class MyOrderProductAddValidationHandler : ValidationEventHandlerBase
-{
- public override void Validate(ValidateOrderProductAdd evt)
- {
- if (evt.ProductReference == "MyProductRef" && evt.Quantity % 10 != 0)
- evt.Fail("This product can only be purchased in increments of 10");
- }
-}
-
-```
-
-All Validation event handlers inherit from a base class `ValidationEventHandlerBase` where `TEvent` is the Type of the event the handler is for. They then have a `Validate` method that accepts an instance of the event type, and inside which you can perform your custom logic. If the event fails the validation logic, you can call `evt.Fail("Your message here")` to block the related action from happening and have a `ValidationException` be thrown. This can then be captured in the front end to display a friendly error message.
-
-### Registering a Validation event handler
-
-Validation event handlers are [registered via the IUmbracoCommerceBuilder](../umbraco-commerce-builder.md) interface using the `WithValidationEvent()` builder extension method. This is done to identify the event you want to handle and then call the `RegisterHandler()` method to register your handler(s) for that event.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyEventHandlers(IUmbracoCommerceBuilder builder)
- {
- // Register my event handlers
- builder.WithValidationEvent()
- .RegisterHandler();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-You can control the order of when Validation event handlers run, before or after another Validation event handler. This is done by registering them via the `RegisterHandlerBefore()` or `RegisterHandlerAfter()` methods respectively.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyEventHandlers(IUmbracoCommerceBuilder builder)
- {
- // Register MyOrderProductAddValidationHandler to execute before the SomeOtherValidationHandler handler
- builder.WithValidationEvent()
- .RegisterHandlerBefore();
-
- // Register MyOrderProductAddValidationHandler to execute after the SomeOtherValidationHandler handler
- builder.WithValidationEvent()
- .RegisterHandlerAfter();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-## Notification events
-
-Notification events are events that fire, often immediately before or after an action is executed. It provides you the ability to run custom logic to react to that action occurring. This is useful for scenarios such as sending emails when an Order is finalized or allowing you to synchronize stock updates with an external system.
-
-Notification events won't allow you to change the behavior of how Umbraco Commerce runs. They provide you with an effective means of reacting when changes occur.
-
-A full list of notification events can be found in the [List of notification events](list-of-notification-events.md).
-
-### Example: Notification event handler
-
-An example of a Notification event handler would look something like this:
-
-```csharp
-public class MyOrderFinalizedHandler : NotificationEventHandlerBase
-{
- public override void Handle(OrderFinalizedNotification evt)
- {
- // Implement your custom logic here
- }
-}
-
-```
-
-All Notification event handlers inherit from a base class `NotificationEventHandlerBase` where `TEvent` is the Type of the event the handler is for. They then have a `Handle` method that accepts an instance of the event type, and inside which you can perform your custom logic.
-
-### Registering a Notification event handler
-
-Notification event handlers are [registered via the IUmbracoCommerceBuilder](../umbraco-commerce-builder.md) interface using the `WithNotificationEvent()` builder extension method. This is used to identify the event you want to handle and then call the `RegisterHandler()` method to register your handler(s) for that event.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyEventHandlers(IUmbracoCommerceBuilder builder)
- {
- // Register my event handlers
- builder.WithNotificationEvent()
- .RegisterHandler();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-You can also control the order of when Notification event handlers run by registering them via the `RegisterHandlerBefore()` or `RegisterHandlerAfter()` methods respectively.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyEventHandlers(IUmbracoCommerceBuilder builder)
- {
- // Register MyOrderFinalizedHandler to execute before the SomeOtherNotificationHandler handler
- builder.WithNotificationEvent()
- .RegisterHandlerBefore();
-
- // Register MyOrderFinalizedHandler to execute after the SomeOtherNotificationHandler handler
- builder.WithNotificationEvent()
- .RegisterHandlerAfter();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/events/list-of-notification-events.md b/14/umbraco-commerce/key-concepts/events/list-of-notification-events.md
deleted file mode 100644
index aa511acc3bc..00000000000
--- a/14/umbraco-commerce/key-concepts/events/list-of-notification-events.md
+++ /dev/null
@@ -1,306 +0,0 @@
----
-description: Hooking into notification events within Umbraco Commerce.
----
-
-# List of Notification Events
-
-## Umbraco.Commerce.Cms.Web.Events.Notification
-
-### Searching Events
-
-| **Event** | **Description** |
-|---|---|
-| CartSearchingNotification | Triggered during a search operation on the cart. Allows customization or modification of search parameters and results. |
-| GiftCardSearchingNotification | Triggered during a search operation on gift cards. Allows customization or modification of search parameters and results. |
-| OrderSearchingNotification | Triggered during a search operation on orders. Allows customization or modification of search parameters and results. |
-
-## Umbraco.Commerce.Common.Pipelines.Events
-
-### Pipeline Events
-
-| **Event** | **Description** |
-|---|---|
-| PipelineFailNotification | Triggered when a pipeline process fails. Allows developers to handle or respond to pipeline failures, enabling custom error handling, logging, or recovery actions. |
-| PipelineSuccessNotification | Triggered when a pipeline process completes successfully. Allows developers to handle successful pipeline completions, enabling actions such as logging, notifications, or further processing steps. |
-
-## Umbraco.Commerce.Core.Events.Notification
-
-### Country Events
-
-| **Event** | **Description** |
-|---|---|
-| CountryCreatedNotification | Triggered after a country has been successfully created. Allows developers to perform actions in response to the creation of a new country. |
-| CountryCreatingNotification | Triggered before a country is created. Allows developers to perform actions or validations before the creation of a new country. |
-| CountryDeletedNotification | Triggered after a country has been successfully deleted. Allows developers to perform actions in response to the deletion of a country. |
-| CountryDeletingNotification | Triggered before a country is deleted. Allows developers to perform actions or validations before the deletion of a country. |
-| CountrySavedNotification | Triggered after a country has been successfully saved. Allows developers to perform actions in response to saving changes to a country. |
-| CountrySavingNotification | Triggered before a country is saved. Allows developers to perform actions or validations before saving changes to a country. |
-| CountryUpdatedNotification | Triggered after a country has been successfully updated. Allows developers to perform actions in response to the update of a country. |
-| CountryUpdatingNotification | Triggered before a country is updated. Allows developers to perform actions or validations before the update of a country. |
-
-### Currency Events
-
-| **Event** | **Description** |
-|---|---|
-| CurrencyCreatedNotification | Triggered after a currency has been successfully created. Allows developers to perform actions in response to the creation of a new currency. |
-| CurrencyCreatingNotification | Triggered before a currency is created. Allows developers to perform actions or validations before the creation of a new currency. |
-| CurrencyDeletedNotification | Triggered after a currency has been successfully deleted. Allows developers to perform actions in response to the deletion of a currency. |
-| CurrencyDeletingNotification | Triggered before a currency is deleted. Allows developers to perform actions or validations before the deletion of a currency. |
-| CurrencySavedNotification | Triggered after a currency has been successfully saved. Allows developers to perform actions in response to saving changes to a currency. |
-| CurrencySavingNotification | Triggered before a currency is saved. Allows developers to perform actions or validations before saving changes to a currency. |
-| CurrencyUpdatedNotification | Triggered after a currency has been successfully updated. Allows developers to perform actions in response to the update of a currency. |
-| CurrencyUpdatingNotification | Triggered before a currency is updated. Allows developers to perform actions or validations before the update of a currency. |
-
-### Discount Events
-
-| **Event** | **Description** |
-|---|---|
-| DiscountCreatedNotification | Triggered after a discount has been successfully created. Allows developers to perform actions in response to the creation of a new discount. |
-| DiscountCreatingNotification | Triggered before a discount is created. Allows developers to perform actions or validations before the creation of a new discount. |
-| DiscountDeletedNotification | Triggered after a discount has been successfully deleted. Allows developers to perform actions in response to the deletion of a discount. |
-| DiscountDeletingNotification | Triggered before a discount is deleted. Allows developers to perform actions or validations before the deletion of a discount. |
-| DiscountSavedNotification | Triggered after a discount has been successfully saved. Allows developers to perform actions in response to saving changes to a discount. |
-| DiscountSavingNotification | Triggered before a discount is saved. Allows developers to perform actions or validations before saving changes to a discount. |
-| DiscountUpdatedNotification | Triggered after a discount has been successfully updated. Allows developers to perform actions in response to the update of a discount. |
-| DiscountUpdatingNotification | Triggered before a discount is updated. Allows developers to perform actions or validations before the update of a discount. |
-
-### Email Events
-
-| **Event** | **Description** |
-|---|---|
-| EmailFailedNotification | Triggered when an email fails to send. Allows developers to handle email failures, perform logging, or take corrective actions. |
-| EmailSendingNotification | Triggered before an email is sent. Allows developers to customize the email content, perform validations, or log the sending process. |
-| EmailSentNotification | Triggered after an email has been successfully sent. Allows developers to perform actions in response to the successful sending of an email, such as logging or triggering follow-up actions. |
-| EmailTemplateCreatedNotification | Triggered after an email template has been successfully created. Allows developers to perform actions in response to the creation of a new email template. |
-| EmailTemplateCreatingNotification | Triggered before an email template is created. Allows developers to perform actions or validations before the creation of a new email template. |
-| EmailTemplateDeletedNotification | Triggered after an email template has been successfully deleted. Allows developers to perform actions in response to the deletion of an email template. |
-| EmailTemplateDeletingNotification | Triggered before an email template is deleted. Allows developers to perform actions or validations before the deletion of an email template. |
-| EmailTemplateSavedNotification | Triggered after an email template has been successfully saved. Allows developers to perform actions in response to saving changes to an email template. |
-| EmailTemplateSavingNotification | Triggered before an email template is saved. Allows developers to perform actions or validations before saving changes to an email template. |
-| EmailTemplateUpdatedNotification | Triggered after an email template has been successfully updated. Allows developers to perform actions in response to the update of an email template. |
-| EmailTemplateUpdatingNotification | Triggered before an email template is updated. Allows developers to perform actions or validations before the update of an email template. |
-
-### Export Template Events
-
-| **Event** | **Description** |
-|---|---|
-| ExportTemplateCreatedNotification | Triggered after an export template has been successfully created. Allows developers to perform actions in response to the creation of a new export template. |
-| ExportTemplateCreatingNotification | Triggered before an export template is created. Allows developers to perform actions or validations before the creation of a new export template. |
-| ExportTemplateDeletedNotification | Triggered after an export template has been successfully deleted. Allows developers to perform actions in response to the deletion of an export template. |
-| ExportTemplateDeletingNotification | Triggered before an export template is deleted. Allows developers to perform actions or validations before the deletion of an export template. |
-| ExportTemplateSavedNotification | Triggered after an export template has been successfully saved. Allows developers to perform actions in response to saving changes to an export template. |
-| ExportTemplateSavingNotification | Triggered before an export template is saved. Allows developers to perform actions or validations before saving changes to an export template. |
-| ExportTemplateUpdatedNotification | Triggered after an export template has been successfully updated. Allows developers to perform actions in response to the update of an export template. |
-| ExportTemplateUpdatingNotification | Triggered before an export template is updated. Allows developers to perform actions or validations before the update of an export template. |
-
-### Frozen Prices Events
-
-| **Event** | **Description** |
-|---|---|
-| FrozenPricesThawedNotification | Triggered after previously frozen prices have been unfrozen and are now adjustable again. Allows developers to perform actions in response to the thawing of prices.|
-| FrozenPricesThawingNotification | Triggered before previously frozen prices are about to be unfrozen and become adjustable. Allows developers to perform actions or validations before the thawing of prices. |
-
-### Gift Card Events
-
-| **Event** | **Description** |
-|---|---|
-| GiftCardCreatedNotification | Triggered after a gift card has been successfully created. Allows developers to perform actions in response to the creation of a new gift card.|
-| GiftCardCreatingNotification | Triggered before a gift card is created. Allows developers to perform actions or validations before the creation of a new gift card. |
-| GiftCardDeletedNotification | Triggered after a gift card has been successfully deleted. Allows developers to perform actions in response to the deletion of a gift card. |
-| GiftCardDeletingNotification | Triggered before a gift card is deleted. Allows developers to perform actions or validations before the deletion of a gift card. |
-| GiftCardSavedNotification | Triggered after a gift card has been successfully saved. Allows developers to perform actions in response to saving changes to a gift card. |
-| GiftCardSavingNotification | Triggered before a gift card is saved. Allows developers to perform actions or validations before saving changes to a gift card. |
-| GiftCardUpdatedNotification | Triggered after a gift card has been successfully updated. Allows developers to perform actions in response to the update of a gift card. |
-| GiftCardUpdatingNotification | Triggered before a gift card is updated. Allows developers to perform actions or validations before the update of a gift card. |
-
-### Location Events
-
-| **Event** | **Description** |
-|---|---|
-| LocationCreatedNotification | Triggered after a location has been successfully created. Allows developers to perform actions in response to the creation of a new location. |
-| LocationCreatingNotification | Triggered before a location is created. Allows developers to perform actions or validations before the creation of a new location. |
-| LocationDeletedNotification | Triggered after a location has been successfully deleted. Allows developers to perform actions in response to the deletion of a location. |
-| LocationDeletingNotification | Triggered before a location is deleted. Allows developers to perform actions or validations before the deletion of a location. |
-| LocationSavedNotification | Triggered after a location has been successfully saved. Allows developers to perform actions in response to saving changes to a location. |
-| LocationSavingNotification | Triggered before a location is saved. Allows developers to perform actions or validations before saving changes to a location. |
-| LocationUpdatedNotification | Triggered after a location has been successfully updated. Allows developers to perform actions in response to the update of a location. |
-| LocationUpdatingNotification | Triggered before a location is updated. Allows developers to perform actions or validations before the update of a location. |
-
-### Order Events
-
-| **Event** | **Description** |
-|---|---|
-| OrderAssignedToCustomerNotification | Triggered after an order has been successfully assigned to a customer. Allows developers to perform actions in response to the assignment. |
-| OrderAssigningToCustomerNotification | Triggered before an order is assigned to a customer. Allows developers to perform actions or validations before the assignment. |
-| OrderConfigParsingNotification | Triggered during the parsing of the order configuration. Allows developers to modify or extend the configuration settings before they are applied. |
-| OrderCreatedNotification | Triggered after an order has been successfully created. Allows developers to perform actions in response to the creation of a new order.|
-| OrderCreatingNotification | Triggered before an order is created. Allows developers to perform actions or validations before the creation of a new order. |
-| OrderCurrencyChangedNotification | Triggered after the currency of an order has been successfully changed. Allows developers to perform actions in response to the currency change. |
-| OrderCurrencyChangingNotification | Triggered before the currency of an order is changed. Allows developers to perform actions or validations before the currency change. |
-| OrderDeletedNotification | Triggered after an order has been successfully deleted. Allows developers to perform actions in response to the deletion of an order. |
-| OrderDeletingNotification | Triggered before an order is deleted. Allows developers to perform actions or validations before the deletion of an order. |
-| OrderDiscountCodeRedeemedNotification | Triggered after a discount code has been successfully redeemed on an order. Allows developers to perform actions in response to the redemption. |
-| OrderDiscountCodeRedeemingNotification | Triggered before a discount code is redeemed on an order. Allows developers to perform actions or validations before the redemption. |
-| OrderDiscountCodeUnredeemedNotification | Triggered after a discount code has been successfully unredeemed (reversing the application of a previously redeemed discount code) on an order. Allows developers to perform actions in response to the unredemption. |
-| OrderDiscountCodeUnredeemingNotification | Triggered before a discount code is unredeemed on an order. Allows developers to perform actions or validations before the unredemption. |
-| OrderEditorConfigParsingNotification | Triggered during the parsing of the order editor configuration. Allows developers to modify or extend the configuration settings before they are applied. |
-| OrderFinalizedNotification | Triggered after an order has been successfully finalized. Allows developers to perform actions in response to the finalization. |
-| OrderFinalizingNotification | Triggered before an order is finalized. Allows developers to perform actions or validations before the finalization. |
-| OrderGiftCardRedeemedNotification | Triggered after a gift card has been successfully redeemed on an order. Allows developers to perform actions in response to the redemption. |
-| OrderGiftCardRedeemingNotification | Triggered before a gift card is redeemed on an order. Allows developers to perform actions or validations before the redemption. |
-| OrderGiftCardUnredeemedNotification | Triggered after a gift card has been successfully unredeemed on an order. Allows developers to perform actions in response to the unredemption. |
-| OrderGiftCardUnredeemingNotification | Triggered before a gift card is unredeemed on an order. Allows developers to perform actions or validations before the unredemption. |
-| OrderLanguageChangedNotification | Triggered after the language of an order has been successfully changed. Allows developers to perform actions in response to the language change. |
-| OrderLanguageChangingNotification | Triggered before the language of an order is changed. Allows developers to perform actions or validations before the language change. |
-| OrderLineAddedNotification | Triggered after a line item has been successfully added to an order. Allows developers to perform actions in response to the addition. |
-| OrderLineAddingNotification | Triggered before a line item is added to an order. Allows developers to perform actions or validations before the addition. |
-| OrderLineChangedNotification | Triggered after a line item in an order has been successfully changed. Allows developers to perform actions in response to the change. |
-| OrderLineChangingNotification | Triggered before a line item in an order is changed. Allows developers to perform actions or validations before the change. |
-| OrderLineRemovedNotification | Triggered after a line item has been successfully removed from an order. Allows developers to perform actions in response to the removal. |
-| OrderLineRemovingNotification | Triggered before a line item is removed from an order. Allows developers to perform actions or validations before the removal. |
-| OrderListConfigParsingNotification | Triggered during the parsing of the order list configuration. Allows developers to modify or extend the configuration settings before they are applied. |
-| OrderPaymentCountryRegionChangedNotification | Triggered after the payment country or region of an order has been successfully changed. Allows developers to perform actions in response to the change. |
-| OrderPaymentCountryRegionChangingNotification | Triggered before the payment country or region of an order is changed. Allows developers to perform actions or validations before the change. |
-| OrderPaymentMethodChangedNotification | Triggered after the payment method of an order has been successfully changed. Allows developers to perform actions in response to the change. |
-| OrderPaymentMethodChangingNotification | Triggered before the payment method of an order is changed. Allows developers to perform actions or validations before the change. |
-| OrderProductAddedNotification | Triggered after a product has been successfully added to an order. Allows developers to perform actions in response to the addition. |
-| OrderProductAddingNotification | Triggered before a product is added to an order. Allows developers to perform actions or validations before the addition. |
-| OrderPropertiesChangedNotification | Triggered after properties of an order have been successfully changed. Allows developers to perform actions in response to the changes. |
-| OrderPropertiesChangingNotification | Triggered before properties of an order are changed. Allows developers to perform actions or validations before the changes. |
-| OrderSavedNotification | Triggered after an order has been successfully saved. Allows developers to perform actions in response to saving changes to an order. |
-| OrderSavingNotification | Triggered before an order is saved. Allows developers to perform actions or validations before saving changes to an order. |
-| OrderShippingCountryRegionChangedNotification | Triggered after the shipping country or region of an order has been successfully changed. Allows developers to perform actions in response to the change. |
-| OrderShippingCountryRegionChangingNotification | Triggered before the shipping country or region of an order is changed. Allows developers to perform actions or validations before the change. |
-| OrderShippingMethodChangedNotification | Triggered after the shipping method of an order has been successfully changed. Allows developers to perform actions in response to the change. |
-| OrderShippingMethodChangingNotification | Triggered before the shipping method of an order is changed. Allows developers to perform actions or validations before the change. |
-| OrderStatusChangedNotification | Triggered after the status of an order has been successfully changed. Allows developers to perform actions in response to the status change. |
-| OrderStatusChangingNotification | Triggered before the status of an order is changed. Allows developers to perform actions or validations before the status change. |
-| OrderStatusCreatedNotification | Triggered after a new order status has been successfully created. Allows developers to perform actions in response to the creation of a new status. |
-| OrderStatusCreatingNotification | Triggered before a new order status is created. Allows developers to perform actions or validations before the creation of a new status. |
-| OrderStatusDeletedNotification | Triggered after an order status has been successfully deleted. Allows developers to perform actions in response to the deletion of a status. |
-| OrderStatusDeletingNotification | Triggered before an order status is deleted. Allows developers to perform actions or validations before the deletion of a status. |
-| OrderStatusSavedNotification | Triggered after an order status has been successfully saved. Allows developers to perform actions in response to saving changes to a status.|
-| OrderStatusSavingNotification | Triggered before an order status is saved. Allows developers to perform actions or validations before saving changes to a status. |
-| OrderStatusUpdatedNotification | Triggered after an order status has been successfully updated. Allows developers to perform actions in response to the update of a status. |
-| OrderStatusUpdatingNotification | Triggered before an order status is updated. Allows developers to perform actions or validations before the update of a status. |
-| OrderTagsChangedNotification |Triggered after the tags of an order have been successfully changed. Allows developers to perform actions in response to the tag changes. |
-| OrderTagsChangingNotification | Triggered before the tags of an order are changed. Allows developers to perform actions or validations before the tag changes. |
-| OrderTaxClassChangedNotification | Triggered after the tax class of an order has been successfully changed. Allows developers to perform actions in response to the tax class change. |
-| OrderTaxClassChangingNotification | Triggered before the tax class of an order is changed. Allows developers to perform actions or validations before the tax class change. |
-| OrderTransactionUpdatedNotification | Triggered after a transaction in an order has been successfully updated. Allows developers to perform actions in response to the transaction update. |
-| OrderTransactionUpdatingNotification | Triggered before a transaction in an order is updated. Allows developers to perform actions or validations before the transaction update. |
-| OrderUpdatedNotification | Triggered after an order has been successfully updated. Allows developers to perform actions in response to the update of an order. |
-| OrderUpdatingNotification | Triggered before an order is updated. Allows developers to perform actions or validations before the update of an order. |
-
-### Payment Events
-
-| **Event** | **Description** |
-|---|---|
-| PaymentFormGeneratingNotification | Triggered during the generation of a payment form. Allows developers to customize or modify the payment form before it is presented to the user. |
-| PaymentMethodCreatedNotification | Triggered after a payment method has been successfully created. Allows developers to perform actions in response to the creation of a new payment method. |
-| PaymentMethodCreatingNotification | Triggered before a payment method is created. Allows developers to perform actions or validations before the creation of a new payment method. |
-| PaymentMethodDeletedNotification | Triggered after a payment method has been successfully deleted. Allows developers to perform actions in response to the deletion of a payment method. |
-| PaymentMethodDeletingNotification | Triggered before a payment method is deleted. Allows developers to perform actions or validations before the deletion of a payment method. |
-| PaymentMethodSavedNotification | Triggered after a payment method has been successfully saved. Allows developers to perform actions in response to saving changes to a payment method. |
-| PaymentMethodSavingNotification | Triggered before a payment method is saved. Allows developers to perform actions or validations before saving changes to a payment method. |
-| PaymentMethodUpdatedNotification | Triggered after a payment method has been successfully updated. Allows developers to perform actions in response to the update of a payment method. |
-| PaymentMethodUpdatingNotification | Triggered before a payment method is updated. Allows developers to perform actions or validations before the update of a payment method. |
-
-### Print Template Events
-
-| **Event** | **Description** |
-|---|---|
-| PrintTemplateCreatedNotification | Triggered after a print template has been successfully created. Allows developers to perform actions in response to the creation of a new print template. |
-| PrintTemplateCreatingNotification | Triggered before a print template is created. Allows developers to perform actions or validations before the creation of a new print template. |
-| PrintTemplateDeletedNotification | Triggered after a print template has been successfully deleted. Allows developers to perform actions in response to the deletion of a print template. |
-| PrintTemplateDeletingNotification | Triggered before a print template is deleted. Allows developers to perform actions or validations before the deletion of a print template. |
-| PrintTemplateSavedNotification | Triggered after a print template has been successfully saved. Allows developers to perform actions in response to saving changes to a print template. |
-| PrintTemplateSavingNotification | Triggered before a print template is saved. Allows developers to perform actions or validations before saving changes to a print template. |
-| PrintTemplateUpdatedNotification | Triggered after a print template has been successfully updated. Allows developers to perform actions in response to the update of a print template. |
-| PrintTemplateUpdatingNotification | Triggered before a print template is updated. Allows developers to perform actions or validations before the update of a print template. |
-
-### Product Attribute Events
-
-| **Event** | **Description** |
-|---|---|
-| ProductAttributeCreatedNotification | Triggered after a product attribute (for example: size, color, or material) has been successfully created. Allows developers to perform actions in response to the creation of a new product attribute. |
-| ProductAttributeCreatingNotification | Triggered before a product attribute is created. Allows developers to perform actions or validations before the creation of a new product attribute. |
-| ProductAttributeDeletedNotification | Triggered after a product attribute has been successfully deleted. Allows developers to perform actions in response to the deletion of a product attribute. |
-| ProductAttributeDeletingNotification | Triggered before a product attribute is deleted. Allows developers to perform actions or validations before the deletion of a product attribute. |
-| ProductAttributePresetCreatedNotification | Triggered after a product attribute preset has been successfully created. Allows developers to perform actions in response to the creation of a new product attribute preset. |
-| ProductAttributePresetCreatingNotification | Triggered before a product attribute preset is created. Allows developers to perform actions or validations before the creation of a new product attribute preset. |
-| ProductAttributePresetDeletedNotification | Triggered after a product attribute preset has been successfully deleted. Allows developers to perform actions in response to the deletion of a product attribute preset. |
-| ProductAttributePresetDeletingNotification | Triggered before a product attribute preset is deleted. Allows developers to perform actions or validations before the deletion of a product attribute preset. |
-| ProductAttributePresetSavedNotification | Triggered after a product attribute preset has been successfully saved. Allows developers to perform actions in response to saving changes to a product attribute preset. |
-| ProductAttributePresetSavingNotification | Triggered before a product attribute preset is saved. Allows developers to perform actions or validations before saving changes to a product attribute preset. |
-| ProductAttributePresetUpdatedNotification | Triggered after a product attribute preset has been successfully updated. Allows developers to perform actions in response to the update of a product attribute preset. |
-| ProductAttributePresetUpdatingNotification | Triggered before a product attribute preset is updated. Allows developers to perform actions or validations before the update of a product attribute preset. |
-| ProductAttributeSavedNotification | Triggered after a product attribute has been successfully saved. Allows developers to perform actions in response to saving changes to a product attribute. |
-| ProductAttributeSavingNotification | Triggered before a product attribute is saved. Allows developers to perform actions or validations before saving changes to a product attribute. |
-| ProductAttributeUpdatedNotification | Triggered after a product attribute has been successfully updated. Allows developers to perform actions in response to the update of a product attribute. |
-| ProductAttributeUpdatingNotification | Triggered before a product attribute is updated. Allows developers to perform actions or validations before the update of a product attribute. |
-
-### Region Events
-
-| **Event** | **Description** |
-|---|---|
-| RegionCreatedNotification | Triggered after a region has been successfully created. Allows developers to perform actions in response to the creation of a new region. |
-| RegionCreatingNotification | Triggered before a region is created. Allows developers to perform actions or validations before the creation of a new region. |
-| RegionDeletedNotification | Triggered after a region has been successfully deleted. Allows developers to perform actions in response to the deletion of a region. |
-| RegionDeletingNotification | Triggered before a region is deleted. Allows developers to perform actions or validations before the deletion of a region. |
-| RegionSavedNotification | Triggered after a region has been successfully saved. Allows developers to perform actions in response to saving changes to a region. |
-| RegionSavingNotification | Triggered before a region is saved. Allows developers to perform actions or validations before saving changes to a region. |
-| RegionUpdatedNotification | Triggered after a region has been successfully updated. Allows developers to perform actions in response to the update of a region. |
-| RegionUpdatingNotification | Triggered before a region is updated. Allows developers to perform actions or validations before the update of a region. |
-
-### Shipping Method Events
-
-| **Event** | **Description** |
-|---|---|
-| ShippingMethodCreatedNotification | Triggered after a shipping method has been successfully created. Allows developers to perform actions in response to the creation of a new shipping method. |
-| ShippingMethodCreatingNotification | Triggered before a shipping method is created. Allows developers to perform actions or validations before the creation of a new shipping method. |
-| ShippingMethodDeletedNotification | Triggered after a shipping method has been successfully deleted. Allows developers to perform actions in response to the deletion of a shipping method. |
-| ShippingMethodDeletingNotification | Triggered before a shipping method is deleted. Allows developers to perform actions or validations before the deletion of a shipping method. |
-| ShippingMethodSavedNotification | Triggered after a shipping method has been successfully saved. Allows developers to perform actions in response to saving changes to a shipping method. |
-| ShippingMethodSavingNotification | Triggered before a shipping method is saved. Allows developers to perform actions or validations before saving changes to a shipping method. |
-| ShippingMethodUpdatedNotification | Triggered after a shipping method has been successfully updated. Allows developers to perform actions in response to the update of a shipping method. |
-| ShippingMethodUpdatingNotification | Triggered before a shipping method is updated. Allows developers to perform actions or validations before the update of a shipping method. |
-
-### Stock Events
-
-| **Event** | **Description** |
-|---|---|
-| StockChangedNotification | Triggered after the stock level of a product has been successfully changed. Allows developers to perform actions in response to the change in stock level. |
-| StockChangingNotification | Triggered before the stock level of a product is changed. Allows developers to perform actions or validations before the change in stock level. |
-
-### Store Events
-
-| **Event** | **Description** |
-|---|---|
-| StoreCreatedNotification | Triggered after a store has been successfully created. Allows developers to perform actions in response to the creation of a new store. |
-| StoreCreatingNotification | Triggered before a store is created. Allows developers to perform actions or validations before the creation of a new store. |
-| StoreDeletedNotification | Triggered after a store has been successfully deleted. Allows developers to perform actions in response to the deletion of a store. |
-| StoreDeletingNotification | Triggered before a store is deleted. Allows developers to perform actions or validations before the deletion of a store. |
-| StoreSavedNotification | Triggered after a store has been successfully saved. Allows developers to perform actions in response to saving changes to a store. |
-| StoreSavingNotification | Triggered before a store is saved. Allows developers to perform actions or validations before saving changes to a store. |
-| StoreUpdatedNotification | Triggered after a store has been successfully updated. Allows developers to perform actions in response to the update of a store. |
-| StoreUpdatingNotification | Triggered before a store is updated. Allows developers to perform actions or validations before the update of a store. |
-
-### Tax Class Events
-
-| **Event** | **Description** |
-|---|---|
-| TaxClassCreatedNotification | Triggered after a tax class has been successfully created. Allows developers to perform actions in response to the creation of a new tax class. |
-| TaxClassCreatingNotification | Triggered before a tax class is created. Allows developers to perform actions or validations before the creation of a new tax class. |
-| TaxClassDeletedNotification | Triggered after a tax class has been successfully deleted. Allows developers to perform actions in response to the deletion of a tax class. |
-| TaxClassDeletingNotification | Triggered before a tax class is deleted. Allows developers to perform actions or validations before the deletion of a tax class. |
-| TaxClassSavedNotification | Triggered after a tax class has been successfully saved. Allows developers to perform actions in response to saving changes to a tax class. |
-| TaxClassSavingNotification | Triggered before a tax class is saved. Allows developers to perform actions or validations before saving changes to a tax class. |
-| TaxClassUpdatedNotification | Triggered after a tax class has been successfully updated. Allows developers to perform actions in response to the update of a tax class. |
-| TaxClassUpdatingNotification | Triggered before a tax class is updated. Allows developers to perform actions or validations before the update of a tax class. |
-
-### Unit of Work Events
-
-| **Event** | **Description** |
-|---|---|
-| UnitOfWorkCreatedNotification | Triggered after a unit of work has been successfully created. Allows developers to perform actions in response to the creation of a new unit of work. |
diff --git a/14/umbraco-commerce/key-concepts/events/list-of-validation-events.md b/14/umbraco-commerce/key-concepts/events/list-of-validation-events.md
deleted file mode 100644
index 134c5e98e66..00000000000
--- a/14/umbraco-commerce/key-concepts/events/list-of-validation-events.md
+++ /dev/null
@@ -1,465 +0,0 @@
----
-description: Hooking into validation events within Umbraco Commerce.
----
-
-# List of Validation Events
-
-## Umbraco.Commerce.Core.Events.Validation
-
-### Order Payment Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateCancelOrderPayment | Triggered to validate the cancellation of an order payment. Developers can use this event to enforce rules or validations related to the cancellation process, ensuring it meets specified criteria or conditions. |
-| ValidateCaptureOrderPayment | Triggered to validate the capture of an order payment. Developers can use this event to enforce rules or validations related to the payment capture process, ensuring it meets specified criteria or conditions. |
-
-### Country Payment Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateCountryCodeChange | Triggered to validate changes to the country code. Developers can use this event to enforce rules or validations related to the modification of country codes, ensuring adherence to specified standards or requirements. |
-| ValidateCountryCreate | Triggered to validate the creation of a new country entry. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateCountryDefaultCurrencyChange | Triggered to validate changes to the default currency of a country. Developers can use this event to enforce rules or validations related to default currency changes for countries, ensuring proper configuration and management. |
-| ValidateCountryDefaultPaymentMethodChange | Triggered to validate changes to the default payment method of a country. Developers can use this event to enforce rules or validations related to default payment method changes for countries, ensuring proper configuration and management. |
-| ValidateCountryDefaultShippingMethodChange | Triggered to validate changes to the default shipping method of a country. Developers can use this event to enforce rules or validations related to default shipping method changes for countries, ensuring proper configuration and management. |
-| ValidateCountryDelete | Triggered to validate the deletion of a country entry. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateCountryNameChange | Triggered to validate changes to the name of a country. Developers can use this event to enforce rules or validations related to the modification of country names, ensuring clarity and consistency in country identification. |
-| ValidateCountrySave | Triggered to validate the saving of changes to a country entry. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateCountryUpdate | Triggered to validate updates to a country entry. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Currency Payment Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateCurrencyAllowInCountry | Triggered to validate allowing a currency in a specific country. Developers can use this event to enforce rules or validations related to currency permissions in countries, ensuring proper configuration and management. |
-| ValidateCurrencyCodeChange | Triggered to validate changes to the currency code. Developers can use this event to enforce rules or validations related to the modification of currency codes, ensuring adherence to specified standards or requirements. |
-| ValidateCurrencyCreate | Triggered to validate the creation of a new currency. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateCurrencyCultureChange | Triggered to validate changes to the culture associated with a currency. Developers can use this event to enforce rules or validations related to currency culture changes, ensuring consistency and compatibility within the system. |
-| ValidateCurrencyCustomFormatTemplateChange | Triggered to validate changes to the custom format template of a currency. Developers can use this event to enforce rules or validations related to custom formatting changes for currencies, ensuring adherence to specified templates or standards. |
-| ValidateCurrencyDelete | Triggered to validate the deletion of a currency. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateCurrencyDisallowInCountry | Triggered to validate disallowing a currency in a specific country. Developers can use this event to enforce rules or validations related to currency permissions in countries, ensuring proper configuration and management. |
-| ValidateCurrencyNameChange | Triggered to validate changes to the name of a currency. Developers can use this event to enforce rules or validations related to the modification of currency names, ensuring clarity and consistency in currency identification. |
-| ValidateCurrencySave | Triggered to validate the saving of changes to a currency. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateCurrencyUpdate | Triggered to validate updates to a currency. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Discount Payment Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateDiscountActiveChange | Triggered to validate changes to the active status of a discount. Developers can use this event to enforce rules or validations related to the activation or deactivation of discounts, ensuring consistency and adherence to business rules. |
-| ValidateDiscountAliasChange | Triggered to validate changes to the alias of a discount. Developers can use this event to enforce rules or validations related to the modification of discount aliases, ensuring clarity and consistency in identification. |
-| ValidateDiscountCodeAdd | Triggered to validate the addition of a discount code. Developers can use this event to enforce rules or validations related to the addition process, ensuring codes meet specified criteria or conditions. |
-| ValidateDiscountCodeChange | Triggered to validate changes to a discount code. Developers can use this event to enforce rules or validations related to the modification of discount codes, ensuring adherence to specified standards or requirements. |
-| ValidateDiscountCodeRemove | Triggered to validate the removal of a discount code. Developers can use this event to enforce rules or validations related to the removal process, ensuring it meets specified criteria or conditions. |
-| ValidateDiscountCreate | Triggered to validate the creation of a new discount. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateDiscountDateRangeChange | Triggered to validate changes to the date range of a discount. Developers can use this event to enforce rules or validations related to date range changes for discounts, ensuring proper configuration and management. |
-| ValidateDiscountDelete | Triggered to validate the deletion of a discount. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateDiscountNameChange | Triggered to validate changes to the name of a discount. Developers can use this event to enforce rules or validations related to the modification of discount names, ensuring clarity and consistency in identification. |
-| ValidateDiscountRewardsChange | Triggered to validate changes to the rewards associated with a discount. Developers can use this event to enforce rules or validations related to reward changes for discounts, ensuring adherence to specified rules or conditions. |
-| ValidateDiscountRulesChange | Triggered to validate changes to the rules associated with a discount. Developers can use this event to enforce rules or validations related to rule changes for discounts, ensuring adherence to specified rules or conditions. |
-| ValidateDiscountSave | Triggered to validate the saving of changes to a discount. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateDiscountTypeChange | Triggered to validate changes to the type of a discount. Developers can use this event to enforce rules or validations related to discount type changes, ensuring consistency and adherence to business rules. |
-| ValidateDiscountUpdate | Triggered to validate updates to a discount. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Email Template Payment Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateEmailTemplateAliasChange | Triggered to validate changes to the alias of an email template. Developers can use this event to enforce rules or validations related to the modification of email template aliases, ensuring clarity and consistency in identification. |
-| ValidateEmailTemplateBccAddressChange | Triggered to validate changes to the Blind Carbon Copy (BCC) addresses of an email template. Developers can use this event to enforce rules or validations related to BCC address changes for email templates, ensuring proper configuration and management. |
-| ValidateEmailTemplateCategoryChange | Triggered to validate changes to the category of an email template. Developers can use this event to enforce rules or validations related to category changes for email templates, ensuring proper categorization and organization. |
-| ValidateEmailTemplateCcAddressChange | Triggered to validate changes to the Carbon Copy (CC) addresses of an email template. Developers can use this event to enforce rules or validations related to CC address changes for email templates, ensuring proper configuration and management. |
-| ValidateEmailTemplateCreate | Triggered to validate the creation of a new email template. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateEmailTemplateDelete | Triggered to validate the deletion of an email template. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateEmailTemplateNameChange | Triggered to validate changes to the name of an email template. Developers can use this event to enforce rules or validations related to the modification of email template names, ensuring clarity and consistency in identification. |
-| ValidateEmailTemplateReplyToAddressChange | Triggered to validate changes to the reply-to address of an email template. Developers can use this event to enforce rules or validations related to reply-to address changes for email templates, ensuring proper configuration and management. |
-| ValidateEmailTemplateSave | Triggered to validate the saving of changes to an email template. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateEmailTemplateSenderChange | Triggered to validate changes to the sender of an email template. Developers can use this event to enforce rules or validations related to sender changes for email templates, ensuring proper configuration and management. |
-| ValidateEmailTemplateSendToCustomerChange | Triggered to validate changes to the recipient (send-to) settings of an email template. Developers can use this event to enforce rules or validations related to recipient changes for email templates, ensuring proper configuration and management. |
-| ValidateEmailTemplateSubjectChange | Triggered to validate changes to the subject of an email template. Developers can use this event to enforce rules or validations related to subject changes for email templates, ensuring clarity and consistency in communication. |
-| ValidateEmailTemplateToAddressChange | Triggered to validate changes to the TO addresses of an email template. Developers can use this event to enforce rules or validations related to TO address changes for email templates, ensuring proper configuration and management. |
-| ValidateEmailTemplateUpdate | Triggered to validate updates to an email template. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-| ValidateEmailTemplateViewChange | Triggered to validate changes to the view settings of an email template. Developers can use this event to enforce rules or validations related to view changes for email templates, ensuring proper configuration and management. |
-
-### Export Template Payment Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateExportTemplateAliasChange | Triggered to validate changes to the alias of an export template. Developers can use this event to enforce rules or validations related to the modification of export template aliases, ensuring clarity and consistency in identification. |
-| ValidateExportTemplateCategoryChange | Triggered to validate changes to the category of an export template. Developers can use this event to enforce rules or validations related to category changes for export templates, ensuring proper categorization and organization. |
-| ValidateExportTemplateCreate | Triggered to validate the creation of a new export template. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateExportTemplateDelete | Triggered to validate the deletion of an export template. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateExportTemplateExportStrategyChange | Triggered to validate changes to the export strategy of an export template. Developers can use this event to enforce rules or validations related to export strategy changes for export templates, ensuring proper configuration and management. |
-| ValidateExportTemplateFileExtensionChange | Triggered to validate changes to the file extension of an export template. Developers can use this event to enforce rules or validations related to file extension changes for export templates, ensuring proper configuration and management. |
-| ValidateExportTemplateFileMimeTypeChange | Triggered to validate changes to the file Multipurpose Internet Mail Extensions (MIME) type of an export template. Developers can use this event to enforce rules or validations related to file MIME type changes for export templates, ensuring proper configuration and management. |
-| ValidateExportTemplateNameChange |Triggered to validate changes to the name of an export template. Developers can use this event to enforce rules or validations related to the modification of export template names, ensuring clarity and consistency in identification. |
-| ValidateExportTemplateSave | Triggered to validate the saving of changes to an export template. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateExportTemplateUpdate | Triggered to validate updates to an export template. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-| ValidateExportTemplateViewChange | Triggered to validate changes to the view settings of an export template. Developers can use this event to enforce rules or validations related to view changes for export templates, ensuring proper configuration and management. |
-
-### Fetch Order Payment Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateFetchOrderPaymentStatus | Triggered to validate the process of fetching the payment status of an order. Developers can use this event to enforce rules or validations related to how payment statuses are retrieved and handled for orders. |
-
-### Gift Card Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateGiftCardActiveChange | Triggered to validate changes to the active status of a gift card. Developers can use this event to enforce rules or validations related to the modification of gift card activation, ensuring proper control and management of gift card statuses. |
-| ValidateGiftCardAmountsChange | Triggered to validate changes to the amounts associated with a gift card. Developers can use this event to enforce rules or validations related to the modification of gift card amounts, ensuring accuracy and consistency in financial transactions involving gift cards. |
-| ValidateGiftCardCodeChange | Triggered to validate changes to the code (identifier) of a gift card. Developers can use this event to enforce rules or validations related to the modification of gift card codes, ensuring uniqueness and integrity of gift card identifiers. |
-| ValidateGiftCardCreate | Triggered to validate the creation of a new gift card. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateGiftCardCurrencyChange | Triggered to validate changes to the currency associated with a gift card. Developers can use this event to enforce rules or validations related to the modification of gift card currencies, ensuring compatibility and accuracy in financial transactions involving different currencies. |
-| ValidateGiftCardDelete | Triggered to validate the deletion of a gift card. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateGiftCardExpiryDateChange | Triggered to validate changes to the expiry date of a gift card. Developers can use this event to enforce rules or validations related to the modification of gift card expiry dates, ensuring proper management and utilization of gift card validity periods. |
-| ValidateGiftCardOrderChange | Triggered to validate changes to the order associated with a gift card. Developers can use this event to enforce rules or validations related to the modification of gift card orders, ensuring proper tracking and management of gift card transactions. |
-| ValidateGiftCardPropertyChange | Triggered to validate changes to properties (attributes) of a gift card. Developers can use this event to enforce rules or validations related to the modification of gift card properties, ensuring consistency and adherence to business rules. |
-| ValidateGiftCardSave | Triggered to validate the saving of changes to a gift card. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateGiftCardUpdate | Triggered to validate updates to a gift card. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Location Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateLocationAddressChange | Triggered to validate changes to the address of a location. Developers can use this event to enforce rules or validations related to the modification of location addresses, ensuring accuracy and consistency in location data. |
-| ValidateLocationAliasChange | Triggered to validate changes to the alias (identifier) of a location. Developers can use this event to enforce rules or validations related to the modification of location aliases, ensuring uniqueness and integrity in identifying locations. |
-| ValidateLocationCreate | Triggered to validate the creation of a new location. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateLocationDelete | Triggered to validate the deletion of a location. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateLocationNameChange | Triggered to validate changes to the name of a location. Developers can use this event to enforce rules or validations related to the modification of location names, ensuring clarity and consistency in identifying locations. |
-| ValidateLocationSave | Triggered to validate the saving of changes to a location. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateLocationTypeChange | Triggered to validate changes to the type (category) of a location. Developers can use this event to enforce rules or validations related to the modification of location types, ensuring proper categorization and organization of locations. |
-| ValidateLocationUpdate | Triggered to validate updates to a location. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Order Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateOrderAssignToCustomer | Triggered to validate the assignment of an order to a customer. Developers can use this event to enforce rules or validations related to customer assignments for orders, ensuring proper association and management of customer orders. |
-| ValidateOrderCodeEvent | Triggered to validate events related to order codes. Developers can use this event to enforce rules or validations related to the handling or modification of order codes, ensuring uniqueness and adherence to business rules regarding order identifiers. |
-| ValidateOrderCreate | Triggered to validate the creation of a new order. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateOrderCurrencyChange | Triggered to validate changes to the currency associated with an order. Developers can use this event to enforce rules or validations related to the modification of order currencies, ensuring accuracy and consistency in financial transactions involving different currencies. |
-| ValidateOrderDelete | Triggered to validate the deletion of an order. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateOrderDiscountCodeRedeem | Triggered to validate the redemption of a discount code on an order. Developers can use this event to enforce rules or validations related to the application and validation of discount codes, ensuring proper handling and application of discounts on orders. |
-| ValidateOrderDiscountCodeUnredeem | Triggered to validate the unredeeming of a discount code on an order. Developers can use this event to enforce rules or validations related to the removal or cancellation of discount codes, ensuring proper handling and adjustment of discounts on orders. |
-| ValidateOrderFinalize | Triggered to validate the finalization of an order. Developers can use this event to enforce rules or validations related to the finalization process, ensuring completeness and accuracy before an order is considered finalized. |
-| ValidateOrderGiftCardRedeem | Triggered to validate the redemption of a gift card on an order. Developers can use this event to enforce rules or validations related to the application and validation of gift cards, ensuring proper handling and application of gift cards on orders. |
-| ValidateOrderGiftCardUnredeem | Triggered to validate the unredeeming of a gift card on an order. Developers can use this event to enforce rules or validations related to the removal or cancellation of gift cards, ensuring proper handling and adjustment of gift cards on orders. |
-| ValidateOrderLanguageChange | Triggered to validate changes to the language associated with an order. Developers can use this event to enforce rules or validations related to the modification of order languages, ensuring proper localization and communication preferences are maintained. |
-| ValidateOrderLinePropertyChange | Triggered to validate changes to properties (attributes) of an order line. Developers can use this event to enforce rules or validations related to the modification of order line properties, ensuring consistency and adherence to business rules. |
-| ValidateOrderLineQuantityChange | Triggered to validate changes to the quantity of items in an order line. Developers can use this event to enforce rules or validations related to the modification of order line quantities, ensuring accuracy and consistency in order fulfillment and inventory management. |
-| ValidateOrderLineRemove | Triggered to validate the removal of an order line. Developers can use this event to enforce rules or validations related to the removal process, ensuring it meets specified criteria or conditions. |
-| ValidateOrderLineTaxClassChange | Triggered to validate changes to the tax class associated with an order line. Developers can use this event to enforce rules or validations related to the modification of tax classes for order lines, ensuring accurate tax calculations and compliance with tax regulations. |
-| ValidateOrderPaymentCountryRegionChange | Triggered to validate changes to the payment country/region associated with an order. Developers can use this event to enforce rules or validations related to the modification of payment country/region settings for orders, ensuring proper handling and compliance with payment regulations. |
-| ValidateOrderPaymentMethodChange | Triggered to validate changes to the payment method associated with an order. Developers can use this event to enforce rules or validations related to the modification of payment methods for orders, ensuring proper handling and security of payment transactions. |
-| ValidateOrderProductAdd | Triggered to validate the addition of a product to an order. Developers can use this event to enforce rules or validations related to the addition process, ensuring product availability, pricing accuracy, and adherence to business rules. |
-| ValidateOrderPropertyChange | Triggered to validate changes to properties (attributes) of an order. Developers can use this event to enforce rules or validations related to the modification of order properties, ensuring consistency and adherence to business rules. |
-| ValidateOrderSave | Triggered to validate the saving of changes to an order. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateOrderShippingCountryRegionChange | Triggered to validate changes to the shipping country/region associated with an order. Developers can use this event to enforce rules or validations related to the modification of shipping country/region settings for orders, ensuring accurate shipping calculations and compliance with shipping regulations. |
-| ValidateOrderShippingMethodChange | Triggered to validate changes to the shipping method associated with an order. Developers can use this event to enforce rules or validations related to the modification of shipping methods for orders, ensuring proper handling and accuracy in order fulfillment. |
-| ValidateOrderStatusAliasChange | Triggered to validate changes to the alias (identifier) of an order status. Developers can use this event to enforce rules or validations related to the modification of order status aliases, ensuring uniqueness and integrity in identifying order statuses. |
-| ValidateOrderStatusChange | Triggered to validate changes to the status of an order. Developers can use this event to enforce rules or validations related to the modification of order statuses, ensuring proper handling and management of order lifecycle transitions. |
-| ValidateOrderStatusColorChange | Triggered to validate changes to the color associated with an order status. Developers can use this event to enforce rules or validations related to the modification of order status colors, ensuring visual clarity and consistency in status representations. |
-| ValidateOrderStatusCreate | Triggered to validate the creation of a new order status. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateOrderStatusDelete | Triggered to validate the deletion of an order status. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateOrderStatusNameChange | Triggered to validate changes to the name of an order status. Developers can use this event to enforce rules or validations related to the modification of order status names, ensuring clarity and consistency in identifying order statuses. |
-| ValidateOrderStatusSave | Triggered to validate the saving of changes to an order status. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateOrderStatusUpdate | Triggered to validate updates to an order status. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-| ValidateOrderTagAdd | Triggered to validate the addition of a tag to an order. Developers can use this event to enforce rules or validations related to the tagging process, ensuring proper categorization and organization of orders. |
-| ValidateOrderTagRemove | Triggered to validate the removal of a tag from an order. Developers can use this event to enforce rules or validations related to the tag removal process, ensuring it meets specified criteria or conditions. |
-| ValidateOrderTaxClassChange | Triggered to validate changes to the tax class associated with an order. Developers can use this event to enforce rules or validations related to the modification of tax classes for orders, ensuring accurate tax calculations and compliance with tax regulations. |
-| ValidateOrderTransactionUpdate | Triggered to validate updates to order transactions. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-| ValidateOrderUpdate | Triggered to validate updates to an order. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-| ValidateRefundOrderPayment | Triggered to validate the process of refunding an order payment. Developers can use this event to enforce rules or validations related to the refunding process, ensuring accuracy and adherence to business logic. |
-
-### Payment Method Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidatePaymentMethodAliasChange | Triggered to validate changes to the alias (identifier) of a payment method. Developers can use this event to enforce rules or validations related to the modification of payment method aliases, ensuring uniqueness and integrity in identifying payment methods. |
-| ValidatePaymentMethodAllowInCountryRegion | Triggered to validate whether a payment method is allowed in a specific country/region. Developers can use this event to enforce rules or validations related to the availability and eligibility of payment methods in different geographic locations. |
-| ValidatePaymentMethodClearPrices | Triggered to validate the clearing of prices associated with a payment method. Developers can use this event to enforce rules or validations related to the modification or removal of pricing information for payment methods, ensuring accuracy and consistency in financial transactions. |
-| ValidatePaymentMethodCreate | Triggered to validate the creation of a new payment method. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidatePaymentMethodDelete | Triggered to validate the deletion of a payment method. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidatePaymentMethodDisallowInCountryRegion | Triggered to validate whether a payment method is disallowed in a specific country/region. Developers can use this event to enforce rules or validations related to the restriction and eligibility of payment methods in different geographic locations. |
-| ValidatePaymentMethodImageChange | Triggered to validate changes to the image associated with a payment method. Developers can use this event to enforce rules or validations related to the modification of payment method images, ensuring visual consistency and adherence to branding guidelines. |
-| ValidatePaymentMethodNameChange | Triggered to validate changes to the name of a payment method. Developers can use this event to enforce rules or validations related to the modification of payment method names, ensuring clarity and consistency in identifying payment methods. |
-| ValidatePaymentMethodPriceChange | Triggered to validate changes to the price or cost associated with a payment method. Developers can use this event to enforce rules or validations related to the modification of payment method pricing, ensuring accurate financial calculations and compliance with pricing policies. |
-| ValidatePaymentMethodSave | Triggered to validate the saving of changes to a payment method. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidatePaymentMethodSettingChange | Triggered to validate changes to settings or configurations of a payment method. Developers can use this event to enforce rules or validations related to the modification of payment method settings, ensuring functionality and compliance with operational requirements. |
-| ValidatePaymentMethodSkuChange | Triggered to validate changes to the Stock Keeping Unit (SKU) associated with a payment method. Developers can use this event to enforce rules or validations related to the modification of payment method SKUs, ensuring inventory tracking and consistency in product identification. |
-| ValidatePaymentMethodTaxClassChange | Triggered to validate changes to the tax class associated with a payment method. Developers can use this event to enforce rules or validations related to the modification of tax classes for payment methods, ensuring accurate tax calculations and compliance with tax regulations. |
-| ValidatePaymentMethodToggleFeatures | Triggered to validate toggling or enabling/disabling features of a payment method. Developers can use this event to enforce rules or validations related to the management and configuration of payment method features, ensuring functionality and compliance with operational requirements. |
-| ValidatePaymentMethodUpdate | Triggered to validate updates to a payment method. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Print Template Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidatePrintTemplateAliasChange | Triggered to validate changes to the alias (identifier) of a print template. Developers can use this event to enforce rules or validations related to the modification of print template aliases, ensuring uniqueness and proper identification. |
-| ValidatePrintTemplateCategoryChange | Triggered to validate changes to the category of a print template. Developers can use this event to enforce rules or validations related to the categorization of print templates, ensuring accurate organization and management. |
-| ValidatePrintTemplateCreate | Triggered to validate the creation of a new print template. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidatePrintTemplateDelete | Triggered to validate the deletion of a print template. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidatePrintTemplateNameChange | Triggered to validate changes to the name of a print template. Developers can use this event to enforce rules or validations related to the modification of print template names, ensuring clarity and consistency in identifying print templates. |
-| ValidatePrintTemplateSave | Triggered to validate the saving of changes to a print template. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidatePrintTemplateUpdate | Triggered to validate updates to a print template. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-| ValidatePrintTemplateViewChange | Triggered to validate changes to the view configuration of a print template. Developers can use this event to enforce rules or validations related to the modification of how print templates are displayed or accessed, ensuring user experience consistency and functionality. |
-
-### Product Attribute Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateProductAttributeAliasChange | Triggered to validate changes to the alias (identifier) of a product attribute. Developers can use this event to enforce rules or validations related to the modification of product attribute aliases, ensuring uniqueness and proper identification. |
-| ValidateProductAttributeCreate | Triggered to validate the creation of a new product attribute. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateProductAttributeDelete | Triggered to validate the deletion of a product attribute. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateProductAttributeNameChange | Triggered to validate changes to the name of a product attribute. Developers can use this event to enforce rules or validations related to the modification of product attribute names, ensuring clarity and consistency in identifying product attributes. |
-| ValidateProductAttributePresetAliasChange | Triggered to validate changes to the alias (identifier) of a product attribute preset. Developers can use this event to enforce rules or validations related to the modification of product attribute preset aliases, ensuring uniqueness and proper identification. |
-| ValidateProductAttributePresetAllowAttribute | Triggered to validate allowing an attribute in a product attribute preset. Developers can use this event to enforce rules or validations related to the configuration of product attribute presets, ensuring proper association and functionality. |
-| ValidateProductAttributePresetCreate | Triggered to validate the creation of a new product attribute preset. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateProductAttributePresetDelete | Triggered to validate the deletion of a product attribute preset. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateProductAttributePresetDescriptionChange | Triggered to validate changes to the description of a product attribute preset. Developers can use this event to enforce rules or validations related to the modification of product attribute preset descriptions, ensuring clarity and consistency in information provided. |
-| ValidateProductAttributePresetDisallowAttribute | Triggered to validate disallowing an attribute in a product attribute preset. Developers can use this event to enforce rules or validations related to the configuration of product attribute presets, ensuring proper association and functionality. |
-| ValidateProductAttributePresetIconChange | Triggered to validate changes to the icon associated with a product attribute preset. Developers can use this event to enforce rules or validations related to the modification of product attribute preset icons, ensuring visual consistency and adherence to design guidelines. |
-| ValidateProductAttributePresetNameChange | Triggered to validate changes to the name of a product attribute preset. Developers can use this event to enforce rules or validations related to the modification of product attribute preset names, ensuring clarity and consistency in identifying product attribute presets. |
-| ValidateProductAttributePresetSave | Triggered to validate the saving of changes to a product attribute preset. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateProductAttributePresetUpdate | Triggered to validate updates to a product attribute preset. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-| ValidateProductAttributeSave | Triggered to validate the saving of changes to a product attribute. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateProductAttributeUpdate | Triggered to validate updates to a product attribute. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-| ValidateProductAttributeValueAdd | Triggered to validate the addition of a value to a product attribute. Developers can use this event to enforce rules or validations related to the addition process, ensuring data integrity and adherence to product attribute specifications. |
-| ValidateProductAttributeValueNameChange | Triggered to validate changes to the name of a value associated with a product attribute. Developers can use this event to enforce rules or validations related to the modification of product attribute value names, ensuring clarity and consistency in identifying product attribute values. |
-| ValidateProductAttributeValueRemove | Triggered to validate the removal of a value from a product attribute. Developers can use this event to enforce rules or validations related to the removal process, ensuring it meets specified criteria or conditions and maintains data integrity. |
-
-### Region Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateRegionCodeChange | Triggered to validate changes to the code of a region. Developers can use this event to enforce rules or validations related to the modification of region codes, ensuring uniqueness and proper identification. |
-| ValidateRegionCreate | Triggered to validate the creation of a new region. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateRegionDefaultPaymentMethodChange | Triggered to validate changes to the default payment method of a region. Developers can use this event to enforce rules or validations related to the modification of default payment methods for regions, ensuring proper configuration and functionality. |
-| ValidateRegionDefaultShippingMethodChange | Triggered to validate changes to the default shipping method of a region. Developers can use this event to enforce rules or validations related to the modification of default shipping methods for regions, ensuring proper configuration and functionality. |
-| ValidateRegionDelete | Triggered to validate the deletion of a region. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateRegionNameChange | Triggered to validate changes to the name of a region. Developers can use this event to enforce rules or validations related to the modification of region names, ensuring clarity and consistency in identifying regions. |
-| ValidateRegionSave | Triggered to validate the saving of changes to a region. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateRegionUpdate | Triggered to validate updates to a region. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Shipping Method Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateShippingMethodAliasChange | Triggered to validate changes to the alias of a shipping method. Developers can use this event to enforce rules or validations related to the modification of shipping method aliases, ensuring uniqueness and proper identification. |
-| ValidateShippingMethodAllowInCountryRegion | Triggered to validate whether a shipping method is allowed in a specific country or region. Developers can use this event to enforce rules or validations related to the availability of shipping methods in different geographical areas. |
-| ValidateShippingMethodCalculationConfigChange | Triggered to validate changes to the calculation configuration of a shipping method. Developers can use this event to enforce rules or validations related to how shipping costs are calculated, ensuring accuracy and consistency in pricing. |
-| ValidateShippingMethodClearPrices | Triggered to validate the process of clearing prices associated with a shipping method. Developers can use this event to enforce rules or validations related to price adjustments or resets for shipping methods. |
-| ValidateShippingMethodCreate | Triggered to validate the creation of a new shipping method. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateShippingMethodDelete | Triggered to validate the deletion of a shipping method. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateShippingMethodDisallowInCountryRegion | Triggered to validate whether a shipping method is disallowed in a specific country or region. Developers can use this event to enforce rules or validations related to restricting shipping methods in different geographical areas. |
-| ValidateShippingMethodImageChange | Triggered to validate changes to the image associated with a shipping method. Developers can use this event to enforce rules or validations related to visual content updates for shipping methods. |
-| ValidateShippingMethodNameChange | Triggered to validate changes to the name of a shipping method. Developers can use this event to enforce rules or validations related to the modification of shipping method names, ensuring clarity and consistency in identifying shipping methods. |
-| ValidateShippingMethodPriceChange | Triggered to validate changes to the price of a shipping method. Developers can use this event to enforce rules or validations related to price adjustments or updates for shipping methods, ensuring accurate pricing information. |
-| ValidateShippingMethodSave | Triggered to validate the saving of changes to a shipping method. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateShippingMethodSettingChange | Triggered to validate changes to the settings of a shipping method. Developers can use this event to enforce rules or validations related to configuration updates for shipping methods, ensuring proper functionality and integration with other systems. |
-| ValidateShippingMethodSkuChange | Triggered to validate changes to the Stock Keeping Unit (SKU) of a shipping method. Developers can use this event to enforce rules or validations related to product identification and tracking for shipping methods. |
-| ValidateShippingMethodTaxClassChange | Triggered to validate changes to the tax class associated with a shipping method. Developers can use this event to enforce rules or validations related to tax rate adjustments or updates for shipping methods. |
-| ValidateShippingMethodUpdate | Triggered to validate updates to a shipping method. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Stock Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateStockChange | Triggered to validate changes made to the stock levels of products or inventory items. Developers can use this event to enforce business logic related to stock adjustments, ensuring accuracy and adherence to inventory management policies. |
-
-### Store Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateStoreAddGiftCardPropertyAlias | Triggered to validate adding an alias for a gift card property in a store. Developers can use this event to enforce rules or validations related to gift card property aliases, ensuring uniqueness and proper identification. |
-| ValidateStoreAddProductPropertyAlias | Triggered to validate adding an alias for a product property in a store. Developers can use this event to enforce rules or validations related to product property aliases, ensuring uniqueness and proper identification. |
-| ValidateStoreAddProductUniquenessPropertyAlias | Triggered to validate adding an alias for a uniqueness property of a product in a store. Developers can use this event to enforce rules or validations related to uniqueness property aliases, ensuring uniqueness and proper identification. |
-| ValidateStoreAliasChange | Triggered to validate changes to the alias of a store. Developers can use this event to enforce rules or validations related to the modification of store aliases, ensuring uniqueness and proper identification. |
-| ValidateStoreAllowUser | Triggered to validate allowing a user in a store. Developers can use this event to enforce rules or validations related to user permissions and access control within a store. |
-| ValidateStoreAllowUserRole | Triggered to validate allowing a user role in a store. Developers can use this event to enforce rules or validations related to user role permissions and access control within a store. |
-| ValidateStoreBaseCurrencyChange | Triggered to validate changes to the base currency of a store. Developers can use this event to enforce rules or validations related to the modification of base currencies, ensuring compatibility and consistency in financial operations. |
-| ValidateStoreCookiesChange | Triggered to validate changes to cookie settings in a store. Developers can use this event to enforce rules or validations related to privacy and tracking policies associated with cookies in a store. |
-| ValidateStoreCreate | Triggered to validate the creation of a new store. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateStoreDefaultCountryChange | Triggered to validate changes to the default country of a store. Developers can use this event to enforce rules or validations related to the modification of default countries, ensuring proper localization and operational settings. |
-| ValidateStoreDefaultLocationChange | Triggered to validate changes to the default location of a store. Developers can use this event to enforce rules or validations related to the modification of default locations, ensuring accurate fulfillment and logistical operations. |
-| ValidateStoreDefaultTaxClassChange |Triggered to validate changes to the default tax class of a store. Developers can use this event to enforce rules or validations related to tax handling and rate adjustments in a store. |
-| ValidateStoreDelete | Triggered to validate the deletion of a store. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateStoreDisallowUser | Triggered to validate disallowing a user in a store. Developers can use this event to enforce rules or validations related to user permissions and access control within a store. |
-| ValidateStoreDisallowUserRole | Triggered to validate disallowing a user role in a store. Developers can use this event to enforce rules or validations related to user role permissions and access control within a store. |
-| ValidateStoreGiftCardSettingsChange | Triggered to validate changes to gift card settings in a store. Developers can use this event to enforce rules or validations related to gift card management and configuration in a store. |
-| ValidateStoreMeasurementSystemChange | Triggered to validate changes to the measurement system used in a store. Developers can use this event to enforce rules or validations related to units of measurement and standardization in a store. |
-| ValidateStoreNameChange | Triggered to validate changes to the name of a store. Developers can use this event to enforce rules or validations related to the modification of store names, ensuring clarity and consistency in store identification. |
-| ValidateStoreNotificationEmailTemplatesChange | Triggered to validate changes to notification email templates in a store. Developers can use this event to enforce rules or validations related to email template management and communication in a store. |
-| ValidateStoreOrderNumberTemplatesChange | Triggered to validate changes to order number templates in a store. Developers can use this event to enforce rules or validations related to order numbering and format specifications in a store. |
-| ValidateStoreOrderRoundingMethodChange | Triggered to validate changes to the rounding method used for orders in a store. Developers can use this event to enforce rules or validations related to financial calculations and accuracy in a store. |
-| ValidateStoreOrderStatusesChange | Triggered to validate changes to order statuses in a store. Developers can use this event to enforce rules or validations related to order status management and workflow customization in a store. |
-| ValidateStorePriceTaxInclusivityChange | Triggered to validate changes to price tax inclusivity settings in a store. Developers can use this event to enforce rules or validations related to tax calculation methods and pricing policies in a store. |
-| ValidateStoreRemoveGiftCardPropertyAlias | Triggered to validate removing an alias for a gift card property in a store. Developers can use this event to enforce rules or validations related to gift card property aliases, ensuring proper management and identification. |
-| ValidateStoreRemoveProductPropertyAlias | Triggered to validate removing an alias for a product property in a store. Developers can use this event to enforce rules or validations related to product property aliases, ensuring proper management and identification. |
-| ValidateStoreRemoveProductUniquenessPropertyAlias | Triggered to validate removing an alias for a uniqueness property of a product in a store. Developers can use this event to enforce rules or validations related to uniqueness property aliases, ensuring proper management and identification. |
-| ValidateStoreSave | Triggered to validate the saving of changes to a store. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateStoreShareStockFromStoreChange | Triggered to validate changes to the shared stock setting between stores. Developers can use this event to enforce rules or validations related to stock management and synchronization across multiple stores. |
-| ValidateStoreUpdate | Triggered to validate updates to a store. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-### Tax Class Events
-
-| **Event** | **Description** |
-|---|---|
-| ValidateTaxClassAliasChange | Triggered to validate changes to the alias of a tax class. Developers can use this event to enforce rules or validations related to the modification of tax class aliases, ensuring uniqueness and proper identification. |
-| ValidateTaxClassClearTaxRates | Triggered to validate clearing tax rates associated with a tax class. Developers can use this event to enforce rules or validations related to tax rate adjustments or resets for tax classes. |
-| ValidateTaxClassCreate | Triggered to validate the creation of a new tax class. Developers can use this event to enforce rules or validations related to the creation process, ensuring data integrity and adherence to business logic. |
-| ValidateTaxClassDelete | Triggered to validate the deletion of a tax class. Developers can use this event to enforce rules or validations related to the deletion process, ensuring it meets specified criteria or conditions. |
-| ValidateTaxClassNameChange | Triggered to validate changes to the name of a tax class. Developers can use this event to enforce rules or validations related to the modification of tax class names, ensuring clarity and consistency in tax classification. |
-| ValidateTaxClassSave | Triggered to validate the saving of changes to a tax class. Developers can use this event to enforce rules or validations related to the save process, ensuring data integrity and adherence to business logic. |
-| ValidateTaxClassTaxRateChange | Triggered to validate changes to tax rates associated with a tax class. Developers can use this event to enforce rules or validations related to tax rate adjustments or updates for tax classes. |
-| ValidateTaxClassUpdate | Triggered to validate updates to a tax class. Developers can use this event to enforce rules or validations related to the update process, ensuring data integrity and adherence to business logic. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.Country
-
-| **Event** | **Description** |
-|---|---|
-| ValidateCountryCodeFormat | Triggered to validate the format of a country code. Developers can use this event to enforce rules or validations related to the correct formatting of country codes, ensuring adherence to specified standards. |
-| ValidateDefaultCurrencyBelongsToCountryStore | Triggered to ensure that the default currency belongs to the country store. Developers can use this event to enforce validation rules specific to default currencies and country stores. |
-| ValidateDefaultPaymentMethodBelongsToCountryStore | Triggered to ensure that the default payment method belongs to the country store. Developers can use this event to enforce validation rules specific to default payment methods and country stores. |
-| ValidateDefaultShippingMethodBelongsToCountryStore | Triggered to ensure that the default shipping method belongs to the country store. Developers can use this event to enforce validation rules specific to default shipping methods and country stores. |
-| ValidateNotStoreDefaultCountry | Triggered to ensure that the country being validated is not the default country for the store. Developers can use this event to enforce validation rules specific to countries and store defaults, ensuring proper configuration and management of default countries. |
-| ValidateUniqueCountryCode | Triggered to ensure that the country code is unique. Developers can use this event to enforce rules or validations to maintain the uniqueness of country codes within the system, preventing conflicts and ensuring clarity in country identification. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.Currency
-
-| **Event** | **Description** |
-|---|---|
-| ValidateAllowedCountryBelongsToCurrencyStore | Triggered to validate if the country is allowed in the currency store. Developers can use this event to enforce rules or validations related to countries allowed within specific currency stores. |
-| ValidateCulture | Triggered to validate the culture. Developers can use this event to enforce rules or validations related to the culture settings, ensuring compatibility and consistency within the system. |
-| ValidateCurrencyCodeFormat | Triggered to validate the format of a currency code. Developers can use this event to enforce rules or validations related to the correct formatting of currency codes, ensuring adherence to specified standards. |
-| ValidateNotCountryDefaultCurrency | Triggered to ensure that the country is not the default currency. Developers can use this event to enforce rules or validations related to default currency settings for specific countries. |
-| ValidateNotStoreBaseCurrency | Triggered to ensure that the currency is not the base currency for the store. Developers can use this event to enforce rules or validations related to base currency settings for specific stores. |
-| ValidateUniqueCurrencyCode | Triggered to ensure that the currency code is unique. Developers can use this event to enforce rules or validations to maintain the uniqueness of currency codes within the system, preventing conflicts and ensuring clarity in currency identification. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.Discount
-
-| **Event** | **Description** |
-|---|---|
-| ValidateUniqueAlias | Triggered to ensure that the alias is unique. Developers can use this event to enforce rules or validations to maintain the uniqueness of aliases within the system, preventing conflicts and ensuring clarity in identification. |
-| ValidateUniqueDiscountCode | Triggered to ensure that the discount code is unique. Developers can use this event to enforce rules or validations to maintain the uniqueness of discount codes within the system, preventing duplicate codes from being issued. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.EmailTemplate
-
-| **Event** | **Description** |
-|---|---|
-| ValidateNotStoreDefaultEmailTemplate | Triggered to ensure that the email template being validated is not the default email template for the store. Developers can use this event to enforce validation rules specific to email templates and store defaults, ensuring proper configuration and management of default email templates. |
-| ValidateUniqueEmailTemplateAlias | Triggered to ensure that the alias for an email template is unique. Developers can use this event to enforce rules or validations to maintain the uniqueness of email template aliases within the system, preventing conflicts and ensuring clarity in template identification. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.ExportTemplate
-
-| **Event** | **Description** |
-|---|---|
-| ValidateUniqueExportTemplateAlias | Triggered to ensure that the alias for an export template is unique. Developers can use this event to enforce rules or validations to maintain the uniqueness of export template aliases within the system, preventing conflicts and ensuring clarity in template identification. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.GiftCard
-
-| **Event** | **Description** |
-|---|---|
-| ValidateUniqueGiftCardCode | Triggered to ensure that the code for a gift card is unique. Developers can use this event to enforce rules or validations to maintain the uniqueness of gift card codes within the system, preventing duplicate codes from being issued. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.Location
-
-| **Event** | **Description** |
-|---|---|
-| ValidateNotStoreDefaultLocation | Triggered to ensure that the location being validated is not the default location for the store. Developers can use this event to enforce validation rules specific to locations and store defaults, ensuring proper configuration and management of default locations. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.Order
-
-| **Event** | **Description** |
-|---|---|
-| ValidateCurrencyBelongsToOrderStore | Triggered to ensure that the currency belongs to the order's store. Developers can use this event to enforce validation rules specific to currencies and order stores. |
-| ValidateDiscountCodeValid | Triggered to validate the validity of a discount code. Developers can use this event to enforce rules or validations related to discount codes, ensuring they are valid and applicable. |
-| ValidateGiftCardPropertyIsWritable | Triggered to validate whether a specific property of a gift card is writable. Developers can use this event to enforce rules or validations related to the writability of gift card properties. |
-| ValidateGiftCardValid | Triggered to validate the validity of a gift card. Developers can use this event to enforce rules or validations related to gift cards, ensuring they are valid and can be applied. |
-| ValidateOrderPaymentCountryRegionAllowedByOrderCurrency | Triggered to validate if the payment country or region is allowed by the order currency. Developers can use this event to enforce rules or validations related to payment countries or regions based on the order currency. |
-| ValidateOrderPaymentCountryRegionBelongsToOrderStore | Triggered to ensure that the payment country or region belongs to the order's store. Developers can use this event to enforce validation rules specific to payment countries or regions and order stores. |
-| ValidateOrderPropertyIsWritable | Triggered to validate whether a specific property of an order is writable. Developers can use this event to enforce rules or validations related to the writability of order properties. |
-| ValidateOrderShippingCountryRegionBelongsToOrderStore | Triggered to ensure that the shipping country or region belongs to the order's store. Developers can use this event to enforce validation rules specific to shipping countries or regions and order stores. |
-| ValidateOrderStatusBelongsToOrderStore | Triggered to ensure that the order status belongs to the order's store. Developers can use this event to enforce validation rules specific to order statuses and order stores. |
-| ValidateOrderStatusCode | Triggered to validate the order status code. Developers can use this event to enforce rules or validations related to order status codes, ensuring they adhere to specified formats or requirements. |
-| ValidatePaymentMethodAllowedInPaymentCountryRegion | Triggered to validate if the payment method is allowed in the payment country or region. Developers can use this event to enforce rules or validations related to payment methods based on payment countries or regions. |
-| ValidatePaymentMethodBelongsToOrderStore | Triggered to ensure that the payment method belongs to the order's store. Developers can use this event to enforce validation rules specific to payment methods and order stores. |
-| ValidateProductAddHasPrice | Triggered to validate that a product being added to an order has a price. Developers can use this event to enforce rules or validations related to product prices when adding them to orders. |
-| ValidateProductAddQuantityPositive | Triggered to validate that the quantity of a product being added to an order is positive. Developers can use this event to enforce rules or validations related to product quantities when adding them to orders. |
-| ValidateShippingMethodAllowedInShippingCountryRegion | Triggered to validate if the shipping method is allowed in the shipping country or region. Developers can use this event to enforce rules or validations related to shipping methods based on shipping countries or regions. |
-| ValidateShippingMethodBelongsToOrderStore | Triggered to ensure that the shipping method belongs to the order's store. Developers can use this event to enforce validation rules specific to shipping methods and order stores. |
-| ValidateTaxClassBelongsToOrderStore | Triggered to ensure that the tax class belongs to the order's store. Developers can use this event to enforce validation rules specific to tax classes and order stores. |
-| ValidateTransactionInitialized | Triggered to validate that a transaction is initialized. Developers can use this event to enforce rules or validations related to transaction initialization, ensuring transactions are properly prepared before proceeding. |
-| ValidateUniqueBundleId | Triggered to ensure that the bundle ID is unique. Developers can use this event to enforce rules or validations to maintain the uniqueness of bundle IDs within the system. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.OrderLine
-
-| **Event** | **Description** |
-|---|---|
-| ValidateOrderLinePropertyIsWritable | Triggered to validate whether a specific property of an order line can be modified. Developers can use this event to enforce rules or validations related to the writability of order line properties, ensuring data integrity and adherence to business logic when modifying order line properties. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.OrderStatus
-
-| **Event** | **Description** |
-|---|---|
-| ValidateNotStoreDefaultOrderStatus | Triggered to ensure that the order status being validated is not the default order status for the store. Developers can use this event to enforce validation rules specific to order statuses and stores, ensuring proper configuration and management of default statuses. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.PaymentMethod
-
-| **Event** | **Description** |
-|---|---|
-| ValidateAllowedInPriceCountryRegion | **OBSOLETE:** Use `ValidateFixedRateAllowedInPriceCountryRegion` instead. This event was originally used to validate whether a price is allowed in the specified country or region, enabling developers to enforce this rule through custom actions or validations. |
-| ValidateNotCountryDefaultPaymentMethod | Triggered to ensure that the payment method being validated is not the default payment method for the country. Developers can use this event to enforce validation rules specific to payment methods and countries. |
-| ValidateNotRegionDefaultPaymentMethod | Triggered to ensure that the payment method being validated is not the default payment method for the region. Developers can use this event to enforce validation rules specific to payment methods and regions. |
-| ValidateUniquePaymentMethodAlias | Triggered to ensure that the alias for a payment method is unique. Developers can use this event to enforce uniqueness of payment method aliases within the system. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.PrintTemplate
-
-| **Event** | **Description** |
-|---|---|
-| ValidateUniquePrintTemplateAlias | Triggered to ensure that the alias for a print template is unique. Developers can use this event to enforce uniqueness of print template aliases within the system, preventing conflicts and ensuring clarity in template identification. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.ProductAttribute
-
-| **Event** | **Description** |
-|---|---|
-| ValidateUniqueProductAttributeAlias | Triggered to ensure that the alias for a product attribute is unique. Allows developers to enforce uniqueness of product attribute aliases within the system. |
-| ValidateUniqueProductAttributePresetAlias | Triggered to ensure that the alias for a product attribute preset is unique. Allows developers to enforce uniqueness of product attribute preset aliases within the system. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.Region
-
-| **Event** | **Description** |
-|---|---|
-| ValidateDefaultPaymentMethodBelongsToRegionStore | Triggered to ensure that the default payment method belongs to the region's store. Developers can use this event to enforce validation rules related to payment methods specific to regions and stores. |
-| ValidateDefaultShippingMethodBelongsToRegionStore | Triggered to ensure that the default shipping method belongs to the region's store. Developers can use this event to enforce validation rules related to shipping methods specific to regions and stores. |
-| ValidateUniqueRegionCode | Triggered to ensure that the region code is unique. Developers can use this event to enforce validation rules to maintain unique region codes within the system. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.ShippingMethod
-
-| **Event** | **Description** |
-|---|---|
-| ValidateAllowedInPriceCountryRegion | **OBSOLETE:** Use `ValidateFixedRateAllowedInPriceCountryRegion` instead. This event was originally used to validate whether a price is allowed in the specified country or region, enabling developers to enforce this rule through custom actions or validations. |
-| ValidateCalculationModeConfigType | Triggered to ensure that the calculation mode configuration type is valid. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateFixedRateAllowedInPriceCountryRegion | Triggered to ensure that a fixed rate is allowed in the specified price country or region. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateNotCountryDefaultShippingMethod | Triggered to ensure that the shipping method being validated is not the default shipping method for the country. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateNotRegionDefaultShippingMethod | Triggered to ensure that the shipping method being validated is not the default shipping method for the region. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateUniqueShippingMethodAlias | Triggered to ensure that the alias for a shipping method is unique. Allows developers to perform actions or validations to enforce the uniqueness of shipping method aliases. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.Store
-
-| **Event** | **Description** |
-|---|---|
-| ValidateDefaultCountryBelongsToStore | Triggered to ensure that the default country being validated belongs to the store. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateDefaultTaxClassBelongsToStore | Triggered to ensure that the default tax class being validated belongs to the store. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateNotificationEmailTemplatesBelongsToStore | Triggered to ensure that the notification email templates being validated belong to the store. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateOrderStatusesBelongsToStore | Triggered to ensure that the order statuses being validated belong to the store. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateUniqueStoreAlias | Triggered to ensure that the alias for a store is unique. Allows developers to perform actions or validations to enforce the uniqueness of store aliases. |
-
-## Umbraco.Commerce.Core.Events.Validation.Handlers.TaxClass
-
-| **Event** | **Description** |
-|---|---|
-| ValidateNotStoreDefaultTaxClass | Triggered to ensure that the tax class being validated is not the default tax class for the store. Allows developers to perform actions or validations to enforce this rule. |
-| ValidateUniqueTaxClassAlias | Triggered to ensure that the alias for a tax class is unique. Allows developers to perform actions or validations to enforce the uniqueness of tax class aliases. |
diff --git a/14/umbraco-commerce/key-concepts/fluent-api.md b/14/umbraco-commerce/key-concepts/fluent-api.md
deleted file mode 100644
index e40b2e9f4df..00000000000
--- a/14/umbraco-commerce/key-concepts/fluent-api.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-description: Faster development thanks to the Fluent API of Umbraco Commerce.
----
-
-# Fluent API
-
-An added side effect of having [ReadOnly and Writable entities](readonly-and-writable-entities.md) is that all of an entity's write operations are now performed via methods. This is instead of property setters, enabling to us convert Umbraco Commerce's write API in a fluent API.
-
-## Writing fluently
-
-You could perform a write operation as follows:
-
-```csharp
-_uowProvider.Execute(uow =>
-{
- // Fetch the currency
- var currency = _currencyService.GetCurrency(currencyId);
-
- // Convert the currency into it's Writable form
- var writableCurrency = currency.AsWritable(uow);
-
- // Perform the write operation
- writableCurrency.SetName("New Name");
-
- // Persist the changes to the database
- _currencyService.SaveCurrency(currency);
-
- // Close the transaction
- uow.Complete();
-});
-
-```
-
-This could be simplified further by defining these actions fluently, chaining all of the entity methods into a succinct command sequence as follows:
-
-```csharp
-_uowProvider.Execute(uow =>
-{
- var currency = _currencyService.GetCurrency(currencyId)
- .AsWritable(uow)
- .SetName("New Name");
-
- _currencyService.SaveCurrency(currency);
-
- uow.Complete();
-});
-
-```
-
-{% hint style="info" %}
-We know not everyone likes to write their code fluently and so the Umbraco Commerce Fluent API is an optional feature. Both code examples above are valid coding styles that will both work as well as each other. The Fluent API is an opt-in layer of syntax sugar that developers can use depending on their preferred style of coding.
-{% endhint %}
diff --git a/14/umbraco-commerce/key-concepts/order-calculation-state.md b/14/umbraco-commerce/key-concepts/order-calculation-state.md
deleted file mode 100644
index ee68ff09939..00000000000
--- a/14/umbraco-commerce/key-concepts/order-calculation-state.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-description: Calculation context in Umbraco Commerce.
----
-
-# Order Calculation State
-
-When extending the calculation process of Umbraco Commerce, either by custom [calculators](calculators.md) or custom [pipeline tasks](pipelines.md) it is important to be aware of the `OrderCalculation` object.
-
-## The Calculation Process
-
-When an order asks to be re-calculated, this triggers a calculation pipeline which in turn runs a series of calculation tasks. It then calls a number of extendable calculators in order to work out the orders' different prices. Throughout this process, Umbraco Commerce needs to keep track of all these prices as they change. At the same time, it also needs to ensure that the calculation is transactional in case something goes wrong. To accomplish both of these requirements we use a temporary state object called `OrderCalculation` to store all the information. Only at the end of the calculation, if everything was successful, we can copy those calculated prices back to the order.
-
-## Accessing Price Values
-
-In the different calculation extension points, Umbraco Commerce will often pass you **both** an `Order` object and the `OrderCalculation` object. We pass the order to get you access to any information held on it that you may need for calculations, such as custom properties. This shouldn't be used for accessing any price-related values of the order.
-
-As mentioned above, in order to maintain data integrity during the calculation process, the order itself is not updated until the end. This means that any calculations based on the order entities' price values would be based on the orders' **previously calculated price values**.
-
-In order to base your calculation on the current calculated price values you should instead access the `OrderCalculation` object.
-
-## The OrderCalculation Object
-
-```csharp
-public class OrderCalculation
-{
- public Dictionary OrderLines { get; }
-
- public Dictionary GiftCardAmounts { get; }
-
- public List FulfilledDiscountCodes { get; }
-
- public List FulfilledDiscounts { get; }
-
- public TaxRate TaxRate { get; set; }
-
- public OrderSubtotalPrice SubtotalPrice { get; set; }
-
- public TaxRate ShippingTaxRate { get; set; }
-
- public TotalPrice ShippingTotalPrice { get; set; }
-
- public TaxRate PaymentTaxRate { get; set; }
-
- public TotalPrice PaymentTotalPrice { get; set; }
-
- public OrderTotalPrice TotalPrice { get; set; }
-}
-
-public class OrderLineCalculation
-{
- public Dictionary OrderLines { get; }
-
- public TaxRate TaxRate { get; set; }
-
- public OrderLineUnitPrice UnitPrice { get; set; }
-
- public OrderLineTotalPrice TotalPrice { get; set; }
-
- public Price RollingSubOrderLinesTotalPrice { get; set; }
-
- public Price RollingSubOrderLinesTotalDiscountPrice { get; set; }
-}
-```
-
-From the `OrderCalculation` object you can access the different order prices, including order line calculations. The order line calculations are stored in a dictionary. In this dictionary, the key is the order line's ID, and the value is an `OrderLineCalculation` object holding the calculated prices.
-
-By using the prices from the `OrderCalculation` object you can ensure that your calculation is based on the most up-to-date values for the order.
-
-{% hint style="info" %}
-You should **always** base your price on the `OrderCalculation` object's price values when the following applies:
-
-* Your values are based on another price held on an order
-* You have access to an `OrderCalculation` an object that isn't `null`.
-
-It should also only fall back to the order entity if there is no `OrderCalculation` available.
-{% endhint %}
diff --git a/14/umbraco-commerce/key-concepts/overview.md b/14/umbraco-commerce/key-concepts/overview.md
deleted file mode 100644
index 2170c1b2992..00000000000
--- a/14/umbraco-commerce/key-concepts/overview.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: >-
- Learn everything you need to know about the main features and concepts of
- Umbraco Commerce.
----
-
-# Get to know the main features
-
-In this section, we will look at all the key concepts you will need to understand in order to work with Umbraco Commerce. Many of the concepts are based upon how Umbraco functions, although there are a number of Umbraco Commerce-specific concepts you will need to be aware of.
-
-
Umbraco Properties
Umbraco Commerce is based on Umbraco CMS, which means that some of the things you'll be working with are native to the core product.
diff --git a/14/umbraco-commerce/key-concepts/payment-forms.md b/14/umbraco-commerce/key-concepts/payment-forms.md
deleted file mode 100644
index 147940c65e9..00000000000
--- a/14/umbraco-commerce/key-concepts/payment-forms.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-description: Preparing to enter a Payment Providers payment gateway in Umbraco Commerce.
----
-
-# Payment Forms
-
-In Umbraco Commerce, a Payment Form is a form that is displayed immediately prior to redirecting to the Payment Gateway for payment processing. This is usually displayed on some kind of review page, allowing a final review of the Order before commencing payment.
-
-The role of the Payment Form is to perform two tasks:
-
-* **Prepare the Order for the Payment Gateway** - This includes initializing the Orders transaction info and assigning the Order with an Order Number. It's also at this time that the Order is assigned to a Member if there is currently a logged-in session. This task may also involve passing information to the Payment Gateway to create a session, which the customer will complete in the next step. This is dependent on the Payment Provider implementation.
-* **Redirect to the Payment Gateway** - The configured Payment Provider will return a Form that contains all the relevant information the Payment Gateway needs. This includes the Forms `action` attribute is set to post to a page on the Payment Gateways server, starting the payment capture process.
-
-{% hint style="info" %}
-An Order's Order Number is assigned at the point of the Payment Form being rendered. This is to ensure that an Order has an Order Number prior to redirecting to the Payment Gateway. When the customer is redirected to the Confirmation page, there is always an Order Number to display
-
-The reason this is necessary is that many Payment Gateways finalize Orders asynchronously via webhooks. This means that it is possible that the customer will be redirected to the Confirmation page prior to actual finalization. This is why we set it early to ensure it is always available.
-
-It can happen that a customer cancels a payment mid-way through the capture process and returns to the Order to make modifications. In these cases, a new Order Number will be assigned at the point of re-displaying the Payment Form.
-{% endhint %}
-
-## Example Payment Form
-
-An example of displaying a Payment Form would look something like this:
-
-```html
-@using(await Html.BeginPaymentFormAsync(currentOrder)) {
-
-}
-
-```
-
-The Payment Form is rendered using a `using` statement to wrap any additional form elements you wish to add, such as a submit button.
-
-{% hint style="info" %}
-It's important to know that the Payment Form by default doesn't contain any button inputs to submit the Form. These must be supplied by the implementer. This is to ensure that the form will work with the design of the Site in question, giving developers more freedom.
-{% endhint %}
diff --git a/14/umbraco-commerce/key-concepts/payment-providers.md b/14/umbraco-commerce/key-concepts/payment-providers.md
deleted file mode 100644
index 4b446a2d5bd..00000000000
--- a/14/umbraco-commerce/key-concepts/payment-providers.md
+++ /dev/null
@@ -1,127 +0,0 @@
----
-description: Accepting payments via Payment Providers in Umbraco Commerce.
----
-
-# Payment Providers
-
-Payment Providers are how Umbraco Commerce is able to accept multiple different methods of payment on a Site. Their job is to provide a standard interface between third-party payment gateways and Umbraco Commerce itself. This is done in order to allow the passing of information between the two platforms.
-
-How the integrations work is often different for each payment gateway. The Umbraco Commerce Payment Providers add a flexible interface that should be able to work with most payment gateways.
-
-## Example Payment Provider
-
-An example of a bare-bones Payment Provider would look something like this:
-
-```csharp
-[PaymentProvider("my-payment-provider-alias")]
-public class MyPaymentProvider : AsyncPaymentProviderBase
-{
- public MyPaymentProvider(UmbracoCommerceContext umbracoCommerce)
- : base(umbracoCommerce)
- { }
-
- ...
-}
-
-public class MyPaymentProviderSettings
-{
- [PaymentProviderSetting(SortOrder = 100)]
- public string ContinueUrl { get; set; }
-
- ...
-}
-
-```
-
-All Payment Providers inherit from a base class `AsyncPaymentProviderBase`. `TSettings` is the type of a Plain Old Class Object (POCO) model class representing the Payment Provider's settings. The class must be decorated with `PaymentProviderAttribute` which defines the Payment Providers `alias`.
-
-The settings class consists of a series of properties, each decorated with a `PaymentProviderSettingAttribute`. These will all be used to dynamically build an editor interface for the given settings in the backoffice.
-
-Labels and descriptions for providers and their settings are controlled through [Localization](#localization) entries.
-
-## Payment Provider Responsibilities
-
-There are two main responsibilities of a Payment Provider, and those are:
-
-* **Payment Capture** - Capturing the initial Order payment and finalizing the Order.
-* **Payment Management** - Managing a payment post Order finalization, such as being able to Capture authorized payments or Refunding captured payments.
-
-### Payment Capture
-
-The Payment Capture workflow can be the hardest part of a Payment Provider. This is due to the fact that no two payment gateways are alike. Therefore it can be difficult to figure out how best to implement the gateway into the provider format.
-
-Generally, there are three methods within a Payment Provider that you may need to implement, and each one has a specific responsibility.
-
-* **GenerateForm** - The `GenerateForm` method is responsible for generating an HTML form that will redirect the customer to the given payment gateway payment form. In this method you may need to communicate with the payment gateway in order to initialize a payment, letting the payment gateway know how much to capture. This often results in some kind of code or redirect URL being returned which will need to be embedded into the generated form. The generated form is then usually displayed on a checkout **Review** page, the last page before payment is captured and will have an implementer-defined **Continue to Payment** button to submit the form and redirect the customer to the gateway.
-* **ProcessCallback** - The `ProcessCallback` method is responsible for handling the response coming back from the payment gateway and processing whether the payment was successful or not. This can sometimes occur _synchronously_, if the payment gateway sends information back as part of the confirmation page redirect, or can occur _asynchronously_ if the payment gateway sends the information back via an out-of-band webhook request.
-* **GetOrderReference** - The `GetOrderReference` method is responsible for extracting an order reference number from a request when the payment gateway uses an asynchronous webhook to finalize an Order **and** it uses a global webhook URL strategy for all notifications rather than a notification URL per transaction. Where a webhook URL can be passed per transaction, then Umbraco Commerce provides you with a unique callback URL you can register with the gateway that already identifies the order reference as part of the URL parameters, making implementing this method unnecessary.
-
-_\* denotes a required method implementation_.
-
-What follows is a generalized diagram in order to help in visualizing when each of these methods is called within a regular checkout flow.
-
-
-
-### Payment Management
-
-In addition to the initial payment capture flow, Payment Providers can also be set up to manage the payment post-checkout. This could be Capturing Authorized transactions or Refunding Captured transactions.
-
-These features are optional and not required for Payment Provider developers to implement. They allow store owners to manage payments directly in the backoffice rather than through the payment gateway's portal when performing these types of actions.
-
-The implementable management methods are:
-
-* **FetchPaymentStatus** - The `FetchPaymentStatus` method communicates with the 3rd party payment gateway in order to fetch the current status of the given transaction.
-* **CapturePayment** - The `CapturePayment` method communicates with the 3rd party payment gateway to capture a previously authorized payment associated with the given transaction.
-* **CancelPayment** - The `CancelPayment` method communicates with the 3rd party payment gateway to cancel a previously authorized payment associated with the given transaction.
-* **RefundPayment** - The `RefundPayment` method communicates with the 3rd party payment gateway to refund a previously captured payment associated with the given transaction.
-
-For each implemented method above, developers should also implement a corresponding boolean property returning a `true` value. This is to let Umbraco Commerce know that the given feature is supported by the Payment Provider.
-
-* **CanFetchPaymentStatus**
-* **CanCapturePayments**
-* **CanCancelPayments**
-* **CanRefundPayments**
-
-## Payment Provider Meta Data
-
-For all implemented methods of a Payment Provider, all method return types support the returning of additional Meta Data. This is to allow Payment Providers to capture and store relevant information. This information will aid the provider in doing its job, or for storing useful reference information to display for the retailer.
-
-Any returned Meta Data from a Payment Provider method will be stored against the Order in its [Properties](properties.md) collection. Should you need to retrieve these values from other areas of the Payment Provider, you can use the passed-in Orders Properties collection.
-
-{% hint style="info" %}
-As Meta Data is stored in Orders Properties collections, it is recommended to prefix your Meta Data keys with the Payment Providers alias. This is done to prevent possible conflicts.
-{% endhint %}
-
-### Meta Data Definitions
-
-The Meta Data that is returned from the Payment Provider is useful for the retailer. The Payment Provider can also be used to display Meta Data in the backoffice. This is done by exposing a `TransactionMetaDataDefinitions` property consisting of a list of `TransactionMetaDataDefinition` values, each with a unique `alias.
-
-```csharp
-public override IEnumerable TransactionMetaDataDefinitions => new[]{
- new TransactionMetaDataDefinition("stripeSessionId"),
- new TransactionMetaDataDefinition("stripePaymentIntentId"),
- new TransactionMetaDataDefinition("stripeChargeId"),
- new TransactionMetaDataDefinition("stripeCardCountry")
-};
-```
-
-
-
-Labels and descriptions for meta data fields are controlled through [Localization](#localization) entries.
-
-## Localization
-
-When displaying your provider in the backoffice UI, it is neceserray to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-| --- | --- |
-| `ucPaymentProviders_{providerAlias}Label` | A main label for the provider |
-| `ucPaymentProviders_{providerAlias}Description` | A description of the provider |
-| `ucPaymentProviders_{providerAlias}Settings{settingAlias}Label` | A label for a provider setting |
-| `ucPaymentProviders_{providerAlias}Settings{settingAlias}Description` | A description of a provider setting |
-| `ucPaymentProviders_{providerAlias}MetaData{metaDataAlias}Label` | A label for a provider transaction metadata item |
-| `ucPaymentProviders_{providerAlias}MetaData{metaDataAlias}Description` | A description of a provider transaction metadata item |
-
-Here `{providerAlias}` is the alias of the provider, `{settingAlias}` is the alias of a setting, and `{metaDataAlias}` is the alias of a transaction meta data item.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/pipelines.md b/14/umbraco-commerce/key-concepts/pipelines.md
deleted file mode 100644
index 8bcbb534198..00000000000
--- a/14/umbraco-commerce/key-concepts/pipelines.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-description: Performing sequential tasks with Pipelines in Umbraco Commerce.
----
-
-# Pipelines
-
-Pipelines allow a series of tasks to be performed in a set sequence. This is done with the input of a given task being the output of the preceding task. It allows a result to be built up as an input is passed through these individual tasks, instead of being calculated in one go.
-
-The Pipelines feature provides an approach to insert additional steps into the process as pipeline tasks can be added or removed from the pipeline sequence.
-
-Where Pipelines is used, it allows an additional point at which developers can interject some custom logic, tweaking how Umbraco Commerce works.
-
-Consider these use-case examples:
-
-* An additional task could be injected into the `CalculateOrderPipeline` to alter how an Order is calculated.
-* A task could be injected into the `EmailSendPipeline` to add a dynamic attachment to an email.
-
-## Example Pipeline task
-
-An example of a Pipeline task would look something like this:
-
-```csharp
-public class AddCustomAttachmentTask : PipelineTaskWithTypedArgsBase
-{
- public override PipelineResult Execute(EmailSendPipelineArgs args)
- {
- var attachment = new Attachment(File.OpenRead("path\to\license.lic"), "license.lic");
-
- args.EmailContext.MailMessage.Attachments.Add(attachment);
-
- return Ok(args.EmailContext);
- }
-}
-```
-
-All Pipeline tasks inherit from a base class `PipelineTaskWithTypedArgsBase`. `TPipelineArgs` is the type of arguments supported by the pipeline and `TModel` is the pipeline's return model Type. You then need to implement an `Execute` method that accepts an instance of the argument's type as input and expects a `PipelineResult` as its output. Inside this method, you can perform your custom logic as required. To complete the pipeline task, you can call `Ok(TModel)` if the task was successful. This will pass in the updated `TModel` instance to returnæ. Otherwise, you can call `Fail()` to fail the whole pipeline.
-
-All pipelines occur within a [Unit of Work](unit-of-work.md). In case a Pipeline task fails, the whole pipeline will fail and no changes will persist.
-
-## Registering a Pipeline task
-
-Pipeline tasks are [registered via the IUmbracoCommerceBuilder](umbraco-commerce-builder.md) interface using the appropriate `With{PipelineName}Pipeline()` builder extension method. This is done to identify the pipeline you want to extend. You can then call the `Add()` method to add your task to the end of that pipeline.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyPipelineTasks(this IUmbracoCommerceBuilder builder)
- {
- // Add our custom pipeline tasks
- builder.WithSendEmailPipeline()
- .Add();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-You can also control the order of when Pipeline tasks run, before or after another task, by appending them via the `InsertBefore()` or `InsertAfter()` methods respectively.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyPipelineTasks(this IUmbracoCommerceBuilder builder)
- {
- // Register AddCustomAttachmentTask to execute before the RaiseSendingEventTask
- builder.WithSendEmailPipeline()
- .InsertBefore();
-
- // Register LogEmailSentTask to execute after the RaiseSendingEventTask
- builder.WithSendEmailPipeline()
- .InsertAfter();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/price-amount-adjustments.md b/14/umbraco-commerce/key-concepts/price-amount-adjustments.md
deleted file mode 100644
index c8b681b6d13..00000000000
--- a/14/umbraco-commerce/key-concepts/price-amount-adjustments.md
+++ /dev/null
@@ -1,86 +0,0 @@
----
-description: Learn about adjusting prices in Umbraco Commerce.
----
-
-# Price/Amount Adjustments
-
-In some cases, you may want to tweak the figures of an order. It could be reducing the price of a product if a customer purchases a given amount of a product. To handle this, Umbraco Commerce has the concept of Price/Amount Adjustments. What adjustments allow you to do is create a record/log of any changes that occur to a price/amount throughout the calculation process. Umbraco Commerce uses the adjustments in the calculation process to work out its final pricing and provides this list of the adjustments on the order. This makes it clear exactly how the price was calculated.
-
-Umbraco Commerce has two types of adjustments:
-
-* **Price Adjustment** - Adjusts one of the orders' price properties (discounts, fees).
-* **Amount Adjustment** - Adjusts the final transaction amount of the order (gift cards, loyalty points).
-
-## Creating Custom Adjustments
-
-Adjustments are applied using a `IPriceAdjuster` or `IAmountAdjuster` with developers able to create their own adjusters to apply custom adjustments.
-
-```csharp
-public class MyPriceAdjuster : PriceAdjusterBase
-{
- public override void ApplyPriceAdjustments(PriceAdjusterArgs args)
- {
- // Calculate Adjustment
- // Discount adjustments should be negative
- // where as Fee adjustments should be positive
-
- // Create a £10 discount
- var price = new Price(-8.33, -1.67, args.Order.CurrencyId);
- var adjustment = new MyAdjustment("My Discount", "MD-001", price);
-
- // Add the adjustment to the sub total price
- args.SubtotalPriceAdjustments.Add(adjustment);
- }
-}
-```
-
-Adjusters apply adjustments to the given price they wish to affect. Adjustments are strongly typed and each adjuster should define their own adjustment type, providing properties to collect any relevant information for the adjustment. This "metadata" gets serialized with the adjustment as is constantly available when accessing the given adjustment.
-
-```csharp
-[Serializable]
-public class MyAdjustment : PriceAdjustment
-{
- public string MyAdjustmentRef { get; set; }
-
- // A parameterless constructor is required for cloning
- public MyAdjustment()
- : base()
- { }
-
- // Additional helper constructors
- public MyAdjustment (string name, string reference, Price adjustment)
- : base(name, adjustment)
- {
- MyAdjustmentRef = reference;
- }
-}
-```
-
-Adjustments inherit from either `PriceAdjustment` or `AmountAdjustment` depending on the type of adjustment being applied. Both base classes follow a similar structure, the difference being whether the adjustment value is a `Price` or `Amount`.
-
-```csharp
-public abstract class PriceAdjustment
-{
- public Type Type { get; }
- public string Name { get; }
- public Price Price { get; }
- public Price OriginalPrice { get; }
-}
-```
-
-Once defined, the adjuster should be registered with the DI container to enable Umbraco Commerce to be aware of it and include it in the calculation process.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyServices(IUmbracoCommerceBuilder builder)
- {
- // Register the price adjuster
- builder.WithPriceAdjusters()
- .Append();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/price-freezing.md b/14/umbraco-commerce/key-concepts/price-freezing.md
deleted file mode 100644
index b08affefcc0..00000000000
--- a/14/umbraco-commerce/key-concepts/price-freezing.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-description: Freezing prices for shopping carts in Umbraco Commerce.
----
-
-# Price Freezing
-
-Price Freezing in Umbraco Commerce is the ability to freeze prices for products that are added to the shopping cart. Umbraco Commerce takes a snapshot of a product's price once it's added to the shopping card. This is done in order to ensure the price is honored for the life of the shopping cart. This process prevents a customer's shopping cart from suddenly changing in value should a price change occur whilst their cart session is in progress.
-
-A product's price is frozen from the point it is added to the current Order, and only for the current Currency of the Order. Should the Customer change the Currency of their Order, then a new snapshot of the product price will be taken for that Currency.
-
-## Controlling Price Freezing
-
-There are times when you may wish to control when a frozen price should expire. This could be if a product was incorrectly priced, or if you have rules on how long an Order-session is allowed to maintain price.
-
-On these occasions, you can force frozen prices to expire by using the `IPriceFreezerService` and its `ThawPrices` method.
-
-All frozen prices have an `OrderId` property and a `Key` that uniquely identifies them. For product prices, this key consists of a generated token of the following format `{StoreId}_{OrderId}_{ProductReference}`. In addition, the product prices Currency, and date of the freeze are also tracked. It is important to know these details as we can use all of these attributes to target which prices we wish to thaw.
-
-For example, to thaw all prices for a product with the reference `c0296b75-1764-4f62-b59c-7005c2348fdd` we could call:
-
-```csharp
-_priceFreezerService.ThawPrices(partialKey: "c0296b75-1764-4f62-b59c-7005c2348fdd");
-```
-
-Or to thaw all prices for a given Currency that are greater than 30 days old we could call:
-
-```csharp
-_priceFreezerService.ThawPrices(currencyId: currency.Id, olderThan: DateTime.Now.AddDays(-30));
-```
diff --git a/14/umbraco-commerce/key-concepts/product-adapters.md b/14/umbraco-commerce/key-concepts/product-adapters.md
deleted file mode 100644
index 2b61f090b0b..00000000000
--- a/14/umbraco-commerce/key-concepts/product-adapters.md
+++ /dev/null
@@ -1,185 +0,0 @@
----
-description: Converting product sources into understandable products for Umbraco Commerce.
----
-
-# Product Adapters
-
-The role of a Product Adapter in Umbraco Commerce is to provide an interface between a product information source and convert it into a standardized format. This is done to prevent the need for Umbraco Commerce to be tied to that source.
-
-What this means for developers is that Product Adapters allow you to hook in alternative product information sources that may not be Umbraco node-based. You may hold your product information in a third-party database table. A custom Product Adapter would then allow Umbraco Commerce to interface with that custom data in the same way it would the default Umbraco node data.
-
-## Example Product Adapter
-
-An example of a Product Adapter would look something like this:
-
-```csharp
-public class MyCustomProductAdapter : IProductAdapter
-{
- public IProductSnapshot GetProductSnapshot(string productReference, string languageIsoCode)
- {
- // Lookup a product by productReference and convert to IProductSnapshot
- }
-
- public IProductSnapshot GetProductSnapshot(string productReference, string productVariantReference, string languageIsoCode)
- {
- // Lookup a product by productVariantReference and convert to IProductSnapshot
- }
-
- public bool TryGetProductReference(Guid storeId, string sku, out string productReference, out string productVariantReference)
- {
- // Try lookup a product / variant reference by store + sku
- }
-}
-
-```
-
-All Product Adapters implement the `IProductAdapter` interface which requires three method implementations:
-
-* Two `GetProductSnapshot` methods that retrieve a Product Snapshot for either a product or product variant by reference parameters.
-* A `TryGetProductReference` method which retrieves a product/variant reference for a product that belongs to a given `storeId` and has the given `sku`.
-
-A Product Snapshot consists of the following properties in order to present a Product to Umbraco Commerce in a standard way.
-
-```csharp
-public interface IProductSnapshot
-{
- // The unique reference for the product
- string ProductReference { get; }
-
- // The unique reference for the variant (if this is a variant snapshot)
- string ProductVariantReference { get; }
-
- // The unique SKU for this product/variant
- string Sku { get; }
-
- // The name of this product/variant
- string Name { get; }
-
- // The ID of the store this product/variant belongs to
- Guid StoreId { get; }
-
- // An optional Tax Class ID for this product/variant
- Guid? TaxClassId { get; }
-
- // Any properties exposed by this product/variant that should be copied to the orderline
- IDictionary Properties { get; }
-
- // Any variant attributes for this product (if this is a variant snapshot)
- IEnumerable Attributes { get; }
-
- // The available prices for this product/variant
- IEnumerable Prices { get; }
-
- // Flag indicating whether this product is a gift card product
- bool IsGiftCard { get; }
-}
-
-```
-
-## Support editable carts
-
-To allow Umbraco Commerce to search for products/variants to add to a cart via the backoffice, Product Adapters can implement 3 additional methods. This can also be done to support editable carts.
-
-```csharp
-public class MyCustomProductAdapter : ProductAdapterBase
-{
- ...
-
- public override PagedResult SearchProductSummaries(Guid storeId, string languageIsoCode, string searchTerm, long currentPage = 1, long itemsPerPage = 50)
- {
- // Search for products matching the given search term and convert to a IProductSummary
- }
-
- public override IEnumerable GetProductVariantAttributes(Guid storeId, string productReference, string languageIsoCode)
- {
- // Lookup the in-use product attributes of a primary product
- }
-
- public override PagedResult SearchProductVariantSummaries(Guid storeId, string productReference, string languageIsoCode, string searchTerm, IDictionary> attributes, long currentPage = 1, long itemsPerPage = 50)
- {
- // Search for product variants matching the given search term and/or the given attributes and convert to a IProductVariantSummary
- }
-}
-
-```
-
-The `IProductSummary`, `Attribute` and `IProductVariantSummary` consists of the following properties in order to present a Product to Umbraco Commerce in a standard way.
-
-```csharp
-public interface IProductSnapshot
-{
- // The unique reference for the product
- string Reference { get; }
-
- // The unique SKU for this product
- string Sku { get; }
-
- // The name of this product
- string Name { get; }
-
- // The available prices for this product
- IEnumerable Prices { get; }
-
- // Flag indicating whether this product has variants
- bool HasVariants { get; }
-}
-
-public class Attribute
-{
- // The alias of the attribute
- public string Alias { get; }
-
- // The name of the attribute
- public string Name { get; }
-
- // The attribute values
- IEnumerable Values { get; }
-}
-
-public class AttributeValue
-{
- // The alias of the attribute value
- public string Alias { get; }
-
- // The name of the attribute value
- public string Name { get; }
-
-}
-
-public interface IProductVariantSnapshot
-{
- // The unique reference for the product variant
- string Reference { get; }
-
- // The unique SKU for this product variant
- string Sku { get; }
-
- // The name of this product variant
- string Name { get; }
-
- // The available prices for this product variant
- IEnumerable Prices { get; }
-
- // The collection of attribute alias pairs of this product variant
- IReadOnlyDictionary Attributes { get; }
-}
-
-```
-
-## Registering a Product Adapter
-
-typeProduct Adapters are [registered via the IUmbracoCommerceBuilder](umbraco-commerce-builder.md) interface using the `AddUnique()` method on the `Services` property. The `TReplacementAdapter` parameter is the type of our custom Product Adapter implementation.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyServices(IUmbracoCommerceBuilder builder)
- {
- // Replacing the default Product Adapter implementation
- builder.Services.AddUnique();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/product-bundles.md b/14/umbraco-commerce/key-concepts/product-bundles.md
deleted file mode 100644
index 7e1b74db372..00000000000
--- a/14/umbraco-commerce/key-concepts/product-bundles.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-description: Creating bundles of products with Umbraco Commerce.
----
-
-# Product Bundles
-
-Occasionally you may need to create a product with multiple sub-products. A good example of this is when buying a computer where you may pick the computer as the main product. You can then choose the different components to make up the computer, such as the hard disk options. The final order line then becomes the composite order line of the selected primary product and all its sub-product options. To achieve this kind of configurable product in Umbraco Commerce, we can use a feature called product bundling.
-
-## Creating a Bundle
-
-To create a bundle, we first add the primary product to an order as we normally would. In addition to the product/quantity information, we also provide a unique `bundleId` to identify that adding this product should create a bundle order line.
-
-```csharp
-// Define a unique bundle id for the order line
-var bundleId = "MyUniqueBundleId";
-
-// Add the primary product to the order giving it a bundle ID
-order.AddProduct(productReference, productQuantity, bundleId);
-```
-
-## Adding Sub Products to a Bundle
-
-With the primary product added as a bundle, we can then add sub-products to that bundle by calling one of the `AddProductToBundle` order methods.
-
-```csharp
-// Define a unique bundle id for the order line
-var bundleId = "MyUniqueBundleId";
-
-// Add the primary product to the order giving it a bundle ID
-order.AddProduct(productReference, productQuantity, bundleId);
-
-// Add a sub product to the bundle by calling a AddProductToBundle method
-// passing in the same bundle ID as the primary order line
-order.AddProductToBundle(bundleId, subProductReference, subProductQuantity);
-```
-
-## Order Line Price Calculation
-
-By adding sub-products to a bundle, Umbraco Commerce knows to automatically sum up all the sub-product prices together. It will then add them to the unit price of the primary order line for you. This means that there is nothing extra you need to do in the calculation process.
-
-## Displaying Bundles in the Back-Office
-
-As you can imagine, product bundles could get rather large making it a little difficult to display them in the backoffice. Umbraco Commerce bundles order lines together in a collapsible user interface. This gives you a clear view of your orders whilst still being able to drill into the detail of the items purchased.
-
-
diff --git a/14/umbraco-commerce/key-concepts/product-variants/README.md b/14/umbraco-commerce/key-concepts/product-variants/README.md
deleted file mode 100644
index 48380e74417..00000000000
--- a/14/umbraco-commerce/key-concepts/product-variants/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-description: Creating product variants with Umbraco Commerce.
----
-
-# Product Variants
-
-Product variants are the ability to define variants of a given product. If a product was available in multiple color options, you would create a primary product with product variants for each of the color options.
-
-Out of the box, Umbraco Commerce supports two types of product variant setups.
-
-## Child Variants
-
-Child variants are where the product variants are set up as child nodes below the primary product. Generally speaking, this setup is only sustainable for single variant options, where there is only one differing option between the variants.
-
-By using child variants the only thing you need to create is your own variant nodes as you already do in Umbraco.
-
-When a child variant is added Umbraco Commerce checks the primary product node for any properties that can't be found on the variant child node.
-
-This approach is how most of [the official Demo store](https://github.com/umbraco/Umbraco.Commerce.DemoStore) is set up.
-
-## [Complex Variants](complex-variants.md)
-
-Complex variants are where products vary by multiple possible options, such as by size, color, and fit. Complex variants tend to create a lot of variant products which makes the child variants approach impractical.
-
-For complex variants, Umbraco Commerce comes with a variants property editor which will handle a lot of this complexity for you. You can set up a variant element type to use as your data blueprint for your variant products. This can then be linked to the property editor. The variants property editor will use this as the data structure for your variants. You will be presented with the relevant UI to input the product details.
-
-{% hint style="info" %}
-For more information on how you can setup Complex Variants, head to the [Complex Variants](complex-variants.md) article.
-{% endhint %}
-
-### [Product Attributes](complex-variants.md#product-attributes)
-
-To aid with the setup of the complex variants, Umbraco Commerce has the **Product Attributes** concept which defines the individual options that make up your product variants. This could be colors, sizes, and fits. Each product attribute is made up of a label and as many values as needed.
-
-Product attributes are used by the complex variants property editor allowing you to select the combinations of product variants you wish to create. It will automatically generate the product variant entries for you, ready for product information updating.
-
-{% hint style="info" %}
-For more information on how you can setup Product attributes, head to the [Complex Variants](complex-variants.md#product-attributes) article.
-{% endhint %}
diff --git a/14/umbraco-commerce/key-concepts/product-variants/complex-variants.md b/14/umbraco-commerce/key-concepts/product-variants/complex-variants.md
deleted file mode 100644
index ef97b7036ee..00000000000
--- a/14/umbraco-commerce/key-concepts/product-variants/complex-variants.md
+++ /dev/null
@@ -1,139 +0,0 @@
----
-description: Creating complex variants with Umbraco Commerce.
----
-
-# Complex Variants
-
-The Commerce Complex Variants feature is powered by a new Variants Editor property editor that you can attach to your product content nodes. The editor itself is based on the Umbraco Block List editor format so under the hood we make use of the new data structure.
-
-We also make use of Umbraco’s block editor APIs. You can add supporting data needed to record against your variants simply by defining a document type and linking it with the editor. By basing the editor on the block editor data structure, we can take advantage of improvements made in Umbraco Commerce. An example is optimized persistence/searching.
-
-The Variants Editor isn’t just a regular property editor. Managing variant data is a complex task and having variants mingled in with the product content fields would be distracting. So a bit of Umbraco magic is used to allow the editor to render itself as a content app. By doing this it gives a focused tab on which to manage complex-variants and allows to create a much richer content management experience.
-
-
Variants editor table view
-
-All you have to do is add the variants editor as a property on your product Document Type and Umbraco Commerce hooks up the rest.
-
-## Product Attributes
-
-Before you can go creating variants, there is another concept that you need to understand and that is product attributes.
-
-Product attributes are essentially lists of options that can be used to create your variant combinations. For example, things like color, size, or fit if you were selling clothing.
-
-Each product attribute consists of a name and a series of attribute values for the given options. So for example, color attribute might have a series of values like red, and blue, and size might have values of large, medium, and small.
-
-In order to manage these product attributes, we’ve created a new Options node inside the **Commerce** section, beneath each store. From this section, you can define as many product attributes + values as you need. If you're working with a multi-lingual setup, you can provide label translations.
-
-
Product attributes
-
-
Product attributes values
-
-## Product Attribute Presets
-
-Linked with product attributes, there is also the concept of product attribute presets.
-
-What product attribute presets do is allow to define groups of product attributes/values based on a specific **theme**. Then they are displayed at the point of product variant creation. This is where you can choose from a smaller, focused list of product attributes than if you were just presented with every possible option.
-
-
Product attribute presets
-
-
Product attribute preset values
-
-## Creating Variants
-
-With the product attributes defined (and optional product attribute presets), and the variants editor defined (on product Document Type), you can start creating product variants.
-
-With the product node open, you’ll now see the new Variants content app in the top right corner. From there you can click the **Create Product Variants** button to launch the **create** dialog.
-
-From the create dialog, you’ll be presented with a list of product attributes so that you can select all the combinations you want to create variants. If you have setup any product attribute presets, these will be presented first.
-
-Selecting a preset will show a smaller list of product attributes/values to choose from. To create the variants, check the checkbox against the attribute values and click Select. Then rows will be automatically created in the variants table for every combination of the selected attributes.
-
-
Create variants presets
-
-
Create variants attributes
-
-## Managing Variants
-
-With variants defined in the variants table, you can manage the content for each variant by clicking the **SKU** of the row. Then it will launch the content editor for that variant. From here you’ll be presented with all the fields defined on your variants Document Type and can add and save the information required.
-
-
Edit variant
-
-In the variants table view, we've also added filtering features so you can filter by attribute values. You can also search for specific variant **SKUs** to easily locate items. Additionally, the table also supports sorting on the table columns, so you can also order the results as you need.
-
-
Variant filtering
-
-You can change a variant attribute combination at any time by clicking the cog icon on the row. Then you can select a new combination. Lastly, you can remove a variant by clicking the trash can icon against the row.
-
-## Variant Fields
-
-Whilst you are free to add any fields you like to your variant, there are a few fields that you might want/need to add.
-
-The only required field is an **SKU** field with the alias `sku`. All the following fields are optional, with Umbraco Commerce falling back to the parent node if one isn’t found.
-
-* **Price** `[price]` - The fixed price of the product variant. Should use a **Commerce Price** input field.
-* **Price Adjustment** `[priceAdjustment]` - Used instead of a price field to create a dynamic price by adding the adjustment amount to the parent product price. Should use a **Commerce Price** input field and can contain negative values.
-* **Stock** `[stock]`- Allows for individual variant stock management.
-
-## Value Converter
-
-Once the variants are defined, you’ll then want to be able to access that data on the frontend. To do this the variants editor comes with a built-in value converter. This allows you to access a strongly typed collection of all the defined variants from the parent product node.
-
-The property value will be of type `ProductVariantCollection` that contains a series of `ProductVariantItem` entities. Each of these entities has a Config property which contains details of the product attribute combination for the variant. It also contains a content property of type IPublishedElement from which you can access the variant's data. The _Content_ property can also be cast to a models builder model type for strongly typed access to the variant content too.
-
-```csharp
-public class ProductVariantItem
-{
- public Udi ContentUdi { get; }
- public IPublishedElement Content { get; }
- public ProductVariantConfig Config { get; }
-}
-```
-
-```csharp
-public class ProductVariantConfig
-{
- public IDictionary Attributes { get; set; }
-}
-```
-
-Umbraco Commerce also ships with a helper extension method on the `ProductVariantCollection` class, `GetInUseProductAttributes(storeId).`This provides a convenient way to get a list of all attributes + values used by the variants collection. It comes in handy when rendering out the list of options on the front end, ensuring only attributes in use are displayed.
-
-```csharp
-public class InUseProductAttribute
-{
- public string Alias { get; }
- public ReadOnlyTranslatedValue Name { get; }
- public IReadOnlyCollection Values { get; }
-}
-```
-
-```csharp
-public class InUseProductAttributeValue
-{
- public string Alias { get; }
- public ReadOnlyTranslatedValue Name { get; }
-}
-```
-
-```csharp
-public class ReadOnlyTranslatedValue
-{
- public T GetDefaultValue()
- public bool HasValue(string languageIsoCode)
- public T GetValue(string languageIsoCode, bool fallbackToDefault = true)
- public bool TryGetValue(string languageIsoCode, out T value)
- public T this[string languageIsoCode]
-}
-```
-
-## API Updates
-
-The last piece of the complex variants puzzle is a few updates to Umbraco Commerce's API.
-
-This is largely around the `AddProduct` methods on the **Order** entity which now have additional signatures. These signatures take both a _productReference_ and a _productVariantReference_ which must both be supplied when adding a variant item to an order.
-
-Order lines have also been updated to expose a new Attribute property. This provides a collection of attribute combinations for the order lines product so that these can be rendered on carts and checkouts. The "uniqueness" logic for an order line has also been updated to take these attributes into account.
-
-With both of these changes, updates have also been made to the `IProductAdapter/IProductSnapshot` interfaces and built-in implementations. This is in order to support product variants and attributes, as it has the product and price freezer services.
-
-The built-in stock property editor has also had a slight overhaul in order to support both regular products and product variants. If anyone needs to provide an alternative implementation, a new `IStockService` interface has been created as well.
diff --git a/14/umbraco-commerce/key-concepts/properties.md b/14/umbraco-commerce/key-concepts/properties.md
deleted file mode 100644
index 674abee0bf2..00000000000
--- a/14/umbraco-commerce/key-concepts/properties.md
+++ /dev/null
@@ -1,146 +0,0 @@
----
-description: Order and Order Line metadata in Umbraco Commerce.
----
-
-# Properties
-
-There is little information that Umbraco Commerce needs to know about a product in order for it to do its job. There are, however, times when developers require the ability to store additional information against an Order or Order Line. This could be the billing/shipping address of an Order, or any specific configuration details of a given Product on an Order Line.
-
-To help facilitate this Umbraco Commerce has the concept of a Properties collection on both the Order entity and the Order Line entity respectively. The Properties collection of these entities can be thought of as a general store for additional information required by an implementation, but not strictly required by Umbraco Commerce itself.
-
-Anything you need to remember about an Order / Order Line can be stored in its Properties collection.
-
-## Setting Properties
-
-To set a Property on an Order or Order Line, it needs to be [in its Writable state](readonly-and-writable-entities.md#converting-a-readonly-entity-into-a-writable-entity). Then it's a case of calling one of the related property setting methods:
-
-```csharp
-// Set a single property
-order.SetProperty("propertyAlias", "Property Value");
-
-// Set multiple properties at once
-order.SetProperties(new Dictionary{
- { "propertyAlias1", "Property Value 1" },
- { "propertyAlias2", "Property Value 2" },
- { "propertyAlias3", "Property Value 3" }
-})
-
-// Remove a property
-order.RemoveProperty("propertyAlias");
-
-```
-
-Property values can either be a `string`, or a Umbraco Commerce `PropertyValue` which allows you to define a value as being Server Side Only. This means that it won't be returned via non-server APIs or Read Only meaning it can't be updated once set.
-
-```csharp
-// Set a string property
-order.SetProperty("propertyAlias", "Property Value");
-
-// Set a PropertyValue property as Read Only
-order.SetProperty("propertyAlias", new PropertyValue("Property Value", isReadOnly: true));
-```
-
-## System Properties
-
-On occasions where Umbraco Commerce needs to capture some information about an Order or Order Line, it uses the Properties collection to store this information. It's useful to know what these properties are as you should avoid using these system-related property keys.
-
-### Order System Properties
-
-| Alias | Description |
-| ----------- | -------------------------------------------------------------------------------------------------------------- |
-| `email` | The email address of the person placing the order. Is where `order.CustomerInfo.Email` reads it's value from. |
-| `firstName` | The first name of the person placing the order. Is where `order.CustomerInfo.FirstName` reads it's value from. |
-| `lastName` | The last name of the person placing the order. Is where `order.CustomerInfo.LastName` reads it's value from. |
-
-### Order Line System Properties
-
-| Alias | Description |
-| ----- | --------------------------------------------------------------------------------------------------------- |
-| `sku` | The `SKU` of the product, extracted from the product node via the [Product Adapter](product-adapters.md). |
-
-## Automatic Properties
-
-Umbraco Commerce has a built-in mechanism that can be configured to automatically copy properties from a Product information source to the Order Line automatically. This is done by using the **Product Property Aliases** field on the Store settings screen.
-
-
-
-When a Product is added to the Order containing a comma-separated list of property aliases, the property values are automatically copied to the Order Lines Properties collection.
-
-This is useful for occasions such as rendering out the Order Lines on a Cart page and you have Product information you want to display. By copying it to the Order Lines Properties collection, you have instant access to those properties without the need to re-fetch the original Product entity.
-
-## Product Uniqueness Properties
-
-Another use of the Properties collection for an Order Line is that of identifying product "Uniqueness".
-
-Umbraco Commerce uses Product Uniqueness to identify either of the two:
-
-* Whether a Product is added to a Cart should be considered as a Quantity increase on an existing Order Line
-* Whether it should be considered as a unique product combination and so should be given an Order Line of its own.
-
-A good example of this is when you have configurable products, such as customizable T-Shirt designs. In this case, each unique configuration should be considered as its own Order Line so that you can manage the specific configurations.
-
-Product uniqueness is configured via the **Product Uniqueness Property Aliases** field on the Store setting screen.
-
-
-
-When set to a comma-separated list of property aliases and a Product is added to an Order, the properties are compared against all pre-existing Order Lines for that Product. Should their values be different, then a unique Order Line will be created for that Product.
-
-## Order Property Map
-
-In Umbraco Commerce, you may need to access order information in a structured way for shipping calculations and using the Storefront and Management API's. An order property map can be set up to specify how items in an order's properties collection correspond to properties of a structured model.
-
-Order property maps can be defined per store, but there is also a default map that is pre-configured.
-
-Order property maps are defined via the [`IUmbracoCommerceBuilder`](./umbraco-commerce-builder.md) interface.
-
-```csharp
-// Create a new mapping for the given store
-builder.WithOrderPropertyConfigs()
- .Add("storeAlias", map => map
- // Define your property map here
- );
-
-// Update the default mapping
-builder.WithOrderPropertyConfigs()
- .UpdateDefault(map => map
- // Define your property map here
- );
-```
-
-The default property map is configured as follows:
-
-```csharp
-builder.WithOrderPropertyConfigs()
- .AddDefault(map => map
- // Customer
- .For(x => x.Customer.FirstName).MapFrom(Core.Constants.Properties.Customer.FirstNamePropertyAlias)
- .For(x => x.Customer.LastName).MapFrom(Core.Constants.Properties.Customer.LastNamePropertyAlias)
- .For(x => x.Customer.Email).MapFrom(Core.Constants.Properties.Customer.EmailPropertyAlias)
- .For(x => x.Customer.Telephone).MapFrom("telephone")
- // Billing
- .For(x => x.Billing.Contact.FirstName).MapFrom("billingFirstName")
- .For(x => x.Billing.Contact.LastName).MapFrom("billingLastName")
- .For(x => x.Billing.Contact.Email).MapFrom("billingEmail")
- .For(x => x.Billing.Contact.Telephone).MapFrom("billingTelephone")
- .For(x => x.Billing.CompanyName).MapFrom("billingCompany")
- .For(x => x.Billing.CompanyTaxCode).MapFrom("billingCompanyTaxCode")
- .For(x => x.Billing.AddressLine1).MapFrom("billingAddressLine1")
- .For(x => x.Billing.AddressLine2).MapFrom("billingAddressLine2")
- .For(x => x.Billing.City).MapFrom("billingCity")
- .For(x => x.Billing.ZipCode).MapFrom("billingZipCode")
- // Shipping
- .For(x => x.Shipping.SameAsBilling).MapFrom("shippingSameAsBilling")
- .For(x => x.Shipping.Contact.FirstName).MapFrom("shippingFirstName")
- .For(x => x.Shipping.Contact.LastName).MapFrom("shippingLastName")
- .For(x => x.Shipping.Contact.Email).MapFrom("shippingEmail")
- .For(x => x.Shipping.Contact.Telephone).MapFrom("shippingTelephone")
- .For(x => x.Shipping.CompanyName).MapFrom("shippingCompany")
- .For(x => x.Shipping.CompanyTaxCode).MapFrom("shippingCompanyTaxCode")
- .For(x => x.Shipping.AddressLine1).MapFrom("shippingAddressLine1")
- .For(x => x.Shipping.AddressLine2).MapFrom("shippingAddressLine2")
- .For(x => x.Shipping.City).MapFrom("shippingCity")
- .For(x => x.Shipping.ZipCode).MapFrom("shippingZipCode")
- //Notes
- .For(x => x.Notes.CustomerNotes).MapFrom("customerNotes")
- .For(x => x.Notes.InternalNotes).MapFrom("internalNotes"));
-```
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/readonly-and-writable-entities.md b/14/umbraco-commerce/key-concepts/readonly-and-writable-entities.md
deleted file mode 100644
index 0e83991743d..00000000000
--- a/14/umbraco-commerce/key-concepts/readonly-and-writable-entities.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-description: >-
- Great performance and simplified change tracking using ReadOnly and Writable
- entities in Umbraco Commerce.
----
-
-# ReadOnly and Writable Entities
-
-When working with the Umbraco Commerce entities, it's important to know that all entities come in two states, ReadOnly and Writable. By default, all Umbraco Commerce API methods will return entities in their ReadOnly state. This means that when you are accessing Umbraco Commerce entities directly from an API endpoint you are able to read and iterate over its properties. You won't, however, be able to make changes to that entity without first converting it into its Writable state.
-
-## Why have ReadOnly and Writable entities?
-
-The reason why we have split entities in this way for a number of reasons, however, the two primary factors are:
-
-* **Making APIs fast by default** - By returning ReadOnly entities by default we can ensure all API methods are as fast as possible by feeding values directly out of our caching layer. Because the entities can't change it means we don't have to laden the entities with extra change tracking logic, we can feed out the cached values directly and only worry about that logic when the entities become Writable.
-* **Simplified change tracking** - When we convert a ReadOnly entity to its writable state, internally we take a deep clone of that state so that changes can occur within a scoped "sandbox". At the same time, we retain a copy of the original state meaning when it comes time to persist those changes we have two copies of the state we can perform a comparison on, simplifying the whole change tracking process.
-
-## Converting a ReadOnly entity into a Writable entity
-
-To convert a ReadOnly entity into its Writable form, we achieve this by calling the entities `AsWritable(uow)` method, passing in a valid Unit of Work instance to perform the write operations on. Once we have a Writable entity, we can then perform the write operations we desire and persist those changes back to the database.
-
-```csharp
-_uowProvider.Execute(uow =>
-{
- // Fetch the currency
- var currency = _currencyService.GetCurrency(currencyId);
-
- // Convert the currency into it's Writable form
- var writableCurrency = currency.AsWritable(uow);
-
- // Peform our write operation
- writableCurrency.SetName("New Name");
-
- // Persist the changes to the database
- _currencyService.SaveCurrency(currency);
-
- // Close our transaction
- uow.Complete();
-});
-
-```
-
-{% hint style="info" %}
-All write operations must occur within a Unit of Work so by passing in a Unit of Work instance into the entities `AsWritable` method, we are ensuring that you are in fact within an active Unit of Work.
-{% endhint %}
diff --git a/14/umbraco-commerce/key-concepts/sales-tax-providers.md b/14/umbraco-commerce/key-concepts/sales-tax-providers.md
deleted file mode 100644
index 14e557324eb..00000000000
--- a/14/umbraco-commerce/key-concepts/sales-tax-providers.md
+++ /dev/null
@@ -1,75 +0,0 @@
----
-description: Realtime sales tax features via Sales Tax Providers in Umbraco Commerce.
----
-
-# Sales Tax Providers
-
-Sales Tax Providers are how Umbraco Commerce can perform real-time sales tax operations. Their job is to provide a standard interface between third-party sales tax operators and Umbraco Commerce. This is done to allow the passing of information between the two platforms.
-
-How the integrations work is often different for each sales tax operator. The Umbraco Commerce Sales Tax Providers add a flexible interface that should work with most sales tax operators.
-
-## Example Sales Tax Provider
-
-An example of a bare-bones Sales Tax Provider would look something like this:
-
-```csharp
-[SalesTaxProvider("my-sales-tax-provider-alias")]
-public class MySalesTaxProvider : SalesTaxProviderBase
-{
- public MySalesTaxProvider(UmbracoCommerceContext umbracoCommerce)
- : base(umbracoCommerce)
- { }
-
- ...
-}
-
-public class MySalesTaxProviderSettings
-{
- [SalesTaxProviderSetting]
- public string ApiKey { get; set; }
-
- ...
-}
-
-```
-
-All Sales Tax Providers inherit from a base class `SalesTaxProviderBase`. `TSettings` is the type of a Plain Old Class Object (POCO) model class representing the Sales Tax Providers settings. The class must be decorated with `SalesTaxProviderAttribute` which defines the Sales Tax Providers `alias`.
-
-The settings class consists of a series of properties, each decorated with a `SalesTaxProviderSettingAttribute`. These will all be used to dynamically build an editor interface for the given settings in the backoffice.
-
-Labels and descriptions for providers and their settings are controlled through [Localization](#localization) entries.
-
-## Sales Tax Provider Responsibilities
-
-The responsibilities of a Sales Tax Provider are:
-
-* **Realtime Rates** - Calculating sales tax rate options for a given Order.
-
-### Realtime Rates
-
-Real-time rates are returned by implementing the `CalculateSalesTaxAsync` method. To facilitate rate calculation, a `SalesTaxProviderContext` object is passed to this method providing useful, contextual information, including:
-
-* **Order** - The Order and its items to be shipped.
-* **OrderCalculation** - The current order calculation state.
-* **FromAddress** - The address from which shipments will be shipped from.
-* **ToAddress** - The address to which shipments will be shipped to.
-* **Settings** - The sales tax provider settings are captured via the backoffice UI.
-* **AdditionalData** - A general dictionary store for any data that may need passing between methods.
-* **HttpContext** - A reference to the current HTTP context.
-
-Implementors should use these details to pass to the 3rd party sales tax operators API and retrieve the sales tax costs. These should then be returned to Umbraco Commerce as a `SalesTaxCalculationResult` which contains an `Amount` property for the total sales tax amount.
-
-## Localization
-
-When displaying your provider in the backoffice UI, it is neceserray to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-|--------------------------------------------------------------------------------| --- |
-| `ucSalesTaxProviders_{providerAlias}Label` | A main label for the provider |
-| `ucSalesTaxProviders_{providerAlias}Description` | A description for the provider |
-| `ucSalesTaxProviders_{providerAlias}Settings{settingAlias}Label` | A label for a provider setting |
-| `ucSalesTaxProviders_{providerAlias}Settings{settingAlias}Description` | A description for a provider setting |
-
-Here `{providerAlias}` is the alias of the provider and `{settingAlias}` is the alias of a setting.
diff --git a/14/umbraco-commerce/key-concepts/search-specifications.md b/14/umbraco-commerce/key-concepts/search-specifications.md
deleted file mode 100644
index 34327612443..00000000000
--- a/14/umbraco-commerce/key-concepts/search-specifications.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-description: Learn more about the flexible search functionaities in Umbraco Commerce.
----
-
-# Search Specifications
-
-Providing a search API for developers to be able to search for entities that match given criteria is a bit of a balancing act. You want to provide a flexible API to allow for meaningful results to be returned but at the same time, you don't want to allow every possible search combination as this can lead to performance problems.
-
-The way we have addressed this is by using the Specification pattern.
-
-## Specifications
-
-Specifications are a programming design pattern that allows you to encapsulate business rules in blocks that can be chained together to define boolean logic.
-
-What this means is that we can provide a series of specifications for the types of queries we are able to support in a performant way and allow developers to chain these together in whatever combination they require in order to create dynamic filters for entity searches.
-
-## Searching
-
-To perform a search using specifications you'll need to use one of the search methods on the given entity service that accepts a `Func>` parameter. This parameter type might look complex, but its use should be pretty straightforward thanks to the use of delegates.
-
-To use one of the search methods, the implementation will look something like the following:
-
-```csharp
-var results = _orderService.SearchOrders(
- (where) => where
- .FromStore(storeId)
- .And(where.HasOrderNumber(orderNumber).Or(where.ByCustomer(customerEmail))))
-```
-
-The above is an example, but it demonstrates the use of a delegate method that then uses a fluent specifications API to build up a query filter. The query filter itself can be made up of many different individual queries which themselves can be grouped using `AND` and `OR` query logic.
-
-Because the API is fluent it is also self-documenting, with Visual Studio intellisense able to guide developers through all the available specifications.
-
-## Ordering Results
-
-Alongside the query specifications documented above, we also have to sort specifications that allow a similar fluent API for defining the order in which results are returned. These are passed in a similar way to the search methods as demonstrated below.
-
-```csharp
-var results = _orderService.SearchOrders(
- (where) => where
- .FromStore(storeId)
- .And(where.HasOrderNumber(orderNumber).Or(where.ByCustomer(customerEmail))),
- (orderBy) => orderBy
- .FinalizedDate(Sort.Descending)
- .Then(orderBy.CreateDate(Sort.Descending)))
-```
diff --git a/14/umbraco-commerce/key-concepts/settings-objects.md b/14/umbraco-commerce/key-concepts/settings-objects.md
deleted file mode 100644
index 53d9ca2b204..00000000000
--- a/14/umbraco-commerce/key-concepts/settings-objects.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-description: Strongly typed Settings objects in Umbraco Commerce.
----
-
-# Settings Objects
-
-There are places in Umbraco Commerce where you can use Settings Objects to pass configuration to a Provider, such as Discount Rule Providers, Reward Providers, and Payment Providers.
-
-The settings objects have a number of responsibilities.
-
-* **Typed Settings Model** - The type represents a strongly typed settings model the given Provider accepts. Any stored settings in the database will be deserialized to this type before being passed to the Provider for processing. This provides strongly typed access to the relevant configuration settings.
-* **UI Scaffold** - The settings object defines metadata on its properties via an Attribute implementing `UmbracoCommerceSettingAttribute`, each Provider type has its own attribute type in case they require additional config, for example `DiscountRewardProviderSettingAttribute`, `DiscountRuleProviderSettingAttribute` or `PaymentProviderSettingAttribute`. The attributes are used to dynamically build the AngularJS-based UI for the given Provider configuration. See the [UI Scaffolding](settings-objects.md#ui-scaffolding) section below for more information on UI Scaffolding.
-* **JavaScript Settings Model** - The settings object also defines the JavaScript settings model passed to the Provider editor UI, using either the settings Property name as the object property key, or using the `Key` property of the Setting Attribute declared on the given Property.
-
-## UI Scaffolding
-
-An important element of the Settings object is UI Scaffolding. UI Scaffolding is where Umbraco Commerce reads a series of Settings Attributes defined on your Settings object properties in order to dynamically build a User Interface for that Providers settings.
-
-An example of a Discount Reward Settings Object might look something like this:
-
-```csharp
-public class MyDiscountRewardProviderSettings
-{
- [DiscountRewardProviderSetting(
- EditorUiAlias = "Umb.PropertyEditorUi.DatePicker",
- EditorConfig = "[{ \"alias\":\"offsetTime\", \"value\":true }]")]
- public DateTime Date { get; set; }
-
- ...
-}
-```
-
-Attributes define an optional `Key` parameter to override the default setting alias which would otherwise be the property name in camel case. An optional `EditorUiAlias` and `EdiutorConfig` options can also be defined to control the Umbraco property editor used to edit the given property. If no view is defined, one will attempt to be automatically chosen based on the property's value type.
-
-Labels and descriptions for settings are controlled through [Localization](#localization) entries.
-
-An example of a generated UI built from these properties would look something like this:
-
-
-
-### Default Values
-
-To define default values for a settings object, you can assign a value to a property in your model and Umbraco Commerce will automatically fall back to that value if no explicit value is defined.
-
-```csharp
-public class MyDiscountRewardProviderSettings
-{
- [DiscountRewardProviderSetting]
- public string Title { get; set; } = "Untitled";
-
- ...
-}
-```
-
-### Localization
-
-When displaying your settings in the backoffice UI, it is necessary to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-The format of the localization keys depends on the context. Refer to the specific feature's article for required localization keys.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/shipping-package-factories.md b/14/umbraco-commerce/key-concepts/shipping-package-factories.md
deleted file mode 100644
index bb33d1f212c..00000000000
--- a/14/umbraco-commerce/key-concepts/shipping-package-factories.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-description: Creating Order Packages in Umbraco Commerce.
----
-
-# Shipping Package Factories
-
-When calculating shipping rates, defining how an order is packaged is necessary. This includes the dimensions/weight of that package as well as the location from which and to which the package will be sent. All of this is the responsibility of the Shipping Package Factory to calculate.
-
-
-## Stacked Shortest Dimension Package Factory
-
-The out-of-the-box Package Factory that ships with Umbraco Commerce is the Stacked Shortest Dimension Package Factory. This factory works by aggregating the physical dimensions of each item in an order by stacking them on their shortest dimension. From there, we get the overall height of the package, with the length and width calculated as the maximum dimension of any order item.
-
-
-The receiver address of the package is calculated from the order, with the sender address being the address of the default location for a store.
-
-The Stacked Shortest Dimension Package Factory currently only supports returning a single package containing the entire contents of the order.
-
-{% hint style="info" %}
-Umbraco Commerce currently supports only package factories returning a single package. Supporting multiple packages will come as a future feature.
-
-{% endhint %}
-
-### Limitations
-
-There are some limitations of the Stacked Shortest Dimension Package Factory that you may need to take into account:
-
-* Assumes items can be stacked in any orientation
-* Doesn't optimize for spreading items out in a box, only stacking into a single stack.
-
-## Custom Package Factory
-
-Given the limitations of the Stacked Shortest Dimension Package Factory, it may become necessary to implement your own packaging algorithm. This can be achieved by implementing your package factory class and swapping out the default one in the DI container.
-
-To implement your own package factory you need to implement the `ShippingPackageFactoryBase` class and implement the `CreatePackages` method.
-
-```csharp
-public class MyPackageFactory : ShippingPackageFactoryBase
-{
- public MyPackageFactory(UmbracoCommerceContext umbracoCommerce)
- : base(umbracoCommerce)
- { }
-
- public override IEnumerable CreatePackages(ShippingMethodReadOnly shippingMethod, OrderReadOnly order)
- {
- // Calculate and return packages
- }
-}
-```
-
-From within this method you can use whatever logic you need to create packages and calculate their dimensions.
-
-To replace the default factory, register your factory implementation with the DI container in its place. See the [Replacing Dependencies documentation](../key-concepts/dependency-injection.md#replacing-dependencies) for more details.
-
-
-```csharp
-builder.Services.AddUnique();
-```
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/shipping-providers.md b/14/umbraco-commerce/key-concepts/shipping-providers.md
deleted file mode 100644
index 6230d22fcf9..00000000000
--- a/14/umbraco-commerce/key-concepts/shipping-providers.md
+++ /dev/null
@@ -1,79 +0,0 @@
----
-description: Realtime shipping features via Shipping Providers in Umbraco Commerce.
----
-
-# Shipping Providers
-
-Shipping Providers are how Umbraco Commerce can perform real-time shipping operations. Their job is to provide a standard interface between third-party shipping operators and Umbraco Commerce. This is done to allow the passing of information between the two platforms.
-
-How the integrations work is often different for each shipping operator. The Umbraco Commerce Shipping Providers add a flexible interface that should work with most shipping operators.
-
-## Example Shipping Provider
-
-An example of a bare-bones Shipping Provider would look something like this:
-
-```csharp
-[ShippingProvider("my-shipping-provider-alias")]
-public class MyShippingProvider : ShippingProviderBase
-{
- public MyShippingProvider(UmbracoCommerceContext umbracoCommerce)
- : base(umbracoCommerce)
- { }
-
- ...
-}
-
-public class MyShippingProviderSettings
-{
- [ShippingProviderSetting]
- public string ApiKey { get; set; }
-
- ...
-}
-
-```
-
-All Shipping Providers inherit from a base class `ShippingProviderBase`. `TSettings` is the type of a Plain Old Class Object (POCO) model class representing the Shipping Provider's settings. The class must be decorated with `ShippingProviderAttribute` which defines the Shipping Providers `alias`.
-
-The settings class consists of a series of properties, each decorated with a `ShippingProviderSettingAttribute`. These will all be used to dynamically build an editor interface for the given settings in the backoffice.
-
-Labels and descriptions for providers and their settings are controlled through [Localization](#localization) entries.
-
-## Shipping Provider Responsibilities
-
-The responsibilities of a Shipping Provider are:
-
-
-* **Realtime Rates** - Calculating shipping rate options for a given Order.
-
-### Realtime Rates
-
-Real-time rates are returned by implementing the `GetShippingRatesAsync` method. To facilitate rate calculation, a `ShippingProviderContext` object is passed to this method providing useful, contextual information, including:
-
-* **Order** - The Order and its items to be shipped.
-* **MeasurementSystem** - The measurement system of the Store associated with the given Order.
-* **Packages** - A list of packages that make up this shipment. Each package contains a reference of the order lines it contains, its overall dimensions and weight, and both sender and receiver address details. See the [Shipping Package Factories documentation](./shipping-package-factories.md) for more details on how these are created.
-* **Settings** - The shipping provider settings are captured via the backoffice UI.
-* **AdditionalData** - A general dictionary store for any data that may need passing between methods.
-* **HttpContext** - A reference to the current HTTP context.
-
-Implementors should use these details to pass to the 3rd party shipping operators API and retrieve the estimated shipping costs. These should then be returned to Umbraco Commerce as a `ShippingRatesResult` which contains a `IEnumerable Rates` property. A `ShippingRate` value for each carrier/service returned by the operator should be supplied. A `ShippingRate` consists of the following properties:
-
-* **Option** - A `ShippingOption` instance, which consists of an `Id` and `Name` property for the given shipping service.
-* **PackageId** - The ID of the package from the `ShippingProviderContext` that this rate is associated with.
-* **Value** - A `Price` value for this rate.
-
-## Localization
-
-When displaying your provider in the backoffice UI, it is neceserray to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-| --- | --- |
-| `ucShippingProviders_{providerAlias}Label` | A main label for the provider |
-| `ucShippingProviders_{providerAlias}Description` | A description for the provider |
-| `ucShippingProviders_{providerAlias}Settings{settingAlias}Label` | A label for a provider setting |
-| `ucShippingProviders_{providerAlias}Settings{settingAlias}Description` | A description for a provider setting |
-
-Here `{providerAlias}` is the alias of the provider and `{settingAlias}` is the alias of a setting.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/shipping-range-and-rate-providers.md b/14/umbraco-commerce/key-concepts/shipping-range-and-rate-providers.md
deleted file mode 100644
index bf8dd7ec38d..00000000000
--- a/14/umbraco-commerce/key-concepts/shipping-range-and-rate-providers.md
+++ /dev/null
@@ -1,121 +0,0 @@
----
-description: Dynamic shipping rate providers in Umbraco Commerce.
----
-
-# Shipping Rate Range / Rate Providers
-
-With Umbraco Commerce's dynamic shipping rates feature it is possible to configure different rules for calculating an order's shipping rate. With the Shipping Rate Range Provider and Shipping Rate Provider feature, it is possible to extend these rules with your own logic.
-
-## Shipping Rate Range Provider
-
-The role of a Shipping Rate Range Provider is to define a unit from which to calculate shipping rates (ie, weight, subtotal, etc). With this unit it is then able to determine within what range of values a given order falls within. It is also responsible for defining what editor view to use when entering range values in the UI.
-
-### System Shipping Rate Ranger Providers
-
-Out of the box Umbraco Commerce ships with the following Shipping Rate Range Providers:
-
-* **Subtotal** - Determines whether an orders subtotal falls within a given range.
-* **Weight** - Determines whether an orders overall weight falls within a given range.
-
-### Custom Shipping Rate Range Providers
-
-Should you wish to define some other unit on which to calculate rates, you can create your own providers by implementing the `ShippingRateRangeProvider` base class.
-
-```csharp
-[ShippingRateRangeProvider("myunit",
- EditorUiAlias: "MyProject.PropertyEditor.MyRangeUnit",
- SortOrder: 30)]
-public class MyShippingRateRangeProvider : ShippingRateRangeProvider
-{
- public override Attempt TryFindRangeIndex(ShippingRateRangeCalculationContext ctx)
- {
- // Use the ctx.Ranges property to find the index that that ctx.Order falls within
- // return Attempt.Succeed(index);
- }
-}
-```
-
-The class should be decorated with the `ShippingRateRangeProviderAttribute` which defines an alias and editor alias for the provider. It implements a single method `TryFindRangeIndex` which, given a `ShippingRateRangeCalculationContext`, should find the index the current order falls within a series of preconfigured ranges. The `ShippingRateRangeCalculationContext` contains a series of useful properties that you can use to form your calculation.
-
-* **Ranges** - A list of configured ranges from the UI from which to find the index of the given order.
-* **Order** - The order to use when finding the current range.
-* **Store** - The store the order belongs to.
-* **Currency** - The given currency of the order.
-* **TaxRate** - The tax rate for the shipping method.
-* **Packages** - A list of packages created for this shipment.
-* **OrderCalculation** - The current in progress order calculation, should there be one.
-
-#### Registering your custom Shipping Rate Range Provider
-
-Shipping Rate Range Providers are automatically added by type so there is no specific registration code you need to implement. By inheriting from the `ShippingRateRangeProvider` base class, Umbraco Commerce will automatically load your implementation and add it to the Shipping Rate Range Providers collection.
-
-#### Localizing your Shipping Rate Range Provider
-
-When displaying your provider in the backoffice UI, it is necessary to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-| --- | --- |
-| `ucShippingRateRangeProviders_{providerAlias}Label` | A main label for the provider |
-| `ucShippingRateRangeProviders_{providerAlias}Description` | A description for the provider |
-
-Here `{providerAlias}` is the alias of the provider.
-
-## Shipping Rate Provider
-
-The role of a Shipping Rate Provider is to provide a specific rate calculation. Each range defined in a dynamic shipping method configuration can contain multiple Shipping Rate Provider configurations. By combining multiple rate provider this allows you to build up more advanced calculation logic. The set of rate providers to use in a given calculation is determined by the index returned from the Shipping Rate Range Provider.
-
-### System Shipping Rate Providers
-
-Out of the box Umbraco Commerce ships with the following Shipping Rate Providers:
-
-* **PricePerOrder** - Defines a fixed price to apply per order.
-* **PricePerOrderItem** - Defines a fixed price multiplied by the total number of items in the order.
-* **PricePerOrderWeightUnit** - Defines a fixed price multiplied by the total order weight.
-* **OrderSubtotalPercentage** - Define a percentage of the order subtotal to apply.
-
-### Custom Shipping Rate Providers
-
-Should you wish to define some other rate calculation logic, you can create your own providers by implementing the `ShippingRateProvider` base class.
-
-```csharp
-[ShippingRateProvider("myrate",
- EditorUiAlias: "MyProject.PropertyEditor.MyRateUnit",
- SortOrder: 30)]
-public class MyShippingRateProvider : ShippingRateProvider
-{
- public override Attempt TryGetRate(ShippingRateCalculationContext ctx)
- {
- // Use the context parameter to calculate a rate ammount
- // return Attempt.Succeed(Price.Calculate(amount, ctx.TaxRate, ctx.Currency.Id, ctx.Store.PricesIncludeTax));
- }
-}
-```
-
-The class should be decorated with the `ShippingRateProviderAttribute` which defines an alias and editor alias for the provider. It implements a single method `TryGetRate` which, given a `ShippingRateCalculationContext`, should calculate the relevant rate. The `ShippingRateCalculationContext` contains a series of useful properties that you can use to form your calculation.
-
-* **Model** - The value for this rate provider captured from the UI.
-* **Order** - The order associated with this calculation.
-* **Store** - The store the order belongs to.
-* **Currency** - The given currency of the order.
-* **TaxRate** - The tax rate for the shipping method.
-* **Packages** - A list of packages created for this shipment.
-* **OrderCalculation** - The current in progress order calculation, should there be one.
-
-#### Registering your custom Shipping Rate Provider
-
-Shipping Rate Providers are automatically added by type so there is no specific registration code you need to implement. By inheriting from the `ShippingRateProvider` base class, Umbraco Commerce will automatically load your implementation and add it to the Shipping Rate Providers collection.
-
-#### Localizing your Shipping Rate Range Provider
-
-When displaying your provider in the backoffice UI, it is necessary to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-| --- | --- |
-| `ucShippingRateProviders_{providerAlias}Label` | A main label for the provider |
-| `ucShippingRateProviders_{providerAlias}Description` | A description for the provider |
-
-Here `{providerAlias}` is the alias of the provider.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/tax-sources.md b/14/umbraco-commerce/key-concepts/tax-sources.md
deleted file mode 100644
index 62eb76fd1f2..00000000000
--- a/14/umbraco-commerce/key-concepts/tax-sources.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-description: Identifying the source of taxation of an Order within Umbraco Commerce.
----
-
-# Tax Sources
-
-A Tax Source identifies which geographic location an Order should use in order to calculate its tax liability. Depending on the country that the web store is operating in and the country, an order is being purchased from/shipping to, this can dictate how your taxes should be calculated.
-
-To aid with this Umbraco Commerce allows the Tax Source of a Store to be configured via the implementation of a Tax Source Factory. The Tax Source Factory is responsible for determining the source of Tax given the billing and shipping country of an Order.
-
-Out of the box, Umbraco Commerce comes with two Tax Source Factory implementations:
-
-* **DestinationTaxSourceFactory** - (Default) Sets the Tax Source as being the destination country where an Order will be shipped to.
-* **OriginTaxSourceFactory** - Sets the Tax Source as being the origin country where an Order was billed to.
-
-## Changing the Tax Source Factory
-
-Tax Source Factories are [registered via the IUmbracoCommerceBuilder](umbraco-commerce-builder.md) interface using the `AddUnique()` method on the `Services` property where the `TReplacementTaxSourceFactory` parameter is the type of your replacement Tax Source Factory implementation.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyServices(IUmbracoCommerceBuilder builder)
- {
- // Replacing the default Tax Source Factory implementation
- builder.Services.AddUnique();
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/ui-config-files.md b/14/umbraco-commerce/key-concepts/ui-config-files.md
deleted file mode 100644
index ffd15aa2f43..00000000000
--- a/14/umbraco-commerce/key-concepts/ui-config-files.md
+++ /dev/null
@@ -1,309 +0,0 @@
----
-description: Customizing the UI in Umbraco Commerce.
----
-
-# UI Config Files
-
-With Umbraco Commerce, there are minimal rules about what information you are required to record about an Order, however, this does pose a problem for how we provide a User Interface for managing carts and orders when we don't know exactly what properties you are going to be recording.
-
-In order to allow this flexibility whilst still providing the ability to view and manage carts and orders in the backoffice, Umbraco Commerce supports a number of UI config files to map [Order/Order Line Properties](properties.md) to its UI elements.
-
-## Supported UI Config Files
-
-The configuration files supported by Umbraco Commerce are.
-
-* **cart.list.config.json** - Cart list view configuration.
-* **cart.editor.config.json** - Cart editor view configuration.
-* **order.list.config.json** - Order list view configuration.
-* **order.editor.config.json** - Order editor view configuration.
-
-{% hint style="info" %}
-If there are no cart config files defined, then Umbraco Commerce will fall back to the order config files.
-{% endhint %}
-
-## Assigning a UI Config File to a Store
-
-To assign a UI config file to a Store, this is done by file name convention. This is where configs are looked for in `App_Plugins/UmbracoCommerce/config` with the following file name format `{storeAlias}.{entityType}.{viewType}.config.json`. If no store-specific file is found, it will fallback into the default `{entityType}.{viewType}.config.json`.
-
-## Cart/Order List Config Files
-
-With these configuration files, you can customize the columns displayed in the Cart/Order list view.
-
-### Example Cart/Order List Config File
-
-```javascript
-{
- properties: [
- { alias: "color", header: "Color", placeholder: "Undefined" },
- { alias: "size", header: "Size", placeholder: "Undefined", align: "right" }
- ]
-}
-```
-
-The following properties are supported:
-
-| Name | Description |
-| ------------- | ------------------------------------------------------------------------------------------------------------ |
-| `alias` | The alias of the Order property to use |
-| `label` | A label to display as the table column header |
-| `align` | Sets the alignment of the column. Can be `left` (default), `center` or `right` |
-| `placeholder` | The placeholder value to display if there is now Order property value |
-| `template` | An angular template to use for rendering the property value. Defaults to `{{ properties['alias'].value }}` |
-
-Properties configured to display in the list view will appear in order, after the cart name column.
-
-
-
-## Cart/Order Editor Config Files
-
-With these configuration files, you can customize the Cart/Order Editor interface to suit your particular needs.
-
-### Example Cart/Order Editor Config File
-
-An example of an Order Editor config file would look something like this:
-
-```javascript
-{
- orderLine: {
- properties: [
- { alias: "color", label: "Color", isReadOnly: true, showInOrderLineSummary: true },
- { alias: "size", label: "Size", isReadOnly: true }
- ]
- },
- customer: {
- // Firstname, Lastname and Email are already known
- company: { alias: "company", label: "Company Name" },
- taxCode: { alias: "taxCode", label: "Tax Code" },
- telephone: { alias: "telephone", label: "Telephone" },
- },
- billing: {
- addressLine1: { alias: "billingAddressLine1", label: "Street Address Line 1" },
- addressLine2: { alias: "billingAddressLine2", label: "Street Address Line 2" },
- city: { alias: "billingCity", label: "City" },
- zipCode: { alias: "billingZipCode", label: "Zip Code" },
- telephone: { alias: "billingTelephone", label: "Telephone" },
- // Country and Region are already known
- },
- shipping: {
- enabled: true,
- sameAsBilling: { alias: "shippingSameAsBilling", label: "Same as billing", trueValue: "1", falseValue: "0" },
- firstName: { alias: "shippingFirstName", label: "First Name" },
- lastName: { alias: "shippingLastName", label: "Last Name" },
- addressLine1: { alias: "shippingAddressLine1", label: "Street Address Line 1" },
- addressLine2: { alias: "shippingAddressLine2", label: "Street Address Line 2" },
- city: { alias: "shippingCity", label: "City" },
- zipCode: { alias: "shippingZipCode", label: "Zip Code" },
- telephone: { alias: "shippingTelephone", label: "Telephone" },
- // Country and Region are already known
- },
- notes: {
- customerNotes: { alias: "comments", label: "Customer Comments" },
- internalNotes: { alias: "notes", label: "Internal Notes" }
- },
- additionalInfo: [
- { alias: "ipAddress", label: "IP Address", isReadOnly: true }
- ]
-}
-```
-
-The Cart/Order Editor config file is broken up into a series of sections, each of which relates to a particular section of the Cart/Order Editor User Interface.
-
-### Order Line Config Options
-
-The Order Line config block configures which Order Line properties should be viewable and/or manageable within the Cart/Order Editor UI. For each Order Line Property, you can provide the following options:
-
-| Name | Description |
-| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
-| `alias` | The alias of the Order Line property |
-| `label` | A friendly label to display for this property in the editor interface |
-| `description` | A friendly description to display for this property in the editor interface |
-| `template` | An angular template to use for rendering the property value. Defaults to `{{ properties['alias'].value }}` | |
-| `isReadOnly` | Sets the property as read only and so doesn't provide a means of editing the value in the editor interface (Default: `false`) |
-| `showInOrderLineSummary` | Sets whether to display this property in the Order Lines summary next to the `SKU` in the Order editor interface (Default: `true`) |
-| `view` | Sets the name or path of a Property Editor to use when editing this property |
-| `config` | Defines a JSON config for the Property Editor if required |
-
-Properties configured to display in the Order Line Summary will be displayed inline next to the "Order Lines `SKU`" as follows:
-
-
-
-Where there are editable Order Line Properties for an Order Line, a pencil icon is displayed next to the Order Lines Product name which when clicked will open out the Order Line Property editor interface for that Order Line.
-
-
-
-### Customer Config Options
-
-The Customer config block configures which Cart/Order properties relate to a Cart/Orders customer information. The following properties are supported.
-
-| Key | Description |
-| ----------- | --------------------------------------------------------------------------------- |
-| `firstName` | The customers first name. Uses the `order.CustomerInfo.FirstName` system property |
-| `lastName` | The customers last name. Uses the `order.CustomerInfo.LastName` system property |
-| `email` | The customers email address. Uses the `order.CustomerInfo.Email` system property |
-| `company` | The company the customer works for |
-| `taxCode` | The tax code of the company the customer works for |
-| `telephone` | The contact telephone number of the customer |
-
-Any missing property definition in this config block will disable that property from displaying/being editable.
-
-For each property, the following config options are available:
-
-| Name | Description |
-| ------------- | ---------------------------------------------------------------------------- |
-| `alias` | The alias of the Order property to use |
-| `label` | A friendly label to display for this property in the editor interface |
-| `description` | A friendly description to display for this property in the editor interface |
-| `view` | Sets the name or path of a Property Editor to use when editing this property |
-| `config` | Defines a JSON config for the Property Editor if required |
-
-A fully configured Customer config block will produce a Customer summary like so:
-
-
-
-Clicking the Customer Details `Edit` button will display an editing interface like so:
-
-
-
-### Billing Config Options
-
-The Billing config block configures which Cart/Order properties relate to a Cart/Orders billing information. The following properties are supported.
-
-| Key | Description |
-| -------------- | ------------------------------------------- |
-| `addressLine1` | Line 1 of the billing address |
-| `addressLine2` | Line 2 of the billing address |
-| `city` | The City of the billing address |
-| `zipCode` | The Zip/Postal Code of the billing address |
-| `telephone` | The telephone number of the billing address |
-
-In addition to these properties, the `order.PaymentInfo` Country/Region will be associated with the billing address.
-
-Any missing property definition in this config block will disable that property from displaying/being editable.
-
-For each property, the following config options are available:
-
-| Name | Description |
-| ------------- | ---------------------------------------------------------------------------- |
-| `alias` | The alias of the Order property to use |
-| `label` | A friendly label to display for this property in the editor interface |
-| `description` | A friendly description to display for this property in the editor interface |
-| `view` | Sets the name or path of a Property Editor to use when editing this property |
-| `config` | Defines a JSON config for the Property Editor if required |
-
-A fully configured Billing config block will produce a Billing Address summary like so:
-
-
-
-Clicking the Customer Details `Edit` button will display an editing interface like so:
-
-
-
-### Shipping Config Options
-
-The Shipping config block configures which Cart/Order properties relate to a Cart/Orders shipping information. The following properties are supported.
-
-| Key | Description |
-| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `enabled` | Sets whether the collection of shipping information is enabled or not. If set to `false` not shipping info will be displayed (Default: `true`) |
-| `sameAsBilling` | Determines the Order property to use as a flag to indicate the shipping address is the same as the billing address |
-| `firstName` | The first name of the shipping contact |
-| `lastName` | The last name of the shipping contact |
-| `addressLine1` | Line 1 of the shipping address |
-| `addressLine2` | Line 2 of the shipping address |
-| `city` | The City of the shipping address |
-| `zipCode` | The Zip/Postal Code of the shipping address |
-| `telephone` | The telephone number of the shipping address |
-
-In addition to these properties, the `order.ShippingInfo` Country/Region will be associated with the shipping address.
-
-Any missing property definition in this config block will disable that property from displaying/being editable.
-
-For each property, except `enabled` or `sameAsBilling`, the following config options are available:
-
-| Name | Description |
-| ------------- | ---------------------------------------------------------------------------- |
-| `alias` | The alias of the Order property to use |
-| `label` | A friendly label to display for this property in the editor interface |
-| `description` | A friendly description to display for this property in the editor interface |
-| `view` | Sets the name or path of a Property Editor to use when editing this property |
-| `config` | Defines a JSON config for the Property Editor if required |
-
-For the `sameAsBilling` property, the following config options are available:
-
-| Name | Description |
-| ------------ | --------------------------------------------------------------------------------------------- |
-| `alias` | The alias of the Order property to use |
-| `label` | A friendly label to display next to a toggle switch for this property in the editor interface |
-| `trueValue` | The value to expect for a `true` value |
-| `falseValue` | The value to expect for a `false` value |
-
-A fully configured Shipping config block, where the `sameAsBilling` property is `false`, will produce a Shipping Address summary like so:
-
-
-
-Where as, a fully configured Shipping config block, where the `sameAsBilling` property is `true`, will produce a Shipping Address summary like so:
-
-
-
-Clicking the Customer Details `Edit` button will display an editing interface like so:
-
-
-
-If the `sameAsBilling` toggle switch is toggled, the appropriate Cart/Order property will be toggled between the configured Properties true/false values, and the editor interface will be collapsed like so:
-
-
-
-### Notes Config Options
-
-The Notes config block configures which Cart/Order properties relate to a Cart/Orders note information. The following properties are supported.
-
-| Key | Description |
-| --------------- | ---------------------------------------------------------------------------------- |
-| `customerNotes` | The property to use for customer provided notes |
-| `internalNotes` | The property to use to store internal notes that shouldn't be sent to the customer |
-
-Any missing property definition in this config block will disable that property from displaying/being editable.
-
-For each property the following config options are available:
-
-| Name | Description |
-| ------------- | --------------------------------------------------------------------------- |
-| `alias` | The alias of the Order property to use |
-| `label` | A friendly label to display for this property in the editor interface |
-| `description` | A friendly description to display for this property in the editor interface |
-
-A fully configured Notes config block will produce an editor interface like so:
-
-
-
-### Additional Info Config Options
-
-The Additional Info config block configures any other Cart/Order properties you wish to display in the Cart/Order editor interface in the **Additional Info** section. For each Order Property to display you can provide the following options:
-
-| Name | Description |
-| ------------- | ----------------------------------------------------------------------------------------------------------------------------- |
-| `alias` | The alias of the Order property |
-| `label` | A friendly label to display for this property in the editor interface |
-| `description` | A friendly description to display for this property in the editor interface |
-| `template` | An angular template to use for rendering the property value. Defaults to `{{ properties['alias'].value }}` |
-| `isReadOnly` | Sets the property as read only and so doesn't provide a means of editing the value in the editor interface (Default: `false`) |
-| `view` | Sets the name or path of a Property Editor to use when editing this property |
-| `config` | Defines a JSON config for the Property Editor if required |
-
-A fully configured Additional Info config block will produce an Additional Info summary interface like so:
-
-
-
-Clicking the Additional Info `Edit` button will display an editing interface like so:
-
-
-
-### Custom Cart/Order Editor View
-
-If you wish to entirely replace the Cart/Order Editor view with a custom implementation you can create a Cart/Order Editor Config file with a single `view` config option which points to the path of an alternative AngularJS view file to use for editing the Order.
-
-```javascript
-{
- view: '/app_plugins/myplugin/views/ordereditor/ordereditor.html'
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/ui-extensions/README.md b/14/umbraco-commerce/key-concepts/ui-extensions/README.md
deleted file mode 100644
index 6782a7cf382..00000000000
--- a/14/umbraco-commerce/key-concepts/ui-extensions/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-description: UI Extensions for Umbraco Commerce
----
-
-# UI Extensions
-
-Umbraco Commerce offers a number of UI extension points, from the ability to add custom quick actions, to adding custom order property editors. These UI extension points are designed to allow you to adjust Umbraco Commerce's behavior to more closely match the requirements of the store owner.
-
-Umbraco Commerce offers the following UI extension points:
-
-## [Analytics Widgets](./analytics-widgets.md)
-Define custom analytics widgets to display in the analytics dashboard
-
-## [Entity Quick Actions](./entity-quick-actions.md)
-Define quick actions to display in the entity editor
-
-## [Order Properties](./order-properties.md)
-Define properties to be editable in the cart/order editor
-
-## [Order Collection Properties](./order-collection-properties.md)
-Define properties to display in the cart/order collection view
-
-## [Order Line Properties](./order-line-properties.md)
-Define order line properties to be editable in the cart/order editor
-
-## [Store Menu Items](./store-menu-items.md)
-Define custom menu items to display a store menu
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/ui-extensions/analytics-widgets.md b/14/umbraco-commerce/key-concepts/ui-extensions/analytics-widgets.md
deleted file mode 100644
index da137ece293..00000000000
--- a/14/umbraco-commerce/key-concepts/ui-extensions/analytics-widgets.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-description: Analytics Widgets UI Extension for Umbraco Commerce
----
-
-# Analytics Widgets
-
-Analytics Widgets allow you to display custom charts and reports in the analytics section to track your important KPIs.
-
-
-
-## Registering an Analytics Widget
-
-```typescript
-import { UcManifestAnalyticsWidget } from "@umbraco-commerce/backoffice";
-
-export const manifests : UcManifestAnalyticsWidget[] = [
- {
- type: 'ucAnalyticsWidget',
- alias: 'Uc.AnalyticsWidget.TotalOrders',
- name: 'Total Orders',
- element: () => import('./total-orders-widget.element.js'),
- meta: {
- label: '#ucAnalytics_totalOrdersHeadline',
- description: '#ucAnalytics_totalOrdersDescription'
- }
- }
-];
-
-extensionRegistry.register(manifests);
-```
-
-Each entry must have a type of `ucAnalyticsWidget` along with a unique `alias` and `name`. An `element` key should be defined to import the implementation of the `UcAnalyticsWidget` component interface.
-
-A `meta` entry provides configuration options for the widget
-
-| Name | Description |
-| -- | -- |
-| `label` | A label for this widget (supports the `#` prefix localization string syntax) |
-| `description` | A description for this widget (supports the `#` prefix localization string syntax) |
-
-## The Analytics Widget element
-
-In order to define the UI for a widget, you'll need to define a component that implements the `UcAnalyticsWidget` interface. This interface is defined as
-
-```typescript
-export interface UcAnalyticsWidget extends UmbControllerHostElement {
- storeId:string;
- manifest: UcManifestAnalyticsWidget;
- timeframe: UcAnalyticsTimeframe;
-}
-```
-
-This provides widget implementations with access to the current `storeId`, the defined `manifest`, and the current selected `timeframe` for which the widget should show relevant data.
-
-An example implementation would be
-
-```typescript
-// total-orders-widget.element.js
-
-import { customElement, html, property, state } from "@umbraco-cms/backoffice/external/lit";
-import { UmbLitElement } from "@umbraco-cms/backoffice/lit-element";
-import { UcAnalyticsTimeframe, UcAnalyticsWidget, UcManifestAnalyticsWidget } from "@umbraco-commerce/backoffice";
-
-@customElement('uc-total-orders-widget')
-export class UcTotalOrdersWidgetElement extends UmbLitElement implements UcAnalyticsWidget {
-
- @property({ type:String })
- storeId!:string;
-
- @property({ type: Object, attribute: false })
- manifest?: UcManifestAnalyticsWidget;
-
- @property({ type: Object, attribute: false })
- set timeframe(timeframe: UcAnalyticsTimeframe) {
- this._timeframe = timeframe;
- this.#fetchData();
- }
- private _timeframe?: UcAnalyticsTimeframe;
-
- @state()
- private _data?:any[];
-
- #fetchData = async () => {
- // Fetch data using this._timeframe properties as a filter
- // and store the result in this._data
- }
-
- render() {
- if (!this._data) return;
- return html`-- WIDGET MARKUP GOES HERE --`;
- }
-
-}
-
-export default UcTotalOrdersWidgetElement;
-
-declare global {
- interface HTMLElementTagNameMap {
- 'uc-total-orders-widget': UcTotalOrdersWidgetElement;
- }
-}
-```
-
-When an alternative timeframe is selected from the widget dashboard, all widget's `timeframe` properties will be updated to re-fetch and render the widget.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/ui-extensions/entity-quick-actions.md b/14/umbraco-commerce/key-concepts/ui-extensions/entity-quick-actions.md
deleted file mode 100644
index 9d03d6b4fc4..00000000000
--- a/14/umbraco-commerce/key-concepts/ui-extensions/entity-quick-actions.md
+++ /dev/null
@@ -1,72 +0,0 @@
----
-description: Entity Quick Actions UI Extension for Umbraco Commerce
----
-
-# Entity Quick Actions
-
-Entity Quick Actions allow you to display a button directly in the entity editor screen for important actions that require instant access.
-
-
-
-## Registering a Quick Action
-
-```typescript
-import { UcManifestEntityQuickAction } from "@umbraco-commerce/backoffice";
-
-export const manifests : UcManifestEntityQuickAction[] = [
- {
- type: 'ucEntityQuickAction',
- kind: 'default',
- alias: 'My.EntityQuickAction.MyQuickAction',
- name: 'My Quick Action Action',
- weight: 300,
- api: () => import('./my-quick-action.api.js'),
- meta: {
- entityType: 'uc:order',
- label: "#quickActions_myQuickAction",
- look: 'primary'
- }
- }
-];
-
-extensionRegistry.register(manifests);
-```
-
-Each entry must have a type of `ucEntityQuickAction` along with a unique `alias` and `name`. Unless you wish to override the button, the `kind` key should be set to `default`. An `api` key should be defined that imports the implementation of the `UcEntityQuickActionApi` interface.
-
-A `meta` entry provides configuration options for quick actions:
-
-| Name | Description |
-| -- | -- |
-| `entityType` | The entity type for which this quick action should be displayed |
-| `label` | A label for this quick action (supports the `#` prefix localization string syntax) |
-| `look` | Can be `primary` for a highlighted button, or `secondary` for a more muted button |
-
-## The Entity Quick Action API
-
-In order to define the logic to perform when a quick action button is clicked, you'll need to implement the `UcEntityQuickActionApi` interface. This interface is defined as
-
-```typescript
-export interface UcEntityQuickActionApi extends UmbApi {
- manifest: UcManifestEntityQuickAction;
- execute(): Promise;
-}
-```
-
-This provides quick action implementations with access to the defined `manifest` and expects the implementation of an `execute` method to act.
-
-An example implementation would be
-
-```typescript
-// my-quick-action.api.js
-
-import { UcEntityQuickActionApi, UcManifestEntityQuickAction } from "@umbraco-commerce/backoffice";
-import { UmbControllerBase } from "@umbraco-cms/backoffice/class-api";
-
-export default class MyEntityQuickActionApi extends UmbControllerBase implements UcEntityQuickActionApi {
- manifest!: UcManifestEntityQuickAction;
- async execute() {
- console.log("You clicked the My Quick Action");
- }
-}
-```
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/ui-extensions/order-collection-properties.md b/14/umbraco-commerce/key-concepts/ui-extensions/order-collection-properties.md
deleted file mode 100644
index 1203fa7b4d4..00000000000
--- a/14/umbraco-commerce/key-concepts/ui-extensions/order-collection-properties.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-description: Order Collection Properties UI Extension for Umbraco Commerce
----
-
-# Order Collection Properties
-With the use of [Properties](../properties.md), Umbraco Commerce allows a lot of flexibility to capture whatever data you need to record against an Order. To complement that functionality, it is also possible to configure those properties to be displayed within the Orders collection view.
-
-Order Collection Properties are defined as manifest entries in your [`umbraco-package.manifest`](https://docs.umbraco.com/umbraco-cms/extending/package-manifest).
-
-```json
-"extensions": [
- {
- "type": "ucOrderCollectionProperty",
- "alias": "Uc.OrderCollectionProperty.FirstName",
- "name": "Customer FirstName",
- "weight": 400,
- "meta": {
- "propertyAlias": "firstName",
- "labelUiAlias": "Umb.PropertyEditorUi.Label",
- "align": "right"
- }
- }
-]
-```
-
-Each entry must have a type of `ucOrderCollectionProperty` along with a unique `alias` and `name`. An optional `forEntityTypes` key can also be defined to control whether the property is visible on the Cart editor, or the Order editor, or both. The `forEntityTypes` is an array and can accept either or both of the `uc:cart` or `uc:order` values.
-
-A `meta` entry provides configuration options for the property
-
-| Name | Description |
-| -- | -- |
-| `propertyAlias` | The alias of the order line property to edit |
-| `labelUiAlias` | The alias of the property editor to use to view this property |
-| `align` | Can be `left`, `center`, or `right` to control the alignment of the column |
-
-## Localization
-
-When displaying your properties in the backoffice UI it is necessary to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-| --- | --- |
-| `ucProperties_{alias}Label` | A main label for the property used as a column heading |
-
-Here `{alias}` is the property alias of a property.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/ui-extensions/order-line-properties.md b/14/umbraco-commerce/key-concepts/ui-extensions/order-line-properties.md
deleted file mode 100644
index cc0aa2971cb..00000000000
--- a/14/umbraco-commerce/key-concepts/ui-extensions/order-line-properties.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-description: Order Line Properties UI Extension for Umbraco Commerce
----
-
-# Order Line Properties
-With the use of [Properties](../properties.md), Umbraco Commerce allows a lot of flexibility to capture whatever data you need to record against an Order Line. To complement that functionality, it is also possible to configure those properties to be editable within the backoffice UI.
-
-Order Properties are defined as manifest entries in your [`umbraco-package.manifest`](https://docs.umbraco.com/umbraco-cms/extending/package-manifest).
-
-```json
-"extensions": [
- {
- "type": "ucOrderLineProperty",
- "alias": "Uc.OrderLineProperty.FirstName",
- "name": "Customer FirstName",
- "weight": 400,
- "meta": {
- "propertyAlias": "firstName",
- "readOnly": false,
- "showInOrderLineSummary": true,
- "summaryStyle": "inline",
- "editorUiAlias": "Umb.PropertyEditorUi.TextBox",
- "labelUiAlias": "Umb.PropertyEditorUi.Label"
- }
- }
-]
-```
-
-Each entry must have a type of `ucOrderLineProperty` along with a unique `alias` and `name`. An optional `forEntityTypes` key can also be defined to control whether the property is visible on the Cart editor, or the Order editor, or both. The `forEntityTypes` is an array and can accept either or both of `uc:cart` or `uc:order` values.
-
-A `meta` entry provides configuration options for the property
-
-| Name | Description |
-| -- | -- |
-| `propertyAlias` | The alias of the order line property to edit |
-| `readOnly` | Set whether the property should be defined as read only and so should be viewable but not editable |
-| `showInOrderLineSummary` | Set whether the property should display on the orderline summary |
-| `summaryStyle` | Can be either `inline` in which case the property value will be displayed inline with other inline properties below the product name, or `table` in which case the property value will be displayed in a table below the product name |
-| `editorUiAlias` | The alias of the property editor to use to edit this property |
-| `editorConfig` | A JSON serialized string to pass to the editor UI as config |
-| `labelUiAlias` | The alias of the property editor to use to view this property |
-
-## Localization
-
-When displaying your properties in the backoffice UI it is necessary to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-| --- | --- |
-| `ucProperties_{alias}Label` | A main label for the property |
-| `ucProperties_{alias}Description` | A description for the property |
-
-Here `{alias}` is the property alias of a property.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/ui-extensions/order-properties.md b/14/umbraco-commerce/key-concepts/ui-extensions/order-properties.md
deleted file mode 100644
index 6bbed464a24..00000000000
--- a/14/umbraco-commerce/key-concepts/ui-extensions/order-properties.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-description: Order Properties UI Extension for Umbraco Commerce
----
-
-# Order Properties
-With the use of [Properties](../properties.md), Umbraco Commerce allows a lot of flexibility to capture whatever data you need to record against an Order. To complement that functionality, it is also possible to configure those properties to be editable within the backoffice UI.
-
-Order Properties are defined as manifest entries in your [`umbraco-package.manifest`](https://docs.umbraco.com/umbraco-cms/extending/package-manifest).
-
-```json
-"extensions": [
- {
- "type": "ucOrderProperty",
- "alias": "Uc.OrderProperty.FirstName",
- "name": "Customer FirstName",
- "weight": 400,
- "meta": {
- "propertyAlias": "firstName",
- "group": "Uc.OrderPropertyGroup.Customer",
- "editorUiAlias": "Umb.PropertyEditorUi.TextBox",
- "labelUiAlias": "Umb.PropertyEditorUi.Label"
- }
- }
-]
-```
-
-Each entry must have a type of `ucOrderProperty` along with a unique `alias` and `name`. An optional `forEntityTypes` key can also be defined to control whether the property is visible on the Cart editor, or the Order editor, or both. The `forEntityTypes` is an array and can accept either or both of `uc:cart` or `uc:order` values.
-
-A `meta` entry provides configuration options for the property
-
-| Name | Description |
-| -- | -- |
-| `propertyAlias` | The alias of the order line property to edit |
-| `group` | Defines a [group](#order-property-groups) in which to display the property |
-| `editorUiAlias` | The alias of the property editor to use to edit this property |
-| `editorConfig` | A JSON serialized string to pass to the editor UI as config |
-| `labelUiAlias` | The alias of the property editor to use to view this property |
-
-## Order Property Groups
-
-Order properties can be defined as one of the following to control where the property is displayed.
-
-| Name | Description |
-| -- | -- |
-| `Uc.OrderPropertyGroup.Customer` | Displays the property in the Customer fieldset of the customer details editor modal |
-| `Uc.OrderPropertyGroup.Billing` | Displays the property in the Billing fieldset of the customer details editor modal |
-| `Uc.OrderPropertyGroup.Shipping` | Displays the property in the Shipping fieldset of the customer details editor modal |
-| `Uc.OrderPropertyGroup.Notes` | Displays the property in the Notes section of the Order editor |
-| `Uc.OrderPropertyGroup.AdditionalInfo` | Displays the property in the Additional Info fieldset of the Order editor |
-
-## Localization
-
-When displaying your properties in the backoffice UI it is necessary to provide localizable labels. This is controlled by Umbraco's [UI Localization](https://docs.umbraco.com/umbraco-cms/extending/language-files/ui-localization) feature.
-
-Umbraco Commerce will automatically look for the following entries:
-
-| Key | Description |
-| --- | --- |
-| `ucProperties_{alias}Label` | A main label for the property |
-| `ucProperties_{alias}Description` | A description for the property |
-
-Here `{alias}` is the property alias of a property.
\ No newline at end of file
diff --git a/14/umbraco-commerce/key-concepts/ui-extensions/store-menu-items.md b/14/umbraco-commerce/key-concepts/ui-extensions/store-menu-items.md
deleted file mode 100644
index 02d7bf55fe7..00000000000
--- a/14/umbraco-commerce/key-concepts/ui-extensions/store-menu-items.md
+++ /dev/null
@@ -1,83 +0,0 @@
----
-description: Store Menu Item UI Extension for Umbraco Commerce
----
-
-# Store Menu Item
-
-Store Menu Items allow you to display custom menu items inside a Store tree, either in the Settings or Commerce sections.
-
-
-
-## Registering a Store Menu Item
-
-```typescript
-import { UcManifestStoreMenuItem } from "@umbraco-commerce/backoffice";
-
-export const manifests : UcManifestStoreMenuItem[] = [
- {
- type: 'ucStoreMenuItem',
- alias: 'analytics',
- name: 'Analytics',
- meta: {
- label: '#ucMenus_analytics',
- menus: [ 'Uc.Menu.StoreManagement' ],
- entityType: 'uc:analtics',
- icon: 'icon-chart-curve'
- },
- weight: 100
- }
-];
-
-extensionRegistry.register(manifests);
-```
-
-Each entry must have a type of `ucStoreMenuItem` along with a unique `alias` and `name`.
-
-A `meta` entry provides configuration options for the menu item
-
-| Name | Description |
-| -- | -- |
-| `label` | A label for this menu item (supports the `#` prefix localization string syntax) |
-| `icon` | An icon to display in the menu item |
-| `menus` | An array of menu aliases under which this menu items should be added. Can be one or both of `Uc.Menu.StoreManagement` or `Uc.Menu.StoreSettings` |
-| `entityType` | Defines the `entityType` this menu item can handle |
-| `childEntityTypes` | Defines the entity types of any child menu items to ensure this menu item remains highlighted if the given entity type editor is opened |
-| `parentAlias` | The alias of another menu item under which this menu item should be displayed |
-| `selectable` | A boolean defining whether this menu item should be selectable |
-
-Menu items are set to navigate to the following route on click
-
-```
-section/{currentSection}/workspace/{rootEntityType}/{rootUnique}/{entityType}
-```
-
-Here:
-
-- `{currentSection}` is the current section you are in,
-- `{rootEntityType}` is the entity type of the menu this item is a child of (should be one of `uc:store-management` or `uc:store-settings`),
-- `{rootUnique}` is the ID of the Store this menu is for, and
-- `{entityType}` is the entity type as defined in the menu items manifest meta data.
-
-## Handling Store Menu Item Requests
-
-To handle requests to this endpoint, you should define a workspace manifest for the given entity type.
-
-```typescript
-import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry';
-
-const manifests: ManifestWorkspace[] = [
- {
- type: 'workspace',
- kind: 'routable',
- alias: 'My.Workspace.MyEntity',
- name: 'My Entity Workspace',
- api: () => import('./my-workspace.context.js'),
- meta: {
- entityType: 'my:entity-type',
- }
- }
-];
-
-extensionRegistry.register(manifests);
-
-```
diff --git a/14/umbraco-commerce/key-concepts/umbraco-commerce-builder.md b/14/umbraco-commerce/key-concepts/umbraco-commerce-builder.md
deleted file mode 100644
index 0cd8b8dbf0f..00000000000
--- a/14/umbraco-commerce/key-concepts/umbraco-commerce-builder.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-description: Learn more about the different options for configured Umbraco Commerce.
----
-
-# Umbraco Commerce Builder
-
-When it comes to configuring and extending Umbraco Commerce, such as by registering your own event handlers, we achieve this with the `IUmbracoCommerceBuilder` interface that can be accessed via a delegate function passed into the `AddUmbracoCommerce()` extension method called on the `IUmbracoBuilder` interface when explicitly registering Umbraco Commerce.
-
-```csharp
-builder.CreateUmbracoBuilder()
- .AddBackOffice()
- .AddWebsite()
- .AddUmbracoCommerce(umbracoCommerceBuilder => {
- // Configure Umbraco Commerce here
- })
- .AddDeliveryApi()
- .AddComposers()
- .Build();
-
-```
-
-## Registering Dependencies
-
-The `IUmbracoCommerceBuilder` interface gives you access to the current `IServiceCollection` and `IConfiguration` to allow you to register dependencies like you would with the [`IUmbracoBuilder` interface](dependency-injection.md#registering-dependencies) but its primary use case would be to access Umbraco Commerce's own collection builders, such as for registering validation or notification events, and any other Umbraco Commerce-specific configuration APIs.
-
-```csharp
-...
-.AddUmbracoCommerce(umbracoCommerceBuilder => {
-
- // Register validation events
- umbracoCommerceBuilder.WithValidationEvent()
- .RegisterHandler();
-
-})
-...
-```
-
-As per the [Dependency Injection docs](dependency-injection.md), whilst you can register your dependencies directly within this configuration delegate, you may prefer to group your dependencies registration code into an extension method.
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-{
- public static IUmbracoCommerceBuilder AddMyDependencies(this IUmbracoCommerceBuilder builder)
- {
- // Register my dependencies here via the builder parameter
- ...
-
- // Return the builder to continue the chain
- return builder;
- }
-}
-```
-
-```csharp
-...
-.AddUmbracoCommerce(umbracoCommerceBuilder => {
-
- umbracoCommerceBuilder.AddMyDependencies();
-
-})
-...
-```
-
-{% hint style="info" %}
-If using a composer to register `IUmbracoCommerceBuilder` extensions and their dependencies, the composer needs to run before `UmbracoCommerceComposer` otherwise it will use the default configuration.
-{% endhint %}
-
-```csharp
-public static class StoreBuilderExtensions
-{
- public static IUmbracoBuilder AddMyStore(this IUmbracoBuilder umbracoBuilder)
- {
- umbracoBuilder.AddUmbracoCommerce(v =>
- {
- ...
- });
-
- return umbracoBuilder;
- }
-}
-```
-
-```csharp
-[ComposeBefore(typeof(UmbracoCommerceComposer))]
-public class StoreComposer : IComposer
-{
- public void Compose(IUmbracoBuilder builder)
- {
- builder.AddMyStore();
- }
-}
-```
diff --git a/14/umbraco-commerce/key-concepts/umbraco-properties.md b/14/umbraco-commerce/key-concepts/umbraco-properties.md
deleted file mode 100644
index f46b4936cbd..00000000000
--- a/14/umbraco-commerce/key-concepts/umbraco-properties.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-description: Key Umbraco node properties used by Umbraco Commerce.
----
-
-# Umbraco Properties
-
-Umbraco Commerce uses Umbraco nodes as its source of information. In order for Umbraco Commerce to gather the information it needs, however, it requires that a number of properties are defined at different locations with specific property aliases.
-
-## Properties
-
-
-
-
-
Alias
-
Type
-
Description
-
-
-
-
-
store
-
Umbraco.Commerce.StorePicker
-
- Often placed on the site root node, but can be placed on any node higher
- than the product nodes themselves, this property links the website to a
- specific Umbraco Commerce store configuration.
-
-
-
-
productName
-
Textstring
-
- Optional product node property that allows you to define an explicit
- product name other than the product nodes .Name property,
- which will be used as fallback.
-
-
-
-
sku
-
Textstring
-
- Product node property defining the unique SKU of the
- product.
-
-
-
-
price
-
Umbraco.Commerce.Price
-
Product node property defining the prices for the product.
-
-
-
stock
-
Umbraco.Commerce.Stock
-
Product node property defining the stock level of the product.
-
-
-
image
-
Umbraco.MediaPicker3
-
Optional product node property defining an image for the given product.
-
-
-
measurements
-
Umbraco.Commerce.Measurements
-
Optional (depending on the shipping configuration) node property defining physical dimensions and weight of the product.
-
-
-
taxClass
-
Umbraco.Commerce.StoreEntityPicker
-
- Optional product node property that allows you to define an explicit
- Tax Class for the product, should it differ from the stores
- default.
-
-
-
-
isGiftCard
-
True/False
-
- Optional product node property that defined whether the product node
- should be considered a Gift Card product, in which case it triggers the
- automatic generation of a Gift Card in the backoffice and emails it
- directly to the customer on checkout.
-
-
-
-
productSource
-
ContentPicker
-
- Optional product node property allowing you to link a product to another
- product outside of it's hierarchy to be used as it's source of product
- information.
-
-
-
-
diff --git a/14/umbraco-commerce/key-concepts/unit-of-work.md b/14/umbraco-commerce/key-concepts/unit-of-work.md
deleted file mode 100644
index eabac773e45..00000000000
--- a/14/umbraco-commerce/key-concepts/unit-of-work.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-description: Transactional updates using the Unit of Work pattern in Umbraco Commerce.
----
-
-# Unit of Work
-
-## Unit of Work
-
-When working with Umbraco Commerce's API it is important that data integrity is maintained should any errors occur. In order to achieve this Umbraco Commerce uses the [Unit of Work pattern](https://www.martinfowler.com/eaaCatalog/unitOfWork.html) to effectively create a transaction that wraps around sections of your code ensuring that all Umbraco Commerce write operations that occur within that code block must succeed and be persisted in their entirety, otherwise, none of them should, and the database should rollback to its state prior to when those changes were made.
-
-### Creating a Unit of Work
-
-Creating a unit of work will require access to Umbraco Commerce's `IUnitOfWorkProvider` which can be [injected into your Controller directly](dependency-injection.md), or can also be accessed via the `UoW` property on the `IUmbraco CommerceApi` helper.
-
-Once you have access to either of these entry points, you can define a Unit of Work as follows
-
-```csharp
-_uowProvider.Execute(uow =>
-{
- // Perform your write operations here
-
- uow.Complete();
-});
-
-```
-
-The anatomy of a Unit of Work is an `Execute` method call on the `IUnitOfWorkProvider` instance which accepts a delegate function with a `uow` argument. Inside the delegate, we perform our tasks and confirm the Unit of Work as complete by calling `uow.Complete()`. If we fail to call `uow.Complete()` either due to forgetting to add the `uow.Complete()` call or due to an exception in our code, then any write operations that occur within that code block will **not** be persisted in the database.
-
-### Unit of Work Best Practice
-
-When using a Unit of Work it is best practice that you should perform **all** write operations inside a single Unit of Work and **not** create individual Units of Work per write operation.
-
-{% hint style="info" %}
-Perform all write operations in a single Unit of Work
-{% endhint %}
-
-```csharp
-_uowProvider.Execute(uow =>
-{
- // Create a Country
- var country = Country.Create(uow, storeId, "DK", "Denmark");
-
- _countryService.Save(country);
-
- // Create a Currency
- var currency = Currency.Create(uow, storeId, "DKK", "Danish Kroner", "da-DK");
-
- _currencyService.Save(currency);
-
- uow.Complete();
-});
-```
-
-{% hint style="info" %}
-It is not recommended to create a Unit of Work per write operation.
-{% endhint %}
-
-```csharp
-_uowProvider.Execute(uow =>
-{
- // Create a Country
- var country = Country.Create(uow, storeId, "DK", "Denmark");
-
- _countryService.Save(country);
-
- uow.Complete();
-});
-
-_uowProvider.Execute(uow =>
-{
- // Create a Currency
- var currency = Currency.Create(uow, storeId, "DKK", "Danish Kroner", "da-DK");
-
- _currencyService.Save(currency);
-
- uow.Complete();
-});
-```
diff --git a/14/umbraco-commerce/key-concepts/webhooks.md b/14/umbraco-commerce/key-concepts/webhooks.md
deleted file mode 100644
index ecf7cf796e1..00000000000
--- a/14/umbraco-commerce/key-concepts/webhooks.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: Webhook configuration in Umbraco Commerce.
----
-
-# Webhooks
-
-## Webhooks
-
-Umbraco Commerce makes use of the webhooks feature added in Umbraco v13. See the [Webhooks documentation](https://docs.umbraco.com/umbraco-cms/reference/webhooks) for general webooks configuration.
-
-## Events
-
-Umbraco Commerce triggers webhooks for the following events:
-
-* **Order Finalized** - Triggered when an order is converted from a cart to an actual finalized order. This event is useful for notifying external systems of new orders.
-* **Order Status Changed** - Triggered when the status of an order changes. This event is useful for notifying external systems when an order is ready to ship, or has been canceled.
diff --git a/14/umbraco-commerce/media/back-office-bundles.png b/14/umbraco-commerce/media/back-office-bundles.png
deleted file mode 100644
index 154c8d21510..00000000000
Binary files a/14/umbraco-commerce/media/back-office-bundles.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/cart_list_properties.png b/14/umbraco-commerce/media/cart_list_properties.png
deleted file mode 100644
index 952793eff17..00000000000
Binary files a/14/umbraco-commerce/media/cart_list_properties.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/commerce_order_details.png b/14/umbraco-commerce/media/commerce_order_details.png
deleted file mode 100644
index 920ba93a382..00000000000
Binary files a/14/umbraco-commerce/media/commerce_order_details.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/commerce_orders_view.png b/14/umbraco-commerce/media/commerce_orders_view.png
deleted file mode 100644
index 322945f12db..00000000000
Binary files a/14/umbraco-commerce/media/commerce_orders_view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/commerce_section.png b/14/umbraco-commerce/media/commerce_section.png
deleted file mode 100644
index 87af16e4731..00000000000
Binary files a/14/umbraco-commerce/media/commerce_section.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/content_store_picker.png b/14/umbraco-commerce/media/content_store_picker.png
deleted file mode 100644
index 541c90e12ab..00000000000
Binary files a/14/umbraco-commerce/media/content_store_picker.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/create_commerce_user_group.png b/14/umbraco-commerce/media/create_commerce_user_group.png
deleted file mode 100644
index 10212d25e3a..00000000000
Binary files a/14/umbraco-commerce/media/create_commerce_user_group.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/create_shipping_method.png b/14/umbraco-commerce/media/create_shipping_method.png
deleted file mode 100644
index 5d258b52457..00000000000
Binary files a/14/umbraco-commerce/media/create_shipping_method.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/create_shipping_method2.png b/14/umbraco-commerce/media/create_shipping_method2.png
deleted file mode 100644
index 48805966668..00000000000
Binary files a/14/umbraco-commerce/media/create_shipping_method2.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/custom_bulk_action.png b/14/umbraco-commerce/media/custom_bulk_action.png
deleted file mode 100644
index 50444a1bc40..00000000000
Binary files a/14/umbraco-commerce/media/custom_bulk_action.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/discount_rule_builder_label_views.png b/14/umbraco-commerce/media/discount_rule_builder_label_views.png
deleted file mode 100644
index 1a24c1d0d8b..00000000000
Binary files a/14/umbraco-commerce/media/discount_rule_builder_label_views.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/discount_rule_ui.png b/14/umbraco-commerce/media/discount_rule_ui.png
deleted file mode 100644
index b2f963b3d79..00000000000
Binary files a/14/umbraco-commerce/media/discount_rule_ui.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/dynamic_rate_shipping_details.png b/14/umbraco-commerce/media/dynamic_rate_shipping_details.png
deleted file mode 100644
index 2d32d5ffcd7..00000000000
Binary files a/14/umbraco-commerce/media/dynamic_rate_shipping_details.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/dynamic_rate_shipping_rates.png b/14/umbraco-commerce/media/dynamic_rate_shipping_rates.png
deleted file mode 100644
index 6eb4b553880..00000000000
Binary files a/14/umbraco-commerce/media/dynamic_rate_shipping_rates.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/dynamic_rate_shipping_rates_dialog.png b/14/umbraco-commerce/media/dynamic_rate_shipping_rates_dialog.png
deleted file mode 100644
index 1be95713bf5..00000000000
Binary files a/14/umbraco-commerce/media/dynamic_rate_shipping_rates_dialog.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/fixed_rate_country_shipping_rates.png b/14/umbraco-commerce/media/fixed_rate_country_shipping_rates.png
deleted file mode 100644
index 94d6ed363e5..00000000000
Binary files a/14/umbraco-commerce/media/fixed_rate_country_shipping_rates.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/fixed_rate_shipping_countries.png b/14/umbraco-commerce/media/fixed_rate_shipping_countries.png
deleted file mode 100644
index ba3eaa08abe..00000000000
Binary files a/14/umbraco-commerce/media/fixed_rate_shipping_countries.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/fixed_rate_shipping_details.png b/14/umbraco-commerce/media/fixed_rate_shipping_details.png
deleted file mode 100644
index 225a2427104..00000000000
Binary files a/14/umbraco-commerce/media/fixed_rate_shipping_details.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/license-dashboard.png b/14/umbraco-commerce/media/license-dashboard.png
deleted file mode 100644
index 73a75fd640f..00000000000
Binary files a/14/umbraco-commerce/media/license-dashboard.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/location_edit.png b/14/umbraco-commerce/media/location_edit.png
deleted file mode 100644
index 32885de3208..00000000000
Binary files a/14/umbraco-commerce/media/location_edit.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/measurements.png b/14/umbraco-commerce/media/measurements.png
deleted file mode 100644
index 5e1a68c9d45..00000000000
Binary files a/14/umbraco-commerce/media/measurements.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/ngrok.png b/14/umbraco-commerce/media/ngrok.png
deleted file mode 100644
index 5b471cfbf04..00000000000
Binary files a/14/umbraco-commerce/media/ngrok.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/nuget-packages-overview.png b/14/umbraco-commerce/media/nuget-packages-overview.png
deleted file mode 100644
index 2e33be59953..00000000000
Binary files a/14/umbraco-commerce/media/nuget-packages-overview.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_additional_info_editor.png b/14/umbraco-commerce/media/order_additional_info_editor.png
deleted file mode 100644
index aea2fe1dda7..00000000000
Binary files a/14/umbraco-commerce/media/order_additional_info_editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_additional_info_summary.png b/14/umbraco-commerce/media/order_additional_info_summary.png
deleted file mode 100644
index eb0d12cb731..00000000000
Binary files a/14/umbraco-commerce/media/order_additional_info_summary.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_billing_address_editor.png b/14/umbraco-commerce/media/order_billing_address_editor.png
deleted file mode 100644
index d9017391913..00000000000
Binary files a/14/umbraco-commerce/media/order_billing_address_editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_billing_address_summary.png b/14/umbraco-commerce/media/order_billing_address_summary.png
deleted file mode 100644
index f83ce56884f..00000000000
Binary files a/14/umbraco-commerce/media/order_billing_address_summary.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_customer_info.png b/14/umbraco-commerce/media/order_customer_info.png
deleted file mode 100644
index 39c8be42bbc..00000000000
Binary files a/14/umbraco-commerce/media/order_customer_info.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_customer_info_editor.png b/14/umbraco-commerce/media/order_customer_info_editor.png
deleted file mode 100644
index 2708a23e76b..00000000000
Binary files a/14/umbraco-commerce/media/order_customer_info_editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_editor_config_store_setting.png b/14/umbraco-commerce/media/order_editor_config_store_setting.png
deleted file mode 100644
index f188da068f1..00000000000
Binary files a/14/umbraco-commerce/media/order_editor_config_store_setting.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_line_property_editing.png b/14/umbraco-commerce/media/order_line_property_editing.png
deleted file mode 100644
index 3e3bda18f61..00000000000
Binary files a/14/umbraco-commerce/media/order_line_property_editing.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_line_summary.png b/14/umbraco-commerce/media/order_line_summary.png
deleted file mode 100644
index e49726ac0e1..00000000000
Binary files a/14/umbraco-commerce/media/order_line_summary.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_notes_editor.png b/14/umbraco-commerce/media/order_notes_editor.png
deleted file mode 100644
index 4f2ccde87b3..00000000000
Binary files a/14/umbraco-commerce/media/order_notes_editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_shipping_address_editor.png b/14/umbraco-commerce/media/order_shipping_address_editor.png
deleted file mode 100644
index a20110745d2..00000000000
Binary files a/14/umbraco-commerce/media/order_shipping_address_editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_shipping_address_editor_same_as_billing.png b/14/umbraco-commerce/media/order_shipping_address_editor_same_as_billing.png
deleted file mode 100644
index f9b5713e807..00000000000
Binary files a/14/umbraco-commerce/media/order_shipping_address_editor_same_as_billing.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_shipping_address_summary.png b/14/umbraco-commerce/media/order_shipping_address_summary.png
deleted file mode 100644
index 6c3761d0c3a..00000000000
Binary files a/14/umbraco-commerce/media/order_shipping_address_summary.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/order_shipping_address_summary_same_as_billing.png b/14/umbraco-commerce/media/order_shipping_address_summary_same_as_billing.png
deleted file mode 100644
index e376b36cc89..00000000000
Binary files a/14/umbraco-commerce/media/order_shipping_address_summary_same_as_billing.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/package-files-list.png b/14/umbraco-commerce/media/package-files-list.png
deleted file mode 100644
index 5e2ccc38e70..00000000000
Binary files a/14/umbraco-commerce/media/package-files-list.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/payment_provider_capture_flow.png b/14/umbraco-commerce/media/payment_provider_capture_flow.png
deleted file mode 100644
index 15c5c049b91..00000000000
Binary files a/14/umbraco-commerce/media/payment_provider_capture_flow.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/product_property_aliases.png b/14/umbraco-commerce/media/product_property_aliases.png
deleted file mode 100644
index d0b82446273..00000000000
Binary files a/14/umbraco-commerce/media/product_property_aliases.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/product_uniqueness_property_aliases.png b/14/umbraco-commerce/media/product_uniqueness_property_aliases.png
deleted file mode 100644
index 22801c0221e..00000000000
Binary files a/14/umbraco-commerce/media/product_uniqueness_property_aliases.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/realtime_rates.png b/14/umbraco-commerce/media/realtime_rates.png
deleted file mode 100644
index cfdbeb78eb6..00000000000
Binary files a/14/umbraco-commerce/media/realtime_rates.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/realtime_shipping_details.png b/14/umbraco-commerce/media/realtime_shipping_details.png
deleted file mode 100644
index 2a3be185be5..00000000000
Binary files a/14/umbraco-commerce/media/realtime_shipping_details.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/shipping_method_allowed_countries.png b/14/umbraco-commerce/media/shipping_method_allowed_countries.png
deleted file mode 100644
index 69a1dd49f9d..00000000000
Binary files a/14/umbraco-commerce/media/shipping_method_allowed_countries.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/shipping_methods.png b/14/umbraco-commerce/media/shipping_methods.png
deleted file mode 100644
index 764fc90c6ed..00000000000
Binary files a/14/umbraco-commerce/media/shipping_methods.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/transaction_meta_data_dialog.png b/14/umbraco-commerce/media/transaction_meta_data_dialog.png
deleted file mode 100644
index 3714fa8b778..00000000000
Binary files a/14/umbraco-commerce/media/transaction_meta_data_dialog.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/uc_storefront_api_swagger.png b/14/umbraco-commerce/media/uc_storefront_api_swagger.png
deleted file mode 100644
index f5e4538e0ad..00000000000
Binary files a/14/umbraco-commerce/media/uc_storefront_api_swagger.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/umbraco-commerce_settings_section_editor_view.png b/14/umbraco-commerce/media/umbraco-commerce_settings_section_editor_view.png
deleted file mode 100644
index 2c4cdcf53af..00000000000
Binary files a/14/umbraco-commerce/media/umbraco-commerce_settings_section_editor_view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/umbraco-commerce_settings_section_list_view.png b/14/umbraco-commerce/media/umbraco-commerce_settings_section_list_view.png
deleted file mode 100644
index adcbc717d78..00000000000
Binary files a/14/umbraco-commerce/media/umbraco-commerce_settings_section_list_view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/umbraco_local_package_install.png b/14/umbraco-commerce/media/umbraco_local_package_install.png
deleted file mode 100644
index 0ff2b0d4e07..00000000000
Binary files a/14/umbraco-commerce/media/umbraco_local_package_install.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/umbraco_packages_install.png b/14/umbraco-commerce/media/umbraco_packages_install.png
deleted file mode 100644
index b7955c6cc51..00000000000
Binary files a/14/umbraco-commerce/media/umbraco_packages_install.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/analytics-widget.png b/14/umbraco-commerce/media/v14/analytics-widget.png
deleted file mode 100644
index 2f1dfac9c1f..00000000000
Binary files a/14/umbraco-commerce/media/v14/analytics-widget.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/commerce-section.png b/14/umbraco-commerce/media/v14/commerce-section.png
deleted file mode 100644
index 7a78617f1a2..00000000000
Binary files a/14/umbraco-commerce/media/v14/commerce-section.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/creating-user-group.png b/14/umbraco-commerce/media/v14/creating-user-group.png
deleted file mode 100644
index 8b29a269fd1..00000000000
Binary files a/14/umbraco-commerce/media/v14/creating-user-group.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/discount-rules.png b/14/umbraco-commerce/media/v14/discount-rules.png
deleted file mode 100644
index cc1e6423504..00000000000
Binary files a/14/umbraco-commerce/media/v14/discount-rules.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/management-api.png b/14/umbraco-commerce/media/v14/management-api.png
deleted file mode 100644
index 68eb3fd24f0..00000000000
Binary files a/14/umbraco-commerce/media/v14/management-api.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/no-exchange-rate-provider.png b/14/umbraco-commerce/media/v14/no-exchange-rate-provider.png
deleted file mode 100644
index 89cbafcaaa0..00000000000
Binary files a/14/umbraco-commerce/media/v14/no-exchange-rate-provider.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/nuget-package-overview.png b/14/umbraco-commerce/media/v14/nuget-package-overview.png
deleted file mode 100644
index d384d28cfda..00000000000
Binary files a/14/umbraco-commerce/media/v14/nuget-package-overview.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/order-editor.png b/14/umbraco-commerce/media/v14/order-editor.png
deleted file mode 100644
index 34cd177306a..00000000000
Binary files a/14/umbraco-commerce/media/v14/order-editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/order-list-view.png b/14/umbraco-commerce/media/v14/order-list-view.png
deleted file mode 100644
index 8d1488304b6..00000000000
Binary files a/14/umbraco-commerce/media/v14/order-list-view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/order-status-list-view.png b/14/umbraco-commerce/media/v14/order-status-list-view.png
deleted file mode 100644
index 8c61cd2af52..00000000000
Binary files a/14/umbraco-commerce/media/v14/order-status-list-view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/product-attribute-presets-editor.png b/14/umbraco-commerce/media/v14/product-attribute-presets-editor.png
deleted file mode 100644
index a2c0876ba52..00000000000
Binary files a/14/umbraco-commerce/media/v14/product-attribute-presets-editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/product-attribute-presets-list-view.png b/14/umbraco-commerce/media/v14/product-attribute-presets-list-view.png
deleted file mode 100644
index 0123b80c1a7..00000000000
Binary files a/14/umbraco-commerce/media/v14/product-attribute-presets-list-view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/product-attributes-editor.png b/14/umbraco-commerce/media/v14/product-attributes-editor.png
deleted file mode 100644
index 5d9c6aca17b..00000000000
Binary files a/14/umbraco-commerce/media/v14/product-attributes-editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/product-attributes-list-view.png b/14/umbraco-commerce/media/v14/product-attributes-list-view.png
deleted file mode 100644
index 213e581dfeb..00000000000
Binary files a/14/umbraco-commerce/media/v14/product-attributes-list-view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/product-node.png b/14/umbraco-commerce/media/v14/product-node.png
deleted file mode 100644
index 5568c992a53..00000000000
Binary files a/14/umbraco-commerce/media/v14/product-node.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/quick-actions.png b/14/umbraco-commerce/media/v14/quick-actions.png
deleted file mode 100644
index 7cd4b8d5bd6..00000000000
Binary files a/14/umbraco-commerce/media/v14/quick-actions.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-countries.png b/14/umbraco-commerce/media/v14/shipping-method-countries.png
deleted file mode 100644
index 557a34162cf..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-countries.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-dynamic-rate-editor.png b/14/umbraco-commerce/media/v14/shipping-method-dynamic-rate-editor.png
deleted file mode 100644
index 11ac1358728..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-dynamic-rate-editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-dynamic-rates.png b/14/umbraco-commerce/media/v14/shipping-method-dynamic-rates.png
deleted file mode 100644
index 5cf47102330..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-dynamic-rates.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-countries.png b/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-countries.png
deleted file mode 100644
index bb7e21dc566..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-countries.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-country-prices.png b/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-country-prices.png
deleted file mode 100644
index 63f3275ae6f..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-country-prices.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-general-settings.png b/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-general-settings.png
deleted file mode 100644
index b089805b6db..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-fixed-rate-general-settings.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-general-settings.png b/14/umbraco-commerce/media/v14/shipping-method-general-settings.png
deleted file mode 100644
index 1072f970734..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-general-settings.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-realtime-options.png b/14/umbraco-commerce/media/v14/shipping-method-realtime-options.png
deleted file mode 100644
index fc2b455c865..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-realtime-options.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-method-realtime-settings.png b/14/umbraco-commerce/media/v14/shipping-method-realtime-settings.png
deleted file mode 100644
index fa4d1692424..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-method-realtime-settings.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-methods-list-view.png b/14/umbraco-commerce/media/v14/shipping-methods-list-view.png
deleted file mode 100644
index 13f02c44c9b..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-methods-list-view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-provider-config-modal.png b/14/umbraco-commerce/media/v14/shipping-provider-config-modal.png
deleted file mode 100644
index 65a2c18112e..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-provider-config-modal.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/shipping-provider-modal.png b/14/umbraco-commerce/media/v14/shipping-provider-modal.png
deleted file mode 100644
index d24d4cc0462..00000000000
Binary files a/14/umbraco-commerce/media/v14/shipping-provider-modal.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/store-menu.png b/14/umbraco-commerce/media/v14/store-menu.png
deleted file mode 100644
index ffb5a36d2d3..00000000000
Binary files a/14/umbraco-commerce/media/v14/store-menu.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/store-settings.png b/14/umbraco-commerce/media/v14/store-settings.png
deleted file mode 100644
index f8551211062..00000000000
Binary files a/14/umbraco-commerce/media/v14/store-settings.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/country-tax-calculation-method.png b/14/umbraco-commerce/media/v14/taxes/country-tax-calculation-method.png
deleted file mode 100644
index 6a3a7c28a96..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/country-tax-calculation-method.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/no-sales-tax-providers.png b/14/umbraco-commerce/media/v14/taxes/no-sales-tax-providers.png
deleted file mode 100644
index 46c3e7849a8..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/no-sales-tax-providers.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/pick-sales-tax-provider.png b/14/umbraco-commerce/media/v14/taxes/pick-sales-tax-provider.png
deleted file mode 100644
index a33567d91ae..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/pick-sales-tax-provider.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/product-tax-class.png b/14/umbraco-commerce/media/v14/taxes/product-tax-class.png
deleted file mode 100644
index 2b178019dc2..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/product-tax-class.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/store-default-tax-class.png b/14/umbraco-commerce/media/v14/taxes/store-default-tax-class.png
deleted file mode 100644
index ce8dc281171..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/store-default-tax-class.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/store-prices-include-tax-warning.png b/14/umbraco-commerce/media/v14/taxes/store-prices-include-tax-warning.png
deleted file mode 100644
index 989568b180a..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/store-prices-include-tax-warning.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/store-prices-include-tax.png b/14/umbraco-commerce/media/v14/taxes/store-prices-include-tax.png
deleted file mode 100644
index 495b52cd551..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/store-prices-include-tax.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/tax-calculation-method-settings.png b/14/umbraco-commerce/media/v14/taxes/tax-calculation-method-settings.png
deleted file mode 100644
index 4e991c6dab1..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/tax-calculation-method-settings.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/tax-calculation-methods.png b/14/umbraco-commerce/media/v14/taxes/tax-calculation-methods.png
deleted file mode 100644
index c5716f0df7f..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/tax-calculation-methods.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/tax-class-country-region-settings-modal.png b/14/umbraco-commerce/media/v14/taxes/tax-class-country-region-settings-modal.png
deleted file mode 100644
index 9b30300b6df..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/tax-class-country-region-settings-modal.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/tax-class-country-region-settings.png b/14/umbraco-commerce/media/v14/taxes/tax-class-country-region-settings.png
deleted file mode 100644
index 23313bcb480..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/tax-class-country-region-settings.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/tax-class-general-settings.png b/14/umbraco-commerce/media/v14/taxes/tax-class-general-settings.png
deleted file mode 100644
index 1a018cd4c55..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/tax-class-general-settings.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/taxes/tax-classes.png b/14/umbraco-commerce/media/v14/taxes/tax-classes.png
deleted file mode 100644
index 09b893c5d8a..00000000000
Binary files a/14/umbraco-commerce/media/v14/taxes/tax-classes.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/umbraco-commerce-management-api.png b/14/umbraco-commerce/media/v14/umbraco-commerce-management-api.png
deleted file mode 100644
index 64bb163b7d2..00000000000
Binary files a/14/umbraco-commerce/media/v14/umbraco-commerce-management-api.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/variants-editor.png b/14/umbraco-commerce/media/v14/variants-editor.png
deleted file mode 100644
index 9cb37e49b0d..00000000000
Binary files a/14/umbraco-commerce/media/v14/variants-editor.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/variants-filter.png b/14/umbraco-commerce/media/v14/variants-filter.png
deleted file mode 100644
index a1e4be7e435..00000000000
Binary files a/14/umbraco-commerce/media/v14/variants-filter.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/variants-list-view.png b/14/umbraco-commerce/media/v14/variants-list-view.png
deleted file mode 100644
index 8da20c552ec..00000000000
Binary files a/14/umbraco-commerce/media/v14/variants-list-view.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/variants-product-attribute-presets-modal.png b/14/umbraco-commerce/media/v14/variants-product-attribute-presets-modal.png
deleted file mode 100644
index 00480273d08..00000000000
Binary files a/14/umbraco-commerce/media/v14/variants-product-attribute-presets-modal.png and /dev/null differ
diff --git a/14/umbraco-commerce/media/v14/variants-product-attributes-modal.png b/14/umbraco-commerce/media/v14/variants-product-attributes-modal.png
deleted file mode 100644
index 7ece9275968..00000000000
Binary files a/14/umbraco-commerce/media/v14/variants-product-attributes-modal.png and /dev/null differ
diff --git a/14/umbraco-commerce/reference/README.md b/14/umbraco-commerce/reference/README.md
deleted file mode 100644
index ccdea977083..00000000000
--- a/14/umbraco-commerce/reference/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Umbraco Commerce Reference Docs
-
-| Namespace |
-| --- |
-| [Umbraco.Commerce.Cms](umbraco-commerce-cms/README.md) |
-| [Umbraco.Commerce.Cms.Startup](umbraco-commerce-cms-startup/README.md) |
-| [Umbraco.Commerce.Cms.Web](umbraco-commerce-cms-web/README.md) |
-| [Umbraco.Commerce.Common](umbraco-commerce-common/README.md) |
-| [Umbraco.Commerce.Core](umbraco-commerce-core/README.md) |
-| [Umbraco.Commerce.Infrastructure](umbraco-commerce-infrastructure/README.md) |
-| [Umbraco.Commerce.Persistence-sqlite](umbraco-commerce-persistence-sqlite/README.md) |
-| [Umbraco.Commerce.Persistence-sqlserver](umbraco-commerce-persistence-sqlserver/README.md) |
diff --git a/14/umbraco-commerce/reference/go-behind-the-scenes.md b/14/umbraco-commerce/reference/go-behind-the-scenes.md
deleted file mode 100644
index 1022a0d0874..00000000000
--- a/14/umbraco-commerce/reference/go-behind-the-scenes.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: >-
- Explore the core services and methods in Umbraco Commerce, used for extending
- the product.
----
-
-# Go behind the scenes
-
-{% hint style="info" %}
-You can find all the reference documentation for Umbraco Commerce on GitHub. We might eventually move this to this or another site.
-
-[**Umbraco Commerce Reference Documentation**](https://github.com/umbraco/UmbracoDocs/tree/main/13/umbraco-commerce/reference)
-{% endhint %}
diff --git a/14/umbraco-commerce/reference/locations/README.md b/14/umbraco-commerce/reference/locations/README.md
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/14/umbraco-commerce/reference/management-api/README.md b/14/umbraco-commerce/reference/management-api/README.md
deleted file mode 100644
index a783236a833..00000000000
--- a/14/umbraco-commerce/reference/management-api/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-description: Get started with the Management API.
----
-
-# Management API
-
-## Management API
-
-The Management API delivers headless management capabilities built directly into Umbraco. The Management API is used by the backoffice to communicate with the backend.
-
-The Management API can also be used for Custom apps or Workflows with OpenID Connect.
-
-### Swagger Documentation
-
-Umbraco Commerce ships with Swagger to document the Management API. Swagger and the Swagger UI are based on [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/) and is available at `{yourdomain}/umbraco/swagger`. For security reasons, both are disabled in production environments.
-
-The Swagger documentation allows you to select a definition and go to either Umbraco Commerce Management API or Umbraco Commerce Storefront API.
-
-
-
-In the Swagger Umbraco Management API, you can find a collection of available endpoints in this version of Umbraco.
-
-### Authentication & Testing
-
-For more details on how to authenticate and test a Management API endpoint, see the [CMS Management API](https://docs.umbraco.com/umbraco-cms/reference/management-api) article.
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/shipping/README.md b/14/umbraco-commerce/reference/shipping/README.md
deleted file mode 100644
index 9e05603c5a7..00000000000
--- a/14/umbraco-commerce/reference/shipping/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-description: Shipping options in Umbraco Commerce.
----
-
-# Shipping
-
-Umbraco Commerce offers three different shipping method configurations for calculating shipping rates, which are:
-
-### [Fixed Rate Shipping](./fixed-rate-shipping.md)
-
-The fixed rate shipping option allows you to configure a single fixed rate for the whole of an order.
-
-### [Dynamic Rate Shipping](./dynamic-rate-shipping.md)
-
-The dynamic rate shipping option allows you to configure a series of ranges from which an order will be checked against. These checks identify a which range the order falls within. For each range a series of rate options can be configured. Options include fixed rate per order, a fixed rate per order item, percentage based rates amongst others.
-
-### [Realtime Rate Shipping](./realtime-rate-shipping.md)
-
-The realtime rate shipping option allows you to configure a connection to a shipping operator to fetch realtime shipping rate estimates for an order.
-
-## Shipping Calculators
-
-Should you wish to take more control over the shipping calculation process you can swap out the whole shipping calculator implementation. See the [Calculator documentation](../../key-concepts/calculators.md) for more details.
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/shipping/dynamic-rate-shipping.md b/14/umbraco-commerce/reference/shipping/dynamic-rate-shipping.md
deleted file mode 100644
index eabd108cf80..00000000000
--- a/14/umbraco-commerce/reference/shipping/dynamic-rate-shipping.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-description: Dynamic Rate Shipping in Umbraco Commerce.
----
-
-# Dynamic Rate Shipping
-
-Dynamic rate shipping in Umbraco Commerce allows you to define a series of ranges from which an order will be checked against. These checks find which range a given order falls within which in turn identifies the rates that apply. For each range, a series of rate options can be configured. Examples include a fixed rate per order, a fixed rate per order item, or percentage-based rates. By combining these configurable ranges, and different rating options it allows you to create a more dynamic algorithm than the basic fixed-rate shipping option.
-
-## Configuration
-
-1. Go to **Settings** > **Stores** > {Your Store} > **Shipping Methods**.
-
- 
-
-2. Click **Create Shipping Method**.
-3. Choose **Basic** as the shipping provider.
-
- 
-
-4. Choose **Dynamic** as the calculation mode option.
-
- 
-
-5. Enter the **Shipping Method Name**, **Alias**, **SKU**, and optional **Tax Rate**.
-
- 
-
-6. Choose the range unit to base the rates upon.
-7. Click **Add Range** to define each range.
-
- 
-
-8. Enter the **From** and **To** value of the range.
-9. Enter the rate details from the available rate options leaving blank any option you do not wish to apply.
-
- 
-
-10. Select the countries in this shipping method should be allowed in.
-
- 
-
-11. Click **Save**.
diff --git a/14/umbraco-commerce/reference/shipping/fixed-rate-shipping.md b/14/umbraco-commerce/reference/shipping/fixed-rate-shipping.md
deleted file mode 100644
index 9801b016105..00000000000
--- a/14/umbraco-commerce/reference/shipping/fixed-rate-shipping.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-description: Fixed Rate Shipping in Umbraco Commerce.
----
-
-# Fixed Rate Shipping
-
-Fixed rate shipping in Umbraco Commerce allows you to define a single, fixed shipping rate to apply to an order. This is the simplest of all the shipping calculation options, but is also the least flexible.
-
-## Configuration
-
-1. Go to **Settings** > **Stores** > {Your Store} > **Shipping Methods**.
-
- 
-
-2. Click **Create Shipping Method**.
-3. Choose **Basic** as the shipping provider.
-
- 
-
-4. Choose **Fixed** as the calculation mode option.
-
- 
-
-5. Enter the **Shipping Method Name**, **Alias**, **SKU**, and optional **Tax Rate**.
-6. Enter a fixed rate for the shipping method.
-
- 
-
-7. Select the countries this shipping method should be allowed in.
-
- 
-
-8. Optionally, define a country's specific fixed rate should you wish to have different rates per country.
-
- 
-9. Click **Save**.
diff --git a/14/umbraco-commerce/reference/shipping/realtime-rate-shipping.md b/14/umbraco-commerce/reference/shipping/realtime-rate-shipping.md
deleted file mode 100644
index 38fc5616403..00000000000
--- a/14/umbraco-commerce/reference/shipping/realtime-rate-shipping.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-description: Realtime Rate Shipping in Umbraco Commerce.
----
-
-# Realtime Rate Shipping
-
-Realtime rate shipping in Umbraco Commerce allows you to define real-time, up-to-the-minute shipping estimates directly from the shipping operators.
-
-## Configuring Realtime Rate Shipping
-
-To configure Realtime Rate Shipping, follow these steps:
-
-1. Go to **Settings** > **Stores** > {Your Store} > **Shipping Methods**.
-
- 
-
-2. Click **Create Shipping Method**.
-3. Choose the shipping provider for the shipping operator you wish to use.
-
- 
-
-4. Choose **Realtime** as the calculation mode option.
-
- 
-
-5. Enter the **Shipping Method Name**, **Alias**, and **SKU**.
-6. Select the tax class from the **Tax Class** dropdown list.
-
- 
-
-7. Enter the shipping provider's API credentials required to connect to the shipping operator's API.
-
- 
-
-8. Configure any additional charges for this shipping method.
-
- 
-
-9. Select the countries this shipping method should be allowed in.
-
- 
-
-10. Click **Save**.
diff --git a/14/umbraco-commerce/reference/storefront-api/README.md b/14/umbraco-commerce/reference/storefront-api/README.md
deleted file mode 100644
index f8ff08d1b7e..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/README.md
+++ /dev/null
@@ -1,611 +0,0 @@
----
-description: Get started with the Storefront API.
----
-
-# Storefront API
-
-The Storefront API delivers headless capabilities built directly into Umbraco Commerce. It allows you to retrieve and manage orders and other store-related entities in a JSON format. It lets you connect with them in different channels, using your preferred technology stack. This feature preserves the friendly editing experience of Umbraco, while also ensuring performant cart management facilities in a headless fashion. With its different extension points, you can tailor this API to fit a broad range of requirements.
-
-## Getting Started
-
-As the Storefront API works alongside the Content Delivery API you must first have the [Content Delivery API setup and enabled](https://docs.umbraco.com/umbraco-cms/reference/content-delivery-api#register-the-content-delivery-api-dependencies).
-
-When the Content Delivery API is enabled, you will need to explicitly opt-in to the Storefront API. Below you will find the steps you need to take in order to configure it for your Umbraco project.
-
-### Register the Storefront API dependencies
-
-1. Open your project's `Program.cs` file.
-2. Register the API dependencies by adding `.AddStorefrontApi()` inside a `.AddUmbracoCommerce()` call:
-
-{% code title="Program.cs" %}
-```csharp
-builder.CreateUmbracoBuilder()
- .AddBackOffice()
- .AddWebsite()
- .AddDeliveryApi()
- .AddUmbracoCommerce(builder => {
- builder.AddStorefrontApi();
- })
- .AddComposers()
- .Build();
-```
-{% endcode %}
-
-### Enable the Storefront API
-
-1. Open your project's `appsettings.json`.
-2. Insert the `StorefrontApi` configuration section under `Umbraco:Commerce`.
-3. Add the `Enabled` key and set its value to `true`:
-
-{% code title="appsettings.json" %}
-```json
-{
- "Umbraco": {
- "Commerce": {
- "StorefrontApi": {
- "Enabled": true
- }
- }
- }
-}
-```
-{% endcode %}
-
-### Securing the Storefront API
-
-In order to work with the Storefront API many of the endpoints require authorization. The authorization is implemented by means of an API Key that must be passed in the header of these requests. The API Key is defined as an additional app setting and can be any value you decide:
-
-{% code title="appsettings.json" %}
-```json
-{
- "Umbraco": {
- "Commerce": {
- "StorefrontApi": {
- "Enabled": true,
- "ApiKey": "ZUynC149dD2N5efs6HN6dCdXlgOVASs6"
- }
- }
- }
-}
-```
-{% endcode %}
-
-## Concepts
-
-Before exploring the API endpoints detailed below, there are a few concepts to keep in mind.
-
-
-
-Session
-
-When working with Umbraco Commerce's C# Api, Umbraco Commerce will normally keep track of a series of items for you. This could be the current Order ID or the current Language, which it tracks in a cookie. When working in a headless manner however we can no longer rely on cookies for this behavior. It becomes the implementor's responsibility to remember these items and pass them as Headers to the endpoints that need to use them for context.
-
-The following is a list of supported headers used for session management:
-
-* `Store` - The ID or Alias of the store the given operation is being performed against.
-* `Current-Order` - The ID of any current "in-progress" order.
-* `Customer-Reference` - A unique reference for the current customer.
-* `Accept-Language` - The ISO Culture Code of the current front-end language.
-* `Currency` - The ID or ISO Code of the current currency. If not supplied, will fall back to the default currency of the default country defined on the store.
-* `Tax-Class` - The ID or Alias of the default tax class. If not supplied, will fall back to the default defined on the store.
-* `Billing-Country` - The ID or ISO Code of the default billing country. If not supplied, falls back to the default country defined on the store.
-* `Billing-Region` - The ID or ISO Code of the default billing region.
-* `Shipping-Country` - The ID or ISO Code of the default shipping country. If not supplied, falls back to either the supplied billing country or the default country defined on the store.
-* `Shipping-Region` - The ID or ISO Code of the default billing region.
-
-
-
-
-
-Expansion
-
-**Expansion** allows you to retrive additional data about related entities in the API output for a given resource.
-
-By default, where a resource is connected with another resource, such as an Order holding a reference to it's Currency, the Storefront API will return those connected resources as "Reference" objects which usually only contain the resources ID and Alias/Code.
-
-```json
-{
- "cartNumber": "CART-01280-054677-RP4L9",
- "createDate": "2023-07-03T15:11:17.9220005",
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "customerInfo": { ... },
- "discountCodes": [],
- ...
-}
-```
-
-Should you wish to retrieve the connected resource, you could perform an additional get operation against that resources own endpoint, however this could result in multiple wasteful network requests. To help with this, you can pass an `expand` query parameter with a path to properties you wish to expand, which for those targeted properties will return the full resource object instead of the reference entity.
-
-**Request**
-
-```http
-GET /umbraco/commerce/storefront/api/v1/order/af697207-d370-4aee-824c-15711d43a9f2?expand=currency
-```
-
-**Response**
-
-```json
-{
- "cartNumber": "CART-01280-054677-RP4L9",
- "createDate": "2023-07-03T15:11:17.9220005",
- "currency": {
- "$type": "Currency",
- "allowedCountries": [
- {
- "country": {
- "$type": "CountryRef",
- "code": "GB",
- "id": "af697207-d370-4aee-824c-15711d43a9f2"
- }
- }
- ],
- "code": "GBP",
- "culture": "en-GB",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a",
- "name": "GBP"
- },
- "customerInfo": { ... },
- "discountCodes": [],
- ...
-}
-```
-
-The `expand` query parameter can accept a comma seperated list of property keys to expand for properties at the same level, and can also expand nested objects using a `[...]` syntax. In the following example we retrieve a Country entity, expanding it's `defaultCurrency` and `defaultPaymentMethod` whilst at the same time expanding the `allowedCountries.country` properties within the `defaultCurrency`.
-
-```http
-GET /umbraco/commerce/storefront/api/v1.0/country/GB?expand=defaultCurrency[allowedCountries[country]],defaultPaymentMethod
-```
-
-**Response**
-
-```json
-{
- "code": "GB",
- "defaultCurrency": {
- "$type": "Currency",
- "allowedCountries": [
- {
- "country": {
- "$type": "Country",
- "code": "GB",
- "defaultCurrency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "defaultPaymentMethod": {
- "$type": "PaymentMethodRef",
- "alias": "invoicing",
- "id": "e35677ac-a544-45a0-ba4a-a78dd43dbaf2"
- },
- "defaultShippingMethod": {
- "$type": "ShippingMethodRef",
- "alias": "pickup",
- "id": "2ecb73ed-1b13-4ca4-8502-c1c4a8df533d"
- },
- "id": "af697207-d370-4aee-824c-15711d43a9f2",
- "name": "United Kingdom"
- }
- }
- ],
- "code": "GBP",
- "culture": "en-GB",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a",
- "name": "GBP"
- },
- "defaultPaymentMethod": {
- "$type": "PaymentMethod",
- "alias": "invoicing",
- "id": "e35677ac-a544-45a0-ba4a-a78dd43dbaf2",
- "imageUrl": "https://localhost:44313/media/k4apjvbo/logo.png",
- "name": "Invoicing",
- "sku": "4815"
- },
- "defaultShippingMethod": {
- "$type": "ShippingMethodRef",
- "alias": "pickup",
- "id": "2ecb73ed-1b13-4ca4-8502-c1c4a8df533d"
- },
- "id": "af697207-d370-4aee-824c-15711d43a9f2",
- "name": "United Kingdom"
-}
-```
-
-#### Shortcuts
-
-As well as expanding explicit properties, the Storefront API supports shortcut expansion keys that when passed will expand all entities of a given type. Shortcut keys are idenfitied by a `$` prefix. There is currently only one supported shortcut key which is `$prices`.
-
-**$prices**
-
-Prices in Umbraco Commerce can contain a lot of meta data, such as listing applied discounts/adjustments and all values including or excluding those discounts. These are useful when displaying a full order breakdown, but when only needing to present an orders total value, are not necesarry. By default, the Storefront API will only return the final `value` property of a price object, but should you wish to receive this full pricing breakdown you can pass the `$prices` shortcut key to expand all price values to include this extra meta data.
-
-**Request**
-
-```http
-GET /umbraco/commerce/storefront/api/v1/order/af697207-d370-4aee-824c-15711d43a9f2?expand=$prices
-```
-
-**Response**
-
-```json
-{
- ...
- "totalPrice": {
- "previousAdjustments": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "-£0.45",
- "withTax": "-£2.60",
- "withoutTax": "-£2.15"
- },
- "tax": -0.45,
- "withTax": -2.60,
- "withoutTax": -2.15
- },
- "totalAdjustment": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "-£0.45",
- "withTax": "-£2.60",
- "withoutTax": "-£2.15"
- },
- "tax": -0.45,
- "withTax": -2.60,
- "withoutTax": -2.15
- },
- "value": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "£5.80",
- "withTax": "£33.40",
- "withoutTax": "£27.60"
- },
- "tax": 5.80,
- "withTax": 33.40,
- "withoutTax": 27.60
- },
- "withPreviousAdjustments": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "£5.80",
- "withTax": "£33.40",
- "withoutTax": "£27.60"
- },
- "tax": 5.80,
- "withTax": 33.40,
- "withoutTax": 27.60
- }
- },
- ...
-}
-```
-
-
-
-
-
-Fields
-
-A common pitfall of REST APIs is the problem of over-fetching, which is where an endpoint returns more information than you need. The Storefront API supports the passing of `fields` which allows you to define exactly which properties of an object you wish to return. This will reduce the payload size.
-
-For example, when implementing a cart count feature to show the total number of items in a shopping cart, rather than fetching an entire order for a single `totalQuantity` field, we can return only that field:
-
-**Request**
-
-```http
-GET /umbraco/commerce/storefront/api/v1/order/af697207-d370-4aee-824c-15711d43a9f2
-```
-
-**Response**
-
-```json
-{
- "cartNumber": "CART-01280-054677-RP4L9",
- "createDate": "2023-07-03T15:11:17.9220005",
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "finalizedDate": "2023-07-04T10:25:37.1471415",
- "id": "832b2f79-915c-49dd-a20a-01891c4edd7c",
- "isFinalized": true,
- "languageIsoCode": "en-GB",
- "orderLines": [
- {
- "basePrice": {
- "value": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "£4.51",
- "withTax": "£26.00",
- "withoutTax": "£21.49"
- },
- "tax": 4.51,
- "withTax": 26.00,
- "withoutTax": 21.49
- }
- },
- "id": "e9ec1305-1844-4a72-a343-01891c4f09d8",
- "name": "Good and Proper - Breakfast Tea Set",
- "properties": {
- "giftMessage": "Hey Tom, found this and thought you'd love it."
- },
- "quantity": 1,
- "sku": "GP002",
- "taxRate": 0.21,
- "totalPrice": {
- "value": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "£4.51",
- "withTax": "£26.00",
- "withoutTax": "£21.49"
- },
- "tax": 4.51,
- "withTax": 26.00,
- "withoutTax": 21.49
- }
- },
- "unitPrice": {
- "value": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "£4.51",
- "withTax": "£26.00",
- "withoutTax": "£21.49"
- },
- "tax": 4.51,
- "withTax": 26.00,
- "withoutTax": 21.49
- }
- }
- }
- ],
- "orderStatus": {
- "$type": "OrderStatusRef",
- "alias": "new",
- "id": "37cd2c8f-48d8-4416-bb37-b2c7d7bb992f"
- },
- "subtotalPrice": {
- "value": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "£4.06",
- "withTax": "£23.40",
- "withoutTax": "£19.34"
- },
- "tax": 4.06,
- "withTax": 23.40,
- "withoutTax": 19.34
- }
- },
- "taxClass": {
- "$type": "TaxClassRef",
- "alias": "standard",
- "id": "17a2eca0-d21f-462a-8915-8b2606661efd"
- },
- "totalPrice": {
- "value": {
- "currency": {
- "$type": "CurrencyRef",
- "code": "GBP",
- "id": "30b62176-6a9e-4a51-b2f0-7ce6c80a461a"
- },
- "formatted": {
- "tax": "£5.80",
- "withTax": "£33.40",
- "withoutTax": "£27.60"
- },
- "tax": 5.80,
- "withTax": 33.40,
- "withoutTax": 27.60
- }
- },
- "totalQuantity": 1,
- "updateDate": "2023-07-06T14:20:26.1939545"
-}
-```
-
-We can pass a `fields` query parameter to limit the response to only return that field we are interested in:
-
-**Request**
-
-```http
-GET /umbraco/commerce/storefront/api/v1/order/af697207-d370-4aee-824c-15711d43a9f2?fields=totalQuantity
-```
-
-**Response**
-
-```json
-{
- "id": "832b2f79-915c-49dd-a20a-01891c4edd7c",
- "totalQuantity": 1
-}
-```
-
-When using the `fields` query parameter to limit fields returned, `id` properties will always be included.
-
-Inline with the expansion feature, the `fields` paramter can also retrieve multiple fields, and nested fields using comma seperate values and the `[...]` syntax.
-
-**Request**
-
-```http
-GET /umbraco/commerce/storefront/api/v1/order/af697207-d370-4aee-824c-15711d43a9f2?fields=totalQuantity,orderLines[sku,quantity]
-```
-
-**Response**
-
-```json
-{
- "id": "832b2f79-915c-49dd-a20a-01891c4edd7c",
- "orderLines": [
- {
- "id": "e9ec1305-1844-4a72-a343-01891c4f09d8",
- "quantity": 1,
- "sku": "GP002"
- }
- ],
- "totalQuantity": 1
-}
-```
-
-
-
-## Endpoints
-
-The Storefront API is broken down into a number of endpoints grouped by resource type. Select a resource type below to review the available endpoints.
-
-{% content-ref url="endpoints/order.md" %}
-[order.md](endpoints/order.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/checkout.md" %}
-[checkout.md](endpoints/checkout.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/product.md" %}
-[product.md](endpoints/product.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/customer.md" %}
-[customer.md](endpoints/customer.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/store.md" %}
-[store.md](endpoints/store.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/currency.md" %}
-[currency.md](endpoints/currency.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/country.md" %}
-[country.md](endpoints/country.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/payment-method.md" %}
-[payment-method.md](endpoints/payment-method.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/shipping-method.md" %}
-[shipping-method.md](endpoints/shipping-method.md)
-{% endcontent-ref %}
-
-{% content-ref url="endpoints/content.md" %}
-[content.md](endpoints/content.md)
-{% endcontent-ref %}
-
-## Swagger UI
-
-You can access a Swagger document for the Storefront API at `{yourdomain}/umbraco/swagger`, selecting `Umbraco Commerce Storefront API` from the definitions dropdown in the top right. From here you can see a full list of supported APIs, the parameters they accept and the expected payloads and responses.
-
-
-
-## Value Converters
-
-As Umbraco Commerce uses content nodes as products, the Storefront API comes with some replacement value converters that automatically extend the default value converter functionality to return Storefront entities when accessed through the Content Delivery API. You don't need to do anything to enable these.
-
-* **Store Picker** - Returns a Store "Reference" by default, or a complete Store response object if the store picker property is being expanded.
-* **Store Entity Picker** - Returns an entity "Reference" by default, or a complete entity response object if the store entity picker property is being expanded.
-* **Price** - Returns a price for the product based on session information passed through in headers. See the ["Session" concept detailed above](./#concepts).
-* **Stock** - Returns the stock level of the given product.
-* **Variants** - See notes on the [variants value converter](./#variants-value-converter) below.
-
-### Variants Value Converter
-
-To help with common scenarios when working with variants, the Variants value converter will return a series of data items used when building a relevant UI.
-
-```json
-{
- attributes: [
- {
- alias: "color",
- name: "Color",
- values: [
- {
- alias: "red",
- name: "Red"
- },
- {
- alias: "blue",
- name: "Blue"
- }
- ]
- },
- {
- alias: "size",
- name: "Size",
- values: [
- {
- alias: "md",
- name: "Medium"
- },
- {
- alias: "lg",
- name: "Large"
- }
- ]
- }
- ],
- items: [
- {
- attributes: {
- color: red,
- size: md
- },
- isDefault: true,
- content: { }
- },
- {
- attributes: {
- color: blue,
- size: lg
- },
- isDefault: false,
- content: { }
- }
- ],
- variantContentUrl: "https://{your_domain}/umbraco/delivery/api/v1/content/item/8df5c8bd-b524-4513-805a-c119fc8090e3/variant"
-}
-```
-
-* `attributes` will contain a list of "in use" attributes which means there is at least one variant content item that makes use of that attribute. These should be used to build the attribute options UI.
-* `items` returns a list of variant items. By default, this will return the attribute combinations, and whether it is the default combination but its content value will be empty. The content value can be populated by expanding the variants property through the Delivery API, however, it's important to know this could return a lot of data and be intensive. Instead, it is preferred to return the non-expanded value and use the `variantContentUrl` to fetch individual content items as they are requested. The `items` collection should also be used to check if a combination exists as whilst the root level `attributes` collection contains all in-use attributes, it doesn't mean every possible combination of those attributes exists so you can use the `items` collection to validate a combination.
-* `variantContentUrl` as the URL to a specialized Delivery API route that can return a single variant item content based on a passed-in attribute combination.
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/README.md b/14/umbraco-commerce/reference/storefront-api/endpoints/README.md
deleted file mode 100644
index 97a1a9a3114..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Storefront API Endpoints
-
-The Storefront API is broken down into a number endpoints of grouped by resource type. Select a resource type below to review the available endpoints.
-
-{% content-ref url="order.md" %}
-[Order](order.md)
-{% endcontent-ref %}
-
-{% content-ref url="checkout.md" %}
-[Checkout](checkout.md)
-{% endcontent-ref %}
-
-{% content-ref url="product.md" %}
-[Product](product.md)
-{% endcontent-ref %}
-
-{% content-ref url="customer.md" %}
-[Customer](customer.md)
-{% endcontent-ref %}
-
-{% content-ref url="store.md" %}
-[Store](store.md)
-{% endcontent-ref %}
-
-{% content-ref url="currency.md" %}
-[Currency](currency.md)
-{% endcontent-ref %}
-
-{% content-ref url="country.md" %}
-[Country](country.md)
-{% endcontent-ref %}
-
-{% content-ref url="payment-method.md" %}
-[Payment Method](payment-method.md)
-{% endcontent-ref %}
-
-{% content-ref url="shipping-method.md" %}
-[Shipping Method](shipping-method.md)
-{% endcontent-ref %}
-
-{% content-ref url="content.md" %}
-[Content](content.md)
-{% endcontent-ref %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/checkout.md b/14/umbraco-commerce/reference/storefront-api/endpoints/checkout.md
deleted file mode 100644
index 69320d69687..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/checkout.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Checkout Endpoints
-
-The checkout endpoints provide ways of performing a checkout process against an Order. The Storefront API supports two ways of checking out an order, one using hosted checkout pages, and a more advanced option for inline payment processing.
-
-## Hosted
-
-With the hosted checkout flow it is required that before redirecting to the payment gateway a checkout token should be generated. This token is passed to the pay endpoint to ensure that only the given order can be processed in response to the checkout request. The pay endpoint should be launched in a WebView/iframe with this token which will redirect to the given Orders payment gateway for payment capture. To determine the outcome of the payment developers should monitor the WebView/iframes URL. They will be redirected to the same pay endpoint URL with either a `/completed`, `/canceled` or `/errored` suffix.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/checkout/{orderId}/token" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/checkout/{orderId}/pay/{token}" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-## Inline
-
-With the inline checkout flow, it is left to the implementing developer to perform payment capture. Before a capture can begin, the order should be initialized using the `initialize` endpoint which prepares the Order for capture. The `initialize` endpoint will return the settings of the Orders selected payment method, along with details of expected metadata needed by the payment provider. Developers can use this data to perform an inline capture and call the `confirm` endpoint when the capture is successful, passing back any metadata captured.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/checkout/{orderId}/initialize" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/checkout/{orderId}/confirm" method="post" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/content.md b/14/umbraco-commerce/reference/storefront-api/endpoints/content.md
deleted file mode 100644
index 378f116863d..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/content.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Content Endpoints
-
-The content endpoints provide additional endpoints to the Umbraco Content Delivery API to help with fetching product related content.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/delivery/api/v1/content/item/{id}/variant" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/country.md b/14/umbraco-commerce/reference/storefront-api/endpoints/country.md
deleted file mode 100644
index a808cd95bb7..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/country.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Country Endpoints
-
-The Country API endpoints allow fetching supported countries and their allowed currencies, payment methods and shipping methods from a store.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/countries" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/country/{idOrAlias}" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/country/{idOrAlias}/currencies" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/country/{idOrAlias}/paymentmethods" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/country/{idOrAlias}/shippingmethods" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/country/{countryIdOrAlias}/region/{regionIdOrAlias}/paymentmethods" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/country/{countryIdOrAlias}/region/{regionIdOrAlias}/paymentmethods" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/currency.md b/14/umbraco-commerce/reference/storefront-api/endpoints/currency.md
deleted file mode 100644
index 81476377282..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/currency.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Currency Endpoints
-
-The Currency API endpoints allow fetching supported currencies from a store.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/currencies" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/currency/{idOrAlias}" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/customer.md b/14/umbraco-commerce/reference/storefront-api/endpoints/customer.md
deleted file mode 100644
index f62eb46d2b9..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/customer.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Customer Endpoints
-
-The Customer API endpoints allow fetching all orders associated with a customer.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/customer/{customerReferenceOrEmail}/orders" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/order.md b/14/umbraco-commerce/reference/storefront-api/endpoints/order.md
deleted file mode 100644
index 0ede104e2c8..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/order.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# Order Endpoints
-
-The Order endpoints are where you will manage your carts/orders and perform cart management functionality. Some examples are adding items to the cart, or setting up billing and shipping details.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/orders" method="post" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}" method="patch" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}" method="delete" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}" method="post" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/items" method="patch" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/items" method="delete" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/item/{orderLineId}" method="patch" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/item/{orderLineId}" method="delete"%}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/bundle/{bundleId}" method="post" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/bundle/{bundleId}/items" method="patch" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/bundle/{bundleId}/items" method="delete" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/bundle/{bundleId}/item/{orderLineId}" method="patch" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/order/{orderId}/bundle/{bundleId}/item/{orderLineId}" method="delete" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/payment-method.md b/14/umbraco-commerce/reference/storefront-api/endpoints/payment-method.md
deleted file mode 100644
index 3b35fff07c1..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/payment-method.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Payment Method Endpoints
-
-The Payment Method API endpoints allow fetching supported payment methods from a store.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/paymentmethods" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/paymentmethod/{idOrAlias}" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/product.md b/14/umbraco-commerce/reference/storefront-api/endpoints/product.md
deleted file mode 100644
index 4505b5edac3..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/product.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Product Endpoints
-
-The Product API endpoints allow fetching essential product related data such as pricing and stock levels.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/products" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/shipping-method.md b/14/umbraco-commerce/reference/storefront-api/endpoints/shipping-method.md
deleted file mode 100644
index b5375e9cc39..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/shipping-method.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Shipping Method Endpoints
-
-The Shipping Method API endpoints allow fetching supported shipping methods from a store.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/shippingmethods" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/shippingmethod/{idOrAlias}" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/storefront-api/endpoints/store.md b/14/umbraco-commerce/reference/storefront-api/endpoints/store.md
deleted file mode 100644
index a1c2aa879f3..00000000000
--- a/14/umbraco-commerce/reference/storefront-api/endpoints/store.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Store Endpoints
-
-The Store API endpoints allow fetching supported store details.
-
-{% swagger src="../../../.gitbook/assets/storefront_swagger.json" path="/umbraco/commerce/storefront/api/v1/store/{idOrAlias}" method="get" %}
-[storefront_swagger.json](../../../.gitbook/assets/storefront_swagger.json)
-{% endswagger %}
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/stores/README.md b/14/umbraco-commerce/reference/stores/README.md
deleted file mode 100644
index 4131a1752ae..00000000000
--- a/14/umbraco-commerce/reference/stores/README.md
+++ /dev/null
@@ -1,83 +0,0 @@
----
-description: Information on Umbraco Commerce Stores
----
-
-# Stores
-
-Stores represent a single shop / commercial entity and contain all the settings a configuration specific to that particular store. They are the root entity from which all other Umbraco Commerce entities are connected. They are also able to be linked to content nodes to connect a store to a site.
-
-## Store Settings
-
-General settings for a store can be accessed via the UI by clicking on a store node in the `Settings > Commerce` section.
-
-### General
-
-| Name | Description |
-| -- | -- |
-| Base Currency | Defines the base currency a store operates in and for which all order values will be converted for the basis of reporting and analytics. |
-| Default Location | Defines the main location of the store and is used by shipping calculators to work out shipping rates. |
-| Default Country | Defines the default country of the store and is used to set the default payment/shipping country of newly created orders. |
-| Default Order Status | Defines the order status to assign newly created orders to. |
-| Error Order Status | Defines the order status to assign orders to when an error occurs during order processing. |
-| Measurement System | Defines whether to use a Metric or Imperial measurement system when capturing product measurement. |
-| Prices Include Tax | Defines whether all prices entered into the system are inclusive or exclusive of tax. |
-| Use Cookies | Defines whether cookies should be used for tracking a customer's current order, allowing them to last between browser sessions. |
-| Cookie Timeout | If using cookies, define the length of time in minutes the cookie should be persisted for. |
-
-### Notification Settings
-
-| Name | Description |
-| -- | -- |
-| Confirmation Email | Defines the email to send to customers when an order is successfully completed. |
-| Error Email | Defines the email to send to customers when an error occurs when completing their order. |
-
-### Order Settings
-
-| Name | Description |
-| -- | -- |
-| Cart Number Template | Defines a string formatting template to use when generating a Cart Number, eg: 'CART-{0}'. |
-| Order Number Template | Defines a string formatting template to use when generating an Order Number, eg: 'ORDER-{0}'. |
-| Order Rounding Method | Defines At what level in the order calculation process prices should be rounded. Can be either `Unit` where prices are rounded at the item level, `Line` where prices are rounded at the order line level after quantity multiplication or `Total` where prices are rounded at the order total level. |
-
-### Product Settings
-
-| Name | Description |
-| -- | -- |
-| Product Property Aliases | Defines a comma-separated list of property aliases to be copied to the order line when added to the cart. For more details, see the [Automatic Properties](../../key-concepts/properties.md#automatic-properties) section. |
-| Product Uniqueness Property Aliases | Defines a comma-separated list of property aliases to be used to define product uniqueness. For more details, see the [Product Uniqueness Properties](../../key-concepts/properties.md#product-uniqueness-properties) section. |
-
-### Gift Card Settings
-
-| Name | Description |
-| -- | -- |
-| Code Length | Defines the length of a gift card code when auto-generated. |
-| Code Template | Defines a string formatting template to use when auto-generating a gift card code, eg: 'GIFTCARD-{0}'. |
-| Valid For | Defines the number of days gift cards should be valid for by default. |
-| Gift Card Property Aliases | Defines a comma-separated list of property aliases to be copied to the gift card from the order line. |
-| Activation Method | Defines the method by which gift cards become active. Can be `Manual` where the store owner must manually active the gift card, `Automatic` where the gift card automatically becomes active after purchase or `Order Status` where the gift card becomes active when the purchase order moves into a specific order status. |
-| Activation Order Status | When the activation method is `Order Status`, it defines the order status that activates the gift card. |
-| Default Gift Card Email | Defines the email to be sent to customers if an order contains a gift card item. |
-
-## Store Configuration
-
-Further store configuration can be achieved by setting up different categories of configuration that can be accessed as child nodes to the store node.
-
-The available configuration options are:
-
-* **Locations** - Defines different locations for a store. See [Locations reference documentation](../locations/README.md) for more details.
-* **Order Statuses** - Defines the order statuses to be used by a store.
-* **Shipping Methods** - Defines the different shipping options available in the store. See [Shipping reference documentation](../shipping/README.md) for more details.
-* **Payment Methods** - Defines the different payment options available in the store.
-* **Countries** - Defines the different shipping countries supported by the store.
-* **Currencies** - Defines the different currencies accepted by the store.
-* **Taxes** - Defines the different rates supported by the store.
-* **Templating** - Defines the different email, print, and export templates available to the store.
-
-## Store Permissions
-
-When editing a store, the permissions app allows you to control who can access the store management interface. The options are:
-
-* **User Groups** - A set of toggles to allow/deny access to members of a particular user group.
-* **Users** - A set of toggles to allow/deny access to explicit individuals.
-
-In both cases, a positive access control will always override a deny control setting.
\ No newline at end of file
diff --git a/14/umbraco-commerce/reference/taxes/README.md b/14/umbraco-commerce/reference/taxes/README.md
deleted file mode 100644
index eca67862b71..00000000000
--- a/14/umbraco-commerce/reference/taxes/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: Tax calculation options in Umbraco Commerce.
----
-
-# Taxes
-
-Umbraco Commerce offers two different tax calculation method configurations for calculating an order's tax amounts.
-
-### [Fixed Tax Rates](./fixed-tax-rates.md)
-
-This option allows you to define a single fixed tax rate to apply for all products of the same type shipped to the same country. This option is useful for countries that have a fixed tax rate (the norm in EU countries).
-
-### [Calculated Tax Rates](./calculated-tax-rates.md)
-
-This option allows you to dynamically calculate the tax obligations of an order by using third-party calculation platforms. This complex option is useful for countries with different tax rates for different product types or regions within the country (the norm in the US).
diff --git a/14/umbraco-commerce/reference/taxes/calculated-tax-rates.md b/14/umbraco-commerce/reference/taxes/calculated-tax-rates.md
deleted file mode 100644
index 96144f6eb11..00000000000
--- a/14/umbraco-commerce/reference/taxes/calculated-tax-rates.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-description: Calculated Rate Taxes in Umbraco Commerce.
----
-
-# Calculated Tax Rates
-
-This option allows you to dynamically calculate the tax obligations of an order by using third-party calculation platforms. This complex option is useful for countries with different tax rates for different product types or regions within the country (the norm in the US).
-
-When using calculated rate taxes, taxes are calculated as a single price adjustment against the order total price and will not offer any breakdown.
-
-Calculated tax rates are configured using **Tax Calculation Methods**. A tax calculation method provides a connection to a third-party calculation service via a [Sales Tax Provider](../../key-concepts/sales-tax-providers.md). The sales tax provider passes the order details to the calculation service and returns the tax amount to be applied to the order.
-
-{% hint style="info" %}
-Before you can configure a tax calculation method, you will need to install at least one [sales tax provider](../../key-concepts/sales-tax-providers.md).
-
-A TaxJar example is provided on GitHub at [https://github.com/umbraco/Umbraco.Commerce.SalesTaxProviders.TaxJar](https://github.com/umbraco/Umbraco.Commerce.SalesTaxProviders.TaxJar)
-{% endhint %}
-
-## Tax Calculation Method Configuration
-
-1. Go to **Settings > Stores > {Your Store} > Taxes > Tax Calculation Methods**.
-
-
-
-2. Click on the **Create Tax Calculation Method** button.
-3. Choose a **Sales Tax Provider** from the list.
-
-
-
-4. Enter the **Tax Calculation Method Name** and **Alias**.
-5. Configure the **Tax Calculation Method** settings.
-
-
-
-6. Click **Save**.
-
-## Assigning a Tax Calculation Method
-
-Tax calculation methods are assigned to a **Country** entity. This allows you to define different tax calculation methods for different countries. The tax calculation method assigned to an order's shipping country will be used to calculate the tax amount for the order.
-
-
-
-## Providing Tax Codes
-
-When calculating taxes, you may need to provide product tax codes to the calculation service. Tax codes are used to identify the type of product being sold and used by the calculation service to determine the correct tax rate. To assign a tax code to a product, you can use a **Tax Class** with a code defined for the given country.
-
-
-
-See [Tax Classes Configuration](./fixed-tax-rates.md#tax-class-configuration) for more information on how to configure tax classes.
-
-## Prices Inclusive of Tax
-
-It is possible to configure a store to accept prices including tax. When using tax calculation methods it is not possible to enable this feature. A warning will show if you try to do so and a tax calculation method is already defined on a stores country.
-
-
diff --git a/14/umbraco-commerce/reference/taxes/fixed-tax-rates.md b/14/umbraco-commerce/reference/taxes/fixed-tax-rates.md
deleted file mode 100644
index 0e3e2261bb7..00000000000
--- a/14/umbraco-commerce/reference/taxes/fixed-tax-rates.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-description: Fixed Rate Taxes in Umbraco Commerce.
----
-
-# Fixed Tax Rates
-
-Fixed-rate taxes allow you to dynamically calculate the tax obligations of an order by using third-party calculation platforms. This complex option is useful for countries with different tax rates for different product types or regions within the country (the norm in the US).
-
-When using fixed-rate taxes, taxes will be calculated for each price object in the order.
-
-Fixed-rate taxes are defined using **Tax Classes**. A tax class is a classification for a specific type of product and can be configured to have different tax rates for different countries.
-
-## Tax Class Configuration
-
-1. Go to **Settings > Stores > {Your Store} > Taxes > Tax Classes**.
-
-
-
-3. Click on the **Create Tax Class** button.
-4. Enter the **Tax Class Name**, **Alias**, **Default Tax Rate** and optional **Default Tax Code**.
-
-
-
-5. Optionally, define any country-specific tax rates by toggling the checkbox in the **Country Tax Classes** for the country.
-
-
-
-6. Click the **Edit Tax Class** button to define the country-specific tax rate/tax code.
-
-
-
-7. Click **Save**.
-
-## Assigning a Tax Class
-
-There are two ways to assign a tax class to a product:
-
-### Store Default Tax Class
-
-In the store settings editor, set the **Default Tax Class** for the store. This will be the default tax class for all products in the store.
-
-
-
-### Product Tax Class
-
-In the product Document Type, define a **Store Entity Picker** property configured for the **Tax Class** entity type, with the property alias **taxClass**.
-In the products content editor, set the **Tax Class** for the product. This will override the store default tax class for the product.
-
-
diff --git a/14/umbraco-commerce/reference/telemetry.md b/14/umbraco-commerce/reference/telemetry.md
deleted file mode 100644
index 91cd6639cd2..00000000000
--- a/14/umbraco-commerce/reference/telemetry.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-description: Get started with Commerce telemetry.
----
-
-# Telemetry
-
-Commerce telemetry is connected directly to the CMS telemetry pipeline and runs with the [ReportSiteJob](https://github.com/umbraco/Umbraco-CMS/blob/v14/dev/src/Umbraco.Infrastructure/BackgroundJobs/Jobs/ReportSiteJob.cs).
-
-It pulls commerce data using a custom provider.
-
-## Captured data
-
-Through the custom provider, the Commerce telemetry pipeline captures the following data defined per store:
-
-* Store ID
-* Product Count
-* Order Count
-* Location Count
-* Country Count
-* Country Codes
-* Currency Count
-* Currency Codes
-* Payment Method Count
-* Payment Providers
-* Shipping Method Count
-* Shipping Providers
-* Shipping Method Types
-* Tax Calculation Method Count
-* Sales Tax Providers
-* Is Custom Product Adapter Used
-* Is Custom Product Calculator Used
-* Is Custom Order Line Calculator Used
-* Is Custom Payment Calculator Used
-* Is Custom Shipping Calculator Used
-* Is Storefront API Enabled
-
-## Settings
-
-Commerce telemetry reporting can be managed in the [Telemetry Data](https://docs.umbraco.com/umbraco-cms/fundamentals/backoffice/settings-dashboards#telemetry-data) dashboard.
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/README.md
deleted file mode 100644
index 02c142d2964..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Startup
-description: API reference for Umbraco.Commerce.Cms.Startup in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Startup assembly
-
-| Namespace |
-| --- |
-| [Umbraco.Commerce.Cms](umbraco-commerce-cms/README.md) |
-| [Umbraco.Commerce.Cms.Composing](umbraco-commerce-cms-composing/README.md) |
-| [Umbraco.Commerce.Cms.Events.Notification.Handlers](umbraco-commerce-cms-events-notification-handlers/README.md) |
-| [Umbraco.Commerce.Extensions](umbraco-commerce-extensions/README.md) |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-composing/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-composing/README.md
deleted file mode 100644
index 1d121f2d57a..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-composing/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Composing
-description: API reference for Umbraco.Commerce.Cms.Composing in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Composing namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [UmbracoCommerceAssemblyProvider](umbracocommerceassemblyprovider.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-composing/umbracocommerceassemblyprovider.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-composing/umbracocommerceassemblyprovider.md
deleted file mode 100644
index d1af065a390..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-composing/umbracocommerceassemblyprovider.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: UmbracoCommerceAssemblyProvider
-description: API reference for UmbracoCommerceAssemblyProvider in Umbraco Commerce
----
-## UmbracoCommerceAssemblyProvider
-
-```csharp
-public class UmbracoCommerceAssemblyProvider
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Composing](README.md)
-
-### Constructors
-
-#### UmbracoCommerceAssemblyProvider
-
-```csharp
-public UmbracoCommerceAssemblyProvider(ILoggerFactory loggerFactory)
-```
-
-
-### Properties
-
-#### Assemblies
-
-```csharp
-public IEnumerable Assemblies { get; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/README.md
deleted file mode 100644
index 6ec54afe721..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Events.Notification.Handlers
-description: API reference for Umbraco.Commerce.Cms.Events.Notification.Handlers in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Events.Notification.Handlers namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [ConvertUmbracoCommerceVariantsEditorToContentApp](convertumbracocommercevariantseditortocontentapp.md) | |
-| class [InjectUmbracoCommerceServerVariables](injectumbracocommerceservervariables.md) | |
-| class [OptimizeUmbracoCommerceVariantsEditorExamineValues](optimizeumbracocommercevariantseditorexaminevalues.md) | |
-| class [RegisterUmbracoCommerceCacheRefreshers](registerumbracocommercecacherefreshers.md) | |
-| class [RunUmbracoCommerceMigrations](runumbracocommercemigrations.md) | |
-| class [SynchronizeUmbracoCommerceVarientsEditorOnCopy](synchronizeumbracocommercevarientseditoroncopy.md) | |
-| class [SynchronizeUmbracoCommerceVarientsEditorOnMove](synchronizeumbracocommercevarientseditoronmove.md) | |
-| class [SynchronizeUmbracoCommerceVarientsEditorOnSave](synchronizeumbracocommercevarientseditoronsave.md) | |
-| class [SynchronizeUmbracoStockOnSaved](synchronizeumbracostockonsaved.md) | |
-| class [SynchronizeUmbracoStockOnSaving](synchronizeumbracostockonsaving.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/convertumbracocommercevariantseditortocontentapp.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/convertumbracocommercevariantseditortocontentapp.md
deleted file mode 100644
index a58c5e8cf1e..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/convertumbracocommercevariantseditortocontentapp.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: ConvertUmbracoCommerceVariantsEditorToContentApp
-description: API reference for ConvertUmbracoCommerceVariantsEditorToContentApp in Umbraco Commerce
----
-## ConvertUmbracoCommerceVariantsEditorToContentApp
-
-```csharp
-public class ConvertUmbracoCommerceVariantsEditorToContentApp :
- INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### ConvertUmbracoCommerceVariantsEditorToContentApp
-
-```csharp
-public ConvertUmbracoCommerceVariantsEditorToContentApp(
- UmbracoCommerceVariantsPropertyEditorToContentAppConverter converter)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(SendingContentNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/injectumbracocommerceservervariables.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/injectumbracocommerceservervariables.md
deleted file mode 100644
index 315218e96f9..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/injectumbracocommerceservervariables.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: InjectUmbracoCommerceServerVariables
-description: API reference for InjectUmbracoCommerceServerVariables in Umbraco Commerce
----
-## InjectUmbracoCommerceServerVariables
-
-```csharp
-public class InjectUmbracoCommerceServerVariables :
- INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### InjectUmbracoCommerceServerVariables
-
-```csharp
-public InjectUmbracoCommerceServerVariables(
- UmbracoCommerceServerVariablesInjector serverVariablesInjector)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(ServerVariablesParsingNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/optimizeumbracocommercevariantseditorexaminevalues.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/optimizeumbracocommercevariantseditorexaminevalues.md
deleted file mode 100644
index f52eec927a7..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/optimizeumbracocommercevariantseditorexaminevalues.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: OptimizeUmbracoCommerceVariantsEditorExamineValues
-description: API reference for OptimizeUmbracoCommerceVariantsEditorExamineValues in Umbraco Commerce
----
-## OptimizeUmbracoCommerceVariantsEditorExamineValues
-
-```csharp
-public class OptimizeUmbracoCommerceVariantsEditorExamineValues :
- INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### OptimizeUmbracoCommerceVariantsEditorExamineValues
-
-```csharp
-public OptimizeUmbracoCommerceVariantsEditorExamineValues(IExamineManager examineManager,
- UmbracoCommerceVariantsEditorExamineValueOptimizer optimizer)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(UmbracoApplicationStartingNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/registerumbracocommercecacherefreshers.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/registerumbracocommercecacherefreshers.md
deleted file mode 100644
index c4de80261cf..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/registerumbracocommercecacherefreshers.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: RegisterUmbracoCommerceCacheRefreshers
-description: API reference for RegisterUmbracoCommerceCacheRefreshers in Umbraco Commerce
----
-## RegisterUmbracoCommerceCacheRefreshers
-
-```csharp
-public class RegisterUmbracoCommerceCacheRefreshers :
- INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### RegisterUmbracoCommerceCacheRefreshers
-
-```csharp
-public RegisterUmbracoCommerceCacheRefreshers(UmbracoCommerceCacheRefresherRegistrar registrar)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(UmbracoApplicationStartingNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/runumbracocommercemigrations.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/runumbracocommercemigrations.md
deleted file mode 100644
index 8201cb8978d..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/runumbracocommercemigrations.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: RunUmbracoCommerceMigrations
-description: API reference for RunUmbracoCommerceMigrations in Umbraco Commerce
----
-## RunUmbracoCommerceMigrations
-
-```csharp
-public class RunUmbracoCommerceMigrations :
- INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### RunUmbracoCommerceMigrations
-
-```csharp
-public RunUmbracoCommerceMigrations(IRuntimeState runtimeState,
- IUmbracoCommerceMigrationsRunner migrationRunner)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(UmbracoApplicationStartingNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoroncopy.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoroncopy.md
deleted file mode 100644
index 357c85123e2..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoroncopy.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: SynchronizeUmbracoCommerceVarientsEditorOnCopy
-description: API reference for SynchronizeUmbracoCommerceVarientsEditorOnCopy in Umbraco Commerce
----
-## SynchronizeUmbracoCommerceVarientsEditorOnCopy
-
-```csharp
-public class SynchronizeUmbracoCommerceVarientsEditorOnCopy :
- INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### SynchronizeUmbracoCommerceVarientsEditorOnCopy
-
-```csharp
-public SynchronizeUmbracoCommerceVarientsEditorOnCopy(VariantsEditorSynchronizer sync)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(ContentCopyingNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoronmove.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoronmove.md
deleted file mode 100644
index 78cc4b1d643..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoronmove.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: SynchronizeUmbracoCommerceVarientsEditorOnMove
-description: API reference for SynchronizeUmbracoCommerceVarientsEditorOnMove in Umbraco Commerce
----
-## SynchronizeUmbracoCommerceVarientsEditorOnMove
-
-```csharp
-public class SynchronizeUmbracoCommerceVarientsEditorOnMove :
- INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### SynchronizeUmbracoCommerceVarientsEditorOnMove
-
-```csharp
-public SynchronizeUmbracoCommerceVarientsEditorOnMove(VariantsEditorSynchronizer sync)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(ContentMovingNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoronsave.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoronsave.md
deleted file mode 100644
index e6cd3bcc537..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracocommercevarientseditoronsave.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: SynchronizeUmbracoCommerceVarientsEditorOnSave
-description: API reference for SynchronizeUmbracoCommerceVarientsEditorOnSave in Umbraco Commerce
----
-## SynchronizeUmbracoCommerceVarientsEditorOnSave
-
-```csharp
-public class SynchronizeUmbracoCommerceVarientsEditorOnSave :
- INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### SynchronizeUmbracoCommerceVarientsEditorOnSave
-
-```csharp
-public SynchronizeUmbracoCommerceVarientsEditorOnSave(VariantsEditorSynchronizer sync)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(ContentSavingNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracostockonsaved.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracostockonsaved.md
deleted file mode 100644
index 8fa5bcdf5ee..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracostockonsaved.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: SynchronizeUmbracoStockOnSaved
-description: API reference for SynchronizeUmbracoStockOnSaved in Umbraco Commerce
----
-## SynchronizeUmbracoStockOnSaved
-
-```csharp
-public class SynchronizeUmbracoStockOnSaved : INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### SynchronizeUmbracoStockOnSaved
-
-```csharp
-public SynchronizeUmbracoStockOnSaved(IContentService contentService, UmbracoStockSynchronizer sync)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(ContentSavedNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracostockonsaving.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracostockonsaving.md
deleted file mode 100644
index 5c84183836a..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms-events-notification-handlers/synchronizeumbracostockonsaving.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: SynchronizeUmbracoStockOnSaving
-description: API reference for SynchronizeUmbracoStockOnSaving in Umbraco Commerce
----
-## SynchronizeUmbracoStockOnSaving
-
-```csharp
-public class SynchronizeUmbracoStockOnSaving : INotificationHandler
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Events.Notification.Handlers](README.md)
-
-### Constructors
-
-#### SynchronizeUmbracoStockOnSaving
-
-```csharp
-public SynchronizeUmbracoStockOnSaving(UmbracoStockSynchronizer sync)
-```
-
-
-### Methods
-
-#### Handle
-
-```csharp
-public void Handle(ContentSavingNotification notification)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/README.md
deleted file mode 100644
index 137d6984c98..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: Umbraco.Commerce.Cms
-description: API reference for Umbraco.Commerce.Cms in Umbraco Commerce
----
-## Umbraco.Commerce.Cms namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [UmbracoCommerceComponent](umbracocommercecomponent.md) | |
-| class [UmbracoCommerceComposer](umbracocommercecomposer.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/umbracocommercecomponent.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/umbracocommercecomponent.md
deleted file mode 100644
index 404d2f69c48..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/umbracocommercecomponent.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: UmbracoCommerceComponent
-description: API reference for UmbracoCommerceComponent in Umbraco Commerce
----
-## UmbracoCommerceComponent
-
-```csharp
-public class UmbracoCommerceComponent : IComponent
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms](README.md)
-
-### Constructors
-
-#### UmbracoCommerceComponent
-
-```csharp
-public UmbracoCommerceComponent(IFactory factory)
-```
-
-
-### Methods
-
-#### Initialize
-
-```csharp
-public void Initialize()
-```
-
-
----
-
-#### Terminate
-
-```csharp
-public void Terminate()
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/umbracocommercecomposer.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/umbracocommercecomposer.md
deleted file mode 100644
index 7ddf63a01cb..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-cms/umbracocommercecomposer.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: UmbracoCommerceComposer
-description: API reference for UmbracoCommerceComposer in Umbraco Commerce
----
-## UmbracoCommerceComposer
-
-```csharp
-public class UmbracoCommerceComposer : IComposer
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms](README.md)
-
-### Constructors
-
-#### UmbracoCommerceComposer
-
-The default constructor.
-
-```csharp
-public UmbracoCommerceComposer()
-```
-
-
-### Methods
-
-#### Compose
-
-```csharp
-public void Compose(IUmbracoBuilder builder)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/README.md
deleted file mode 100644
index 06e537381af..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: Umbraco.Commerce.Extensions
-description: API reference for Umbraco.Commerce.Extensions in Umbraco Commerce
----
-## Umbraco.Commerce.Extensions namespace
-
-| Public Type | Description |
-| --- | --- |
-| static class [CompositionExtensions](compositionextensions.md) | |
-| static class [UmbracoCommerceUmbracoBuilderExtensions](umbracocommerceumbracobuilderextensions.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/compositionextensions.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/compositionextensions.md
deleted file mode 100644
index beb138dbb77..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/compositionextensions.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: CompositionExtensions
-description: API reference for CompositionExtensions in Umbraco Commerce
----
-## CompositionExtensions
-
-```csharp
-public static class CompositionExtensions
-```
-
-**Namespace**
-* [Umbraco.Commerce.Extensions](README.md)
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/umbracocommerceumbracobuilderextensions.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/umbracocommerceumbracobuilderextensions.md
deleted file mode 100644
index 6afc3edd828..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-startup/umbraco-commerce-extensions/umbracocommerceumbracobuilderextensions.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: UmbracoCommerceUmbracoBuilderExtensions
-description: API reference for UmbracoCommerceUmbracoBuilderExtensions in Umbraco Commerce
----
-## UmbracoCommerceUmbracoBuilderExtensions
-
-```csharp
-public static class UmbracoCommerceUmbracoBuilderExtensions
-```
-
-**Namespace**
-* [Umbraco.Commerce.Extensions](README.md)
-
-### Methods
-
-#### AddUmbracoCommerce
-
-```csharp
-public static IUmbracoBuilder AddUmbracoCommerce(this IUmbracoBuilder builder,
- Action config = null,
- Action defaultOptions = null)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/README.md
deleted file mode 100644
index 1c5c1e8c4bc..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web
-description: API reference for Umbraco.Commerce.Cms.Web in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web assembly
-
-| Namespace |
-| --- |
-| [Umbraco.Commerce.Cms.Web](umbraco-commerce-cms-web/README.md) |
-| [Umbraco.Commerce.Cms.Web.ActionResults](umbraco-commerce-cms-web-actionresults/README.md) |
-| [Umbraco.Commerce.Cms.Web.ContentEditing](umbraco-commerce-cms-web-contentediting/README.md) |
-| [Umbraco.Commerce.Cms.Web.Controllers](umbraco-commerce-cms-web-controllers/README.md) |
-| [Umbraco.Commerce.Cms.Web.Events.Notification](umbraco-commerce-cms-web-events-notification/README.md) |
-| [Umbraco.Commerce.Cms.Web.Filters](umbraco-commerce-cms-web-filters/README.md) |
-| [Umbraco.Commerce.Cms.Web.IO](umbraco-commerce-cms-web-io/README.md) |
-| [Umbraco.Commerce.Cms.Web.Models](umbraco-commerce-cms-web-models/README.md) |
-| [Umbraco.Commerce.Cms.Web.Models.Mappers](umbraco-commerce-cms-web-models-mappers/README.md) |
-| [Umbraco.Commerce.Cms.Web.Models.Reporting](umbraco-commerce-cms-web-models-reporting/README.md) |
-| [Umbraco.Commerce.Cms.Web.Mvc](umbraco-commerce-cms-web-mvc/README.md) |
-| [Umbraco.Commerce.Cms.Web.Routing](umbraco-commerce-cms-web-routing/README.md) |
-| [Umbraco.Commerce.Cms.Web.Sections](umbraco-commerce-cms-web-sections/README.md) |
-| [Umbraco.Commerce.Cms.Web.Trees](umbraco-commerce-cms-web-trees/README.md) |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-actionresults/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-actionresults/README.md
deleted file mode 100644
index f2f2ea8b43e..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-actionresults/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web.ActionResults
-description: API reference for Umbraco.Commerce.Cms.Web.ActionResults in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web.ActionResults namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [ValidationErrorResult](validationerrorresult.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-actionresults/validationerrorresult.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-actionresults/validationerrorresult.md
deleted file mode 100644
index a7823a73551..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-actionresults/validationerrorresult.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: ValidationErrorResult
-description: API reference for ValidationErrorResult in Umbraco Commerce
----
-## ValidationErrorResult
-
-```csharp
-public class ValidationErrorResult : ObjectResult
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.ActionResults](README.md)
-
-### Constructors
-
-#### ValidationErrorResult (1 of 2)
-
-```csharp
-public ValidationErrorResult(HttpRequest request, object value)
-```
-
----
-
-#### ValidationErrorResult (2 of 2)
-
-```csharp
-public ValidationErrorResult(HttpRequest request, string errorMessage)
-```
-
-
-### Methods
-
-#### OnFormatting
-
-```csharp
-public override void OnFormatting(ActionContext context)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-contentediting/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-contentediting/README.md
deleted file mode 100644
index 4d41b34a41d..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-contentediting/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web.ContentEditing
-description: API reference for Umbraco.Commerce.Cms.Web.ContentEditing in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web.ContentEditing namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [UmbracoCommerceVariantsPropertyEditorToContentAppConverter](umbracocommercevariantspropertyeditortocontentappconverter.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-contentediting/umbracocommercevariantspropertyeditortocontentappconverter.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-contentediting/umbracocommercevariantspropertyeditortocontentappconverter.md
deleted file mode 100644
index b5b9586e881..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-contentediting/umbracocommercevariantspropertyeditortocontentappconverter.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: UmbracoCommerceVariantsPropertyEditorToContentAppConverter
-description: API reference for UmbracoCommerceVariantsPropertyEditorToContentAppConverter in Umbraco Commerce
----
-## UmbracoCommerceVariantsPropertyEditorToContentAppConverter
-
-```csharp
-public class UmbracoCommerceVariantsPropertyEditorToContentAppConverter
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.ContentEditing](README.md)
-
-### Constructors
-
-#### UmbracoCommerceVariantsPropertyEditorToContentAppConverter
-
-The default constructor.
-
-```csharp
-public UmbracoCommerceVariantsPropertyEditorToContentAppConverter()
-```
-
-
-### Methods
-
-#### Convert
-
-```csharp
-public void Convert(ContentItemDisplay model)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/README.md
deleted file mode 100644
index 3e072eeba82..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web.Controllers
-description: API reference for Umbraco.Commerce.Cms.Web.Controllers in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web.Controllers namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [DictionarySearchDto](dictionarysearchdto.md) | |
-| class [UmbracoCommerceActivityLogController](umbracocommerceactivitylogcontroller.md) | |
-| class [UmbracoCommerceAnalyticsController](umbracocommerceanalyticscontroller.md) | |
-| abstract class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md) | |
-| class [UmbracoCommerceCartController](umbracocommercecartcontroller.md) | |
-| class [UmbracoCommerceCountryController](umbracocommercecountrycontroller.md) | |
-| class [UmbracoCommerceCultureController](umbracocommerceculturecontroller.md) | |
-| class [UmbracoCommerceCurrencyController](umbracocommercecurrencycontroller.md) | |
-| class [UmbracoCommerceDictionaryController](umbracocommercedictionarycontroller.md) | |
-| class [UmbracoCommerceDiscountController](umbracocommercediscountcontroller.md) | |
-| class [UmbracoCommerceEmailController](umbracocommerceemailcontroller.md) | |
-| class [UmbracoCommerceEmailTemplateController](umbracocommerceemailtemplatecontroller.md) | |
-| class [UmbracoCommerceEntityController](umbracocommerceentitycontroller.md) | |
-| class [UmbracoCommerceExportController](umbracocommerceexportcontroller.md) | |
-| class [UmbracoCommerceExportTemplateController](umbracocommerceexporttemplatecontroller.md) | |
-| class [UmbracoCommerceGiftCardController](umbracocommercegiftcardcontroller.md) | |
-| class [UmbracoCommerceOrderController](umbracocommerceordercontroller.md) | |
-| abstract class [UmbracoCommerceOrderControllerBase](umbracocommerceordercontrollerbase.md) | |
-| class [UmbracoCommerceOrderStatusController](umbracocommerceorderstatuscontroller.md) | |
-| class [UmbracoCommercePaymentController](umbracocommercepaymentcontroller.md) | |
-| class [UmbracoCommercePaymentMethodController](umbracocommercepaymentmethodcontroller.md) | |
-| class [UmbracoCommercePrintController](umbracocommerceprintcontroller.md) | |
-| class [UmbracoCommercePrintTemplateController](umbracocommerceprinttemplatecontroller.md) | |
-| class [UmbracoCommerceProductAttributeController](umbracocommerceproductattributecontroller.md) | |
-| class [UmbracoCommerceProductController](umbracocommerceproductcontroller.md) | |
-| class [UmbracoCommerceShippingMethodController](umbracocommerceshippingmethodcontroller.md) | |
-| class [UmbracoCommerceStoreController](umbracocommercestorecontroller.md) | |
-| class [UmbracoCommerceTagController](umbracocommercetagcontroller.md) | |
-| class [UmbracoCommerceTaxController](umbracocommercetaxcontroller.md) | |
-| class [UmbracoCommerceUtilsController](umbracocommerceutilscontroller.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/dictionarysearchdto.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/dictionarysearchdto.md
deleted file mode 100644
index 5579b6fb216..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/dictionarysearchdto.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: DictionarySearchDto
-description: API reference for DictionarySearchDto in Umbraco Commerce
----
-## DictionarySearchDto
-
-```csharp
-public class DictionarySearchDto
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### DictionarySearchDto
-
-The default constructor.
-
-```csharp
-public DictionarySearchDto()
-```
-
-
-### Properties
-
-#### MaxItems
-
-```csharp
-public int MaxItems { get; set; }
-```
-
-
----
-
-#### ParentKey
-
-```csharp
-public string ParentKey { get; set; }
-```
-
-
----
-
-#### SearchKey
-
-```csharp
-public string SearchKey { get; set; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceactivitylogcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceactivitylogcontroller.md
deleted file mode 100644
index e90f983f16a..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceactivitylogcontroller.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: UmbracoCommerceActivityLogController
-description: API reference for UmbracoCommerceActivityLogController in Umbraco Commerce
----
-## UmbracoCommerceActivityLogController
-
-```csharp
-public class UmbracoCommerceActivityLogController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceActivityLogController
-
-```csharp
-public UmbracoCommerceActivityLogController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx, IUserHelper userHelper)
-```
-
-
-### Methods
-
-#### GetActivityLogs
-
-```csharp
-public IActionResult GetActivityLogs(Guid storeId, long currentPage = 1, long itemsPerPage = 10)
-```
-
-
----
-
-#### GetActivityLogsByEntity
-
-```csharp
-public IActionResult GetActivityLogsByEntity(Guid entityId, string entityType,
- long currentPage = 1, long itemsPerPage = 10)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceanalyticscontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceanalyticscontroller.md
deleted file mode 100644
index eed1f9d0877..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceanalyticscontroller.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-title: UmbracoCommerceAnalyticsController
-description: API reference for UmbracoCommerceAnalyticsController in Umbraco Commerce
----
-## UmbracoCommerceAnalyticsController
-
-```csharp
-public class UmbracoCommerceAnalyticsController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceAnalyticsController
-
-```csharp
-public UmbracoCommerceAnalyticsController(
- IUmbracoCommerceConfigFileProviderFactory umbracoCommerceConfigFileProviderFactory,
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### GetAnalyticsDashboardConfig
-
-```csharp
-public IActionResult GetAnalyticsDashboardConfig(Guid storeId)
-```
-
-
----
-
-#### GetAverageOrderValueReport
-
-```csharp
-public IActionResult GetAverageOrderValueReport(Guid storeId, DateTime from, DateTime to,
- DateTime? compareFrom = default(DateTime?), DateTime? compareTo = default(DateTime?),
- int localTimezoneOffset = 0)
-```
-
-
----
-
-#### GetCartConversionRatesReport
-
-```csharp
-public IActionResult GetCartConversionRatesReport(Guid storeId, DateTime from, DateTime to,
- DateTime? compareFrom = default(DateTime?), DateTime? compareTo = default(DateTime?),
- int localTimezoneOffset = 0)
-```
-
-
----
-
-#### GetRepeatCustomerRatesReport
-
-```csharp
-public IActionResult GetRepeatCustomerRatesReport(Guid storeId, DateTime from, DateTime to,
- DateTime? compareFrom = default(DateTime?), DateTime? compareTo = default(DateTime?),
- int localTimezoneOffset = 0)
-```
-
-
----
-
-#### GetTopSellingProductsReport
-
-```csharp
-public IActionResult GetTopSellingProductsReport(Guid storeId, DateTime from, DateTime to,
- DateTime? compareFrom = default(DateTime?), DateTime? compareTo = default(DateTime?),
- int localTimezoneOffset = 0)
-```
-
-
----
-
-#### GetTotalOrdersReport
-
-```csharp
-public IActionResult GetTotalOrdersReport(Guid storeId, DateTime from, DateTime to,
- DateTime? compareFrom = default(DateTime?), DateTime? compareTo = default(DateTime?),
- int localTimezoneOffset = 0)
-```
-
-
----
-
-#### GetTotalRevenueReport
-
-```csharp
-public IActionResult GetTotalRevenueReport(Guid storeId, DateTime from, DateTime to,
- DateTime? compareFrom = default(DateTime?), DateTime? compareTo = default(DateTime?),
- int localTimezoneOffset = 0)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceauthorizedjsoncontrollerbase.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceauthorizedjsoncontrollerbase.md
deleted file mode 100644
index ef7f3fafca2..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceauthorizedjsoncontrollerbase.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: UmbracoCommerceAuthorizedJsonControllerBase
-description: API reference for UmbracoCommerceAuthorizedJsonControllerBase in Umbraco Commerce
----
-## UmbracoCommerceAuthorizedJsonControllerBase
-
-```csharp
-public abstract class UmbracoCommerceAuthorizedJsonControllerBase : UmbracoAuthorizedJsonController
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Methods
-
-#### Dummy
-
-```csharp
-public bool Dummy()
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecartcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecartcontroller.md
deleted file mode 100644
index 5e0b47ae256..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecartcontroller.md
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: UmbracoCommerceCartController
-description: API reference for UmbracoCommerceCartController in Umbraco Commerce
----
-## UmbracoCommerceCartController
-
-```csharp
-public class UmbracoCommerceCartController : UmbracoCommerceOrderControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceOrderControllerBase](umbracocommerceordercontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceCartController
-
-```csharp
-public UmbracoCommerceCartController(
- IUmbracoCommerceConfigFileProviderFactory commerceConfigFileProviderFactory,
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx,
- CartAdvancedFilterCollection advancedFilters)
-```
-
-
-### Methods
-
-#### CalculateCart
-
-```csharp
-public IActionResult CalculateCart(CartSaveDto cart)
-```
-
-
----
-
-#### CreateCart
-
-```csharp
-public IActionResult CreateCart(Guid storeId, string languageIsoCode, Guid currencyId)
-```
-
-
----
-
-#### DeleteCart
-
-```csharp
-public IActionResult DeleteCart(Guid cartId)
-```
-
-
----
-
-#### GetCart
-
-```csharp
-public IActionResult GetCart(Guid cartId)
-```
-
-
----
-
-#### GetCartAdvancedFilters
-
-```csharp
-public IActionResult GetCartAdvancedFilters()
-```
-
-
----
-
-#### GetCartEditorConfig
-
-```csharp
-public IActionResult GetCartEditorConfig(Guid storeId)
-```
-
-
----
-
-#### GetCartEmailConfig
-
-```csharp
-public IActionResult GetCartEmailConfig(Guid cartId)
-```
-
-
----
-
-#### GetCartListConfig
-
-```csharp
-public IActionResult GetCartListConfig(Guid storeId)
-```
-
-
----
-
-#### SaveCart
-
-```csharp
-public IActionResult SaveCart(CartSaveDto cart)
-```
-
-
----
-
-#### SearchCarts
-
-```csharp
-public IActionResult SearchCarts(CartSearchDto model)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecountrycontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecountrycontroller.md
deleted file mode 100644
index 613e935cf65..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecountrycontroller.md
+++ /dev/null
@@ -1,145 +0,0 @@
----
-title: UmbracoCommerceCountryController
-description: API reference for UmbracoCommerceCountryController in Umbraco Commerce
----
-## UmbracoCommerceCountryController
-
-```csharp
-public class UmbracoCommerceCountryController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceCountryController
-
-```csharp
-public UmbracoCommerceCountryController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateAllCountryRegions
-
-```csharp
-public IActionResult CreateAllCountryRegions(Guid storeId, Guid defaultCurrencyId)
-```
-
-
----
-
-#### CreateCountry
-
-```csharp
-public IActionResult CreateCountry(Guid storeId)
-```
-
-
----
-
-#### CreateRegion
-
-```csharp
-public IActionResult CreateRegion(Guid storeId, Guid countryId)
-```
-
-
----
-
-#### DeleteCountry
-
-```csharp
-public IActionResult DeleteCountry(Guid countryId)
-```
-
-
----
-
-#### DeleteRegion
-
-```csharp
-public IActionResult DeleteRegion(Guid regionId)
-```
-
-
----
-
-#### GetCountries
-
-```csharp
-public IActionResult GetCountries(Guid storeId)
-```
-
-
----
-
-#### GetCountriesWithRegions
-
-```csharp
-public IActionResult GetCountriesWithRegions(Guid storeId)
-```
-
-
----
-
-#### GetCountry
-
-```csharp
-public IActionResult GetCountry(Guid countryId)
-```
-
-
----
-
-#### GetIso3166CountryRegions
-
-```csharp
-public IActionResult GetIso3166CountryRegions()
-```
-
-
----
-
-#### GetRegion
-
-```csharp
-public IActionResult GetRegion(Guid regionId)
-```
-
-
----
-
-#### GetRegions
-
-```csharp
-public IActionResult GetRegions(Guid storeId, Guid? countryId)
-```
-
-
----
-
-#### SaveCountry
-
-```csharp
-public IActionResult SaveCountry(CountrySaveDto country)
-```
-
-
----
-
-#### SaveRegion
-
-```csharp
-public IActionResult SaveRegion(RegionSaveDto region)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceculturecontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceculturecontroller.md
deleted file mode 100644
index 721df47f373..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceculturecontroller.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: UmbracoCommerceCultureController
-description: API reference for UmbracoCommerceCultureController in Umbraco Commerce
----
-## UmbracoCommerceCultureController
-
-```csharp
-public class UmbracoCommerceCultureController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceCultureController
-
-```csharp
-public UmbracoCommerceCultureController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### GetCultures
-
-```csharp
-public IActionResult GetCultures()
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecurrencycontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecurrencycontroller.md
deleted file mode 100644
index 8725d6542d9..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercecurrencycontroller.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: UmbracoCommerceCurrencyController
-description: API reference for UmbracoCommerceCurrencyController in Umbraco Commerce
----
-## UmbracoCommerceCurrencyController
-
-```csharp
-public class UmbracoCommerceCurrencyController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceCurrencyController
-
-```csharp
-public UmbracoCommerceCurrencyController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateCurrency
-
-```csharp
-public IActionResult CreateCurrency(Guid storeId)
-```
-
-
----
-
-#### DeleteCurrency
-
-```csharp
-public IActionResult DeleteCurrency(Guid currencyId)
-```
-
-
----
-
-#### GetCurrencies
-
-```csharp
-public IActionResult GetCurrencies(Guid storeId)
-```
-
-
----
-
-#### GetCurrency
-
-```csharp
-public IActionResult GetCurrency(Guid currencyId)
-```
-
-
----
-
-#### SaveCurrency
-
-```csharp
-public IActionResult SaveCurrency(CurrencySaveDto currency)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercedictionarycontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercedictionarycontroller.md
deleted file mode 100644
index 53fee66e13f..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercedictionarycontroller.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: UmbracoCommerceDictionaryController
-description: API reference for UmbracoCommerceDictionaryController in Umbraco Commerce
----
-## UmbracoCommerceDictionaryController
-
-```csharp
-public class UmbracoCommerceDictionaryController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceDictionaryController
-
-```csharp
-public UmbracoCommerceDictionaryController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- ILocalizationService localizationService, UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateDictionaryItem
-
-```csharp
-public IActionResult CreateDictionaryItem(int parentId, string key)
-```
-
-
----
-
-#### EnsureRootDictionaryItem
-
-```csharp
-public IActionResult EnsureRootDictionaryItem(string key)
-```
-
-
----
-
-#### GetDictionaryItemById
-
-```csharp
-public IActionResult GetDictionaryItemById(int id)
-```
-
-
----
-
-#### GetDictionaryItemByKey
-
-```csharp
-public IActionResult GetDictionaryItemByKey(string key)
-```
-
-
----
-
-#### SaveDictionaryItem
-
-```csharp
-public IActionResult SaveDictionaryItem(DictionarySave dictionary)
-```
-
-
----
-
-#### SearchKeys
-
-```csharp
-public IActionResult SearchKeys(DictionarySearchDto model)
-```
-
-
----
-
-#### TryGetDictionaryItemIdByKey
-
-```csharp
-public IActionResult TryGetDictionaryItemIdByKey(string key)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercediscountcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercediscountcontroller.md
deleted file mode 100644
index 3b1bccb6edb..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercediscountcontroller.md
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: UmbracoCommerceDiscountController
-description: API reference for UmbracoCommerceDiscountController in Umbraco Commerce
----
-## UmbracoCommerceDiscountController
-
-```csharp
-public class UmbracoCommerceDiscountController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceDiscountController
-
-```csharp
-public UmbracoCommerceDiscountController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateDiscount
-
-```csharp
-public IActionResult CreateDiscount(Guid storeId)
-```
-
-
----
-
-#### DeleteDiscount
-
-```csharp
-public IActionResult DeleteDiscount(Guid discountId)
-```
-
-
----
-
-#### GetDiscount
-
-```csharp
-public IActionResult GetDiscount(Guid discountId)
-```
-
-
----
-
-#### GetDiscountRewardProviderDefinitions
-
-```csharp
-public IActionResult GetDiscountRewardProviderDefinitions()
-```
-
-
----
-
-#### GetDiscountRewardProviderScaffold
-
-```csharp
-public IActionResult GetDiscountRewardProviderScaffold(string discountRewardProviderAlias)
-```
-
-
----
-
-#### GetDiscountRuleProviderDefinitions
-
-```csharp
-public IActionResult GetDiscountRuleProviderDefinitions()
-```
-
-
----
-
-#### GetDiscountRuleProviderScaffold
-
-```csharp
-public IActionResult GetDiscountRuleProviderScaffold(string discountRuleProviderAlias)
-```
-
-
----
-
-#### GetDiscounts
-
-```csharp
-public IActionResult GetDiscounts(Guid storeId)
-```
-
-
----
-
-#### SaveDiscount
-
-```csharp
-public IActionResult SaveDiscount(DiscountSaveDto discount)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceemailcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceemailcontroller.md
deleted file mode 100644
index b85100e6c14..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceemailcontroller.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: UmbracoCommerceEmailController
-description: API reference for UmbracoCommerceEmailController in Umbraco Commerce
----
-## UmbracoCommerceEmailController
-
-```csharp
-public class UmbracoCommerceEmailController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceEmailController
-
-```csharp
-public UmbracoCommerceEmailController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### SendDiscountEmail
-
-```csharp
-public IActionResult SendDiscountEmail(SendDiscountEmailDto dto)
-```
-
-
----
-
-#### SendGiftCardEmail
-
-```csharp
-public IActionResult SendGiftCardEmail(SendGiftCardEmailDto dto)
-```
-
-
----
-
-#### SendOrderEmail
-
-```csharp
-public IActionResult SendOrderEmail(SendOrderEmailDto dto)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceemailtemplatecontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceemailtemplatecontroller.md
deleted file mode 100644
index 0441cdb26f7..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceemailtemplatecontroller.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: UmbracoCommerceEmailTemplateController
-description: API reference for UmbracoCommerceEmailTemplateController in Umbraco Commerce
----
-## UmbracoCommerceEmailTemplateController
-
-```csharp
-public class UmbracoCommerceEmailTemplateController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceEmailTemplateController
-
-```csharp
-public UmbracoCommerceEmailTemplateController(
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateEmailTemplate
-
-```csharp
-public IActionResult CreateEmailTemplate(Guid storeId)
-```
-
-
----
-
-#### DeleteEmailTemplate
-
-```csharp
-public IActionResult DeleteEmailTemplate(Guid emailTemplateId)
-```
-
-
----
-
-#### GetEmailTemplate
-
-```csharp
-public IActionResult GetEmailTemplate(Guid emailTemplateId)
-```
-
-
----
-
-#### GetEmailTemplateCount
-
-```csharp
-public IActionResult GetEmailTemplateCount(Guid storeId, TemplateCategory? category = null)
-```
-
-
----
-
-#### GetEmailTemplates
-
-```csharp
-public IActionResult GetEmailTemplates(Guid storeId, TemplateCategory? category = null)
-```
-
-
----
-
-#### SaveEmailTemplate
-
-```csharp
-public IActionResult SaveEmailTemplate(EmailTemplateSaveDto emailTemplate)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceentitycontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceentitycontroller.md
deleted file mode 100644
index 1a413e8f226..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceentitycontroller.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: UmbracoCommerceEntityController
-description: API reference for UmbracoCommerceEntityController in Umbraco Commerce
----
-## UmbracoCommerceEntityController
-
-```csharp
-public class UmbracoCommerceEntityController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceEntityController
-
-```csharp
-public UmbracoCommerceEntityController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### DeleteEntity
-
-```csharp
-public IActionResult DeleteEntity(string entityType, Guid entityId)
-```
-
-
----
-
-#### GetEntities
-
-```csharp
-public IActionResult GetEntities(string entityType, Guid? storeId = default(Guid?),
- Guid? parentId = default(Guid?))
-```
-
-
----
-
-#### GetEntity
-
-```csharp
-public IActionResult GetEntity(string entityType, Guid entityId)
-```
-
-
----
-
-#### GetStoreByEntityId
-
-```csharp
-public IActionResult GetStoreByEntityId(string entityType, Guid entityId)
-```
-
-
----
-
-#### SortEntities
-
-```csharp
-public IActionResult SortEntities(SortEntitiesPostDto model)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceexportcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceexportcontroller.md
deleted file mode 100644
index 83966f129f1..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceexportcontroller.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: UmbracoCommerceExportController
-description: API reference for UmbracoCommerceExportController in Umbraco Commerce
----
-## UmbracoCommerceExportController
-
-```csharp
-public class UmbracoCommerceExportController : UmbracoController
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceExportController
-
-```csharp
-public UmbracoCommerceExportController(UmbracoCommerceContext ctx, ITemplateEngine templateEngine)
-```
-
-
-### Methods
-
-#### Export
-
-```csharp
-public ActionResult Export(ExportPostModel model)
-```
-
-
-### Classes
-
-#### UmbracoCommerceExportController.ExportPostModel
-
-```csharp
-public class ExportPostModel
-```
-
-##### Constructors
-
-#### UmbracoCommerceExportController.ExportPostModel
-
-The default constructor.
-
-```csharp
-public ExportPostModel()
-```
-
-
-##### Properties
-
-#### EntityIds
-
-```csharp
-public Guid[] EntityIds { get; set; }
-```
-
-
----
-
-#### EntityType
-
-```csharp
-public string EntityType { get; set; }
-```
-
-
----
-
-#### LanguageIsoCode
-
-```csharp
-public string LanguageIsoCode { get; set; }
-```
-
-
----
-
-#### TemplateIds
-
-```csharp
-public Guid[] TemplateIds { get; set; }
-```
-
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceexporttemplatecontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceexporttemplatecontroller.md
deleted file mode 100644
index 52dc0b912ea..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceexporttemplatecontroller.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: UmbracoCommerceExportTemplateController
-description: API reference for UmbracoCommerceExportTemplateController in Umbraco Commerce
----
-## UmbracoCommerceExportTemplateController
-
-```csharp
-public class UmbracoCommerceExportTemplateController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceExportTemplateController
-
-```csharp
-public UmbracoCommerceExportTemplateController(
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateExportTemplate
-
-```csharp
-public IActionResult CreateExportTemplate(Guid storeId)
-```
-
-
----
-
-#### DeleteExportTemplate
-
-```csharp
-public IActionResult DeleteExportTemplate(Guid exportTemplateId)
-```
-
-
----
-
-#### GetExportTemplate
-
-```csharp
-public IActionResult GetExportTemplate(Guid exportTemplateId)
-```
-
-
----
-
-#### GetExportTemplateCount
-
-```csharp
-public IActionResult GetExportTemplateCount(Guid storeId, TemplateCategory? category = null)
-```
-
-
----
-
-#### GetExportTemplates
-
-```csharp
-public IActionResult GetExportTemplates(Guid storeId, TemplateCategory? category = null)
-```
-
-
----
-
-#### SaveExportTemplate
-
-```csharp
-public IActionResult SaveExportTemplate(ExportTemplateSaveDto exportTemplate)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercegiftcardcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercegiftcardcontroller.md
deleted file mode 100644
index cf917feed53..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercegiftcardcontroller.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: UmbracoCommerceGiftCardController
-description: API reference for UmbracoCommerceGiftCardController in Umbraco Commerce
----
-## UmbracoCommerceGiftCardController
-
-```csharp
-public class UmbracoCommerceGiftCardController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceGiftCardController
-
-```csharp
-public UmbracoCommerceGiftCardController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateGiftCard
-
-```csharp
-public IActionResult CreateGiftCard(Guid storeId)
-```
-
-
----
-
-#### DeleteGiftCard
-
-```csharp
-public IActionResult DeleteGiftCard(Guid giftCardId)
-```
-
-
----
-
-#### GenerateGiftCardCode
-
-```csharp
-public IActionResult GenerateGiftCardCode(Guid storeId)
-```
-
-
----
-
-#### GetGiftCard
-
-```csharp
-public IActionResult GetGiftCard(Guid giftCardId)
-```
-
-
----
-
-#### GetGiftCards
-
-```csharp
-public IActionResult GetGiftCards(Guid storeId)
-```
-
-
----
-
-#### SaveGiftCard
-
-```csharp
-public IActionResult SaveGiftCard(GiftCardSaveDto giftCard)
-```
-
-
----
-
-#### SearchGiftCards
-
-```csharp
-public IActionResult SearchGiftCards(GiftCardSearchDto model)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceordercontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceordercontroller.md
deleted file mode 100644
index 3aa0aef8d3e..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceordercontroller.md
+++ /dev/null
@@ -1,174 +0,0 @@
----
-title: UmbracoCommerceOrderController
-description: API reference for UmbracoCommerceOrderController in Umbraco Commerce
----
-## UmbracoCommerceOrderController
-
-```csharp
-public class UmbracoCommerceOrderController : UmbracoCommerceOrderControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceOrderControllerBase](umbracocommerceordercontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceOrderController
-
-```csharp
-public UmbracoCommerceOrderController(
- IUmbracoCommerceConfigFileProviderFactory commerceConfigFileProviderFactory,
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx,
- OrderAdvancedFilterCollection advancedFilters)
-```
-
-
-### Methods
-
-#### CancelPayment
-
-```csharp
-public Task CancelPayment(Guid orderId, CancellationToken cancellationToken)
-```
-
-
----
-
-#### CapturePayment
-
-```csharp
-public Task CapturePayment(Guid orderId, CancellationToken cancellationToken)
-```
-
-
----
-
-#### ChangeOrderStatus
-
-```csharp
-public IActionResult ChangeOrderStatus(Guid orderId, Guid orderStatusId)
-```
-
-
----
-
-#### DeleteOrder
-
-```csharp
-public IActionResult DeleteOrder(Guid orderId)
-```
-
-
----
-
-#### GetOrder
-
-```csharp
-public IActionResult GetOrder(Guid orderId)
-```
-
-
----
-
-#### GetOrderAdvancedFilters
-
-```csharp
-public IActionResult GetOrderAdvancedFilters()
-```
-
-
----
-
-#### GetOrderEditorConfig
-
-```csharp
-public IActionResult GetOrderEditorConfig(Guid storeId)
-```
-
-
----
-
-#### GetOrderEmailConfig
-
-```csharp
-public IActionResult GetOrderEmailConfig(Guid orderId)
-```
-
-
----
-
-#### GetOrderHistoryByOrder
-
-```csharp
-public IActionResult GetOrderHistoryByOrder(Guid orderId)
-```
-
-
----
-
-#### GetOrderListConfig
-
-```csharp
-public IActionResult GetOrderListConfig(Guid storeId)
-```
-
-
----
-
-#### GetOrderRegisteredCustomerInfo
-
-```csharp
-public IActionResult GetOrderRegisteredCustomerInfo(Guid orderId)
-```
-
-
----
-
-#### GetOrderTransactionInfo
-
-```csharp
-public IActionResult GetOrderTransactionInfo(Guid orderId)
-```
-
-
----
-
-#### RefundPayment
-
-```csharp
-public Task RefundPayment(Guid orderId, CancellationToken cancellationToken)
-```
-
-
----
-
-#### SaveOrder
-
-```csharp
-public IActionResult SaveOrder(OrderSaveDto order)
-```
-
-
----
-
-#### SearchOrders
-
-```csharp
-public IActionResult SearchOrders(OrderSearchDto model)
-```
-
-
----
-
-#### SyncPaymentStatus
-
-```csharp
-public Task SyncPaymentStatus(Guid orderId, CancellationToken cancellationToken)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceordercontrollerbase.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceordercontrollerbase.md
deleted file mode 100644
index c4ad8bc46e3..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceordercontrollerbase.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: UmbracoCommerceOrderControllerBase
-description: API reference for UmbracoCommerceOrderControllerBase in Umbraco Commerce
----
-## UmbracoCommerceOrderControllerBase
-
-```csharp
-public abstract class UmbracoCommerceOrderControllerBase :
- UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceOrderControllerBase
-
-```csharp
-public UmbracoCommerceOrderControllerBase(
- IUmbracoCommerceConfigFileProviderFactory commerceConfigFileProviderFactory,
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceorderstatuscontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceorderstatuscontroller.md
deleted file mode 100644
index 4f318a4886d..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceorderstatuscontroller.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: UmbracoCommerceOrderStatusController
-description: API reference for UmbracoCommerceOrderStatusController in Umbraco Commerce
----
-## UmbracoCommerceOrderStatusController
-
-```csharp
-public class UmbracoCommerceOrderStatusController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceOrderStatusController
-
-```csharp
-public UmbracoCommerceOrderStatusController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateOrderStatus
-
-```csharp
-public IActionResult CreateOrderStatus(Guid storeId)
-```
-
-
----
-
-#### DeleteOrderStatus
-
-```csharp
-public IActionResult DeleteOrderStatus(Guid orderStatusId)
-```
-
-
----
-
-#### GetOrderStatus
-
-```csharp
-public IActionResult GetOrderStatus(Guid orderStatusId)
-```
-
-
----
-
-#### GetOrderStatuses
-
-```csharp
-public IActionResult GetOrderStatuses(Guid storeId)
-```
-
-
----
-
-#### SaveOrderStatus
-
-```csharp
-public IActionResult SaveOrderStatus(OrderStatusSaveDto orderStatus)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercepaymentcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercepaymentcontroller.md
deleted file mode 100644
index 7298cadd991..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercepaymentcontroller.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: UmbracoCommercePaymentController
-description: API reference for UmbracoCommercePaymentController in Umbraco Commerce
----
-## UmbracoCommercePaymentController
-
-```csharp
-public class UmbracoCommercePaymentController : ApiController
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommercePaymentController
-
-```csharp
-public UmbracoCommercePaymentController(UmbracoCommerceContext ctx,
- PaymentProviderContextFactory paymentProviderContextFactory,
- IPaymentProviderUriResolver uriResolver, ILogger logger)
-```
-
-
-### Methods
-
-#### Callback
-
-```csharp
-public Task Callback(string paymentProviderAlias, Guid orderOrPaymentMethodId,
- string orderNumber, string hash)
-```
-
-
----
-
-#### Cancel
-
-```csharp
-public Task Cancel(string paymentProviderAlias, Guid orderOrPaymentMethodId,
- string orderNumber, string hash)
-```
-
-
----
-
-#### Continue
-
-```csharp
-public Task Continue(string paymentProviderAlias, Guid orderOrPaymentMethodId,
- string orderNumber, string hash)
-```
-
-
----
-
-#### Error
-
-```csharp
-public Task Error(string paymentProviderAlias, Guid orderOrPaymentMethodId,
- string orderNumber, string hash)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercepaymentmethodcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercepaymentmethodcontroller.md
deleted file mode 100644
index 761adc1eec3..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercepaymentmethodcontroller.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: UmbracoCommercePaymentMethodController
-description: API reference for UmbracoCommercePaymentMethodController in Umbraco Commerce
----
-## UmbracoCommercePaymentMethodController
-
-```csharp
-public class UmbracoCommercePaymentMethodController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommercePaymentMethodController
-
-```csharp
-public UmbracoCommercePaymentMethodController(
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreatePaymentMethod
-
-```csharp
-public IActionResult CreatePaymentMethod(Guid storeId, string paymentProviderAlias)
-```
-
-
----
-
-#### DeletePaymentMethod
-
-```csharp
-public IActionResult DeletePaymentMethod(Guid paymentMethodId)
-```
-
-
----
-
-#### GetPaymentMethod
-
-```csharp
-public IActionResult GetPaymentMethod(Guid paymentMethodId)
-```
-
-
----
-
-#### GetPaymentMethods
-
-```csharp
-public IActionResult GetPaymentMethods(Guid storeId)
-```
-
-
----
-
-#### GetPaymentProviderDefinitions
-
-```csharp
-public IActionResult GetPaymentProviderDefinitions()
-```
-
-
----
-
-#### GetPaymentProviderScaffold
-
-```csharp
-public IActionResult GetPaymentProviderScaffold(string paymentProviderAlias)
-```
-
-
----
-
-#### SavePaymentMethod
-
-```csharp
-public IActionResult SavePaymentMethod(PaymentMethodSaveDto paymentMethod)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceprintcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceprintcontroller.md
deleted file mode 100644
index c5e76cf93ad..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceprintcontroller.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: UmbracoCommercePrintController
-description: API reference for UmbracoCommercePrintController in Umbraco Commerce
----
-## UmbracoCommercePrintController
-
-```csharp
-public class UmbracoCommercePrintController : UmbracoController
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommercePrintController
-
-```csharp
-public UmbracoCommercePrintController(UmbracoCommerceContext ctx, ITemplateEngine templateEngine)
-```
-
-
-### Methods
-
-#### Preview
-
-```csharp
-public ActionResult Preview(Guid templateId, Guid entityId, string entityType,
- string languageIsoCode = null)
-```
-
-
----
-
-#### Print
-
-```csharp
-public ActionResult Print(PrintPostModel model)
-```
-
-
-### Classes
-
-#### UmbracoCommercePrintController.PrintPostModel
-
-```csharp
-public class PrintPostModel
-```
-
-##### Constructors
-
-#### UmbracoCommercePrintController.PrintPostModel
-
-The default constructor.
-
-```csharp
-public PrintPostModel()
-```
-
-
-##### Properties
-
-#### EntityIds
-
-```csharp
-public Guid[] EntityIds { get; set; }
-```
-
-
----
-
-#### EntityType
-
-```csharp
-public string EntityType { get; set; }
-```
-
-
----
-
-#### LanguageIsoCode
-
-```csharp
-public string LanguageIsoCode { get; set; }
-```
-
-
----
-
-#### TemplateIds
-
-```csharp
-public Guid[] TemplateIds { get; set; }
-```
-
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceprinttemplatecontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceprinttemplatecontroller.md
deleted file mode 100644
index a3c29c6e90a..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceprinttemplatecontroller.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: UmbracoCommercePrintTemplateController
-description: API reference for UmbracoCommercePrintTemplateController in Umbraco Commerce
----
-## UmbracoCommercePrintTemplateController
-
-```csharp
-public class UmbracoCommercePrintTemplateController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommercePrintTemplateController
-
-```csharp
-public UmbracoCommercePrintTemplateController(
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreatePrintTemplate
-
-```csharp
-public IActionResult CreatePrintTemplate(Guid storeId)
-```
-
-
----
-
-#### DeletePrintTemplate
-
-```csharp
-public IActionResult DeletePrintTemplate(Guid printTemplateId)
-```
-
-
----
-
-#### GetPrintTemplate
-
-```csharp
-public IActionResult GetPrintTemplate(Guid printTemplateId)
-```
-
-
----
-
-#### GetPrintTemplateCount
-
-```csharp
-public IActionResult GetPrintTemplateCount(Guid storeId, TemplateCategory? category = null)
-```
-
-
----
-
-#### GetPrintTemplates
-
-```csharp
-public IActionResult GetPrintTemplates(Guid storeId, TemplateCategory? category = null)
-```
-
-
----
-
-#### SavePrintTemplate
-
-```csharp
-public IActionResult SavePrintTemplate(PrintTemplateSaveDto printTemplate)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceproductattributecontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceproductattributecontroller.md
deleted file mode 100644
index eab9d46827e..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceproductattributecontroller.md
+++ /dev/null
@@ -1,137 +0,0 @@
----
-title: UmbracoCommerceProductAttributeController
-description: API reference for UmbracoCommerceProductAttributeController in Umbraco Commerce
----
-## UmbracoCommerceProductAttributeController
-
-```csharp
-public class UmbracoCommerceProductAttributeController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceProductAttributeController
-
-```csharp
-public UmbracoCommerceProductAttributeController(
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateProductAttribute
-
-```csharp
-public IActionResult CreateProductAttribute(Guid storeId)
-```
-
-
----
-
-#### CreateProductAttributePreset
-
-```csharp
-public IActionResult CreateProductAttributePreset(Guid storeId)
-```
-
-
----
-
-#### DeleteProductAttribute
-
-```csharp
-public IActionResult DeleteProductAttribute(Guid productAttributeId)
-```
-
-
----
-
-#### DeleteProductAttributePreset
-
-```csharp
-public IActionResult DeleteProductAttributePreset(Guid productAttributePresetId)
-```
-
-
----
-
-#### GetProductAttribute
-
-```csharp
-public IActionResult GetProductAttribute(Guid productAttributeId)
-```
-
-
----
-
-#### GetProductAttributePreset
-
-```csharp
-public IActionResult GetProductAttributePreset(Guid productAttributePresetId)
-```
-
-
----
-
-#### GetProductAttributePresets
-
-```csharp
-public IActionResult GetProductAttributePresets(Guid storeId)
-```
-
-
----
-
-#### GetProductAttributePresetsWithAllowedAttributes
-
-```csharp
-public IActionResult GetProductAttributePresetsWithAllowedAttributes(Guid storeId)
-```
-
-
----
-
-#### GetProductAttributes
-
-```csharp
-public IActionResult GetProductAttributes(Guid storeId)
-```
-
-
----
-
-#### GetProductAttributesWithValues
-
-```csharp
-public IActionResult GetProductAttributesWithValues(Guid storeId)
-```
-
-
----
-
-#### SaveProductAttribute
-
-```csharp
-public IActionResult SaveProductAttribute(ProductAttributeSaveDto productAttribute)
-```
-
-
----
-
-#### SaveProductAttributePreset
-
-```csharp
-public IActionResult SaveProductAttributePreset(
- ProductAttributePresetSaveDto productAttributePreset)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceproductcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceproductcontroller.md
deleted file mode 100644
index 8d0ff269c2c..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceproductcontroller.md
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: UmbracoCommerceProductController
-description: API reference for UmbracoCommerceProductController in Umbraco Commerce
----
-## UmbracoCommerceProductController
-
-```csharp
-public class UmbracoCommerceProductController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceProductController
-
-```csharp
-public UmbracoCommerceProductController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### GetAllStock
-
-```csharp
-public IActionResult GetAllStock(GetAllStockDto model)
-```
-
-
----
-
-#### GetProductVariantAttributes
-
-```csharp
-public IActionResult GetProductVariantAttributes(Guid storeId, string productReference,
- string languageIsoCode)
-```
-
-
----
-
-#### GetStock
-
-```csharp
-public IActionResult GetStock(Guid storeId, string productReference,
- string productVariantReference = null)
-```
-
-
----
-
-#### SearchProductSummaries
-
-```csharp
-public IActionResult SearchProductSummaries(ProductSearchDto model)
-```
-
-
----
-
-#### SearchProductVariantSummaries
-
-```csharp
-public IActionResult SearchProductVariantSummaries(ProductVariantSearchDto model)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceshippingmethodcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceshippingmethodcontroller.md
deleted file mode 100644
index 12931cc5bd3..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceshippingmethodcontroller.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: UmbracoCommerceShippingMethodController
-description: API reference for UmbracoCommerceShippingMethodController in Umbraco Commerce
----
-## UmbracoCommerceShippingMethodController
-
-```csharp
-public class UmbracoCommerceShippingMethodController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceShippingMethodController
-
-```csharp
-public UmbracoCommerceShippingMethodController(
- IBackOfficeSecurityAccessor backOfficeSecurityAccesor, UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateShippingMethod
-
-```csharp
-public IActionResult CreateShippingMethod(Guid storeId)
-```
-
-
----
-
-#### DeleteShippingMethod
-
-```csharp
-public IActionResult DeleteShippingMethod(Guid shippingMethodId)
-```
-
-
----
-
-#### GetShippingMethod
-
-```csharp
-public IActionResult GetShippingMethod(Guid shippingMethodId)
-```
-
-
----
-
-#### GetShippingMethods
-
-```csharp
-public IActionResult GetShippingMethods(Guid storeId)
-```
-
-
----
-
-#### SaveShippingMethod
-
-```csharp
-public IActionResult SaveShippingMethod(ShippingMethodSaveDto shippingMethod)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercestorecontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercestorecontroller.md
deleted file mode 100644
index bfbb121fc11..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercestorecontroller.md
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: UmbracoCommerceStoreController
-description: API reference for UmbracoCommerceStoreController in Umbraco Commerce
----
-## UmbracoCommerceStoreController
-
-```csharp
-public class UmbracoCommerceStoreController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceStoreController
-
-```csharp
-public UmbracoCommerceStoreController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx, IUmbracoStoreService storeService)
-```
-
-
-### Methods
-
-#### CreateStore
-
-```csharp
-public IActionResult CreateStore()
-```
-
-
----
-
-#### DeleteStore
-
-```csharp
-public IActionResult DeleteStore(Guid storeId)
-```
-
-
----
-
-#### GetBasicStore
-
-```csharp
-public IActionResult GetBasicStore(Guid storeId)
-```
-
-
----
-
-#### GetBasicStoreByNodeId
-
-```csharp
-public IActionResult GetBasicStoreByNodeId(int nodeId)
-```
-
-
----
-
-#### GetStore
-
-```csharp
-public IActionResult GetStore(Guid storeId)
-```
-
-
----
-
-#### GetStoreActionsForDay
-
-```csharp
-public IActionResult GetStoreActionsForDay(Guid storeId, DateTime date, int localTimezoneOffset)
-```
-
-
----
-
-#### GetStoreAlias
-
-```csharp
-public IActionResult GetStoreAlias(Guid storeId)
-```
-
-
----
-
-#### GetStores
-
-```csharp
-public IActionResult GetStores()
-```
-
-
----
-
-#### GetStoreStatsForDay
-
-```csharp
-public IActionResult GetStoreStatsForDay(Guid storeId, DateTime date, int localTimezoneOffset)
-```
-
-
----
-
-#### GetStoreSummariesForCurrentUser
-
-```csharp
-public IActionResult GetStoreSummariesForCurrentUser()
-```
-
-
----
-
-#### SaveStore
-
-```csharp
-public IActionResult SaveStore(StoreSaveDto store)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercetagcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercetagcontroller.md
deleted file mode 100644
index 68c1a40181f..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercetagcontroller.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: UmbracoCommerceTagController
-description: API reference for UmbracoCommerceTagController in Umbraco Commerce
----
-## UmbracoCommerceTagController
-
-```csharp
-public class UmbracoCommerceTagController : UmbracoAuthorizedApiController
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceTagController
-
-```csharp
-public UmbracoCommerceTagController(UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### Dummy
-
-```csharp
-public bool Dummy()
-```
-
-
----
-
-#### GetEntityTags
-
-```csharp
-public IActionResult GetEntityTags(Guid storeId, Guid entityId, string query = null)
-```
-
-
----
-
-#### GetTags
-
-```csharp
-public IActionResult GetTags(Guid storeId, string query = null)
-```
-
-
----
-
-#### GetTagsByEntityType
-
-```csharp
-public IActionResult GetTagsByEntityType(Guid storeId, string entityType, string query = null)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercetaxcontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercetaxcontroller.md
deleted file mode 100644
index ba32b00b0e8..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommercetaxcontroller.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: UmbracoCommerceTaxController
-description: API reference for UmbracoCommerceTaxController in Umbraco Commerce
----
-## UmbracoCommerceTaxController
-
-```csharp
-public class UmbracoCommerceTaxController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceTaxController
-
-```csharp
-public UmbracoCommerceTaxController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### CreateTaxClass
-
-```csharp
-public IActionResult CreateTaxClass(Guid storeId)
-```
-
-
----
-
-#### DeleteTaxClass
-
-```csharp
-public IActionResult DeleteTaxClass(Guid taxClassId)
-```
-
-
----
-
-#### GetTaxClass
-
-```csharp
-public IActionResult GetTaxClass(Guid taxClassId)
-```
-
-
----
-
-#### GetTaxClasses
-
-```csharp
-public IActionResult GetTaxClasses(Guid storeId)
-```
-
-
----
-
-#### SaveTaxClass
-
-```csharp
-public IActionResult SaveTaxClass(TaxClassSaveDto taxClass)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceutilscontroller.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceutilscontroller.md
deleted file mode 100644
index 2560fefdb61..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-controllers/umbracocommerceutilscontroller.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: UmbracoCommerceUtilsController
-description: API reference for UmbracoCommerceUtilsController in Umbraco Commerce
----
-## UmbracoCommerceUtilsController
-
-```csharp
-public class UmbracoCommerceUtilsController : UmbracoCommerceAuthorizedJsonControllerBase
-```
-
-**Inheritance**
-
-* Class [UmbracoCommerceAuthorizedJsonControllerBase](umbracocommerceauthorizedjsoncontrollerbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Controllers](README.md)
-
-### Constructors
-
-#### UmbracoCommerceUtilsController
-
-```csharp
-public UmbracoCommerceUtilsController(IBackOfficeSecurityAccessor backOfficeSecurityAccesor,
- UmbracoCommerceContext ctx)
-```
-
-
-### Methods
-
-#### GetEnumOptions
-
-```csharp
-public IActionResult GetEnumOptions(string type)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/README.md
deleted file mode 100644
index 240bb0437bd..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web.Events.Notification
-description: API reference for Umbraco.Commerce.Cms.Web.Events.Notification in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web.Events.Notification namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [ActivityLogEntriesRenderingNotification](activitylogentriesrenderingnotification.md) | |
-| class [AnalyticsDashboardConfigParsingNotification](analyticsdashboardconfigparsingnotification.md) | |
-| class [CartEditorConfigParsingNotification](carteditorconfigparsingnotification.md) | |
-| class [CartListConfigParsingNotification](cartlistconfigparsingnotification.md) | |
-| class [CartSearchingNotification](cartsearchingnotification.md) | |
-| abstract class [ConfigParsingNotificationBase](configparsingnotificationbase.md) | |
-| class [GiftCardSearchingNotification](giftcardsearchingnotification.md) | |
-| class [OrderEditorConfigParsingNotification](ordereditorconfigparsingnotification.md) | |
-| class [OrderListConfigParsingNotification](orderlistconfigparsingnotification.md) | |
-| class [OrderSearchingNotification](ordersearchingnotification.md) | |
-| class [StoreActionsRenderingNotification](storeactionsrenderingnotification.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/activitylogentriesrenderingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/activitylogentriesrenderingnotification.md
deleted file mode 100644
index 26d3f434750..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/activitylogentriesrenderingnotification.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: ActivityLogEntriesRenderingNotification
-description: API reference for ActivityLogEntriesRenderingNotification in Umbraco Commerce
----
-## ActivityLogEntriesRenderingNotification
-
-```csharp
-public class ActivityLogEntriesRenderingNotification : NotificationEventBase
-```
-
-**Inheritance**
-
-* Class [NotificationEventBase](../../umbraco-commerce-common/umbraco-commerce-common-events/notificationeventbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### ActivityLogEntriesRenderingNotification
-
-```csharp
-public ActivityLogEntriesRenderingNotification(Guid storeId,
- IReadOnlyCollection logEntries)
-```
-
-
-### Properties
-
-#### LogEntries
-
-```csharp
-public IReadOnlyCollection LogEntries { get; set; }
-```
-
-
----
-
-#### StoreId
-
-```csharp
-public Guid StoreId { get; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/analyticsdashboardconfigparsingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/analyticsdashboardconfigparsingnotification.md
deleted file mode 100644
index 5555d273fb5..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/analyticsdashboardconfigparsingnotification.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: AnalyticsDashboardConfigParsingNotification
-description: API reference for AnalyticsDashboardConfigParsingNotification in Umbraco Commerce
----
-## AnalyticsDashboardConfigParsingNotification
-
-```csharp
-public class AnalyticsDashboardConfigParsingNotification : NotificationEventBase
-```
-
-**Inheritance**
-
-* Class [NotificationEventBase](../../umbraco-commerce-common/umbraco-commerce-common-events/notificationeventbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### AnalyticsDashboardConfigParsingNotification
-
-```csharp
-public AnalyticsDashboardConfigParsingNotification(Guid storeId, JObject config)
-```
-
-
-### Properties
-
-#### Config
-
-```csharp
-public JObject Config { get; set; }
-```
-
-
----
-
-#### StoreId
-
-```csharp
-public Guid StoreId { get; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/carteditorconfigparsingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/carteditorconfigparsingnotification.md
deleted file mode 100644
index fb2cac007a6..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/carteditorconfigparsingnotification.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: CartEditorConfigParsingNotification
-description: API reference for CartEditorConfigParsingNotification in Umbraco Commerce
----
-## CartEditorConfigParsingNotification
-
-```csharp
-public class CartEditorConfigParsingNotification : ConfigParsingNotificationBase
-```
-
-**Inheritance**
-
-* Class [ConfigParsingNotificationBase](configparsingnotificationbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### CartEditorConfigParsingNotification
-
-```csharp
-public CartEditorConfigParsingNotification(Guid storeId, JObject config)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/cartlistconfigparsingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/cartlistconfigparsingnotification.md
deleted file mode 100644
index 6ca7bdd3964..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/cartlistconfigparsingnotification.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: CartListConfigParsingNotification
-description: API reference for CartListConfigParsingNotification in Umbraco Commerce
----
-## CartListConfigParsingNotification
-
-```csharp
-public class CartListConfigParsingNotification : ConfigParsingNotificationBase
-```
-
-**Inheritance**
-
-* Class [ConfigParsingNotificationBase](configparsingnotificationbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### CartListConfigParsingNotification
-
-```csharp
-public CartListConfigParsingNotification(Guid storeId, JObject config)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/cartsearchingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/cartsearchingnotification.md
deleted file mode 100644
index 0306bcfb3e7..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/cartsearchingnotification.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: CartSearchingNotification
-description: API reference for CartSearchingNotification in Umbraco Commerce
----
-## CartSearchingNotification
-
-```csharp
-public class CartSearchingNotification : NotificationEventBase
-```
-
-**Inheritance**
-
-* Class [NotificationEventBase](../../umbraco-commerce-common/umbraco-commerce-common-events/notificationeventbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### CartSearchingNotification
-
-The default constructor.
-
-```csharp
-public CartSearchingNotification()
-```
-
-
-### Properties
-
-#### Filter
-
-```csharp
-public Func>
- Filter { get; set; }
-```
-
-
----
-
-#### SearchTermFilter
-
-```csharp
-public Func>
- SearchTermFilter { get; set; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/configparsingnotificationbase.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/configparsingnotificationbase.md
deleted file mode 100644
index c5af71ebb27..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/configparsingnotificationbase.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: ConfigParsingNotificationBase
-description: API reference for ConfigParsingNotificationBase in Umbraco Commerce
----
-## ConfigParsingNotificationBase
-
-```csharp
-public abstract class ConfigParsingNotificationBase : NotificationEventBase
-```
-
-**Inheritance**
-
-* Class [NotificationEventBase](../../umbraco-commerce-common/umbraco-commerce-common-events/notificationeventbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### ConfigParsingNotificationBase
-
-```csharp
-public ConfigParsingNotificationBase(Guid storeId, JObject config)
-```
-
-
-### Properties
-
-#### Config
-
-```csharp
-public JObject Config { get; set; }
-```
-
-
----
-
-#### StoreId
-
-```csharp
-public Guid StoreId { get; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/giftcardsearchingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/giftcardsearchingnotification.md
deleted file mode 100644
index 10aeeb383b2..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/giftcardsearchingnotification.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: GiftCardSearchingNotification
-description: API reference for GiftCardSearchingNotification in Umbraco Commerce
----
-## GiftCardSearchingNotification
-
-```csharp
-public class GiftCardSearchingNotification : NotificationEventBase
-```
-
-**Inheritance**
-
-* Class [NotificationEventBase](../../umbraco-commerce-common/umbraco-commerce-common-events/notificationeventbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### GiftCardSearchingNotification
-
-The default constructor.
-
-```csharp
-public GiftCardSearchingNotification()
-```
-
-
-### Properties
-
-#### Filter
-
-```csharp
-public Func>
- Filter { get; set; }
-```
-
-
----
-
-#### SearchTermFilter
-
-```csharp
-public Func>
- SearchTermFilter { get; set; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/ordereditorconfigparsingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/ordereditorconfigparsingnotification.md
deleted file mode 100644
index 843da22279e..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/ordereditorconfigparsingnotification.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: OrderEditorConfigParsingNotification
-description: API reference for OrderEditorConfigParsingNotification in Umbraco Commerce
----
-## OrderEditorConfigParsingNotification
-
-```csharp
-public class OrderEditorConfigParsingNotification : ConfigParsingNotificationBase
-```
-
-**Inheritance**
-
-* Class [ConfigParsingNotificationBase](configparsingnotificationbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### OrderEditorConfigParsingNotification
-
-```csharp
-public OrderEditorConfigParsingNotification(Guid storeId, JObject config)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/orderlistconfigparsingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/orderlistconfigparsingnotification.md
deleted file mode 100644
index 1fa9ee42b19..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/orderlistconfigparsingnotification.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: OrderListConfigParsingNotification
-description: API reference for OrderListConfigParsingNotification in Umbraco Commerce
----
-## OrderListConfigParsingNotification
-
-```csharp
-public class OrderListConfigParsingNotification : ConfigParsingNotificationBase
-```
-
-**Inheritance**
-
-* Class [ConfigParsingNotificationBase](configparsingnotificationbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### OrderListConfigParsingNotification
-
-```csharp
-public OrderListConfigParsingNotification(Guid storeId, JObject config)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/ordersearchingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/ordersearchingnotification.md
deleted file mode 100644
index 7d14f6e16e6..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/ordersearchingnotification.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: OrderSearchingNotification
-description: API reference for OrderSearchingNotification in Umbraco Commerce
----
-## OrderSearchingNotification
-
-```csharp
-public class OrderSearchingNotification : NotificationEventBase
-```
-
-**Inheritance**
-
-* Class [NotificationEventBase](../../umbraco-commerce-common/umbraco-commerce-common-events/notificationeventbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### OrderSearchingNotification
-
-The default constructor.
-
-```csharp
-public OrderSearchingNotification()
-```
-
-
-### Properties
-
-#### Filter
-
-```csharp
-public Func>
- Filter { get; set; }
-```
-
-
----
-
-#### SearchTermFilter
-
-```csharp
-public Func>
- SearchTermFilter { get; set; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/storeactionsrenderingnotification.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/storeactionsrenderingnotification.md
deleted file mode 100644
index 973c59fbc77..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-events-notification/storeactionsrenderingnotification.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: StoreActionsRenderingNotification
-description: API reference for StoreActionsRenderingNotification in Umbraco Commerce
----
-## StoreActionsRenderingNotification
-
-```csharp
-public class StoreActionsRenderingNotification : NotificationEventBase
-```
-
-**Inheritance**
-
-* Class [NotificationEventBase](../../umbraco-commerce-common/umbraco-commerce-common-events/notificationeventbase.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Events.Notification](README.md)
-
-### Constructors
-
-#### StoreActionsRenderingNotification
-
-```csharp
-public StoreActionsRenderingNotification(Guid storeId, StoreActionsDto actions)
-```
-
-
-### Properties
-
-#### Actions
-
-```csharp
-public StoreActionsDto Actions { get; set; }
-```
-
-
----
-
-#### StoreId
-
-```csharp
-public Guid StoreId { get; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-filters/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-filters/README.md
deleted file mode 100644
index 7ef76d18505..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-filters/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web.Filters
-description: API reference for Umbraco.Commerce.Cms.Web.Filters in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web.Filters namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [AllowJsonXHRRequestsFilter](allowjsonxhrrequestsfilter.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-filters/allowjsonxhrrequestsfilter.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-filters/allowjsonxhrrequestsfilter.md
deleted file mode 100644
index 27e8f8a6fc3..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-filters/allowjsonxhrrequestsfilter.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: AllowJsonXHRRequestsFilter
-description: API reference for AllowJsonXHRRequestsFilter in Umbraco Commerce
----
-## AllowJsonXHRRequestsFilter
-
-```csharp
-public class AllowJsonXHRRequestsFilter : TypeFilterAttribute
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Filters](README.md)
-
-### Constructors
-
-#### AllowJsonXHRRequestsFilter
-
-The default constructor.
-
-```csharp
-public AllowJsonXHRRequestsFilter()
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-io/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-io/README.md
deleted file mode 100644
index abe7882bc9b..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-io/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web.IO
-description: API reference for Umbraco.Commerce.Cms.Web.IO in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web.IO namespace
-
-| Public Type | Description |
-| --- | --- |
-| interface [IUmbracoCommerceConfigFileProviderFactory](iumbracocommerceconfigfileproviderfactory.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-io/iumbracocommerceconfigfileproviderfactory.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-io/iumbracocommerceconfigfileproviderfactory.md
deleted file mode 100644
index 94c69a43e3d..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-io/iumbracocommerceconfigfileproviderfactory.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: IUmbracoCommerceConfigFileProviderFactory
-description: API reference for IUmbracoCommerceConfigFileProviderFactory in Umbraco Commerce
----
-## IUmbracoCommerceConfigFileProviderFactory
-
-```csharp
-public interface IUmbracoCommerceConfigFileProviderFactory : IFileProviderFactory
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.IO](README.md)
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/README.md
deleted file mode 100644
index c49d6ae1dea..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web.Models.Mappers
-description: API reference for Umbraco.Commerce.Cms.Web.Models.Mappers in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web.Models.Mappers namespace
-
-| Public Type | Description |
-| --- | --- |
-| static class [ActivityLogEntryMapper](activitylogentrymapper.md) | |
-| static class [AllowedCountryRegionMapper](allowedcountryregionmapper.md) | |
-| static class [AttributeMapper](attributemapper.md) | |
-| static class [CartMapper](cartmapper.md) | |
-| static class [CountryMapper](countrymapper.md) | |
-| static class [CurrencyMapper](currencymapper.md) | |
-| static class [DiscountMapper](discountmapper.md) | |
-| static class [EmailTemplateMapper](emailtemplatemapper.md) | |
-| class [EntityMapperAdapter](entitymapperadapter.md) | |
-| static class [EntityMapperFactory](entitymapperfactory.md) | |
-| static class [ExportTemplateMapper](exporttemplatemapper.md) | |
-| static class [GiftCardMapper](giftcardmapper.md) | |
-| static class [OrderMapper](ordermapper.md) | |
-| static class [OrderStatusMapper](orderstatusmapper.md) | |
-| static class [PaymentMethodMapper](paymentmethodmapper.md) | |
-| static class [PrintTemplateMapper](printtemplatemapper.md) | |
-| static class [ProductAttributeMapper](productattributemapper.md) | |
-| static class [ProductAttributePresetMapper](productattributepresetmapper.md) | |
-| static class [ProductMapper](productmapper.md) | |
-| static class [RegionMapper](regionmapper.md) | |
-| static class [ServicePriceMapper](servicepricemapper.md) | |
-| static class [ShippingMethodMapper](shippingmethodmapper.md) | |
-| static class [StoreMapper](storemapper.md) | |
-| static class [TaxClassMapper](taxclassmapper.md) | |
-| static class [TaxRateMapper](taxratemapper.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/activitylogentrymapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/activitylogentrymapper.md
deleted file mode 100644
index 25d62d5d8aa..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/activitylogentrymapper.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: ActivityLogEntryMapper
-description: API reference for ActivityLogEntryMapper in Umbraco Commerce
----
-## ActivityLogEntryMapper
-
-```csharp
-public static class ActivityLogEntryMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### ActivityLogEntryToDto
-
-```csharp
-public static ActivityLogEntryDto ActivityLogEntryToDto(ActivityLogEntry entity,
- Func userNameResolver)
-```
-
-
----
-
-#### ActivityLogEntryToDtos
-
-```csharp
-public static IEnumerable ActivityLogEntryToDtos(
- IEnumerable entity, Func userNameResolver)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/allowedcountryregionmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/allowedcountryregionmapper.md
deleted file mode 100644
index 6ea47e109bc..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/allowedcountryregionmapper.md
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: AllowedCountryRegionMapper
-description: API reference for AllowedCountryRegionMapper in Umbraco Commerce
----
-## AllowedCountryRegionMapper
-
-```csharp
-public static class AllowedCountryRegionMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### AllowedCountryCollectionToDtos
-
-```csharp
-public static List AllowedCountryCollectionToDtos(
- IEnumerable collection)
-```
-
-
----
-
-#### AllowedCountryDtosToCollection
-
-```csharp
-public static IEnumerable AllowedCountryDtosToCollection(
- IEnumerable dtos)
-```
-
-
----
-
-#### AllowedCountryDtoToEntity
-
-```csharp
-public static AllowedCountry AllowedCountryDtoToEntity(AllowedCountryDto dto)
-```
-
-
----
-
-#### AllowedCountryEntityToDto
-
-```csharp
-public static AllowedCountryDto AllowedCountryEntityToDto(AllowedCountry entity)
-```
-
-
----
-
-#### AllowedCountryRegionCollectionToDtos
-
-```csharp
-public static List AllowedCountryRegionCollectionToDtos(
- IEnumerable collection)
-```
-
-
----
-
-#### AllowedCountryRegionDtosToCollection
-
-```csharp
-public static IEnumerable AllowedCountryRegionDtosToCollection(
- IEnumerable dtos)
-```
-
-
----
-
-#### AllowedCountryRegionDtoToEntity
-
-```csharp
-public static AllowedCountryRegion AllowedCountryRegionDtoToEntity(AllowedCountryRegionDto dto)
-```
-
-
----
-
-#### AllowedCountryRegionEntityToDto
-
-```csharp
-public static AllowedCountryRegionDto AllowedCountryRegionEntityToDto(AllowedCountryRegion entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/attributemapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/attributemapper.md
deleted file mode 100644
index a235fe23eb8..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/attributemapper.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: AttributeMapper
-description: API reference for AttributeMapper in Umbraco Commerce
----
-## AttributeMapper
-
-```csharp
-public static class AttributeMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### AttributesToDtos
-
-```csharp
-public static IEnumerable AttributesToDtos(IEnumerable entities)
-```
-
-
----
-
-#### AttributeToDto
-
-```csharp
-public static AttributeDto AttributeToDto(Attribute entity, AttributeDto dto = null)
-```
-
-
----
-
-#### AttributeValuesToDtos
-
-```csharp
-public static IEnumerable AttributeValuesToDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### AttributeValueToDto
-
-```csharp
-public static AliasNamePairDto AttributeValueToDto(AttributeValue entity,
- AliasNamePairDto dto = null)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/cartmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/cartmapper.md
deleted file mode 100644
index 442efec8b76..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/cartmapper.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: CartMapper
-description: API reference for CartMapper in Umbraco Commerce
----
-## CartMapper
-
-```csharp
-public static class CartMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### CartEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable CartEntitiesToBasicDtos(IEnumerable entities)
-```
-
-
----
-
-#### CartEntityToBasicDto
-
-```csharp
-public static CartBasicDto CartEntityToBasicDto(OrderReadOnly entity, CartBasicDto dto = null)
-```
-
-
----
-
-#### CartEntityToEditDto
-
-```csharp
-public static CartEditDto CartEntityToEditDto(OrderReadOnly entity, CurrencyBasicDto currency,
- PaymentMethodBasicDto paymentMethod, CountryBasicDto paymentCountry,
- RegionBasicDto paymentRegion, ShippingMethodBasicDto shippingMethod,
- CountryBasicDto shippingCountry, RegionBasicDto shippingRegion, CartEditDto dto = null)
-```
-
-
----
-
-#### CartSaveDtoToEntity
-
-```csharp
-public static Order CartSaveDtoToEntity(CartSaveDto dto, Order entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/countrymapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/countrymapper.md
deleted file mode 100644
index 33eb4e120b3..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/countrymapper.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: CountryMapper
-description: API reference for CountryMapper in Umbraco Commerce
----
-## CountryMapper
-
-```csharp
-public static class CountryMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### CountryEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable CountryEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### CountryEntitiesToBasicDtos<TDto>
-
-```csharp
-public static IEnumerable CountryEntitiesToBasicDtos(
- IEnumerable entities)
- where TDto : CountryBasicDto, new()
-```
-
-
----
-
-#### CountryEntityToBasicDto<TDto>
-
-```csharp
-public static TDto CountryEntityToBasicDto(CountryReadOnly entity, TDto dto = default(TDto))
- where TDto : CountryBasicDto, new()
-```
-
-
----
-
-#### CountryEntityToEditDto
-
-```csharp
-public static CountryEditDto CountryEntityToEditDto(CountryReadOnly entity,
- CountryEditDto dto = null)
-```
-
-
----
-
-#### CountrySaveDtoToEntity
-
-```csharp
-public static Country CountrySaveDtoToEntity(CountrySaveDto dto, Country entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/currencymapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/currencymapper.md
deleted file mode 100644
index fd0ebad18d0..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/currencymapper.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: CurrencyMapper
-description: API reference for CurrencyMapper in Umbraco Commerce
----
-## CurrencyMapper
-
-```csharp
-public static class CurrencyMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### CurrencyEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable CurrencyEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### CurrencyEntityToBasicDto
-
-```csharp
-public static CurrencyBasicDto CurrencyEntityToBasicDto(CurrencyReadOnly entity,
- CurrencyBasicDto dto = null)
-```
-
-
----
-
-#### CurrencyEntityToEditDto
-
-```csharp
-public static CurrencyEditDto CurrencyEntityToEditDto(CurrencyReadOnly entity,
- CurrencyEditDto dto = null)
-```
-
-
----
-
-#### CurrencySaveDtoToEntity
-
-```csharp
-public static Currency CurrencySaveDtoToEntity(CurrencySaveDto dto, Currency entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/discountmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/discountmapper.md
deleted file mode 100644
index 833248d7746..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/discountmapper.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: DiscountMapper
-description: API reference for DiscountMapper in Umbraco Commerce
----
-## DiscountMapper
-
-```csharp
-public static class DiscountMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### DiscountEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable DiscountEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### DiscountEntityToBasicDto
-
-```csharp
-public static DiscountBasicDto DiscountEntityToBasicDto(DiscountReadOnly entity,
- DiscountBasicDto dto = null)
-```
-
-
----
-
-#### DiscountEntityToEditDto
-
-```csharp
-public static DiscountEditDto DiscountEntityToEditDto(DiscountReadOnly entity,
- DiscountEditDto dto = null)
-```
-
-
----
-
-#### DiscountSaveDtoToEntity
-
-```csharp
-public static Discount DiscountSaveDtoToEntity(DiscountSaveDto dto, Discount entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/emailtemplatemapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/emailtemplatemapper.md
deleted file mode 100644
index ac2a9373689..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/emailtemplatemapper.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: EmailTemplateMapper
-description: API reference for EmailTemplateMapper in Umbraco Commerce
----
-## EmailTemplateMapper
-
-```csharp
-public static class EmailTemplateMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### EmailTemplateEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable EmailTemplateEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### EmailTemplateEntityToBasicDto
-
-```csharp
-public static EmailTemplateBasicDto EmailTemplateEntityToBasicDto(EmailTemplateReadOnly entity,
- EmailTemplateBasicDto dto = null)
-```
-
-
----
-
-#### EmailTemplateEntityToEditDto
-
-```csharp
-public static EmailTemplateEditDto EmailTemplateEntityToEditDto(EmailTemplateReadOnly entity,
- EmailTemplateEditDto dto = null)
-```
-
-
----
-
-#### EmailTemplateSaveDtoToEntity
-
-```csharp
-public static EmailTemplate EmailTemplateSaveDtoToEntity(EmailTemplateSaveDto dto,
- EmailTemplate entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/entitymapperadapter.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/entitymapperadapter.md
deleted file mode 100644
index 9bcac08ff20..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/entitymapperadapter.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: EntityMapperAdapter
-description: API reference for EntityMapperAdapter in Umbraco Commerce
----
-## EntityMapperAdapter
-
-```csharp
-public class EntityMapperAdapter
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Constructors
-
-#### EntityMapperAdapter
-
-```csharp
-public EntityMapperAdapter(Func entityMapper)
-```
-
-
-### Methods
-
-#### EntitiesToBasicDtos
-
-```csharp
-public IEnumerable EntitiesToBasicDtos(IEnumerable entities)
-```
-
-
----
-
-#### EntityToBasicDto
-
-```csharp
-public EntityBasicDto EntityToBasicDto(EntityBase entity)
-```
-
-
-### Operators
-
-#### EntityMapperAdapter Implicit
-
-```csharp
-public static implicit operator EntityMapperAdapter(Func fnc)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/entitymapperfactory.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/entitymapperfactory.md
deleted file mode 100644
index 281d209a57b..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/entitymapperfactory.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: EntityMapperFactory
-description: API reference for EntityMapperFactory in Umbraco Commerce
----
-## EntityMapperFactory
-
-```csharp
-public static class EntityMapperFactory
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### GetEntityMapper
-
-```csharp
-public static EntityMapperAdapter GetEntityMapper(string entityType)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/exporttemplatemapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/exporttemplatemapper.md
deleted file mode 100644
index 6c2371034f8..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/exporttemplatemapper.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: ExportTemplateMapper
-description: API reference for ExportTemplateMapper in Umbraco Commerce
----
-## ExportTemplateMapper
-
-```csharp
-public static class ExportTemplateMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### ExportTemplateEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable ExportTemplateEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### ExportTemplateEntityToBasicDto
-
-```csharp
-public static ExportTemplateBasicDto ExportTemplateEntityToBasicDto(ExportTemplateReadOnly entity,
- ExportTemplateBasicDto dto = null)
-```
-
-
----
-
-#### ExportTemplateEntityToEditDto
-
-```csharp
-public static ExportTemplateEditDto ExportTemplateEntityToEditDto(ExportTemplateReadOnly entity,
- ExportTemplateEditDto dto = null)
-```
-
-
----
-
-#### ExportTemplateSaveDtoToEntity
-
-```csharp
-public static ExportTemplate ExportTemplateSaveDtoToEntity(ExportTemplateSaveDto dto,
- ExportTemplate entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/giftcardmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/giftcardmapper.md
deleted file mode 100644
index 47bacf46118..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/giftcardmapper.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: GiftCardMapper
-description: API reference for GiftCardMapper in Umbraco Commerce
----
-## GiftCardMapper
-
-```csharp
-public static class GiftCardMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### GiftCardEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable GiftCardEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### GiftCardEntityToBasicDto
-
-```csharp
-public static GiftCardBasicDto GiftCardEntityToBasicDto(GiftCardReadOnly entity,
- GiftCardBasicDto dto = null)
-```
-
-
----
-
-#### GiftCardEntityToEditDto
-
-```csharp
-public static GiftCardEditDto GiftCardEntityToEditDto(GiftCardReadOnly entity,
- GiftCardEditDto dto = null)
-```
-
-
----
-
-#### GiftCardSaveDtoToEntity
-
-```csharp
-public static GiftCard GiftCardSaveDtoToEntity(GiftCardSaveDto dto, GiftCard entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/ordermapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/ordermapper.md
deleted file mode 100644
index 17726e02725..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/ordermapper.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: OrderMapper
-description: API reference for OrderMapper in Umbraco Commerce
----
-## OrderMapper
-
-```csharp
-public static class OrderMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### OrderEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable OrderEntitiesToBasicDtos(
- IEnumerable entities, IEnumerable orderStatuses,
- IEnumerable paymentMethods,
- IEnumerable shippingMethods)
-```
-
-
----
-
-#### OrderEntityToBasicDto
-
-```csharp
-public static OrderBasicDto OrderEntityToBasicDto(OrderReadOnly entity,
- OrderStatusBasicDto orderStatus, PaymentMethodBasicDto paymentMethod,
- ShippingMethodBasicDto shippingMethod, OrderBasicDto dto = null)
-```
-
-
----
-
-#### OrderEntityToEditDto
-
-```csharp
-public static OrderEditDto OrderEntityToEditDto(OrderReadOnly entity,
- OrderStatusBasicDto orderStatus, PaymentMethodBasicDto paymentMethod,
- CountryBasicDto paymentCountry, RegionBasicDto paymentRegion,
- ShippingMethodBasicDto shippingMethod, CountryBasicDto shippingCountry,
- RegionBasicDto shippingRegion, OrderEditDto dto = null)
-```
-
-
----
-
-#### OrderSaveDtoToEntity
-
-```csharp
-public static Order OrderSaveDtoToEntity(OrderSaveDto dto, Order entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/orderstatusmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/orderstatusmapper.md
deleted file mode 100644
index b2500c15e66..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/orderstatusmapper.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: OrderStatusMapper
-description: API reference for OrderStatusMapper in Umbraco Commerce
----
-## OrderStatusMapper
-
-```csharp
-public static class OrderStatusMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### OrderStatusEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable OrderStatusEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### OrderStatusEntityToBasicDto
-
-```csharp
-public static OrderStatusBasicDto OrderStatusEntityToBasicDto(OrderStatusReadOnly entity,
- OrderStatusBasicDto dto = null)
-```
-
-
----
-
-#### OrderStatusEntityToEditDto
-
-```csharp
-public static OrderStatusEditDto OrderStatusEntityToEditDto(OrderStatusReadOnly entity,
- OrderStatusEditDto dto = null)
-```
-
-
----
-
-#### OrderStatusSaveDtoToEntity
-
-```csharp
-public static OrderStatus OrderStatusSaveDtoToEntity(OrderStatusSaveDto dto, OrderStatus entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/paymentmethodmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/paymentmethodmapper.md
deleted file mode 100644
index 9506979cf35..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/paymentmethodmapper.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: PaymentMethodMapper
-description: API reference for PaymentMethodMapper in Umbraco Commerce
----
-## PaymentMethodMapper
-
-```csharp
-public static class PaymentMethodMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### PaymentMethodEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable PaymentMethodEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### PaymentMethodEntityToBasicDto
-
-```csharp
-public static PaymentMethodBasicDto PaymentMethodEntityToBasicDto(PaymentMethodReadOnly entity,
- PaymentMethodBasicDto dto = null)
-```
-
-
----
-
-#### PaymentMethodEntityToEditDto
-
-```csharp
-public static PaymentMethodEditDto PaymentMethodEntityToEditDto(PaymentMethodReadOnly entity,
- IPaymentProvider paymentProvider, PaymentMethodEditDto dto = null)
-```
-
-
----
-
-#### PaymentMethodSaveDtoToEntity
-
-```csharp
-public static PaymentMethod PaymentMethodSaveDtoToEntity(PaymentMethodSaveDto dto,
- PaymentMethod entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/printtemplatemapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/printtemplatemapper.md
deleted file mode 100644
index f80f4e0011d..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/printtemplatemapper.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: PrintTemplateMapper
-description: API reference for PrintTemplateMapper in Umbraco Commerce
----
-## PrintTemplateMapper
-
-```csharp
-public static class PrintTemplateMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### PrintTemplateEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable PrintTemplateEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### PrintTemplateEntityToBasicDto
-
-```csharp
-public static PrintTemplateBasicDto PrintTemplateEntityToBasicDto(PrintTemplateReadOnly entity,
- PrintTemplateBasicDto dto = null)
-```
-
-
----
-
-#### PrintTemplateEntityToEditDto
-
-```csharp
-public static PrintTemplateEditDto PrintTemplateEntityToEditDto(PrintTemplateReadOnly entity,
- PrintTemplateEditDto dto = null)
-```
-
-
----
-
-#### PrintTemplateSaveDtoToEntity
-
-```csharp
-public static PrintTemplate PrintTemplateSaveDtoToEntity(PrintTemplateSaveDto dto,
- PrintTemplate entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productattributemapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productattributemapper.md
deleted file mode 100644
index e341dfd3c17..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productattributemapper.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: ProductAttributeMapper
-description: API reference for ProductAttributeMapper in Umbraco Commerce
----
-## ProductAttributeMapper
-
-```csharp
-public static class ProductAttributeMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### ProductAttributeEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable ProductAttributeEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### ProductAttributeEntitiesToDtos
-
-```csharp
-public static IEnumerable ProductAttributeEntitiesToDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### ProductAttributeEntityToBasicDto
-
-```csharp
-public static ProductAttributeBasicDto ProductAttributeEntityToBasicDto(
- ProductAttributeReadOnly entity, ProductAttributeBasicDto dto = null)
-```
-
-
----
-
-#### ProductAttributeEntityToEditDto
-
-```csharp
-public static ProductAttributeEditDto ProductAttributeEntityToEditDto(
- ProductAttributeReadOnly entity, ProductAttributeEditDto dto = null)
-```
-
-
----
-
-#### ProductAttributeSaveDtoToEntity
-
-```csharp
-public static ProductAttribute ProductAttributeSaveDtoToEntity(ProductAttributeSaveDto dto,
- ProductAttribute entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productattributepresetmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productattributepresetmapper.md
deleted file mode 100644
index 22c76fe1869..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productattributepresetmapper.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: ProductAttributePresetMapper
-description: API reference for ProductAttributePresetMapper in Umbraco Commerce
----
-## ProductAttributePresetMapper
-
-```csharp
-public static class ProductAttributePresetMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### ProductAttributePresetEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable ProductAttributePresetEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### ProductAttributePresetEntitiesToDtos
-
-```csharp
-public static IEnumerable ProductAttributePresetEntitiesToDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### ProductAttributePresetEntityToBasicDto
-
-```csharp
-public static ProductAttributePresetBasicDto ProductAttributePresetEntityToBasicDto(
- ProductAttributePresetReadOnly entity, ProductAttributePresetBasicDto dto = null)
-```
-
-
----
-
-#### ProductAttributePresetEntityToEditDto
-
-```csharp
-public static ProductAttributePresetEditDto ProductAttributePresetEntityToEditDto(
- ProductAttributePresetReadOnly entity, ProductAttributePresetEditDto dto = null)
-```
-
-
----
-
-#### ProductAttributePresetSaveDtoToEntity
-
-```csharp
-public static ProductAttributePreset ProductAttributePresetSaveDtoToEntity(
- ProductAttributePresetSaveDto dto, ProductAttributePreset entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productmapper.md
deleted file mode 100644
index 61150957dba..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/productmapper.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: ProductMapper
-description: API reference for ProductMapper in Umbraco Commerce
----
-## ProductMapper
-
-```csharp
-public static class ProductMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### ProductPricesToDtos
-
-```csharp
-public static IEnumerable ProductPricesToDtos(IEnumerable entities)
-```
-
-
----
-
-#### ProductPriceToDto
-
-```csharp
-public static ProductPriceDto ProductPriceToDto(ProductPrice entity, ProductPriceDto dto = null)
-```
-
-
----
-
-#### ProductSummariesToDtos
-
-```csharp
-public static IEnumerable ProductSummariesToDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### ProductSummaryCommonToDto
-
-```csharp
-public static ProductSummaryCommonDto ProductSummaryCommonToDto(IProductSummaryCommon entity,
- ProductSummaryCommonDto dto)
-```
-
-
----
-
-#### ProductSummaryToDto
-
-```csharp
-public static ProductSummaryDto ProductSummaryToDto(IProductSummary entity,
- ProductSummaryDto dto = null)
-```
-
-
----
-
-#### ProductVariantSummariesToDtos
-
-```csharp
-public static IEnumerable ProductVariantSummariesToDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### ProductVariantSummaryToDto
-
-```csharp
-public static ProductVariantSummaryDto ProductVariantSummaryToDto(IProductVariantSummary entity,
- ProductVariantSummaryDto dto = null)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/regionmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/regionmapper.md
deleted file mode 100644
index 2e382de7d18..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/regionmapper.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: RegionMapper
-description: API reference for RegionMapper in Umbraco Commerce
----
-## RegionMapper
-
-```csharp
-public static class RegionMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### RegionEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable RegionEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### RegionEntityToBasicDto
-
-```csharp
-public static RegionBasicDto RegionEntityToBasicDto(RegionReadOnly entity,
- RegionBasicDto dto = null)
-```
-
-
----
-
-#### RegionEntityToEditDto
-
-```csharp
-public static RegionEditDto RegionEntityToEditDto(RegionReadOnly entity, RegionEditDto dto = null)
-```
-
-
----
-
-#### RegionSaveDtoToEntity
-
-```csharp
-public static Region RegionSaveDtoToEntity(RegionSaveDto dto, Region entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/servicepricemapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/servicepricemapper.md
deleted file mode 100644
index 393b8de367a..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/servicepricemapper.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: ServicePriceMapper
-description: API reference for ServicePriceMapper in Umbraco Commerce
----
-## ServicePriceMapper
-
-```csharp
-public static class ServicePriceMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### AllowedCountryRegionServicePrices
-
-```csharp
-public static IEnumerable AllowedCountryRegionServicePrices(
- IEnumerable prices, IEnumerable allowedCountryRegions)
-```
-
-
----
-
-#### ServicePriceCollectionToDtos
-
-```csharp
-public static List ServicePriceCollectionToDtos(
- IEnumerable collection)
-```
-
-
----
-
-#### ServicePriceDtosToCollection
-
-```csharp
-public static IEnumerable ServicePriceDtosToCollection(
- IEnumerable dtos)
-```
-
-
----
-
-#### ServicePriceDtoToEntity
-
-```csharp
-public static ServicePrice ServicePriceDtoToEntity(ServicePriceDto dto)
-```
-
-
----
-
-#### ServicePriceEntityToDto
-
-```csharp
-public static ServicePriceDto ServicePriceEntityToDto(ServicePrice entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/shippingmethodmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/shippingmethodmapper.md
deleted file mode 100644
index b4239414c05..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/shippingmethodmapper.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: ShippingMethodMapper
-description: API reference for ShippingMethodMapper in Umbraco Commerce
----
-## ShippingMethodMapper
-
-```csharp
-public static class ShippingMethodMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### ShippingMethodEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable ShippingMethodEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### ShippingMethodEntityToBasicDto
-
-```csharp
-public static ShippingMethodBasicDto ShippingMethodEntityToBasicDto(ShippingMethodReadOnly entity,
- ShippingMethodBasicDto dto = null)
-```
-
-
----
-
-#### ShippingMethodEntityToEditDto
-
-```csharp
-public static ShippingMethodEditDto ShippingMethodEntityToEditDto(ShippingMethodReadOnly entity,
- ShippingMethodEditDto dto = null)
-```
-
-
----
-
-#### ShippingMethodSaveDtoToEntity
-
-```csharp
-public static ShippingMethod ShippingMethodSaveDtoToEntity(ShippingMethodSaveDto dto,
- ShippingMethod entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/storemapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/storemapper.md
deleted file mode 100644
index 3d2b56cf5de..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/storemapper.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: StoreMapper
-description: API reference for StoreMapper in Umbraco Commerce
----
-## StoreMapper
-
-```csharp
-public static class StoreMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### StoreEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable StoreEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### StoreEntityToBasicDto
-
-```csharp
-public static StoreBasicDto StoreEntityToBasicDto(StoreReadOnly entity, StoreBasicDto dto = null)
-```
-
-
----
-
-#### StoreEntityToEditDto
-
-```csharp
-public static StoreEditDto StoreEntityToEditDto(StoreReadOnly entity, StoreEditDto dto = null)
-```
-
-
----
-
-#### StoreSaveDtoToEntity
-
-```csharp
-public static Store StoreSaveDtoToEntity(StoreSaveDto dto, Store entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/taxclassmapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/taxclassmapper.md
deleted file mode 100644
index d4f9140d1df..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/taxclassmapper.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: TaxClassMapper
-description: API reference for TaxClassMapper in Umbraco Commerce
----
-## TaxClassMapper
-
-```csharp
-public static class TaxClassMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### TaxClassEntitiesToBasicDtos
-
-```csharp
-public static IEnumerable TaxClassEntitiesToBasicDtos(
- IEnumerable entities)
-```
-
-
----
-
-#### TaxClassEntityToBasicDto
-
-```csharp
-public static TaxClassBasicDto TaxClassEntityToBasicDto(TaxClassReadOnly entity,
- TaxClassBasicDto dto = null)
-```
-
-
----
-
-#### TaxClassEntityToEditDto
-
-```csharp
-public static TaxClassEditDto TaxClassEntityToEditDto(TaxClassReadOnly entity,
- TaxClassEditDto dto = null)
-```
-
-
----
-
-#### TaxClassSaveDtoToEntity
-
-```csharp
-public static TaxClass TaxClassSaveDtoToEntity(TaxClassSaveDto dto, TaxClass entity)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/taxratemapper.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/taxratemapper.md
deleted file mode 100644
index f904cf3c817..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-mappers/taxratemapper.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: TaxRateMapper
-description: API reference for TaxRateMapper in Umbraco Commerce
----
-## TaxRateMapper
-
-```csharp
-public static class TaxRateMapper
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Mappers](README.md)
-
-### Methods
-
-#### CountryRegionTaxRateCollectionToDtos
-
-```csharp
-public static List CountryRegionTaxRateCollectionToDtos(
- IEnumerable collection)
-```
-
-
----
-
-#### CountryRegionTaxRateDtosToCollection
-
-```csharp
-public static IEnumerable CountryRegionTaxRateDtosToCollection(
- IEnumerable dtos)
-```
-
-
----
-
-#### CountryRegionTaxRateDtoToEntity
-
-```csharp
-public static CountryRegionTaxRate CountryRegionTaxRateDtoToEntity(CountryRegionTaxRateDto dto)
-```
-
-
----
-
-#### CountryRegionTaxRateEntityToDto
-
-```csharp
-public static CountryRegionTaxRateDto CountryRegionTaxRateEntityToDto(CountryRegionTaxRate entity)
-```
-
-
----
-
-#### DecimalToTaxRate
-
-```csharp
-public static TaxRate DecimalToTaxRate(decimal value)
-```
-
-
----
-
-#### TaxRateToDecimal
-
-```csharp
-public static decimal TaxRateToDecimal(TaxRate value)
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/README.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/README.md
deleted file mode 100644
index 76304a3e3de..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Umbraco.Commerce.Cms.Web.Models.Reporting
-description: API reference for Umbraco.Commerce.Cms.Web.Models.Reporting in Umbraco Commerce
----
-## Umbraco.Commerce.Cms.Web.Models.Reporting namespace
-
-| Public Type | Description |
-| --- | --- |
-| class [CartConversionRateDataDto](cartconversionratedatadto.md) | |
-| class [CartConversionRatesReportDataDto](cartconversionratesreportdatadto.md) | |
-| class [ChartDataDto<TValue>](chartdatadto-1.md) | |
-| class [ChartDatasetDto<TValue>](chartdatasetdto-1.md) | |
-| class [ChartReportDataDto<TValue>](chartreportdatadto-1.md) | |
-| class [ChartReportDataDto<TValue,TChartDataValue>](chartreportdatadto-2.md) | |
-| class [ProductSalesDataDto](productsalesdatadto.md) | |
-| class [ProductSalesReportDataDto](productsalesreportdatadto.md) | |
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/cartconversionratedatadto.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/cartconversionratedatadto.md
deleted file mode 100644
index c2dae3313f1..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/cartconversionratedatadto.md
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: CartConversionRateDataDto
-description: API reference for CartConversionRateDataDto in Umbraco Commerce
----
-## CartConversionRateDataDto
-
-```csharp
-public class CartConversionRateDataDto
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Reporting](README.md)
-
-### Constructors
-
-#### CartConversionRateDataDto
-
-The default constructor.
-
-```csharp
-public CartConversionRateDataDto()
-```
-
-
-### Properties
-
-#### CurrentCarts
-
-```csharp
-public long CurrentCarts { get; set; }
-```
-
-
----
-
-#### CurrentPercentageOfTotalCarts
-
-```csharp
-public FormattedValueDto CurrentPercentageOfTotalCarts { get; set; }
-```
-
-
----
-
-#### PercentageChange
-
-```csharp
-public FormattedValueDto PercentageChange { get; set; }
-```
-
-
----
-
-#### PercentagePointChange
-
-```csharp
-public FormattedValueDto PercentagePointChange { get; set; }
-```
-
-
----
-
-#### PreviousCarts
-
-```csharp
-public long? PreviousCarts { get; set; }
-```
-
-
----
-
-#### PreviousPercentageOfTotalCarts
-
-```csharp
-public FormattedValueDto PreviousPercentageOfTotalCarts { get; set; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/cartconversionratesreportdatadto.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/cartconversionratesreportdatadto.md
deleted file mode 100644
index 5a204c5fc4b..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/cartconversionratesreportdatadto.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: CartConversionRatesReportDataDto
-description: API reference for CartConversionRatesReportDataDto in Umbraco Commerce
----
-## CartConversionRatesReportDataDto
-
-```csharp
-public class CartConversionRatesReportDataDto : ChartReportDataDto
-```
-
-**Inheritance**
-
-* Class [ChartReportDataDto<TValue,TChartDataValue>](chartreportdatadto-2.md)
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Reporting](README.md)
-
-### Constructors
-
-#### CartConversionRatesReportDataDto
-
-The default constructor.
-
-```csharp
-public CartConversionRatesReportDataDto()
-```
-
-
-### Properties
-
-#### CurrentTotalCarts
-
-```csharp
-public long CurrentTotalCarts { get; set; }
-```
-
-
----
-
-#### PreviousTotalCarts
-
-```csharp
-public long? PreviousTotalCarts { get; set; }
-```
-
-
----
-
-#### TotalCartsFinalized
-
-```csharp
-public CartConversionRateDataDto TotalCartsFinalized { get; set; }
-```
-
-
----
-
-#### TotalCartsReachedCheckout
-
-```csharp
-public CartConversionRateDataDto TotalCartsReachedCheckout { get; set; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/chartdatadto-1.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/chartdatadto-1.md
deleted file mode 100644
index 0a0e639f259..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/chartdatadto-1.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: ChartDataDto
-description: API reference for ChartDataDto in Umbraco Commerce
----
-## ChartDataDto<TValue>
-
-```csharp
-public class ChartDataDto
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Reporting](README.md)
-
-### Constructors
-
-#### ChartDataDto<TValue>
-
-The default constructor.
-
-```csharp
-public ChartDataDto()
-```
-
-
-### Properties
-
-#### Datasets
-
-```csharp
-public virtual IEnumerable> Datasets { get; set; }
-```
-
-
-
diff --git a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/chartdatasetdto-1.md b/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/chartdatasetdto-1.md
deleted file mode 100644
index accb8762cd2..00000000000
--- a/14/umbraco-commerce/reference/umbraco-commerce-cms-web/umbraco-commerce-cms-web-models-reporting/chartdatasetdto-1.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: ChartDatasetDto
-description: API reference for ChartDatasetDto in Umbraco Commerce
----
-## ChartDatasetDto<TValue>
-
-```csharp
-public class ChartDatasetDto
-```
-
-**Namespace**
-* [Umbraco.Commerce.Cms.Web.Models.Reporting](README.md)
-
-### Constructors
-
-#### ChartDatasetDto<TValue>
-
-The default constructor.
-
-```csharp
-public ChartDatasetDto()
-```
-
-
-### Properties
-
-#### Data
-
-```csharp
-public IEnumerable Data { get; set; }
-```
-
-
----
-
-#### Labels
-
-```csharp
-public IEnumerable