Pack Product Badges: setup and help

Quick start

  1. Install the mprpackproducts ZIP on a compatible PrestaShop version.
  2. Open Configure > Pack Product Settings and keep Enable pack badges on.
  3. Edit a test product reference to start with mpr-pack- and save it.
  4. Open a listing containing the product and check its Bundle or existing native pack flag.
  5. Refresh the listing with a facet and confirm the flag remains.
  6. If you need the contents tab, add real pack mappings to the prefixed mpr_pack_content table.
  7. Open the pack product and verify the included-product cards and displayed base prices.

Requires PrestaShop 1.7 or later and PHP 7.1 or later.

Setup manual

Install and enable badges

In your Back Office, open Modules > Module Manager, choose Upload a module, and upload the module ZIP. Install it, then click Configure. On older PrestaShop versions, use the corresponding Modules page.

Open Pack Product Settings and leave Enable pack badges on. Its default is Yes. This is the only pack-behavior setting. It gates listing decoration, the before-price marker, included products and the rewrite-only URL helper.

Requires PrestaShop 1.7 or later and PHP 7.1 or later.

Mark products as packs

Edit each relevant product reference so it begins with mpr-pack-, for example mpr-pack-starter, mpr-pack-seo-tools or mpr-pack-bathroom-kit. Save the product and open a listing that contains it. Native PrestaShop pack status alone is not this module's detection rule.

The label Bundle is provided through actionProductFlagsModifier where available, so the theme can render it with its native flags. An existing native pack flag is retained. JavaScript adds a native-style .product-flag.pack to a theme flag list when needed. Only cards without such a list use the module's .mpr-pack-badge fallback overlay.

The displayProductListReviews hook outputs the pack indicator with the text Bundle: Save Big. That text is a display label; the module does not calculate savings or create discounts. It does not add a special pack card border/shadow class. Theme styles remain responsible for the card appearance.

Add included products

There is no contents editor in the module configuration. Have your database administrator add the pack-to-product mapping to the prefixed mpr_pack_content table. Replace ps_ with your actual table prefix and use real product IDs:

INSERT INTO ps_mpr_pack_content (id_pack, id_product, position) VALUES
(100, 12, 0),
(100, 34, 1),
(100, 56, 2);

The installed table has unsigned id_pack, id_product and position columns. Position defaults to 0. The primary key is (id_pack, id_product), with an index on id_pack.

On a product with the required reference prefix, displayProductExtraContent adds What's Included (N modules) when matching active products can be loaded. Products are ordered by position. Cards contain a link, name, image or No image placeholder, and a price or FREE for a zero/non-positive stored price. The renderer reads the base product-table price and formats it in the current currency. Do not use it as proof of the final customer-specific, tax-inclusive or converted selling price.

This is a display mapping. It does not create a native PrestaShop pack, manage component inventory or change what checkout delivers. The query uses current-language/current-shop product language rows; it does not fully enforce included-product shop activation through product_shop.

Check your theme and style the output

Your product listing should expose the product reference to the hooks. A compatible card can contain:

<article class="product-miniature js-product-miniature">
  <div class="thumbnail-container">
    {* product image here *}
  </div>
  {hook h='displayProductPriceBlock' product=$product type='before_price'}
  {hook h='displayProductListReviews' product=$product}
</article>

The hidden before-price marker is not a visible badge on its own. Fallback overlays look for .product-miniature__top, .thumbnail-container or .product-image-container. JavaScript observes inserted content under #js-product-list and decorates new pack indicators after AJAX listing updates. Test your theme if it replaces the entire observed container.

Adjust the fallback overlay in your theme stylesheet when needed:

.mpr-pack-badge {
  top: .5rem;
  right: .5rem;
  background-color: #3BAF5C;
}

You can override the variables used by the fallback badge, savings indicator and included-product cards from your theme stylesheet:

:root {
  --mprpackproducts-success: #3BAF5C;
  --mprpackproducts-bg: #fff;
  --mprpackproducts-bg-secondary: #D8F0E0;
  --mprpackproducts-border: rgba(59, 175, 92, 0.2);
  --mprpackproducts-radius: 0.375rem;
  --mprpackproducts-shadow-hover: 0 8px 24px rgba(0, 0, 0, 0.1);
}

The module integrates ThemeDetector variables under --mprpackproducts-*. Edit only variables used by your installed stylesheets. Native .product-flag.pack styling comes from the theme. There are no Back Office controls for label wording, shape, color or per-pack designs.

The enabled module also contains a helper for resolving ambiguous rewrite-only product/category/CMS/manufacturer routes. It is not a general Friendly URL configuration screen. Test existing clean URLs after changing the master switch.

Verify and troubleshoot

  1. Confirm a reference starts with the exact mpr-pack- prefix.
  2. Open a category and search listing containing that active product. Check the Bundle/native pack flag and listing indicator.
  3. Change a facet or trigger an AJAX refresh and confirm the new card still has its flag.
  4. If the flag is absent, check Enable pack badges, product reference data, hook placement and card markup. An existing native pack flag can replace the module's own Bundle label.
  5. If the tab is absent, check the mapping rows, included-product activation/language data and theme support for product extra content.
  6. Use Integrity if required tables or hooks are missing. On older PrestaShop, check locale API availability if the contents tab causes an error.

Disable or uninstall

Turn Enable pack badges off for a temporary stop. Uninstall through Module Manager to remove configuration and the mpr_pack_content table. Back up mappings first. Uninstall also cleans ThemeDetector registration; a failed ThemeDetector cleanup stops uninstall so you can correct it and retry. Product references are not reverted.

Compatibility

Requires PrestaShop 1.7 or later and PHP 7.1 or later.

Questions

No questions about this module yet

Ask anything about installation, compatibility or setup. Answers appear here.

Known Issues

10

Pack item showed an unrelated combination

ResolvedUpdated:
Fixed in: 1.3.2
An inconsistent pack entry could display a combination belonging to a different product.

Pack lookups could fail

ResolvedUpdated:
Fixed in: 1.3.2
Some pack lookups could produce invalid requests and fail to return the expected result.

Standard PrestaShop packs showed no contents

ResolvedUpdated:
Fixed in: 1.3.0
Normal PrestaShop packs were not recognised unless they used a special reference prefix, so their badges and contents could be missing.

Contents tab used the wrong item name

ResolvedUpdated:
Fixed in: 1.3.0
The included-products tab described ordinary products as modules.

Brand-page links could fail

ResolvedUpdated:
Fixed in: 1.3.0
Brand-page links could fail while resolving the brand address.

Pack styling did not match the shop

ResolvedUpdated:
Fixed in: 1.2.0
Pack card corners and contents text could use unsuitable styles instead of the shop theme settings.

Missing translations

ResolvedUpdated:
Fixed in: 1.2.0
Pack labels could remain untranslated in supported shop languages.

Module administration could fail to open

ResolvedUpdated:
Fixed in: 1.1.21
Opening the module administration could stop with an error on shops missing the required price-formatting support.

Pack assets incompatible with asset combining

ResolvedUpdated:
Fixed in: 1.1.21
Pack styles did not integrate correctly with PrestaShop asset combining.

Configuration page had no usable settings

ResolvedUpdated:
Fixed in: 1.1.19
Opening module configuration showed a placeholder instead of the module settings.

Feature Requests

3

Implemented

Pack badges and contents

Implemented
Display pack badges and an included-products tab on supported pack products.

Native theme pack cards

Implemented
Render pack listings with the shop theme's own product card and a native Bundle product flag.

Native PrestaShop pack support

Implemented
Recognise standard PrestaShop packs and show included quantities, combinations, shop images and applicable item prices while respecting product visibility.

Changelog

v1.2.02026-10-04

  • Addedself-healing integrity checks for automatic diagnostics and repair
  • Addedadmin menu management via MenuInstaller for streamlined module setup
  • FixedAdd uninstallDb() to clean up mpr_pack_content table on removal
Older releases

v1.1.202026-08-31

  • Addedcomplete FR/DE/ES/IT/PL translations
  • FixedMigrate module state to MPR config
  • FixedAdd theme detector support

v1.1.02026-01-31

  • AddedPS 9 / Hummingbird theme compatibility
  • Addedconfigurable badge text and colour per product listing
  • Improved'What's Included' tab rendering with product thumbnails
  • Fixedbadge overlap with discount badge when both are active

v1.0.02025-06-30

  • Initialrelease: pack/bundle product badges for PrestaShop listings
  • InitialAutomatic detection of PS native pack products
  • Initial'What's Included' expandable tab on product page showing all pack items
  • InitialCompatible with PS 1.7.x and PS 8.x

Demo

Test the full module before you buy

Buy a licence later and keep your settings.

  • Your 30-day demo Test it on your own shop for 30 days from the first install.
  • Ready demo shop Explore a ready demo shop in your browser.
  • No registration No account, email or store domain needed.
Launch demo shop

By downloading, you accept the demo terms and privacy policy.

By opening this demo you accept the demo terms and the privacy policy.

Loading...
Back to top