Cart Events 

Cart Products - extend EXT:cart with products 

Extension key

cart_events

Package name

extcode/cart-events

Version

main

Language

en

Author

Daniel Gohlke & Contributors

License

This document is published under the Open Publication License.

Rendered

Thu, 29 Jan 2026 15:21:08 +0000


Cart Events needs to be used together with EXT:cart.

  • EXT:cart itself is only the base for a webshop.
  • EXT:cart_events provides events which can be created in the TYPO3 backend.

    • Those events fit many use cases for seminars, workshops, theatre performances or generally date-related seat reservations.
    • The events and their dates can be displayed on the website with a list view and a detail view.
    • As said does it extend EXT:cart so those products can be purchased with the cart of EXT:cart.

Introduction 

Introduction to the extension, general information.

For Administrators 

Install the extension and configure it correctly.

Changelog 

Changes of this extension during updates.

Introduction 

EXT:cart_products needs to be used together with EXT:cart.

EXT:cart itself is only the base for a webshop.

Only using EXT:cart does not allow to sell anything because there are no products.

Therefore EXT:cart needs other extensions. One of those other extensions is EXT:cart_events.

Features:

  • It provides events and their event dates which can be created in the TYPO3 backend.
  • The data for those events are stored in own data tables.
  • The data fields of the events fit many use cases for seminars, workshops, theatre performances or generally date-related seat reservations.
  • The events and their dates can be displayed on the website with a list view and a detail view.
  • It is possible to limit the number of bookable seats per event date or per price category of an event date.
  • As it extends EXT:cart are the products compatible with EXT:cart and can therefore be be purchased with the cart functionality of EXT:cart.

Further pages:

Sponsoring 

If there is a feature that has not yet been implemented in Cart or Cart Events, you can contact me at any time.

There is also the possibility to support the further development independently of new functions.

Installation 

Installation using Composer 

The recommended way to install the extension is by using Composer. In your Composer based TYPO3 project root, just do

composer require extcode/cart-events.

Installation from TYPO3 Extension Repository (TER) 

Download and install the extension with the extension manager module.

Latest version from git 

You can get the latest version from git by using the git command:

git clone git@github.com:extcode/cart_events.git
Copied!

Preparation: Include static TypoScript 

The extension ships some TypoScript code which needs to be included.

  1. Switch to the root page of your site.
  2. Switch to the Template module and select Info/Modify.
  3. Press the link Edit the whole template record and switch to the tab Includes.
  4. Select Shopping Cart - Cart Events at the field Include static (from extensions):

TypoScript 

The following snippet shows how to set the needed TypoScript parameter by mostly reusing the parameter that already were set as TypoScript constants format EXT:cart.

plugin.tx_cartevents {
    settings {
        format.currency < plugin.tx_cart.settings.format.currency

        addToCartByAjax = {$plugin.tx_cart.settings.addToCartByAjax}
    }
}
Copied!
Property
plugin.tx_cartevents.settings.format.currency
Data type
array
Description
Configures how prices should be formated in frontend. The ExtcodeCartViewHelpersFormatCurrencyViewHelper use this global setting.
Default
The TypoScript template copy the setting from settings of the cart extension.
Property
plugin.tx_cartevents.settings.addToCartByAjax
Data type
int
Description
Activates the option to add events via AJAX action. There is no forwarding to the shopping cart page. The response can used to display messages or update the MiniCart-Plugin.
Default
The TypoScript template use the setting defined by the constant of the cart extension.

ChangeLog 

6.0 Changes 

Table of contents

5.0 Changes 

Table of contents

Breaking: #64 - Move Fluid Pagination to Controller 

See forge#64

Description 

In TYPO3 v11 <f:paginate> has been removed and is implemented via the controller.

Affected Installations 

All installations are affected by this change.

Migration 

If the templates for the lists of products in the frontend has been overwritten, then these templates must also be adapted. If pagination is not desired, a custom template must be used for the product list.

Breaking: #64 - Add Pagination to Controller 

See forge#64

Description 

Because in TYPO3 v11 no pagination in the frontend is possible without an own ViewHelper or an extension, the list action in the ProductController was extended by the pagination. Via TypoScript it can be defined how many products should be displayed per page.

Integration 

An example was implemented in the list action template.

3.0 Changes 

This is the initial release of cart_events for TYPO3 v10.4.

Table of contents

Breaking Changes 

Feature: #59 - Add Hook to Allow Changing the Product 

See forge#59

Description 

The new hook allows you to modify a product that has been newly loaded from the database before passing it to the shopping cart. A similar hook already exists in extcode/cart, but it is more unspecific and theoretically accesses all products. The new hook will be introduced to apply the temporarily lowered sales tax in Germany to events in the shopping cart.

The hook can be used as follows:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cart_events']['getProductFromEventDate'][1592547127] =
    \Extcode\CartCovid19Tax\Hooks\TaxClassOverride::class;
Copied!

The class must then provide the method changeProductFromEventDate and receives ExtcodeCartDomainModelCartProduct and an array as parameters. In the array the ExtcodeCartDomainModelCartCart and ExtcodeCartEventsDomainModelEventDate are currently passed.

/**
 * change the product
 *
 * @param Product $product
 * @param array $params
 */
public function changeProductFromEventDate(Product $product, array $params): void
{
    /** @var Cart $cart */
    $cart = $params['cart'];

    /** @var EventDate $eventDate */
    $eventDate = $params['eventDate'];

    // TODO: change the product
}
Copied!

Feature: #36 - Add price categories 

See forge#36

Description 

This feature allow different price categories for an event date. Each event date can have several price categories with special prices as well. In the event date a checkbox allows the seat handling in the event date or for each price category itself. In frontend the customer see a selector for the price category. Some new JavaScript shows the price for the selected price category.

Breaking: #36 - Add price categories 

See forge#36

Impact 

Templates were adapted to realize the selection of price categories in the output. In TYPO3 instances where the files below have been modified, adding events to the shopping cart might not work correctly.

Affected Installations 

Instances which use custom partial or templates for:

EXT:cart/Resource/Private/Partials/Event/CartForm.html EXT:cart/Resource/Private/Partials/Event/Price.html EXT:cart/Resource/Private/Partials/Event/Seats.html EXT:cart/Resource/Private/Templates/Event/Show.html

or own JavaScript and Stylesheets:

EXT:cart/Resource/Public/JavaScripts/cart_events.js EXT:cart/Resource/Public/Sheetsheets/cart_events.css

Migration 

If any of the above files have been overwritten, the changes should be applied accordingly.

Feature: #26 - Add addToCart form framework finisher 

See forge#26

Description 

In order to allow to individualize events when adding them to the cart, a new addToCart finisher for the form framework allow to load a form and submit the form with the selected event. The fields are handled as frontend variants in the cart product. They have no intended impact on the price or stock handling.

An example form template 'Cart Events - Example' can be used to create different forms for different events. It can also serve as a template for manually creating forms.

Feature: #33 - Add ke_search indexer 

See forge#33

Description 

This version brings two Indexer for ke_search. The Cart Events Indexer is for Indexing events if you use the list and show plugin. The Cart Single Event Indexer is for Indexing the pages if you show events on single pages with the page type Cart: Event (doktype: 186).

Important: #38 - Render begin and end of eventDate in show template 

See forge#38

Description 

Change template EXT:cart_events/Resources/Private/Templates/Event/Show.html.

2.0 Changes 

The version 2.0.0 is a release for TYPO3 v9.5 only. This version is compatible to Cart v6.0+.

1.0 Changes 

The version 1.0.0 is a release for TYPO3 v8.7 only and skipped for TYPO3 v9.5. This version is compatible to Cart v5.0+.