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.
-
Download the
.difffile from the gist below -
Upload it to your CS-Cart root directory (where
index.phpis) -
SSH into your server and run:
cd /path/to/cscart
patch -p1 < product_bundles_list_price_discount.diff
rm -rf var/cache/*
- 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.