LNK Reassurance: unlimited PrestaShop reassurance banners, styled without CSS
Delivery, secure payment, returns, customer service: these promises reassure buyers, as long as you can show them in the right place and in your theme's colors. The PrestaShop reassurance module LNK Reassurance lets you create as many reassurance banners as you need, place them from a list of positions and set their look in the back office. No CSS to write, no override of the PrestaShop core.
- Version 3.1.0 · PrestaShop 1.7.6 to 8.x
- Version 3.9.0 · PrestaShop 9
- PrestaShop 1.7.6 to 9.x
- PHP 7.1 to 8.4
- No override
Key points
- Unlimited banners, each with its own content, position and look.
- Placement without touching the theme: six positions to choose from.
- About thirty style settings, no CSS to write.
- Preview with the real rendering, updated as you type.
- 18 vector icons, rendered as SVG in the page.
- Import of your own SVG icon, cleaned before saving.
- Multilingual content, up to 6 items per banner.
- Hidden on mobile, per banner.
- Compatible with page builders (Creative Elements and similar).
- No core override, no call to an external service, no cookie.
- PrestaShop 1.7, 8 and 9, native Symfony back office on 9.
Several reassurance banners per shop
The reassurance block shipped with PrestaShop is a single one: one banner, one position. A shop often needs different messages depending on the page, for example:
- a short banner at the top of the home page, with four promises;
- a banner for the cart, focused on payment and returns;
- a third one below the product page, about delivery times.
LNK Reassurance lets you create as many banners as you need. Each one has its own content, position and look.
Positions to choose from, without editing the theme
Each banner has its position, chosen from a list:
| Position | Result |
|---|---|
| Cart and checkout | the native position of the official themes |
| Home page | in the body of the page |
| Before the footer | just above it |
| Above the content | on every page |
| Custom | wherever you add one line |
| Nowhere | kept for manual placement |
You choose the position and save. The banner shows up without opening a single file.
For a very precise spot, one line in your template is enough:
{widget name='lnk_reassurance' id=1}. If your theme has no hook point where you want
it, we add it for you free of charge.
Reassurance block customizable from the back office
The look is set without CSS, with about thirty settings grouped by topic:
- Layout: inline, grid, or icon stacked above the text; number of columns on desktop and on mobile; distribution and alignment.
- Styling: background, text color, padding, border radius, border, shadow.
- Spacing: horizontal, vertical, mobile-specific, gap between icon and text.
- Icons: color, size.
- Titles and subtitles: color, size, weight, uppercase, opacity, subtitle hidden on mobile.
- Separators: display, color, height.
A color field left empty takes the theme's color, so the banner blends in with the rest of the shop.
No file is written to disk. Settings are applied as CSS variables set on the block itself. The module therefore stays correct in multistore, and a CDN cannot serve the old styling after a change.
Live preview in the editor
The editor preview loads the module's real stylesheet, in an isolated frame. It reproduces how your shop renders and updates as you type.
Reassurance icons and their texts
Truck, padlock, shield, leaf, medal, headset, clock, rocket: the module offers eighteen vector icons, chosen to cover a shop's usual promises. They are rendered as SVG directly in the page, with no icon font and no third-party server. So there is nothing to download and no flicker on load.
Need an icon that is not in the list? Import your own as SVG, 20 KB at most. The module cleans it before saving it: scripts, styles, links and external addresses are removed, only the drawing remains. The icon takes the size of the others and, as you choose, their color or its original colors.
Each item has a title and a subtitle, translatable into every language of the shop.
Compatible with PrestaShop 1.7, 8 and 9
One module and one license cover all three branches.
| Branch | PHP | Back office |
|---|---|---|
| 1.7.0 → 1.7.8 | 7.2 → 7.4 | classic controller |
| 8.0 → 8.2 | 7.4 → 8.1 | classic controller |
| 9.0 → 9.x | 8.1 → 8.4 | native Symfony controller |
On PrestaShop 9, the list and the form are Symfony controllers, with Twig templates and the layout of the new back office.
Before each publication, every listed version is installed, configured, displayed and then uninstalled in our integration matrix.
Reassurance module without override
This module installs no override. The override/ folder does not exist.
For an agency, this means no conflict with another module overriding the same class, no orphan file after a PrestaShop update and nothing to clean up before a migration.
Light and fast
Figures measured on the shipped module, gzip-compressed (level 9). On the front office: a single 1.5 KB stylesheet, and no JavaScript, no jQuery dependency. The banner is rendered server-side, its appearance settings travel as CSS variables in the HTML: no generated file, no external call. The editor script, 7.4 KB, only loads in the back office.
Frequently asked questions
What does this module add compared with the reassurance block shipped with PrestaShop?
The native block is a single one, in a single position, and offers few settings: beyond a few options, you have to write CSS in the theme. This module lets you create as many banners as you need, each with its own position, content and look. The look is set from the back office, without CSS.
Can I keep the native block at the same time?
Yes. Both coexist without conflict: this module installs no override and touches no setting of the native block. Most merchants disable the native block once they have switched, with no obligation to do so.
Is this module compatible with my PrestaShop version?
Yes, from PrestaShop 1.7.0 to PrestaShop 9, with a single license. On PrestaShop 9, the banner list and form are native Symfony controllers, with the layout of the new back office. Before each publication, every version is installed, configured and uninstalled in our integration matrix.
Does the module contain a core override?
No, the module contains no override and the override/ folder does not exist. It therefore
cannot conflict with any other module on that point, and a PrestaShop update leaves no
orphan file.
Do I need to edit my theme?
In the standard case, no: each banner has its position, chosen from a list of six options. If you want the banner in a place your theme does not expose, write to us: we add the hook point for you free of charge, in about fifteen minutes.
Does this module slow down my shop?
No. Rendering is done by the server and the icons are SVG written directly into the page, with no icon font to download and no call to a third-party server. No CSS file is generated. The module's only JavaScript is in the back office; the shop loads none.
How does it behave if I have many banners?
Each position loads only the banners assigned to it. If the same hook point is called several times on a page, the banner is rendered only once and the customer never sees it twice.
Is the content multilingual?
Yes. Each title and each subtitle is entered in every language of the shop, with PrestaShop's usual language selector. The module ships in French and English.
Does it work in multistore?
Yes. Style settings are applied as CSS variables set on the block, with no generated CSS file. One shop therefore cannot overwrite another shop's styling.
What is left if I uninstall the module?
Nothing. Uninstalling removes the module's table, its menu entry and its Symfony
configuration. No file remains in the theme or in override/, since the module never wrote
anything there. The icons you imported, stored in img/lnk_reassurance/, are deleted with
the banners that used them.
Does the module set cookies?
No. The module sets no cookie or tracker and sends no data to a third party. There is nothing to declare in your consent banner.
I am coming from version 2 of the module.
The update does not touch the database schema: your banners, their items and their style settings are kept as they are. On PrestaShop 9, the menu entry moves to the new Symfony back office.
Can I use my own icon?
Yes, as SVG, 20 KB at most: “Import an icon (SVG)” under the icon grid. An SVG can contain
code; the module keeps only the drawing (paths, shapes, colors) and removes everything else,
including scripts, styles, links and external addresses. The cleaned file is stored in
img/lnk_reassurance/icons/, outside the module folder: an update does not erase it. The icon
takes the size of the others and, as you choose, their color or its original colors.
Release history
-
Version 3.9.0 PrestaShop 9
PrestaShop 9 branch. 1.7.6 to 8.x shops now have their own package, 3.1.0, with the same features: the PrestaShop 9 package no longer ships any code of the old back office.
New
- Imported icon (SVG): in the item editor, “Import an icon (SVG)”, 20 KB at most. The file is cleaned with an allowlist (scripts, styles, links,
foreignObject,on*attributes, entities and external addresses removed), saved inimg/lnk_reassurance/icons/under a fingerprinted name, then offered in the grid like the bundled icons. Rendered inline, at the size of the other icons; either matched to the icon color or in its original colors.
Changes
- Item texts in native tables: titles and subtitles leave the JSON of the
itemscolumn forlnk_reassurance_itemandlnk_reassurance_item_lang, one row per language (ObjectModelLnkReassuranceItem). A language added to the shop gets its texts through the core mechanism. - Banner form as a native Symfony form: texts are
TranslatableTypefields, with the PrestaShop language selector; six item slots, a slot without a title is not displayed. The custom repeater and language selector are gone. - Symfony configuration shipped in place in
config/, no copy at install time. - Colours fall back on the LNK theme base roles (
--lnk-text,--lnk-muted,--lnk-accent,--lnk-border), then on the previous rendering. - Module strings translated into French, English and Arabic.
upgrade/upgrade-3.9.0.phpmoves the items of every banner in every language, then drops theitemscolumn. The display is identical before and after the upgrade.- Redesigned administration: banner list grouped by placement (icons, summary, switch, duplicate) and an editor with sections (collapsible, reorderable items, icon grid, real colour pickers with “theme colour”, live desktop / mobile preview following the language, full-width preview). Subtitles are no longer dimmed by default (contrast); existing banners keep their setting.
- Addresses of the module's CSS and JS files versioned by the fingerprint of their content: after an update, neither a CDN nor the browser serves the old version.
Fixes
- A title or subtitle containing code is refused on save.
- Imported icon (SVG): in the item editor, “Import an icon (SVG)”, 20 KB at most. The file is cleaned with an allowlist (scripts, styles, links,
-
Version 3.1.0 PrestaShop 1.7.6 to 8.x
PrestaShop 1.7.6 to 8.x branch. PrestaShop 9 now has its own package, 3.9.0, with the same features: no Symfony file is shipped to 1.7 and 8 shops any more.
New
- Imported icon (SVG): in the item editor, “Import an icon (SVG)”, 20 KB at most. The file is cleaned with an allowlist (scripts, styles, links,
foreignObject,on*attributes, entities and external addresses removed), saved inimg/lnk_reassurance/icons/under a fingerprinted name, then offered in the grid like the bundled icons. Rendered inline, at the size of the other icons; either matched to the icon color or in its original colors.
Changes
- Item texts in native tables: titles and subtitles leave the JSON of the
itemscolumn forlnk_reassurance_itemandlnk_reassurance_item_lang, one row per language (ObjectModelLnkReassuranceItem). A language added to the shop gets its texts through the core mechanism. - Banner form as a native HelperForm, with the PrestaShop language selector: six item slots, a slot without a title is not displayed. The custom repeater and language selector are gone.
- Module strings translated into French and Arabic through the module translation system (
translations/fr.php,ar.php), the only one PrestaShop 1.7.6 and 1.7.7 load for a module; the banner seeded at install time is written in every language with its translation. upgrade/upgrade-3.1.0.phpmoves the items of every banner in every language, then drops theitemscolumn. The display is identical before and after the upgrade.- Redesigned administration: banner list grouped by placement (icons, summary, switch, duplicate) and an editor with sections (collapsible, reorderable items, icon grid, real colour pickers with “theme colour”, live desktop / mobile preview following the language, full-width preview). Subtitles are no longer dimmed by default (contrast); existing banners keep their setting.
- Addresses of the module's CSS and JS files versioned by the fingerprint of their content: after an update, neither a CDN nor the browser serves the old version.
Fixes
- A title or subtitle containing code is refused on save.
- Imported icon (SVG): in the item editor, “Import an icon (SVG)”, 20 KB at most. The file is cleaned with an allowlist (scripts, styles, links,
-
Version 3.0.0 PrestaShop 1.7.6 to 8.x
First distributable version. Earlier versions were custom development for one shop; this one is ported to the three PrestaShop branches and sold.
New
- Native Symfony back office for PrestaShop 9: list and form as
PrestaShopAdminController+ Twig controllers, deployed at installation and only if the version allows it. The same script drives the item repeater in both back offices. LnkReassuranceDesign: style normalization and rendering move out of the module to become a pure class, testable without a shop.tests/test-design.php: 42 checks on sanitization, including hostile values: a color trying to break out of its CSS declaration, an out-of-range number, a layout outside the allowlist.lnk_reassurance::saveFromRequest(): single write entry point, shared by both back offices.upgrade/upgrade-3.0.0.php: switches the menu entry to the Symfony route on branch 9, without touching the schema.- Full documentation: installation, compatibility, hooks, custom hooks, marketplace page, FAQ.
Changes
- The static style methods (
designDefaults,safeColor,sanitizeDesign,designStyle,designClasses) remain available on the module as a facade, so an overridden template can rely on them, but they delegate toLnkReassuranceDesign.
Fixes
- A customer's demo content seeded at installation (workshops, cities, delivery times specific to one shop). Replaced with a generic banner (delivery, payment, returns, customer service) placed on
displayReassurance: merchants now see something as soon as they install, and that something is relevant to them. - Back-office labels in French in the code, with the PrestaShop 1.6 translation syntax (
mod=). Everything now uses English source strings with a domain (Modules.Lnkreassurance.Admin) and a shipped French catalog. - Styles and scripts hard-coded in an admin template. They now live in
views/css/admin.cssandviews/js/admin-items.js, and the data the script needs travels indata-attributes: no variable is written into the page any more. - The delete button and the activation toggle used a link: they are now POST forms, with a token, in the Symfony back office.
- Native Symfony back office for PrestaShop 9: list and form as
Show the 3 previous versions
-
Version 2.1.0 PrestaShop 1.7.6 to 8.x
Placement on native hooks, style settings in the back office, live preview. Not distributed.
-
Version 2.0.0 PrestaShop 1.7.6 to 8.x
Move to a dedicated table, multiple banners. Not distributed.
-
Version 1.0.0 PrestaShop 1.7.6 to 8.x
Initial version, custom development. Not distributed.