thelia / top-products-module
Package info
github.com/thelia-modules/TopProducts
Type:thelia-module
pkg:composer/thelia/top-products-module
Requires
- thelia/installer: ^1.6
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-01 14:30:44 UTC
README
This module allows to create selections of top products in category and brand.
Installation
Manually
- Copy the module into
<thelia_root>/local/modules/directory and be sure that the name of the module is TopProducts. - Activate it in your thelia administration panel
Composer
Add it in your main thelia composer.json file
composer thelia/top-products-module:~1.1.0
Usage
This module adds a new tab Top products in categories and brands where you can create selections and add products in selections.
To retrieve the products of a selections you can use the top_product loop.
The top_products loop
Input arguments
The top_products loop extend the loop product. All the arguments of the product loop are therefore available.
| Argument | Description |
|---|---|
| top_product_id | The id of the selection |
| top_product_element_key | The type of your selection (category or brand) |
| top_product_element_id | The id of the element (category or brand) |
| top_product_selection_code | The name of the selection |
Output variables
The output variables are the same as the loop product.
Exemple
{loop
type="top_product"
name="top_product_loop"
top_product_element_key="category"
top_product_element_id=$category_id
top_product_selection_code="my-selection"
}
...
{/loop}
Front API resource
The module exposes the selections on the Thelia 3 front API, so that a Twig/Flexy theme can read them without the Smarty loop. The resource is read only: there is no POST, PUT, PATCH or DELETE operation.
GET /api/front/top_products returns the pinned products, by ascending position unless an order[...] parameter is given. The collection is not paginated.
| Parameter | Description |
|---|---|
| elementKey | category or brand |
| elementId | The id of the category or brand. Repeat it to read several: elementId[]=3&elementId[]=7 |
| selectionCode | The selection, for example new or best |
| order[position], order[id] | asc or desc |
Each item exposes id, elementKey, elementId, selectionCode, position and product, the IRI of the product (/api/front/products/{id}).
GET /api/front/top_products?elementKey=category&elementId=12&selectionCode=best
GET /api/front/top_products/{id} reads one row.