Ekom.Core
0.2.83
See the version list below for details.
dotnet add package Ekom.Core --version 0.2.83
NuGet\Install-Package Ekom.Core -Version 0.2.83
<PackageReference Include="Ekom.Core" Version="0.2.83" />
<PackageVersion Include="Ekom.Core" Version="0.2.83" />
<PackageReference Include="Ekom.Core" />
paket add Ekom.Core --version 0.2.83
#r "nuget: Ekom.Core, 0.2.83"
#:package Ekom.Core@0.2.83
#addin nuget:?package=Ekom.Core&version=0.2.83
#tool nuget:?package=Ekom.Core&version=0.2.83
<h1 align="center"> Ekom
</h1>
<h2 align="center"> Open Source Ecommerce package for Umbraco </h2>
Supports Umbraco version 10+
Ekom is a versatile and fully customizable eCommerce solution that is free to use forever. This package has been built with ASP NET Core, focusing on performance and security, and is compatible with Umbraco versions 10 and above.
Installation
Install the appropriate Umbraco versioned package to your solution (f.x. Ekom.U10) Install the Ekom.Web package into your sites main project (contains wwwroot)
NuGet: https://www.nuget.org/packages/Ekom.U10
dotnet add package Ekom.U10
PM> Install-Package Ekom.U10
Ekom.Web
dotnet add package Ekom.Web
PM> Install-Package Ekom.Web
Some of the key featured of Ekom includes:
- 100% free and open source forever.
- Support for both B2B (Business to Business) and B2C (Business to Customer) transactions
- Headless capabilities, allowing for more flexibility in frontend design and development
- Multilingual and multicurrency support, making it suitable for international businesses
- A powerful order management system
- Out-of-the-box support for multiple payment providers, along with the ability to plug in additional providers as needed
- Flexible shipping provider configurations, including the ability to connect with external services
- The capability to set up flexible discounts
- Support for complex variants, a crucial feature for eCommerce platforms
- Integration support with external systems like Microsoft Dynamics Business Central, Dynamics AX, DK, Salesforce, and others
- Advanced inventory management tools
- Built with ASP NET Core with focus on performance and security
- The ability to be extended as per your business requirements
- And many more features....
Appsettings configuration
All Ekom settings live under the Ekom section in appsettings.json.
"Ekom": {
"PerStoreStock": false,
"ExamineSearchIndex": "ExternalIndex",
"ShareBasket": false,
"BasketCookieLifetime": 1,
"CustomImage": "images",
"ReservationTimeout": 30,
"CategoryRootLevel": 3,
"VatCalcRounding": "AwayFromZero",
"VatRoundingScope": "PerUnit",
"VatIncludedPerUnitPolicy": "PreserveStickerGross",
"ApplyVatOnShipping": true,
"UserBasket": false,
"DisableStock": false,
"AbsoluteUrls": true,
"DefaultProductOrderBy": "DateDesc",
"GlobalCatalog": false,
"EmailNotifications": "orders@example.com",
"CustomerData": false,
"Manager": {
"SectionAccessGroup": "ekom,commerce-admins",
"StoreGroupPermissions": {
"store1": [ "group-a", "group-b" ]
}
},
"Headless": {
"ReValidateApis": [
{ "Store": "store1", "Url": "https://example.com/api/revalidate", "Secret": "secret" }
]
},
"Payments": {
"valitor": {
"merchantId": "1",
"verificationCode": "xxxxx",
"merchantName": "",
"paymentPageUrl": "https://paymentweb.uat.valitor.is/"
}
}
}
PerStoreStock(bool, defaultfalse): Use per-store stock cache instead of product/variant stock.ExamineSearchIndex(string, defaultExternalIndex): Examine index name used for search.ShareBasket(bool, defaultfalse): Share baskets between stores; requires same currencies across stores.BasketCookieLifetime(number, days, default1): Order cookie lifespan in days.CustomImage(string, defaultimages): Media folder alias for product images.ReservationTimeout(number, minutes, default30): Checkout reservation timeout in minutes.CategoryRootLevel(int, default3): Minimum Umbraco level for categories.VatCalcRounding(Rounding enum, defaultAwayFromZero):None,RoundDown,RoundUp,RoundToEven,AwayFromZero.VatRoundingScope(VatRoundingScope enum, defaultPerUnit):PerUnit,PerTotal.VatIncludedPerUnitPolicy(VatIncludedPerUnitPolicy enum, defaultPreserveStickerGross):PreserveStickerGross,LineLevelVat.ApplyVatOnShipping(bool, defaultfalse): Apply VAT to shipping costs.UserBasket(bool, defaultfalse): Single basket per member stored on the member "orderId".DisableStock(bool, defaultfalse): Disable stock checks.AbsoluteUrls(bool, defaultfalse): Force backoffice URLs to be absolute for multi-site setups.DefaultProductOrderBy(OrderBy enum, defaultDateDesc): SeeEkom.Utilities.Enums.OrderByvalues for options.GlobalCatalog(bool, defaultfalse): If product not found in current store, search other stores.EmailNotifications(string, optional): Override Umbraco email forMailServicenotifications.CustomerData(bool, defaultfalse): Store checkout customer data inekmCustomerDatatable.Manager:SectionAccessGroup(CSV string): Allowed backoffice groups for the Ekom section.Manager:StoreGroupPermissions(object): Store alias to allowed group list mapping.SectionAccessRules(CSV string, legacy): Backwards-compatible alias forManager:SectionAccessGroup.Headless:ReValidateApis(list): Items withStore,Url,Secretfor headless revalidation.Payments(object): Provider-specific configuration used by payment providers.
Plugins
- https://github.com/Vettvangur/Ekom/tree/Ekom/Plugins/Ekom.Klaviyo
- https://github.com/Vettvangur/Ekom/tree/Ekom/Plugins/Ekom.Algolia
Documentation
Contributing
We use squash merges and Conventional Commit style PR titles so release-please can generate release PRs.
If you must use merge commits, every individual commit message still has to be Conventional Commits.
Example PR titles:
feat: add vat rounding settings to docs
fix: handle null payment provider in checkout
chore: update dependencies
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Azure.Identity (>= 1.17.1)
- CommonServiceLocator (>= 2.0.7)
- Ekom.Common (>= 0.2.83)
- Ekom.Payments.Core (>= 0.2.51)
- Hangfire (>= 1.8.18)
- linq2db (>= 5.4.1)
- Microsoft.AspNetCore.Http.Extensions (>= 2.3.0)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.3.0)
- Microsoft.AspNetCore.Mvc.Core (>= 2.3.9)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 8.0.11)
- Microsoft.Data.SqlClient (>= 6.1.2)
- Microsoft.Data.Sqlite (>= 8.0.11)
- Microsoft.Extensions.Caching.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.3)
- murmurhash (>= 1.0.3)
- Newtonsoft.Json (>= 13.0.4)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Ekom.Core:
| Package | Downloads |
|---|---|
|
Ekom.Web
Ekom Web. This Package has all the web files that Ekom requires. |
|
|
Ekom.AspNetCore
Ekom ASP.NET Core - Vettvangur E-Commerce solution |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.85 | 30 | 3/14/2026 |
| 0.2.84 | 45 | 3/13/2026 |
| 0.2.83 | 68 | 3/12/2026 |
| 0.2.82 | 62 | 3/12/2026 |
| 0.2.81 | 81 | 3/11/2026 |
| 0.2.80 | 150 | 3/10/2026 |
| 0.2.79 | 181 | 3/4/2026 |
| 0.2.78 | 182 | 3/4/2026 |
| 0.2.77 | 186 | 3/4/2026 |
| 0.2.76 | 180 | 3/4/2026 |
| 0.2.75 | 189 | 3/4/2026 |
| 0.2.74 | 186 | 3/4/2026 |
| 0.2.73 | 181 | 3/4/2026 |
| 0.2.72 | 255 | 2/26/2026 |
| 0.2.71 | 227 | 2/26/2026 |
| 0.2.70 | 319 | 2/24/2026 |
| 0.2.69 | 243 | 2/24/2026 |
| 0.2.68 | 240 | 2/24/2026 |
| 0.2.67 | 233 | 2/23/2026 |
| 0.2.66 | 227 | 2/23/2026 |