Product Comparison Tool
Side-by-side comparison powered by live CS-Cart product data — spec highlighting shows customers exactly where each product wins
Customers leave to compare
Buyers open 4–5 browser tabs to compare hot tub specs. Most don't come back to Family Leisure.
High support call volume
No compare view means customers call the store asking "what's the difference?" — wasting staff time on pre-sales questions.
Competitors already have it
Rival stores offer image-rich comparison tables. Family Leisure has no answer for customers in the "almost decided" stage.
🟢 Green rows = this product wins that spec · In production this pulls live data from cscart_products where status = 'A'
Click any step to see the exact CS-Cart tables and filters used at that stage.
status = 'A' are eligible to appear.| Status Code | Meaning | Shown in Comparison? |
|---|---|---|
| A | Active | ✅ Yes |
| D | Disabled | ❌ Excluded at SQL level |
| H | Hidden | ❌ Excluded at SQL level |
| R | Requires approval | ❌ Excluded at SQL level |
SELECT p.product_id, pd.product, p.price
FROM cscart_products p
JOIN cscart_product_descriptions pd USING (product_id)
JOIN cscart_product_categories pc USING (product_id)
WHERE p.status = 'A'
AND pc.category_id = :current_category
ORDER BY pd.product ASC
| Data | Source Table |
|---|---|
| Product name | cscart_product_descriptions |
| Price (incl. sale price) | cscart_product_prices |
| Product image URL | cscart_images_links |
| Spec rows (jets, seating, etc.) | cscart_product_features + variants |
| Action | Method |
|---|---|
| Spec row alignment | Match by feature label, render grid |
| Boolean spec highlight | true vs false → green / muted |
| Numeric spec highlight | Parse number → higher = green (configurable) |
| Price winner | Arithmetic → "Product B is $700 less" |
| Score summary | Count wins per side → "Product A wins 6/9 specs" |
A common question: "Why not use an AI to power comparisons?" Here's the honest answer:
With a Third-Party AI
Every comparison triggers an API call to an external service. You pay per query. Response times add 1–3 seconds of latency. Your product data leaves your server. If the API goes down, the feature breaks. And the "intelligence" isn't actually smarter than your own database.
Our Approach — Code + CS-Cart DB
All logic runs on your own server against your own CS-Cart database. Zero API fees. Sub-100ms response times. Works offline / without internet access. Data never leaves your server. The comparison is always accurate because it reads directly from your live product data.
AI Can't Know Your DB
An AI model has no live connection to your CS-Cart tables. It would work from static snapshots that go stale. It could hallucinate specs or prices. Your actual product statuses (disabled, discontinued) would not be respected in real time.
Fully Auditable & Yours
Every rule in the comparison logic is readable PHP and JavaScript code. You own it completely. No vendor lock-in. If you want to change which specs are highlighted green, it's a one-line edit — no retraining, no API changes, no waiting.
CS-Cart comparison addon
A "Compare" button on each product card. Users pick any two products and see a visual side-by-side layout with real images, live pricing from the DB, and a colour-coded spec grid. Built as a CS-Cart PHP addon — install from admin panel.
Faster decisions, fewer calls
Customers who compare on-site are 3× more likely to convert. The spec highlighting removes confusion instantly. Direct reduction in "which one should I get?" calls to store staff.
Customers leave to compare on competitor sites and often don't come back. High-value sales are lost at the "almost decided" stage. Support team spends hours answering spec questions by phone instead of closing deals.
Customers stay on-site through the decision phase. Product images + spec highlighting become a closing tool — buyers see differences clearly and add to cart with confidence. Measurable uplift in conversion rate for high-ticket SKUs.
"Which product is right for me?" Quiz
Rule-based recommendation engine — no AI, just smart PHP logic querying real CS-Cart data with best-seller ranking
Choice overload
A first-time buyer doesn't know if they need a hot tub, above-ground pool, or patio setup. The site throws all products at them — they bounce.
Lost at browse stage
Customers who feel overwhelmed leave. They're not price-sensitive — they're just lost. A guided quiz keeps them engaged and moving toward a purchase.
Online ≠ in-store
Family Leisure excels at in-store consultation. The quiz replicates that guided experience digitally — available 24/7, no staff time needed.
Find your perfect Family Leisure product
Answer 5 quick questions — we'll recommend the best fit from our live product catalogue.
Your answers
📩 Want us to email you this recommendation?
We'll send a personalised summary with product links — no spam, ever.
Click any step to see exactly what happens at each stage — from quiz render to live database query.
Questions, answer options, and their tags (e.g. relax, swim, fun) are hard-coded in a PHP template rendered once on page load. The quiz UI is 100% client-side JavaScript — no AJAX until the customer submits.
['relax', 'small', 'medium_space', 'mid', 'outdoor'] — no personal data collected yet.| Question | Example Answer | Tag Sent |
|---|---|---|
| Primary goal | Relaxation & therapy | relax |
| Group size | 3–4 people | small |
| Available space | Medium backyard | medium_space |
| Budget | $2,000–$4,000 | mid |
| Setting | Outdoor only | outdoor |
if ($goal === 'relax' && $budget === 'mid') {
$category = 'hot_tubs'; // CS-Cart category ID 12
} elseif ($goal === 'relax' && $budget === 'low') {
$category = 'massage'; // CS-Cart category ID 44
} elseif ($goal === 'swim' && $space === 'large_space') {
$category = 'pools'; // CS-Cart category ID 18
} elseif ($goal === 'fun' && $space === 'indoor') {
$category = 'game_tables'; // CS-Cart category ID 27
}
// ... 12+ rules covering all combinations
All rules are in one readable PHP file — fully editable by the admin without touching the database.
SELECT p.product_id, pd.product, p.price, pop.total
FROM cscart_products p
JOIN cscart_product_descriptions pd USING (product_id)
JOIN cscart_product_categories pc USING (product_id)
JOIN cscart_popularity pop USING (product_id)
WHERE p.status = 'A'
AND p.amount > 0
AND pc.category_id = :recommended_category
ORDER BY pop.total DESC -- best sellers first
LIMIT 4
| Column | Incremented when… | Weight |
|---|---|---|
pop.views | Customer views the product page | Low |
pop.add_to_cart | Customer adds product to cart | Medium |
pop.purchased | Customer completes a purchase | Highest |
pop.total | Composite score (maintained by CS-Cart) | Used for ranking |
This means the quiz naturally surfaces your most loved products — no manual curation needed. As sales change, rankings update automatically.
Interactive JS quiz + PHP engine
A 5-step wizard as a CS-Cart addon. Rule-based PHP logic maps answers to categories, then pulls real best-selling products from your database. Optional email capture at result for lead generation.
A 24/7 digital sales consultant
Every quiz completion is a warm lead directed to a specific product page. Completion data reveals what customers want — informing inventory and marketing decisions without any extra effort.
New visitors land on a large product catalogue, feel overwhelmed, and leave. The site only works for customers who already know what they want — a huge segment of "exploring" buyers is completely unserved and lost.
Browsing visitors become guided shoppers. Product images in the result build purchase intent immediately. Completion data also gives the client invaluable buyer intent signals for inventory and marketing decisions.
Implementation Timeline
Both features are delivered as a single CS-Cart addon — installable from the admin panel with no server command-line access needed.
Phase 1 — Comparison Tool
PHP controller, DB query with status filtering, JS comparison card UI, spec diff highlighting, QA testing.
Phase 2 — Recommendation Quiz
PHP decision tree, live DB fetch, best-seller ranking, quiz JS renderer, progress bar, email capture.
Phase 3 — Polish & Launch
Mobile testing, performance check (target <300ms AJAX), admin settings panel, handover docs.