# Available Extensions

This page lists all the extensions that are available for Salesforce Commerce. New extensions are added as they become available.

To create an extension provider, you must know which base Apex class to extend and the extension point name for mapping. Both the the base Apex class name and extension point name are listed for each extension.

This page lists two types of extensions: domain and endpoint.

Domain extensions extend functional domains, such as cart calculation. In contrast, endpoint extensions extend selected Connect API endpoints.

:::important
The release status and availability varies from extension to extension. This page is updated to reflect the latest release status of each extension.
:::

## Domain Extensions for Buyer Group

The extension listed in this section is used for Buyer Group.

### Buyer Groups Extensibility Service

Dynamically assign users to buyer groups by executing custom Apex business logic.

- **Base Apex class**: [CommerceBuyGrp.BuyerGroupEvaluationService](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_CommerceBuyGrp_BuyerGroupEvaluationService.htm)
- **Extension point name**: Commerce_Domain_BuyerGroup_EvaluationService
- **Namespace**: `CommerceBuyGrp`. See [Buyer Group Reference](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_namespace_CommerceBuyGrp.htm).

## Domain Extensions for Cart Calculate API

The extensions listed in this section are all functionally related, and they all support cart calculations, including cart calculations that occur during checkout. These extensions comprise the [Cart Calculate API](/docs/commerce/extensions/guide/cart-calculate-api.md).

### Cart Calculate

Orchestrates multiple calculators to summarize the total cost in a cart. See [Orchestrators and Calculators](/docs/commerce/extensions/guide/cart-calculate-api.md#orchestrators-and-calculators).

Each calculator is a separate extension that you can customize separately.

- **Base Apex class**: [CartExtension.CartCalculate](/docs/commerce/salesforce-commerce/references/comm-apex-reference/CartCalculate.md)
- **Extension point name**: Commerce_Domain_Cart_Calculate
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

CartCalculate currently supports the following set of cart and checkout operations:

- AddItemToCart
- EditCartItem
- DeleteCartItem
- AddCoupon
- DeleteCoupon
- StartCheckout
- PatchCheckout (address, set delivery method)

### Inventory Cart Calculator

Calculates inventory for cart and checkout based on the [inventory service](#inventory-service).

- **Base Apex class**: [CartExtension.InventoryCartCalculator](/docs/commerce/salesforce-commerce/references/comm-apex-reference/InventoryCartCalculator.md)
- **Extension point name**: Commerce_Domain_Inventory_CartCalculator
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

### Inventory Service

Reserves and tracks available inventory. By default, this extension uses the [Omnichannel Inventory](https://help.salesforce.com/s/articleView?id=commerce.inv_omnichannel_inventory_service.htm) (OCI) system for inventory data.

- **Base Apex class**: [commerce_inventory.CommerceInventoryService](/docs/commerce/salesforce-commerce/references/comm-apex-reference/CommerceInventoryService.md)
- **Extension point name**: Commerce_Domain_Inventory_Service
- **Namespace**: `commerce_inventory`. See [Inventory Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/inventory-reference.md).

### Pricing Cart Calculator

Calculates pricing for cart and checkout based on the [pricing service](#pricing-service).

- **Base Apex class**: [CartExtension.PricingCartCalculator](/docs/commerce/salesforce-commerce/references/comm-apex-reference/PricingCartCalculator.md)
- **Extension point name**: Commerce_Domain_Pricing_CartCalculator
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

### Pricing Service

Tracks how products and services are priced. By default, this extension uses Salesforce price books for pricing data. If your store uses [Faster Add-to-Cart](https://help.salesforce.com/s/articleView?id=commerce.comm_faster_add_to_cart.htm), make sure that all products have an entry in a store price book before implementing the pricing service extension.

- **Base Apex class**: [commercestorepricing.PricingService](/docs/commerce/salesforce-commerce/references/comm-apex-reference/PricingService.md)
- **Extension point name**: Commerce_Domain_Pricing_Service
- **Namespace**: `commercestorepricing`. See [Pricing Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/pricing-reference.md).

### Promotions Cart Calculator

Calculates promotions for cart and checkout. By default, this extension uses the Salesforce promotions service to perform its calculations.

- **Base Apex class**: [CartExtension.PromotionsCartCalculator](/docs/commerce/salesforce-commerce/references/comm-apex-reference/PromotionsCartCalculator.md)
- **Extension point name**: Commerce_Domain_Promotions_CartCalculator
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

### Shipping Cart Calculator

Calculates shipping costs. By default, there's no charge for shipping, so you must extend the base Apex class to see any effect.

- **Base Apex class**: [CartExtension.ShippingCartCalculator](/docs/commerce/salesforce-commerce/references/comm-apex-reference/ShippingCartCalculator.md)
- **Extension point name**: Commerce_Domain_Shipping_CartCalculator
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

### Tax Cart Calculator

Calculates taxes for cart and checkout. By default, this extension uses the Salesforce tax service to perform its calculations.

- **Base Apex class**: [CartExtension.TaxCartCalculator](/docs/commerce/salesforce-commerce/references/comm-apex-reference/TaxCartCalculator.md)
- **Extension point name**: Commerce_Domain_Tax_CartCalculator
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

### Tax Service

Applies taxes to products in the cart.

- **Base Apex class**: [commercestoretax.TaxService](/docs/commerce/salesforce-commerce/references/comm-apex-reference/TaxService.md)
- **Extension point name**: Commerce_Domain_Tax_Service
- **Namespace**: `commercestoretax`. See [Tax Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/tax-reference.md).

## Domain Extensions for Checkout

The extensions listed in this section are used for checkout but don't affect cart calculations, so they aren't part of the Cart Calculate API.

### CreateOrder Service

During checkout, this extension creates an order using information from the cart.

- **Base Apex class**: [CartExtension.CheckoutCreateOrder](/docs/commerce/salesforce-commerce/references/comm-apex-reference/CheckoutCreateOrder.md)
- **Extension point name**: Commerce_Domain_Checkout_CreateOrder
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

### PlaceOrder Service

During checkout, when a buyer places an order, this extension runs cart validations as part of the [Place Order Action API](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_checkouts_place_order_v2.htm). To implement custom validation logic, extend the base Apex class and override the `validate` method.

- **Base Apex class**: [CartExtension.CheckoutPlaceOrder](/docs/commerce/salesforce-commerce/references/comm-apex-reference/CheckoutPlaceOrder.md)
- **Extension point name**: Commerce_Domain_Checkout_PlaceOrder
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

### SplitShipment Service

During checkout, this extension arranges cart items across delivery groups. To implement custom Item Arrangement logic, extend the base Apex class and override the `arrangeItems` method.

- **Base Apex class**: [CartExtension.SplitShipmentService](/docs/commerce/salesforce-commerce/references/comm-apex-reference/SplitShipmentService.md)
- **Extension point name**: Commerce_Domain_Shipping_SplitShipment
- **Namespace**: `CartExtension`. See [Cart Reference](/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.md).

## Domain Extensions for Order Management

The extension listed in this section is used for Order Management.

### ProductExpand Service

Expands product information by adding return reasons.

- **Base Apex class**: [commerce_ordermanagement.ProductExpandService](/docs/commerce/salesforce-commerce/references/comm-apex-reference/ProductExpandService.md)
- **Extension point name**: Commerce_Domain_OrderManagement_Product
- **Namespace**: `commerce_ordermanagement`. See [commerce_ordermanagement](/docs/commerce/salesforce-commerce/references/comm-apex-reference/ordermanagement-reference.md).

## Endpoint Extensions

Extends selected Connect API endpoints, allowing you to modify the endpoints request payload before the endpoint is called, or to modify the response after the endpoint is called, or both.

Unlike domain extensions, endpoint extensions extend the same base class.

- **Base Apex class**: [connectapi.BaseEndpointExtension](/docs/commerce/salesforce-commerce/references/comm-apex-reference/BaseEndpointExtension.md)

- **Namespace**: `connectapi`. See [connectapi](/docs/commerce/salesforce-commerce/references/comm-apex-reference/connectapi-reference.md).

### Account

- **Extension point name**: `Commerce_Endpoint_Account_Addresses` -- extends the [Commerce Webstore Account Addresses](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_accounts_addresses.htm) endpoint.
- **Extension point name**: `Commerce_Endpoint_Account_Address` -- extends the [Commerce Webstore Account Address](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_accounts_addresses_address.htm) endpoint.

### Product Catalog

- **Extension point name**: `Commerce_Endpoint_Catalog_Products` -- extends the [Commerce Webstore Products](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_products.htm) endpoint.
- **Extension point name**: `Commerce_Endpoint_Catalog_Product` -- extends the [Commerce Webstore Product](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_product.htm) endpoint.

### Cart

- **Extension point name**: `Commerce_Endpoint_Cart_Item` -- extends the [Commerce Webstore Cart Item](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_cart_item.htm) endpoint. Available in version 62.0 and later.
- **Extension point name**: `Commerce_Endpoint_Cart_ItemCollection` -- extends the [Commerce Webstore Cart Items](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_cart_items.htm) endpoint. Available in version 62.0 and later.

### Product Search

- **Extension point name**: `Commerce_Endpoint_Search_Products` -- extends the [Commerce Webstore Search Products](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_search_products.htm) endpoint.
- **Extension point name**: `Commerce_Endpoint_Search_ProductSearch` -- extends the [Commerce Webstore Product Search](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_product_search.htm) endpoint.

### Product Suggestions

- **Extension point name**: `Commerce_Endpoint_Search_Suggestions` -- extends the [Commerce Webstore Product Search Suggestions](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_commerce_webstore_search_suggestions.htm) endpoint. Available in version 67.0 and later.

**See Also**

- [*B2B Commerce Developer Guide*: Register and Map Extension Class](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/extensions.md)
- [*B2B Commerce Developer Guide*: Extension Provider Examples](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/extension-provider-examples.md)
