---
title: "Compositional extensibility"
slug: "compositional-extensibility"
abstract: "A brief overview of how Sitecore XC uses concept compositional extensibility for customization."
---
# Compositional extensibility

Compositional extensibility is a simple class supplied by plugins as a way of extending a commerce entity. Components can be added or removed by a plugin into a commerce entity by adding to the components property. This is usually done via a `PipelineBlock` or a `RuleAction`.

Only one of a specific type of component is allowed in a commerce entity. This should be enforced on the persistence of an entity. Other plugins do not need knowledge of components supplied by other plugins, unless required.

The existence of a component in an entity may trigger business actions. For example, if a delivery component is on a line item of a shopping cart upon order creation, the delivery pipeline invokes business processes.