[Free Mod] Product Bundles — List Price (MSRP) Based Discount Types

Hi everyone,

I’ve been requesting list price-based discounts for Product Bundles for a while now, but since it doesn’t seem to be on the roadmap, I decided to implement it myself. Sharing it here for anyone who needs the same functionality.

The problem

CS-Cart Product Bundles only allow discounts calculated from the selling price (“Absolute” and “Percent”). If you work with MSRP/list prices and want to offer bundle deals like “15% off list price” or “set bundle price to 85% of MSRP”, there’s no way to do it out of the box.

What this mod adds

6 new discount types in the bundle product editor:

  • To fixed — set discounted price to exact amount

  • To percentage — set discounted price to X% of selling price

  • Absolute off list — subtract fixed amount from list price

  • Percent off list — subtract X% from list price

  • To fixed off list — set price to exact amount (list price context)

  • To percentage off list — set price to X% of list price

The admin bundle editor also gets a new List price column so you can see both prices side by side when configuring discounts.

Example

Let’s say you have two products in a bundle:

| Product | Selling price | List price (MSRP) |

|---------|--------------|-------------------|

| Product A | $130.00 | $150.00 |

| Product B | $419.00 | $500.00 |

Standard “Percent” discount (15% off selling price):

  • Product A: $130 − 15% = $110.50

  • Product B: $419 − 15% = $356.15

  • Bundle total: $466.65

New “To percentage off list” (85% of MSRP):

  • Product A: $150 × 85% = $127.50 → $127.50 (below selling price, discount applies)

  • Product B: $500 × 85% = $425.00 → $419.00 (capped at selling price — no negative discount)

  • Bundle total: $546.50, order discount: -$2.50

New “Percent off list” (15% off MSRP):

  • Product A: $150 − 15% = $127.50 → $127.50

  • Product B: $500 − 15% = $425.00 → $419.00 (capped)

  • Bundle total: $546.50, order discount: -$2.50

Price cap

This is an important safety mechanism: if the discounted-from-list-price ends up higher than the selling price, the customer simply pays the selling price. This prevents showing a “discount” that would actually increase the price.

How to install

Prerequisites: CS-Cart Ultimate 4.19.1.sp2, SSH access. Back up your files and database first.

  1. Download the .diff file from the gist below

  2. Upload it to your CS-Cart root directory (where index.php is)

  3. SSH into your server and run:


cd /path/to/cscart

patch -p1 < product_bundles_list_price_discount.diff

rm -rf var/cache/*

  1. Clean up:

rm product_bundles_list_price_discount.diff

To revert:


patch -R -p1 < product_bundles_list_price_discount.diff

rm -rf var/cache/*

Download

Gist: product_bundles_list_price_discount.diff

8 files modified, no database changes required.


It would be really great if the CS-Cart team could add native support for list price-based promotions and product bundles in a future release. This is a common pricing model, especially in B2C, and having it built-in would save everyone a lot of time.

Hope this helps someone. Let me know if you run into any issues.

1 Like