PS PrestaShop Beginner

VAT and price per product in PrestaShop packs

Install and configure Pack VAT Pro: prices, discounts and VAT rates per component, invoicing modes and discount display.

Updated Module version 1.1.1

Overview

Pack VAT Pro gives every product inside a PrestaShop pack its own price, its own discount and its real VAT rate. The pack price displayed in the shop becomes the exact sum of the components, and the invoice is rewritten to be fiscally correct, according to the chosen mode: one line per component, or a single pack line with a multi-rate VAT breakdown. Packs whose components are not all priced keep the native PrestaShop behavior.

Installation

In the back office, open Modules, click Upload a module and drop the ZIP file. The module installs without external dependencies and runs on PrestaShop 8.0 to 9.x. On install it creates its two data tables and registers on the price calculation, order validation and PDF invoice hooks.

General configuration

Open the module configuration. Three settings are available.

Invoice presentation

Single pack line with VAT breakdown (default): the customer sees one Pack line, and the invoice tax details are broken down per rate, exact to the cent. Exploded lines: the invoice replaces the pack with one line per component, each with its price, its discount and its rate. This second mode produces natively correct documents everywhere, credit slips included.

Front office price override

Strongly recommended, enabled by default. The pack price (tax excl. and incl.) becomes the exact sum of the discounted components, with the rate of each product. Cart, order and invoice then always show the same amounts. If you disable it, the pack keeps its native price and the module resyncs the totals at order time.

Partial pack logging

When an ordered pack has only some of its components priced, the module does not act and can report it in Advanced Parameters, Logs.

Prices per component

Open the pack product page, Modules panel, Pack VAT Pro section. Each component appears with its quantity and its VAT rate.

Base prices

Base prices are prefilled with the catalog price of each product, combination impacts included. Type the amount tax excl. or tax incl.: the other field is computed automatically with the component rate. The Reload base prices from catalog button resyncs all rows.

Discounts

For each component, pick None, Amount (tax excl.) or Percent, then type the value. The discounted price, tax excl. and incl., updates live, along with the pack total. Save with Save component prices.

Pack price

The discounted pack total shows in the table footer. If the pack catalog price differs from this sum, a warning appears: click Apply sum to pack price to align the catalog price, or keep the front override active, which already enforces the exact sum.

Discount display

When at least one component is discounted, the customer sees: on the PDF invoice, a Discounts applied to pack components table with base price, discount amount (and percentage where relevant) and price after discount; on the order confirmation page and in the account history, a Pack contents and discounts block with crossed out normal price, discount and price paid.

Best practices and limits

Manage pack promotions with the module’s per-component discounts rather than PrestaShop specific prices on the pack: a specific price applies to the single pack price and would ignore the per-rate breakdown. In single line mode, partial credit slips remain prorated globally by PrestaShop; if you issue many credit slips, prefer the exploded lines mode. Prices are entered in the shop default currency and converted automatically to other currencies.

Troubleshooting

The pack price does not change in the shop: check that every component has a price and that the front override is enabled, then clear the cache. The discount table does not appear on the invoice: it only shows when at least one component is discounted, and only for orders placed after installation. A pack behaves like before: it is probably partially configured, check the logs.

Was this page helpful?

Still stuck? Contact support