combinations · variants · tax

Full combination pricing workflow for PrestaShop: price impact (net, as in the back office), reverse mode from the copied value to the combination price, a multi-row list with editable labels and CSV export. The How it works tab explains the formula and matches the BO JavaScript.

Mode
Gross prices (VAT included)
Product base price BasePrice
Variant / combination price CombinedPrice
VAT rate Tax
%
Price impact (for PS) PriceImpact
Δ€
Base price (net of VAT)
Combination price (net of VAT)
Net difference (impact)
Impact % on base price
Value for PrestaShop (6 dp)
# Description Comb. price (€ gross) Net VAT (€) Net impact (€) PrestaShop impact Δ%

What is “Price impact” in PrestaShop?

When you create a product combination (variant) — e.g. size XL or red — PrestaShop does not store the final price: it stores the net difference from the product’s base price.

This field is called Price impact and is added to the net base price (excluding VAT) when the price is built. VAT is then applied to the net total.

The formula

Inputs: gross base price (incl. VAT), gross combination price, VAT rate.

// Split VAT from both gross prices
baseNet     = baseGross     / (1 + taxRate / 100)
combNet     = combGross     / (1 + taxRate / 100)

// Impact is the net difference
priceImpact = combNet - baseNet

// Example: base €99.90, combination €129.90, VAT 22%
baseNet  = 99.90 / 1.22 = 81.885245...
combNet  = 129.90 / 1.22 = 106.475409...
impact   = 106.475409 - 81.885245 = 24.590164

Why 6 decimals?

PrestaShop stores net prices with 6 decimal places to limit rounding drift in VAT calculations. Fewer decimals can make the final price differ slightly from what you expect.

Original PrestaShop JavaScript

// Logic equivalent to the PS back office
function calcolaImpatto() {
  const prezzoBase      = parseFloat(PrezzoBase.value.replace(",", "."));
  const tassazione      = parseFloat(Tassazione.value.replace(",", ".")) / 100;
  const prezzoCombinato = parseFloat(PrezzoCombinato.value.replace(",", "."));

  const baseNoIva  = prezzoBase      / (1 + tassazione);
  const combNoIva  = prezzoCombinato / (1 + tassazione);
  const impatto    = combNoIva - baseNoIva;

  ImpattoPrezzo.value = impatto.toFixed(6);
}

⚠ If the impact is negative (combination cheaper than the base), PrestaShop accepts negative values — e.g. -10.245902 for a cheaper combination.

How to use this tool

  1. Calculate impact: enter base and variant prices (both VAT inclusive), set the tax rate, and read the impact to paste into PrestaShop.
  2. Price from impact: enter base price, impact copied from PS and VAT to get the resulting combination price.
  3. Combination list: add several prices (or use + Add from the calculator), edit descriptions, compare impacts and export CSV.
  4. Use Copy value / Copy for PrestaShop in the tool header to copy the 6-decimal value quickly.