---
title: E-commerce customization model
related:
  - https://docs.kentico.com/13/custom-development.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

The E-commerce Solution allows developers to customize the default functionality. Different parts of the system can be modified using one of the following customization approaches:

- Create and register custom implementations of various interfaces
- Inherit from default classes, override specific methods, and register your derived class

## Calculation interface overview

The following diagram shows the most important interfaces that the E-commerce API uses to:

- Calculate prices displayed in catalogs on the live site (when using the [appropriate API](https://docs.kentico.com/13/e-commerce-features/developing-on-line-stores/displaying-product-listings.md))
- Evaluate and calculate the values of shopping carts and orders

![Diagram showing the customizable interfaces used by the calculation logic of the E-commerce Solution](https://docs.kentico.com/docsassets/13/e-commerce-customization-model/EC_calculation_interfaces.png "Diagram showing the customizable interfaces used by the calculation logic of the E-commerce Solution")

The structure of the API allows you to create your own implementations of one or more interfaces and register them instead of the defaults. The overall calculation engine then integrates your customizations while keeping the default behavior for the remaining functionality.

For details and customization examples related to specific parts of the calculation logic, see the corresponding pages:

- [Product prices](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/product-related-customizing/customizing-product-prices.md)
- [Tax calculations](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/customizing-tax-calculation.md)
- [Discounts](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/customizing-discounts.md)
- [Shipping](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/shipping-related-customizing.md)
- [Overall shopping cart calculation](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/shopping-cart-related-customizing/customizing-the-shopping-cart-calculation.md)
- [Rounding](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/customizing-price-rounding.md)

## Custom providers

You can modify or extend certain parts of the system's functionality by inheriting from default classes (typically _Provider_ classes) and overriding their virtual methods. Examples related to e-commerce functionality include:

- [Customizing creation of new customers](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/customer-related-customizing/customizing-creation-of-new-customers.md)
- [Customizing order management](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/customizing-orders.md)
- [Limiting payment options based on conditions](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/payment-related-customizing/making-payment-methods-dependent-on-shipping-options.md)

See also: [Customizing providers](https://docs.kentico.com/13/custom-development/customizing-providers.md)

## Other customizations

If you wish to use Google Analytics to measure and analyze shopping activity on your website (product impressions, purchases, etc.), see [Integrating Google Analytics Enhanced Ecommerce](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/integrating-google-analytics-enhanced-ecommerce.md).

You can also use the general Xperience features to add custom functionality that fulfills your specific requirements. For example, add custom [applications (modules)](https://docs.kentico.com/13/custom-development/creating-custom-modules.md).
