Skip to main content
Version: Thelia 3.0

What a fresh install contains

A new shop created with composer create-project thelia/thelia-project comes with the core, four themes (Flexy for the front office, the Twig back office, the e-mail and PDF templates) and the modules listed below. The project depends on a single package, thelia/thelia-skeleton, and the list is declared in two places you can read without installing anything: the require section of the skeleton for the modules the distribution ships on its own, and the composer.json of each theme for the modules its rendering depends on.

Shipped and active are two different things​

Every module below is installed on disk and registered in the shop. Whether it is active right after the installation is declared by the module itself, in its Config/module.xml, through the optional <enabled-by-default> element. A module that says nothing, or says 1, is active as soon as the shop is installed. A module that says 0 is registered inactive: it appears in the modules list of the back office, does nothing until you activate it, and its configuration screen opens once it is active.

To activate a module, open Modules in the back office and click Activate on its row, or run:

php Thelia module:activate <ModuleCode>

An update never rewrites the state you chose. A module you activated stays active, a module you deactivated stays inactive.

Modules declared by the distribution​

These modules are useful to the shop whatever theme it uses, so the skeleton declares them directly. Changing the front theme does not remove them.

CodeWhat it doesDefault stateSource
ChequePayment by chequeActivethelia-modules/Cheque
FreeOrderConfirms an order with nothing left to pay (fully discounted cart)Activethelia-modules/FreeOrder
CustomDeliveryDelivery with prices you configure yourselfActivethelia-modules/CustomDelivery
VirtualProductDeliveryDelivery of virtual products, no shippingActivethelia-modules/VirtualProductDelivery
HeaderHighlightsPromotional messages and images in the header of the front officeActivethelia-modules/HeaderHighlights
RecentlyViewedRecords the products a customer viewed and exposes them to the frontActivethelia-modules/RecentlyViewed

Modules required by the themes​

These modules stay in the composer.json of a theme because the theme cannot render without them. Another theme may require a different set.

CodeWhat it doesRequired byDefault stateSource
TwigEngineTwig template engine for TheliaFlexy, back office, e-mail and PDF templatesActivethelia-modules/TwigEngine
TheliaLibraryMedia library and image processingFlexy (also pulled by TheliaBlocks)Activethelia-modules/TheliaLibrary
TheliaBlocksContent blocks editor used for CMS contentFlexyActivethelia-modules/TheliaBlocks
ShortCodeShort codes in content, WordPress syntaxPulled by TheliaBlocksActivethelia-modules/ShortCode
PageCMS pages rendered by the front themeFlexyActivethelia-modules/Page
SEOneSEO tools for the front officeFlexyActivethelia-modules/SEOne
TiptapWYSIWYG editor of the back officeBack officeActivethelia-modules/Tiptap

What is not shipped​

The distribution ships what most shops need on day one and leaves the rest to Composer, so that a shop does not carry code it will never use. Two families of modules are deliberately absent:

  • Structuring modules that change the data model or the checkout for a subset of shops, such as customer families or gift cards. Install them when the shop needs them.
  • Online payment connectors. Each shop picks the ones matching its contracts.

Adding a module is one Composer command, run at the root of the project:

composer require thelia/<module-name>-module
php Thelia module:activate <ModuleCode>

The list of official modules and their package names is on Packagist and in the thelia-modules organization.

Shops installed before skeleton 3.2​

Until skeleton 3.2, Cheque, CustomDelivery, FreeOrder, VirtualProductDelivery, HeaderHighlights and RecentlyViewed reached a shop through the composer.json of the themes. They now come from the skeleton, and the themes no longer require them.

A project created with thelia/thelia-project depends on thelia/thelia-skeleton, so a full update brings skeleton 3.2 and the six modules with it. The shop keeps them, and their active or inactive state is not touched:

composer update

Update the whole project rather than a theme alone. A theme that no longer requires these modules declares a conflict with any skeleton older than 3.2, so composer update thelia/flexy on a project still on skeleton 3.1 keeps the current theme version instead of removing modules. The new theme version comes with the full update that also brings skeleton 3.2.

Checking your own install​

On an installed shop, the effective list is:

php Thelia module:list

On a fresh install it matches the two tables above, module for module. A difference means a module was added, removed or toggled after the installation.