# Cart events

| Event                           | Dispatched by                     | Properties                                                                                                                  |
| ------------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `AddEntryEvent`                 | `CartService::addEntry`           | ``` CartInterface $cart``EntryAddStruct $entryAddStruct``CartInterface $cartResult ```                                      |
| `BeforeAddEntryEvent`           | `CartService::addEntry`           | ``` CartInterface $cart``EntryAddStruct $entryAddStruct``?CartInterface $cartResult = null ```                              |
| `BeforeCreateCartEvent`         | `CartService::createCart`         | ``` CartCreateStruct $cartCreateStruct``?CartInterface $cartResult = null ```                                               |
| `BeforeDeleteCartEvent`         | `CartService::deleteCart`         | `CartInterface $cart`                                                                                                       |
| `BeforeEmptyCartEvent`          | `CartService::emptyCart`          | `CartInterface $cart`                                                                                                       |
| `BeforeMergeCartsEvent`         | `CartService::mergeCarts`         | ``` CartInterface $targetCart``array $cartsToMerge``bool $deleteMergedCarts ```                                             |
| `BeforeRemoveEntryEvent`        | `CartService::removeEntry`        | ``` CartInterface $cart``EntryInterface $entry``?CartInterface $cartResult = null ```                                       |
| `BeforeUpdateCartMetadataEvent` | `CartService::updateCartMetadata` | ``` CartInterface $cart``CartMetadataUpdateStruct $cartUpdateStruct``?CartInterface $cartResult = null ```                  |
| `BeforeUpdateEntryEvent`        | `CartService::updateEntry`        | ``` CartInterface $cart``EntryInterface $entry``EntryUpdateStruct $entryUpdateStruct``?CartInterface $cartResult = null ``` |
| `CreateCartEvent`               | `CartService::createCart`         | ``` CartCreateStruct $cartCreateStruct``CartInterface $cartResult ```                                                       |
| `DeleteCartEvent`               | `CartService::deleteCart`         | `CartInterface $cart`                                                                                                       |
| `EmptyCartEvent`                | `CartService::emptyCart`          | `CartInterface $cart`                                                                                                       |
| `MergeCartsEvent`               | `CartService::mergeCarts`         | `CartInterface $cartResult`                                                                                                 |
| `RemoveEntryEvent`              | `CartService::removeEntry`        | ``` CartInterface $cart``EntryInterface $entry``CartInterface $cartResult ```                                               |
| `UpdateCartMetadataEvent`       | `CartService::updateCartMetadata` | ``` CartInterface $cart``CartMetadataUpdateStruct $cartUpdateStruct``CartInterface $cartResult ```                          |
| `UpdateEntryEvent`              | `CartService::updateEntry`        | ``` CartInterface $cart``EntryInterface $entry``EntryUpdateStruct $entryUpdateStruct``CartInterface $cartResult ```         |
