Skip to main content
Version: Next

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.

The modules that need a key from a third party ship inactive. How to configure each of them, and what the shop does while a key is missing, is described by function in Shipped Modules.

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
WireTransferPayment by bank transfer, shows the shop's bank details to the customerActivethelia-modules/WireTransfer
PayPalPayment through PayPal, needs PayPal API credentialsInactivethelia-modules/PayPal
StripePaymentPayment through Stripe, needs Stripe API keysInactivethelia-modules/StripePayment
LocalPickupStore pickup as a delivery methodActivethelia-modules/LocalPickup
AdminOrderCreationCreates an order for a customer from the back officeActivethelia-modules/AdminOrderCreation
DuplicateOrderLets a customer reorder the products of a past orderActivethelia-modules/DuplicateOrder
RewriteUrlRedirects old URLs to the new ones, manual redirect rulesActivethelia-modules/RewriteUrl
SitemapPriorities, change frequencies and language alternates of the XML sitemapActivethelia-modules/Sitemap
GoogleTagManagerLoads a Google Tag Manager container and sends e-commerce events, needs a container IDInactivethelia-modules/GoogleTagManager
WishListWish lists for customers and guestsActivethelia-modules/WishList
StockAlertBack-in-stock and price-drop e-mail alertsActivethelia-modules/StockAlert
TntSearchFull-text search tolerant to typosActivethelia-modules/TntSearch
BestSellersBest sellers sort and statisticsActivethelia-modules/BestSellers
SiretManagementSIRET and intra-community VAT number of business customersActivethelia-modules/SiretManagement
ReCaptchaAnti-spam check on the customer forms, needs reCAPTCHA keysInactivethelia-modules/ReCaptcha

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 modules stay out on purpose: CustomerFamily and TheliaGiftCard. Each one adds a notion to the data model of the shop: CustomerFamily introduces price segments per customer family, TheliaGiftCard introduces credit notes that carry a value. Notions of that kind call for a place in the core, not for a silent addition to every shop through the distribution. Until then, install them when the shop needs them:

ModulePackageInstall
CustomerFamilythelia/customer-family-modulecomposer require thelia/customer-family-module
TheliaGiftCardthelia/thelia-gift-card-modulecomposer require thelia/thelia-gift-card-module

Payment connectors other than the ones listed above are not shipped either: each shop picks the ones matching its contracts.

Adding a module is one Composer command, run at the root of the project, followed by its activation:

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.

Shops installed with skeleton 3.2.0 or earlier​

WireTransfer, PayPal, StripePayment, LocalPickup, AdminOrderCreation, DuplicateOrder, RewriteUrl, Sitemap, GoogleTagManager, WishList, StockAlert, TntSearch, BestSellers, SiretManagement and ReCaptcha are declared by the skeleton releases that follow 3.2.0. A full update of the project brings them:

composer update

A module the shop already had keeps its state. Check the state of the others with php Thelia module:list and activate the ones the shop needs.

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.