---
title: Shipping-related customizing
---

> 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).

To customize the shipping functionality of the Xperience E-commerce Solution, use the following approach

1. Implement a [custom shipping carrier provider](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/shipping-related-customizing/implementing-custom-shipping-carrier-providers.md).
2. [Register the carrier](https://docs.kentico.com/13/e-commerce-features/configuring-on-line-stores/configuring-shipping-options/configuring-shipping-carriers.md) in the administration interface.
3. Create [shipping options](https://docs.kentico.com/13/e-commerce-features/configuring-on-line-stores/configuring-shipping-options.md) that use the services of the custom carrier.

By creating a custom shipping carrier provider, you gain full control over the shipping costs and availability of the related shipping options. For example, you can:

- Calculate shipping costs based on variables, such as the country in the delivery address, the package weight, etc.
- Retrieve shipping costs using the external API of a shipping company (FedEx, USPS, Australia Post, etc.).
- Set conditions that determine exactly when shipping options are available (based on the properties of individual orders or any other variables).

> **Tip:** If you wish to define custom discounts that apply to shipping costs, see [Customizing discounts](https://docs.kentico.com/13/e-commerce-features/customizing-on-line-stores/customizing-discounts.md).

> **Info:** The E-commerce API uses the following additional interfaces to connect the functionality of shipping carrier providers with the overall shopping cart and order calculation logic (see [Customizing the 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) to learn more).
>
> - **IDeliveryBuilder** – prepares the _Delivery_ objects required by the _GetPrice_ and _CanDeliver_ methods of shipping carrier providers, based on shopping cart calculation data. When registering _IDeliveryBuilder_ implementations using the _RegisterImplementation_ assembly attribute, set the _Lifestyle_ property to _Lifestyle.Transient_.
> - **IShippingPriceService** – calculates the final shipping price for shopping carts or orders. The default _IShippingPriceService_ implementation calculates the base shipping price using the _IDeliveryBuilder_ and the shipping carrier provider of the order's shipping option, and then applies shipping discounts provided by the registered _IShippingtDiscountSource_.
>
> Customization of these interfaces is not required or recommended in typical scenarios.
