Learn how to migrate a Vendr solution to Umbraco Commerce.
This guide provides a step-by-step approach to migrating a default Vendr solution to Umbraco Commerce.
Upgrade to the latest version of Vendr before continuing with the migration.
You can upgrade your installation by installation the latest version on top of the existing one.
You can find details on migrating the Checkout package as well as custom Payment Providers in the Further Migrations section of this article.
Key changes
Before outlining the exact steps, there are a few key changes to be aware of.
These changes will dictate the steps to take in the process of migrating to Umbraco Commerce.
Project, Package, and Namespace changes
Vendr
Umbraco Commerce
Vendr.Common
Umbraco.Commerce.Common
Vendr.Core
Umbraco.Commerce.Core
Vendr.Infrastructure
Umbraco.Commerce.Infrastructure
Vendr.Persistence
Umbraco.Commerce.Persistence
Vendr.Persistence.Sqlite
Umbraco.Commerce.Persistence.Sqlite
Vendr.Persistence.SqlServer
Umbraco.Commerce.Persistence.SqlServer
Vendr.Umbraco
Umbraco.Commerce.Cms
Vendr.Umbraco.Web
Umbraco.Commerce.Cms.Web
Vendr.Web
Umbraco.Commerce.Web
Vendr.Web.UI
Umbraco.Commerce.Web.StaticAssets
Vendr.Umbraco.Startup
Umbraco.Commerce.Cms.Startup
Vendr
Umbraco.Commerce
C# Class changes
Namespace changes as documented above.
All classes containing the Vendr keyword are now updated to UmbracoCommerce.
Examples: IVendrApi is now IUmbracoCommerceApi and AddVendr() is now AddUmbracoCommerce().
JavaScript changes
All vendr modules have changed to umbraco.commerce modules.
All vendr prefixed directives, services, and resources are now prefixed with uc.
All vendr prefixed events now follow this format: Umbraco.Commerce.{target}.{action}.
UI Changes
All static UI assets are served via a Razor Compiled Library (RCL) and are no longer found in the App_Plugins folder.
The folder within App_Plugins still exists for the static assets that are user configurable.
The folder with App_Plugins has been renamed from Vendr to UmbracoCommerce.
UI Config files have changed from .js files to .json.
Step 1: Replace dependencies
In this first step, we will be replacing all existing Vendr dependencies with Umbraco Commerce dependencies.
Remove any installed Vendr packages (including Payment Providers):
dotnetremovepackageVendr
Take a backup of any Vendr-specific templates and config files you will want to reuse:
Delete the Vendr App_Plugins folder:
rmdirApp_Plugins\Vendr
Install Umbraco.Commerce:
dotnetaddpackageUmbraco.Commerce
Install Umbraco Commerce packages including any payment providers previously removed.
Reapply any backed-up config files in their new App_Plugins location.
Move any backed-up templates into the ~/Views/UmbracoCommerce/Templates/ folder.
Rename any config files with a .json file extension rather than .
Compile your project against .NET 7.0.
Step 2: Update namespaces and entity names
Based on the Key Changes outlined above update all Vendr references to the new Umbraco Commerce alternatives. Ensure you update any Views/Partials that also reference these.
Step 3: Update the database
In this step, we will cover updating the database for Umbraco Commerce.
ALTER TABLE vendrCurrency RENAME TO umbracoCommerceCurrency;ALTER TABLE vendrTaxClass RENAME TO umbracoCommerceTaxClass;ALTER TABLE vendrStock RENAME TO umbracoCommerceStock;ALTER TABLE vendrOrderStatus RENAME TO umbracoCommerceOrderStatus;ALTER TABLE vendrEmailTemplate RENAME TO umbracoCommerceEmailTemplate;ALTER TABLE vendrPaymentMethod RENAME TO umbracoCommercePaymentMethod;ALTER TABLE vendrShippingMethod RENAME TO umbracoCommerceShippingMethod;ALTER TABLE vendrCountry RENAME TO umbracoCommerceCountry;ALTER TABLE vendrRegion RENAME TO umbracoCommerceRegion;ALTER TABLE vendrCurrencyAllowedCountry RENAME TO umbracoCommerceCurrencyAllowedCountry;ALTER TABLE vendrPaymentMethodAllowedCountryRegion RENAME TO umbracoCommercePaymentMethodAllowedCountryRegion;ALTER TABLE vendrPaymentMethodCountryRegionPrice RENAME TO umbracoCommercePaymentMethodCountryRegionPrice;ALTER TABLE vendrPaymentMethodPaymentProviderSetting RENAME TO umbracoCommercePaymentMethodPaymentProviderSetting;ALTER TABLE vendrShippingMethodAllowedCountryRegion RENAME TO umbracoCommerceShippingMethodAllowedCountryRegion;ALTER TABLE vendrShippingMethodCountryRegionPrice RENAME TO umbracoCommerceShippingMethodCountryRegionPrice;ALTER TABLE vendrTaxClassCountryRegionTaxRate RENAME TO umbracoCommerceTaxClassCountryRegionTaxRate;ALTER TABLE vendrDiscount RENAME TO umbracoCommerceDiscount;ALTER TABLE vendrDiscountCode RENAME TO umbracoCommerceDiscountCode;ALTER TABLE vendrOrder RENAME TO umbracoCommerceOrder;ALTER TABLE vendrOrderProperty RENAME TO umbracoCommerceOrderProperty;ALTER TABLE vendrOrderLine RENAME TO umbracoCommerceOrderLine;ALTER TABLE vendrOrderLineProperty RENAME TO umbracoCommerceOrderLineProperty;ALTER TABLE vendrGiftCard RENAME TO umbracoCommerceGiftCard;ALTER TABLE vendrOrderAppliedDiscountCode RENAME TO umbracoCommerceOrderAppliedDiscountCode;ALTER TABLE vendrOrderAppliedGiftCard RENAME TO umbracoCommerceOrderAppliedGiftCard;ALTER TABLE vendrStoreAllowedUserRole RENAME TO umbracoCommerceStoreAllowedUserRole;ALTER TABLE vendrStoreAllowedUser RENAME TO umbracoCommerceStoreAllowedUser;ALTER TABLE vendrFrozenPrice RENAME TO umbracoCommerceFrozenPrice;ALTER TABLE vendrGiftCardProperty RENAME TO umbracoCommerceGiftCardProperty;ALTER TABLE vendrActivityLog RENAME TO umbracoCommerceActivityLog;ALTER TABLE vendrOrderPriceAdjustment RENAME TO umbracoCommerceOrderPriceAdjustment;ALTER TABLE vendrOrderAmountAdjustment RENAME TO umbracoCommerceOrderAmountAdjustment;ALTER TABLE vendrProductAttribute RENAME TO umbracoCommerceProductAttribute;ALTER TABLE vendrProductAttributeValue RENAME TO umbracoCommerceProductAttributeValue;ALTER TABLE vendrTranslatedValue RENAME TO umbracoCommerceTranslatedValue;ALTER TABLE vendrProductAttributePreset RENAME TO umbracoCommerceProductAttributePreset;ALTER TABLE vendrProductAttributePresetAllowedAttribute RENAME TO umbracoCommerceProductAttributePresetAllowedAttribute;ALTER TABLE vendrOrderLineAttribute RENAME TO umbracoCommerceOrderLineAttribute;ALTER TABLE vendrPrintTemplate RENAME TO umbracoCommercePrintTemplate;ALTER TABLE vendrExportTemplate RENAME TO umbracoCommerceExportTemplate;ALTER TABLE vendrStoreEntityTag RENAME TO umbracoCommerceStoreEntityTag;ALTER TABLE vendrMigrations RENAME TO umbracoCommerceMigrations;ALTER TABLE vendrStore RENAME TO umbracoCommerceStore;
Swap Vendr property editors for Umbraco Commerce property editors:
UPDATE umbracoDataTypeSET propertyEditorAlias = REPLACE(propertyEditorAlias, 'Vendr.', 'Umbraco.Commerce.')WHERE propertyEditorAlias LIKE 'Vendr.%'
Swap the Vendr variants editor for the Umbraco Commerce variants editor in the block list data entry:
UPDATE umbracoPropertyDataSET textValue = REPLACE(textValue, 'Vendr.VariantsEditor', 'Umbraco.Commerce.VariantsEditor')WHERE textValue LIKE '%Vendr.VariantsEditor%';
Swap Vendr price/amount adjustments to Umbraco Commerce price/amount adjustments:
UPDATE umbracoCommerceOrderPriceAdjustmentSET type= REPLACE(type, 'Vendr.', 'Umbraco.Commerce.')WHERE type LIKE '%Vendr.%';UPDATE umbracoCommerceOrderAmountAdjustmentSET type= REPLACE(type, 'Vendr.', 'Umbraco.Commerce.')WHERE type LIKE '%Vendr.%';
Update template paths:
UPDATE umbracoCommerceEmailTemplateSET templateView = REPLACE(templateView, '/App_Plugins/Vendr/templates/email', '/Views/UmbracoCommerce/Templates/Email')WHERE templateView LIKE '%/Vendr/%';UPDATE umbracoCommercePrintTemplateSET templateView = REPLACE(templateView, '/App_Plugins/Vendr/templates/print', '/Views/UmbracoCommerce/Templates/Print')WHERE templateView LIKE '%/Vendr/%';UPDATE umbracoCommerceExportTemplateSET templateView = REPLACE(templateView, '/App_Plugins/Vendr/templates/export', '/Views/UmbracoCommerce/Templates/Export')WHERE templateView LIKE '%/Vendr/%';
Update the migrations log:
UPDATE umbracoCommerceMigrationsSET migration = REPLACE(migration, 'Vendr.', 'Umbraco.Commerce.')WHERE migration LIKE 'Vendr.%';
Update the activity logs:
UPDATE umbracoCommerceActivityLogSET eventType = REPLACE(eventType, 'vendr/', 'commerce/')WHERE eventType LIKE 'vendr/%';
Step 4: Finalizing the migration
Delete any obj/bin folders in your projects to ensure a clean build.
Recompile all projects and ensure all dependencies are restored correctly
Delete the existing Vendr license files in the umbraco\Licenses folder.
Add your new Umbraco.Commerce license key to the appSettings.json file:
It is highly recommended to ensure everything works as expected, before moving on to migrating packages and custom payment providers.
Further Migrations
If you have been using the Vendr Checkout package, you will need to follow some additional steps to migrate this package to Umbraco Commerce. Follow the link below for a complete guide:
Any custom payment providers used with Vendr also need to be migrated to Umbraco Commerce. Follow the link below to find detailed steps on how to perform this migration: