demo

import React, { useState, useEffect } from 'react'; import { Calculator, CheckCircle, DollarSign, TrendingUp, ShoppingCart, Search, Zap, Users } from 'lucide-react'; const PricingCalculator = () => { const [selectedServices, setSelectedServices] = useState({}); const [projectSize, setProjectSize] = useState('small'); const [duration, setDuration] = useState('3'); const [totalPrice, setTotalPrice] = useState(0); const [showQuoteForm, setShowQuoteForm] = useState(false); const services = { seo: { name: 'eCommerce SEO', icon: Search, basePrice: 800, description: 'Complete SEO optimization for your online store', features: ['Keyword Research', 'On-page SEO', 'Technical SEO', 'Content Optimization'], multipliers: { small: 1, medium: 1.5, large: 2.5, enterprise: 4 } }, ppc: { name: 'PPC Management', icon: TrendingUp, basePrice: 1200, description: 'Google Ads & shopping campaigns management', features: ['Campaign Setup', 'Keyword Management', 'Ad Creation', 'Performance Optimization'], multipliers: { small: 1, medium: 1.8, large: 3, enterprise: 5 } }, development: { name: 'eCommerce Development', icon: ShoppingCart, basePrice: 2000, description: 'Custom eCommerce website development', features: ['Custom Design', 'Mobile Responsive', 'Payment Integration', 'Admin Panel'], multipliers: { small: 1, medium: 2, large: 4, enterprise: 8 } }, amazon: { name: 'Amazon SEO', icon: Zap, basePrice: 600, description: 'Amazon marketplace optimization', features: ['Product Listing', 'Keyword Optimization', 'A+ Content', 'Review Management'], multipliers: { small: 1, medium: 1.3, large: 2, enterprise: 3 } }, social: { name: 'Social Media Marketing', icon: Users, basePrice: 700, description: 'Social media management and advertising', features: ['Content Creation', 'Community Management', 'Paid Advertising', 'Analytics'], multipliers: { small: 1, medium: 1.4, large: 2.2, enterprise: 3.5 } }, cro: { name: 'Conversion Rate Optimization', icon: CheckCircle, basePrice: 900, description: 'A/B testing and conversion optimization', features: ['Landing Page Testing', 'User Experience Analysis', 'Conversion Funnel', 'Performance Reports'], multipliers: { small: 1, medium: 1.6, large: 2.8, enterprise: 4.5 } } }; const projectSizes = { small: { name: 'Small Business', description: 'Up to $100K annual revenue' }, medium: { name: 'Medium Business', description: '$100K - $1M annual revenue' }, large: { name: 'Large Business', description: '$1M - $10M annual revenue' }, enterprise: { name: 'Enterprise', description: '$10M+ annual revenue' } }; const durationMultipliers = { '1': 1.2, '3': 1, '6': 0.9, '12': 0.8 }; useEffect(() => { const calculateTotal = () => { let total = 0; Object.keys(selectedServices).forEach(serviceKey => { if (selectedServices[serviceKey]) { const service = services[serviceKey]; const basePrice = service.basePrice; const sizeMultiplier = service.multipliers[projectSize]; const durationMultiplier = durationMultipliers[duration]; total += basePrice * sizeMultiplier * durationMultiplier; } }); setTotalPrice(total); }; calculateTotal(); }, [selectedServices, projectSize, duration]); const handleServiceToggle = (serviceKey) => { setSelectedServices(prev => ({ ...prev, [serviceKey]: !prev[serviceKey] })); }; const getSelectedServicesCount = () => { return Object.values(selectedServices).filter(Boolean).length; }; const getDiscountPercentage = () => { const count = getSelectedServicesCount(); if (count >= 4) return 15; if (count >= 3) return 10; if (count >= 2) return 5; return 0; }; const getFinalPrice = () => { const discount = getDiscountPercentage(); return totalPrice * (1 - discount / 100); }; return (
{/* Header */}

EcommBrains Pricing Calculator

Get instant pricing for your eCommerce marketing needs. Select services, business size, and duration to see your customized quote.

{/* Service Selection */}

Select Your Services

{Object.entries(services).map(([key, service]) => { const Icon = service.icon; const isSelected = selectedServices[key]; return (
handleServiceToggle(key)} >
{isSelected && }

{service.name}

{service.description}

{service.features.map((feature, index) => (
{feature}
))}
From ${service.basePrice}/mo
); })}
{/* Business Size Selection */}

Business Size

{Object.entries(projectSizes).map(([key, size]) => ( ))}
{/* Duration Selection */}

Contract Duration

{Object.entries(durationMultipliers).map(([months, multiplier]) => ( ))}
{/* Price Summary */}

Price Summary

{getSelectedServicesCount() === 0 ? (

Select services to see pricing

) : ( <>
{Object.entries(selectedServices).map(([key, isSelected]) => { if (!isSelected) return null; const service = services[key]; const price = service.basePrice * service.multipliers[projectSize] * durationMultipliers[duration]; return (
{service.name}
{projectSizes[projectSize].name}
${Math.round(price)}
per month
); })}
{/* Discount Badge */} {getDiscountPercentage() > 0 && (
{getDiscountPercentage()}% Bundle Discount Applied!
)}
Subtotal ${Math.round(totalPrice)}/mo
{getDiscountPercentage() > 0 && (
Discount ({getDiscountPercentage()}%) -${Math.round(totalPrice - getFinalPrice())}/mo
)}
Total ${Math.round(getFinalPrice())}/mo
* Final pricing may vary based on specific requirements
)}
{/* Quote Form Modal */} {showQuoteForm && (

Get Your Custom Quote

Our team will contact you within 24 hours with a detailed proposal.