Commerce CiviCRM Event Registration provides an example integration between Drupal Commerce and CiviCRM Events.
Intended to be an example, and demonstration of integration possibilities between the two ecosystems.

Installation and Configuration

Requires Drupal Commerce and CiviCRM Entity

Requires Field Formatter Class

Install module per Drupal norms

Setup a Commerce store: /admin/commerce/config/stores
click "Add store" and fill out form. This is only necessary for a new Commerce installation.

At least one payment gateway is requierd to complete checkout, create one at admin/commerce/config/payment-gateways if necessary.

Set order type to use new checkout workflow
Assuming "Default" order type: /admin/commerce/config/order-types/default/edit
"CHECKOUT SETTINGS" fieldset, "Checkout flow" field
set to "CiviCRM Event Checkout Flow" and save.

Also, assuming there exists a "default" order type. a "CiviCRM Contribution" field will be created. If you do not have the "default" order type. Manually create a with machine name field_civicrm_contribution on your order type. Entity Reference, referencing entities of type "CiviCRM Contribution". This should be the same order type that uses the "CiviCRM Event Checkout Flow"

Provides a Product and Product Variation type, "CiviCRM Event"

Create CiviCRM Event product:
product/add/civicrm_event
Make sure to reference the CiviCRM event in the "CiviCRM Event" field. On checkout, CiviCRM participant records will be created for the referenced event, with a CiviCRM Contribution.

Supporting organizations: 

Project information

Releases