2026 Latest SME Offers

Hong Kong Commercial Copier Leasing
AI Instant Quote in 10 Seconds

“Smart Budget” helps SMB clients skip the traditional lengthy printer quoting process: simply enter your monthly print volume, and AI instantly calculates the most suitable copier leasing monthly fee. From HK$399 /month | Flexible 12–60 month contracts

Clear Volume: 2,000 pages included monthly (B&W 1,600 / Color 400)
Auto Management: Auto meter reading | Toner auto-delivery
Tech Support: 2–4 hour response during office hours | Next business day on-site
Commercial Copier
Monthly from
HK$ 399
Monthly print
2,000 pages (A3/A4)
💡
AI Tip
Not sure about your actual print volume? No worries!
You can check your old supplier’s monthly statement, or press “Print Report” on the printer to find out.
Even if your estimate is off, don’t worry — just pick an approximate number 👇

Step 1: Enter Your Requirements

Slide to update monthly fee instantly

Quick Presets:
ppl
🛡️

Exclusive “Smart Flex” Contract Promise

  • Wrong estimate? No problem: Just make a rough guess and lock in the promotional price.
  • Adjustable after 12 months: Re-set monthly fee and volume based on actual usage.
  • Early termination: Maximum flexibility for SMEs — you can even end the contract early.
AI Smart Calculation Result
We recommend “Cash Purchase” or “HSBC Interest-Free Installment” for the lowest long-term cost.
💰 Exclusive Offer: 30% below market price + Monthly rebate of HK$200 throughout the contract

Step 2: Choose a Model

Click a card below to switch — AI will recalculate the purchase price

AI is recalculating…
Analyzing volume & rebate combinations
Selected model image
SALE

Ricoh MP C3504

✓ Selected

35 ppm · 10.1″ smart screen · SME all-round champion.

35 ppm Color / B&W 1200×1200 dpi 4 Paper Trays Floor-standing w/ Casters
Market Ref. Price HK$ 10,888*
Purchase Price (Refurbished)
HK$ 8,000
HSBC 36-month installment, as low as HK$ 222 /mo
*Installment subject to credit card approval & merchant terms
Monthly Rebate $200
*Continuous rebate throughout contract
Auto Finisher Stapler / Sorter 💡 Essential for High Volume
📌 Print & staple in one step — save 30% manual time
+HK$4,000 (one-time) HSBC36-month installment, as low as HK$ 111 /mo
Auto sorting & stapling in one step
Best for: Meeting documents, tenders, teaching materials
AI Smart Suggestion
Before you submit: We’ll confirm the best plan based on your usage and company size.
Your estimated monthly fee already includes the HK$200 monthly rebate. After submission, our team will contact you within 1 business day.

Step 3: Leave Your Contact Info

We’ll respond within 1 business day

+852
Used only for this quote response
Your info is used only for this quote & response

Inquiry Submitted!

Thank you for your inquiry!
Our account manager will contact you by phone within 1 business day.

WhatsApp Us
‘; const industryData = device.industryFit[industry] || device.industryFit[‘Other’]; const fitScore = industryData.score; let volumeStatus, volumeAdvice; if (totalVolume <= device.volumeRange.ideal) { volumeStatus = 'optimal'; volumeAdvice = 'Your print volume is within this model\'s optimal performance range'; } else if (totalVolume <= device.volumeRange.max) { volumeStatus = 'acceptable'; volumeAdvice = 'This model can handle your volume, but it\'s approaching the upper limit'; } else { volumeStatus = 'exceeded'; volumeAdvice = 'Your print volume is quite high — consider a faster model'; } const themeClass = device.theme ? ` ${device.theme}` : ''; let html = `
${device.icon} ${device.tagline}
${device.highlights.map(h => `
✓ ${h}
`).join(”)}
Industry Match
${industryData.note}
${volumeStatus === ‘optimal’ ? ‘✅’ : volumeStatus === ‘acceptable’ ? ‘⚠️’ : ‘🔺’}
Volume Assessment: ${volumeAdvice}
${generateSmartSuggestion(device, totalVolume, colorRatio, industry)}
`; return html; } function generateSmartSuggestion(device, volume, colorRatio, industry) { let suggestions = []; if (volume > device.volumeRange.ideal && device.addonSuggestions.highVolume) { suggestions.push(device.addonSuggestions.highVolume); } if (colorRatio > 0.3 && device.addonSuggestions.colorHeavy) { suggestions.push(device.addonSuggestions.colorHeavy); } if (industry === ‘Construction / Engineering / Interior Design’ && device.addonSuggestions.design) { suggestions.push(device.addonSuggestions.design); } if (volume > 8000 && !state.stapler) { suggestions.push(‘Recommend adding a finisher to improve bulk document processing efficiency’); } if (suggestions.length === 0) return ”; return `
💡 AI Suggestions
${suggestions.map(s => `
${s}
`).join(”)}
`; } function updateTileFitScores() { const industry = document.getElementById(‘sb-industry-select’)?.value || ‘General Office’; const tiles = document.querySelectorAll(‘.sb-device-tile’); tiles.forEach(tile => { const deviceType = tile.dataset.type; const device = DEVICE_DATABASE[deviceType]; if (!device) return; const industryData = device.industryFit[industry] || device.industryFit[‘Other’]; const fitScore = industryData.score; const fitFill = tile.querySelector(‘.sb-tile-fit-fill’); const fitText = tile.querySelector(‘.sb-tile-fit-text’); if (fitFill) fitFill.style.width = `${fitScore}%`; if (fitText) fitText.textContent = `${fitScore}% Match`; }); } function calculate() { const customBw = Math.max(0, state.bw – state.baseBwLimit); const customColor = Math.max(0, state.color – state.baseColorLimit); const customBwCost = customBw * CONFIG.PRICING.EXCESS.BW; const customColorCost = customColor * CONFIG.PRICING.EXCESS.COLOR; const totalCustom = customBwCost + customColorCost; const monthlyRebate = CONFIG.PRICING.REBATE; const rebateMonths = Math.min(state.duration, CONFIG.PRICING.MAX_REBATE_MONTHS); const totalRebateValue = monthlyRebate * rebateMonths; const monthlyWithRebate = Math.max(CONFIG.PRICING.BASE_PLAN + totalCustom – monthlyRebate, 0); const monthlyNoRebate = Math.max(CONFIG.PRICING.BASE_PLAN + totalCustom, 0); const effectiveMachinePrice = getMachinePrice(); const totalPages = state.bw + state.color; const addonCard = document.getElementById(‘sb-addon-card-el’); if (addonCard) { if (totalPages > CONFIG.HIGH_VOLUME_THRESHOLD) { addonCard.classList.add(‘recommended’); } else { addonCard.classList.remove(‘recommended’); } } const monthlyTotal = document.getElementById(‘sb-monthly-total’); if (monthlyTotal) { const currentVal = parseInt(monthlyTotal.textContent.replace(/[^\d]/g, ”)) || 0; if (currentVal !== monthlyWithRebate) { animateValue(monthlyTotal, currentVal, monthlyWithRebate, 500); } } const monthlyTotalInline = document.getElementById(‘sb-monthly-total-inline’); const originalPriceEl = document.getElementById(‘sb-original-price’); const machineTotal = document.getElementById(‘sb-machine-total’); const summaryModel = document.getElementById(‘sb-summary-model’); const summaryDuration = document.getElementById(‘sb-summary-duration’); const mobilePrice = document.getElementById(‘sb-mobile-price-val’); const mobileInfo = document.getElementById(‘sb-mobile-info-text’); const rebateMonthlyEl = document.getElementById(‘sb-rebate-monthly’); const rebateTotalEl = document.getElementById(‘sb-rebate-total’); const mainPrice = document.getElementById(‘sb-main-price’); const mainAddon = document.getElementById(‘sb-main-addon’); const addonRow = document.getElementById(‘sb-summary-addon-row’); const addonPrice = document.getElementById(‘sb-summary-addon-price’); const mainInstallment = document.getElementById(‘sb-main-installment’); const breakdownTotal = document.getElementById(‘sb-breakdown-total’); if (monthlyTotalInline) monthlyTotalInline.textContent = formatCurrency(monthlyWithRebate); if (originalPriceEl) originalPriceEl.textContent = formatCurrency(monthlyNoRebate); if (mobilePrice) mobilePrice.textContent = formatCurrency(monthlyWithRebate); if (machineTotal) machineTotal.textContent = formatCurrency(effectiveMachinePrice); if (mainPrice) mainPrice.textContent = formatCurrency(effectiveMachinePrice); if (mainInstallment) mainInstallment.textContent = Math.ceil(effectiveMachinePrice / 36).toLocaleString(‘en-HK’); if (summaryModel) summaryModel.textContent = state.modelName; if (summaryDuration) summaryDuration.textContent = `${state.duration} Months`; if (rebateMonthlyEl) rebateMonthlyEl.textContent = `-${formatCurrency(monthlyRebate)}`; if (rebateTotalEl) rebateTotalEl.textContent = formatCurrency(totalRebateValue); if (mobileInfo) { const shortName = state.modelName.replace(‘Fuji Xerox’, ‘FX’).replace(‘ApeosPort-VI’, ”).replace(‘ApeosPort‑VI’, ”).trim(); mobileInfo.textContent = `${state.duration} Months • ${shortName}`; } if (mainAddon) mainAddon.style.display = state.stapler ? ‘inline-flex’ : ‘none’; if (addonRow) addonRow.style.display = state.stapler ? ‘flex’ : ‘none’; if (addonPrice) addonPrice.textContent = formatCurrency(CONFIG.ADDONS.STAPLER); if (breakdownTotal) breakdownTotal.textContent = formatCurrency(monthlyWithRebate); // Update breakdown details const customBwRow = document.getElementById(‘sb-breakdown-custom-bw’); const customColorRow = document.getElementById(‘sb-breakdown-custom-color’); const customBwPages = document.getElementById(‘sb-custom-bw-pages’); const customBwCostEl = document.getElementById(‘sb-custom-bw-cost’); const customColorPages = document.getElementById(‘sb-custom-color-pages’); const customColorCostEl = document.getElementById(‘sb-custom-color-cost’); if (customBwRow) { customBwRow.style.display = customBw > 0 ? ‘flex’ : ‘none’; if (customBwPages) customBwPages.textContent = formatNumber(customBw); if (customBwCostEl) customBwCostEl.textContent = Math.round(customBwCost).toLocaleString(‘en-HK’); } if (customColorRow) { customColorRow.style.display = customColor > 0 ? ‘flex’ : ‘none’; if (customColorPages) customColorPages.textContent = formatNumber(customColor); if (customColorCostEl) customColorCostEl.textContent = Math.round(customColorCost).toLocaleString(‘en-HK’); } updateSliderTickPositions(); updateTileFitScores(); saveState(); // Update AI analysis const aiBox = document.getElementById(‘sb-ai-reasoning’); if (aiBox && document.getElementById(‘sb-step2’).classList.contains(‘active’)) { aiBox.innerHTML = generateAiAnalysis(state.machineType); } } function updateSliderTickPositions() { const bwSlider = document.getElementById(‘sb-bw-slider’); const colorSlider = document.getElementById(‘sb-color-slider’); const bwTick = document.getElementById(‘sb-bw-tick’); const colorTick = document.getElementById(‘sb-color-tick’); if (bwSlider && bwTick) { const max = Number(bwSlider.max) || 1; const pct = clamp((state.baseBwLimit / max) * 100, 0, 100); bwTick.style.left = `${pct}%`; bwTick.querySelector(‘.sb-tick-label’).textContent = `Incl. ${formatNumber(state.baseBwLimit)}`; } if (colorSlider && colorTick) { const max = Number(colorSlider.max) || 1; const pct = clamp((state.baseColorLimit / max) * 100, 0, 100); colorTick.style.left = `${pct}%`; colorTick.querySelector(‘.sb-tick-label’).textContent = `Incl. ${formatNumber(state.baseColorLimit)}`; } } function runAiAutoEstimate() { const industrySelect = document.getElementById(‘sb-industry-select’); if (!industrySelect) return; const industry = industrySelect.value; const staff = state.staff > 0 ? state.staff : 1; clearActivePreset(); if (!industry || industry === ‘General Office’) { calculate(); return; } const mult = INDUSTRY_DATA[industry] || INDUSTRY_DATA[‘default’]; const newBw = Math.min(Math.ceil((staff * mult.bw) / 50) * 50, CONFIG.LIMITS.BW.MAX); const newColor = Math.min(Math.ceil((staff * mult.color) / 50) * 50, CONFIG.LIMITS.COLOR.MAX); state.bw = Math.max(newBw, state.baseBwLimit); state.color = Math.max(newColor, state.baseColorLimit); const bwSlider = document.getElementById(‘sb-bw-slider’); const bwInput = document.getElementById(‘sb-bw-input’); const colorSlider = document.getElementById(‘sb-color-slider’); const colorInput = document.getElementById(‘sb-color-input’); if (bwSlider) bwSlider.value = String(state.bw); if (bwInput) bwInput.value = formatNumber(state.bw); if (colorSlider) colorSlider.value = String(state.color); if (colorInput) colorInput.value = formatNumber(state.color); updateStepperState(‘bw’); updateStepperState(‘color’); calculate(); triggerAiPulse(); } function triggerAiPulse() { const aiCards = document.querySelectorAll(‘.sb-ai-smart’); aiCards.forEach(card => { card.classList.remove(‘sb-ai-pulse’); void card.offsetWidth; card.classList.add(‘sb-ai-pulse’); }); } function updateStepperState(key) { const config = key === ‘bw’ ? CONFIG.LIMITS.BW : (key === ‘color’ ? CONFIG.LIMITS.COLOR : CONFIG.LIMITS.STAFF); const currentVal = state[key]; let minusBtn, plusBtn; if (key === ‘bw’) { const wrap = document.getElementById(‘sb-bw-input’)?.closest(‘.sb-slider-wrapper’); if (wrap) { minusBtn = wrap.querySelector(‘.sb-bw-minus’); plusBtn = wrap.querySelector(‘.sb-bw-plus’); } } else if (key === ‘color’) { const wrap = document.getElementById(‘sb-color-input’)?.closest(‘.sb-slider-wrapper’); if (wrap) { minusBtn = wrap.querySelector(‘.sb-color-minus’); plusBtn = wrap.querySelector(‘.sb-color-plus’); } } else if (key === ‘staff’) { const wrap = document.getElementById(‘sb-staff-input’)?.closest(‘.sb-slider-wrapper’); if (wrap) { const btns = wrap.querySelectorAll(‘button’); minusBtn = btns[0]; plusBtn = btns[1]; } } if (minusBtn) minusBtn.disabled = currentVal <= config.MIN; if (plusBtn) plusBtn.disabled = currentVal >= config.MAX; } const debouncedCalc = debounce(() => calculate(), 100); function bindSlider(id, key, config) { const slider = document.getElementById(id); const input = document.getElementById(id.replace(‘-slider’, ‘-input’)); if (!slider || !input) return; slider.addEventListener(‘input’, (e) => { const val = clamp(Number(e.target.value), config.MIN, config.MAX); state[key] = val; input.value = formatNumber(val); updateStepperState(key); clearActivePreset(); debouncedCalc(); }); input.addEventListener(‘input’, (e) => { e.target.value = e.target.value.replace(/[^\d]/g, ”); }); input.addEventListener(‘blur’, () => { let val = parseInt(input.value.replace(/,/g, ”), 10); if (isNaN(val)) val = state[key]; val = clamp(val, config.MIN, config.MAX); input.value = formatNumber(val); slider.value = String(val); state[key] = val; updateStepperState(key); clearActivePreset(); calculate(); }); } function bindStaffInput() { const input = document.getElementById(‘sb-staff-input’); if (!input) return; input.addEventListener(‘input’, (e) => { e.target.value = e.target.value.replace(/[^\d]/g, ”); }); input.addEventListener(‘blur’, () => { let val = parseInt(input.value, 10) || CONFIG.LIMITS.STAFF.MIN; val = clamp(val, CONFIG.LIMITS.STAFF.MIN, CONFIG.LIMITS.STAFF.MAX); state.staff = val; input.value = formatNumber(val); updateStepperState(‘staff’); clearActivePreset(); runAiAutoEstimate(); calculate(); }); } function bindSelects() { const industry = document.getElementById(‘sb-industry-select’); if (industry) industry.addEventListener(‘change’, runAiAutoEstimate); } function bindAddons() { const stapler = document.getElementById(‘sb-addon-stapler’); if (!stapler) return; stapler.checked = !!state.stapler; stapler.addEventListener(‘change’, () => { state.stapler = stapler.checked; calculate(); }); } function setDuration(val) { const dur = CONFIG.DURATION_OPTIONS.includes(val) ? val : 36; state.duration = dur; const cards = document.querySelectorAll(‘.sb-duration-card’); cards.forEach(btn => { const d = parseInt(btn.getAttribute(‘data-duration’), 10); const active = d === dur; btn.classList.toggle(‘active’, active); btn.setAttribute(‘aria-pressed’, active ? ‘true’ : ‘false’); }); calculate(); } function initDurationCards() { const cards = document.querySelectorAll(‘.sb-duration-card’); cards.forEach(btn => { const d = parseInt(btn.getAttribute(‘data-duration’), 10); const rebateMonths = Math.min(d, CONFIG.PRICING.MAX_REBATE_MONTHS); const totalRebate = CONFIG.PRICING.REBATE * rebateMonths; const sub = btn.querySelector(‘[data-role=”rebate-text”]’); if (sub) sub.textContent = `Total Rebate ${formatCurrency(totalRebate)}`; btn.addEventListener(‘click’, () => { clearActivePreset(); setDuration(d); }); }); setDuration(state.duration); } function simulateAiCalculation(callback) { const overlay = document.getElementById(‘sb-loading-overlay’); const img = document.getElementById(‘sb-main-img’); if (overlay) overlay.classList.add(‘active’); if (img) img.classList.add(‘loading-blur’); setTimeout(() => { if (callback) callback(); if (overlay) overlay.classList.remove(‘active’); if (img) img.classList.remove(‘loading-blur’); }, 600); } function selectDeviceTile(tile) { document.querySelectorAll(‘.sb-device-tile’).forEach(t => { t.classList.remove(‘selected’); }); tile.classList.add(‘selected’); const deviceType = tile.dataset.type; const device = DEVICE_DATABASE[deviceType]; if (!device) { console.warn(‘Device not found:’, deviceType); return; } // Show loading const aiBox = document.getElementById(‘sb-ai-reasoning’); if (aiBox) { aiBox.innerHTML = `
AI analyzing…
`; } simulateAiCalculation(() => { // Update state state.modelName = device.name; state.machineType = deviceType; state.baseMachinePrice = parseFloat(tile.dataset.price) || 8000; // Update UI setMainDeviceUI({ img: tile.dataset.img, name: device.name, desc: tile.dataset.desc, chip1: tile.dataset.chip1, chip2: tile.dataset.chip2, chip3: tile.dataset.chip3 }); // Update market price const marketPrice = document.getElementById(‘sb-main-market-price’); if (marketPrice) marketPrice.textContent = formatNumber(tile.dataset.market); calculate(); }); } function setMainDeviceUI({img, name, desc, chip1, chip2, chip3}) { const mainImg = document.getElementById(‘sb-main-img’); const mainName = document.getElementById(‘sb-main-name’); const mainDesc = document.getElementById(‘sb-main-desc’); const mainChip1 = document.getElementById(‘sb-main-chip-1’); const mainChip2 = document.getElementById(‘sb-main-chip-2’); const mainChip3 = document.getElementById(‘sb-main-chip-3’); if (mainImg && img) mainImg.src = img; if (mainName) mainName.textContent = name || ”; if (mainDesc) mainDesc.textContent = desc || ”; if (mainChip1) mainChip1.textContent = chip1 || ”; if (mainChip2) mainChip2.textContent = chip2 || ”; if (mainChip3) mainChip3.textContent = chip3 || ”; } function syncTilesSelectedByState() { const tiles = document.querySelectorAll(‘.sb-device-tile’); tiles.forEach(t => { const isSel = t.dataset.type === state.machineType; t.classList.toggle(‘selected’, isSel); }); } function getCarouselEls() { return { track: document.getElementById(‘sb-carousel-track’), prev: document.getElementById(‘sb-carousel-prev’), next: document.getElementById(‘sb-carousel-next’) }; } function carouselBy(delta) { const { track } = getCarouselEls(); if (!track) return; const firstChild = track.firstElementChild; const cardW = firstChild ? firstChild.getBoundingClientRect().width : 240; const gap = 16; track.scrollBy({ left: delta * (cardW + gap), behavior: ‘smooth’ }); setTimeout(updateCarouselButtons, 220); } function carouselPrev() { carouselBy(-1); } function carouselNext() { carouselBy(1); } function updateCarouselButtons() { const { track, prev, next } = getCarouselEls(); if (!track || !prev || !next) return; const maxScrollLeft = Math.max(0, track.scrollWidth – track.clientWidth – 1); prev.disabled = track.scrollLeft <= 0; next.disabled = track.scrollLeft >= maxScrollLeft; } function isMobileSummary() { return window.matchMedia(‘(max-width: 900px)’).matches; } let sbScrollY = 0; function toggleSummary(forceState) { if (!isMobileSummary()) return; const card = document.getElementById(‘sb-summary-card’); const backdrop = document.querySelector(‘.sb-summary-backdrop’); if (!card) return; const isExpanded = card.classList.contains(‘expanded’); const newState = (forceState !== undefined) ? forceState : !isExpanded; if (newState) { sbScrollY = window.scrollY || 0; card.classList.add(‘expanded’); backdrop?.classList.add(‘active’); document.body.style.position = ‘fixed’; document.body.style.top = `-${sbScrollY}px`; document.body.style.left = ‘0’; document.body.style.right = ‘0’; document.body.style.width = ‘100%’; } else { card.classList.remove(‘expanded’); backdrop?.classList.remove(‘active’); const top = document.body.style.top; document.body.style.position = ”; document.body.style.top = ”; document.body.style.left = ”; document.body.style.right = ”; document.body.style.width = ”; const restoreY = top ? Math.abs(parseInt(top, 10)) : sbScrollY; window.scrollTo(0, restoreY); } } function toggleSummarySmart(e) { toggleSummary(); } function toggleBreakdown() { const toggle = document.querySelector(‘.sb-breakdown-toggle’); const panel = document.getElementById(‘sb-breakdown-panel’); if (toggle && panel) { toggle.classList.toggle(‘active’); panel.classList.toggle(‘active’); } } document.addEventListener(‘keydown’, (e) => { if (e.key === ‘Escape’) toggleSummary(false); }); function goToStep(step) { document.querySelectorAll(‘.sb-step-panel’).forEach((p) => p.classList.remove(‘active’)); const target = document.getElementById(`sb-step${step}`); if (target) { target.classList.add(‘active’); const wrapper = document.getElementById(‘smart-budget-calculator-wrapper’); if(wrapper) wrapper.scrollIntoView({behavior: ‘smooth’, block: ‘start’}); } if (step === 2) { setTimeout(updateCarouselButtons, 60); const aiBox = document.getElementById(‘sb-ai-reasoning’); if (aiBox) { aiBox.innerHTML = generateAiAnalysis(state.machineType); } } } const STEP = { bw: 100, color: 100, staff: 1 }; function stepOnce(key, dir) { const inc = STEP[key] || 1; clearActivePreset(); if (key === ‘staff’) { const val = clamp(state.staff + dir * inc, CONFIG.LIMITS.STAFF.MIN, CONFIG.LIMITS.STAFF.MAX); state.staff = val; document.getElementById(‘sb-staff-input’).value = formatNumber(val); updateStepperState(‘staff’); runAiAutoEstimate(); } else { const config = key === ‘bw’ ? CONFIG.LIMITS.BW : CONFIG.LIMITS.COLOR; const val = clamp(state[key] + dir * inc, config.MIN, config.MAX); state[key] = val; document.getElementById(`sb-${key}-slider`).value = String(val); document.getElementById(`sb-${key}-input`).value = formatNumber(val); updateStepperState(key); calculate(); } } // ============================================ // Presets // ============================================ function applyPreset(type) { const p = PRESETS[type]; if (!p) return; state.staff = p.staff; state.bw = Math.max(p.bw, state.baseBwLimit); state.color = Math.max(p.color, state.baseColorLimit); state.duration = p.duration; state.activePreset = type; document.getElementById(‘sb-staff-input’).value = formatNumber(p.staff); document.getElementById(‘sb-bw-slider’).value = String(state.bw); document.getElementById(‘sb-bw-input’).value = formatNumber(state.bw); document.getElementById(‘sb-color-slider’).value = String(state.color); document.getElementById(‘sb-color-input’).value = formatNumber(state.color); setDuration(p.duration); updateStepperState(‘bw’); updateStepperState(‘color’); updateStepperState(‘staff’); document.querySelectorAll(‘.sb-preset-btn’).forEach(btn => { btn.classList.toggle(‘active’, btn.dataset.preset === type); }); calculate(); triggerAiPulse(); showToast(`Applied “${p.label}” preset`); } function clearActivePreset() { state.activePreset = null; document.querySelectorAll(‘.sb-preset-btn’).forEach(btn => { btn.classList.remove(‘active’); }); } function generateShareLink() { const params = new URLSearchParams({ bw: state.bw, color: state.color, dur: state.duration, stapler: state.stapler ? ‘1’ : ‘0’ }); const url = `${window.location.origin}${window.location.pathname}?${params.toString()}`; navigator.clipboard.writeText(url).then(() => { showToast(‘Quote link copied to clipboard!’); }).catch(() => { const textArea = document.createElement(“textarea”); textArea.value = url; document.body.appendChild(textArea); textArea.select(); document.execCommand(“copy”); document.body.removeChild(textArea); showToast(‘Link copied!’); }); } async function submitForm() { const btn = document.getElementById(‘sb-submit-btn’); const formWrap = document.getElementById(‘sb-form-content’); const success = document.getElementById(‘sb-success-message’); const name = document.getElementById(‘sb-contact-name’).value.trim(); const email = document.getElementById(‘sb-contact-email’).value.trim(); const phoneRaw = document.getElementById(‘sb-contact-phone’).value; const phone = phoneRaw.replace(/[^\d]/g, ”).trim(); const company = document.getElementById(‘sb-contact-company’).value.trim(); if (!name) return showToast(‘Please enter your contact name’); if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) return showToast(‘Please enter a valid email’); if (!/^[2-9]\d{7}$/.test(phone)) return showToast(‘Please enter a valid Hong Kong phone number (8 digits, starting with 2–9)’); if (!window.smartBudgetAjax || !smartBudgetAjax.ajaxUrl) { if (btn) { btn.disabled = true; btn.textContent = ‘Submitting…’; } setTimeout(() => { buildWhatsAppLink(name, company); if (formWrap) formWrap.style.display = ‘none’; if (success) success.style.display = ‘block’; showToast(‘Inquiry submitted! (Demo Mode)’); }, 1500); return; } if (btn) { btn.disabled = true; btn.textContent = ‘Submitting…’; } const payload = new URLSearchParams({ action: ‘sb_send_quote’, nonce: smartBudgetAjax.nonce, contact_name: name, contact_company: company, contact_email: email, contact_phone: phone, industry: document.getElementById(‘sb-industry-select’).value || ”, staff_count: String(state.staff || 0), model: state.modelName || ”, duration: String(state.duration || 0), bw_vol: String(state.bw || 0), color_vol: String(state.color || 0), monthly_fee: String( parseInt(document.getElementById(‘sb-monthly-total’).textContent.replace(/[^\d]/g, ”), 10) || 0 ), machine_price: String( parseInt(document.getElementById(‘sb-machine-total’).textContent.replace(/[^\d]/g, ”), 10) || 0 ), addon_stapler: state.stapler ? ‘1’ : ”, addon_stapler_price: state.stapler ? String(4000) : ” }); try { const res = await fetch(smartBudgetAjax.ajaxUrl, { method: ‘POST’, headers: { ‘Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’ }, body: payload.toString() }); const json = await res.json(); if (!json || !json.success) { const msg = json?.data?.message || ‘Submission failed, please try again later’; showToast(msg); if (btn) { btn.disabled = false; btn.textContent = ‘Get Quote in 10 Seconds (Sent via Email)’; } return; } buildWhatsAppLink(name, company); if (formWrap) formWrap.style.display = ‘none’; if (success) success.style.display = ‘block’; showToast(‘Inquiry submitted!’); } catch (e) { console.error(e); showToast(‘Connection failed, please try again later’); if (btn) { btn.disabled = false; btn.textContent = ‘Get Quote in 10 Seconds (Sent via Email)’; } } } function buildWhatsAppLink(contactName, contactCompany) { const link = document.getElementById(‘sb-whatsapp-link’); if (!link) return; const namePart = contactName || ‘(not provided)’; const companyPart = contactCompany || ‘(not provided)’; const monthlyFee = document.getElementById(‘sb-monthly-total’)?.textContent || ”; const model = state.modelName || ”; const msg = [ `Hi, my name is ${namePart}, company is ${companyPart}.`, `I want to get your help on a copier quote ASAP.`, “, `Quote summary:`, `• Model: ${model}`, `• Monthly fee: ${monthlyFee}`, `• Duration: ${state.duration} months`, `• B&W: ${formatNumber(state.bw)} pages / Color: ${formatNumber(state.color)} pages`, state.stapler ? `• Add-on: Finisher` : ” ].filter(Boolean).join(‘\n’); link.href = `https://wa.me/85268995060?text=${encodeURIComponent(msg)}`; } function resetUsage() { state.staff = 5; state.duration = 36; state.bw = state.baseBwLimit; state.color = state.baseColorLimit; state.stapler = false; state.activePreset = null; document.getElementById(‘sb-staff-input’).value = ‘5’; document.getElementById(‘sb-bw-slider’).value = String(state.bw); document.getElementById(‘sb-bw-input’).value = formatNumber(state.bw); document.getElementById(‘sb-color-slider’).value = String(state.color); document.getElementById(‘sb-color-input’).value = formatNumber(state.color); document.getElementById(‘sb-industry-select’).value = ‘General Office’; const stapler = document.getElementById(‘sb-addon-stapler’); if (stapler) stapler.checked = false; clearActivePreset(); updateStepperState(‘bw’); updateStepperState(‘color’); updateStepperState(‘staff’); setDuration(36); calculate(); saveState(); showToast(‘All settings have been reset’); } function init() { initState(); bindSlider(‘sb-bw-slider’, ‘bw’, CONFIG.LIMITS.BW); bindSlider(‘sb-color-slider’, ‘color’, CONFIG.LIMITS.COLOR); bindStaffInput(); bindSelects(); bindAddons(); initDurationCards(); const bwInput = document.getElementById(‘sb-bw-input’); const colorInput = document.getElementById(‘sb-color-input’); const bwSlider = document.getElementById(‘sb-bw-slider’); const colorSlider = document.getElementById(‘sb-color-slider’); const staffInput = document.getElementById(‘sb-staff-input’); if (bwInput) bwInput.value = formatNumber(state.bw); if (colorInput) colorInput.value = formatNumber(state.color); if (bwSlider) bwSlider.value = String(state.bw); if (colorSlider) colorSlider.value = String(state.color); if (staffInput) staffInput.value = formatNumber(state.staff); const bwWrap = bwInput?.closest(‘.sb-slider-wrapper’); if (bwWrap) { const bwMinus = bwWrap.querySelector(‘.sb-bw-minus’); const bwPlus = bwWrap.querySelector(‘.sb-bw-plus’); if (bwMinus) bwMinus.addEventListener(‘click’, () => stepOnce(‘bw’, -1)); if (bwPlus) bwPlus.addEventListener(‘click’, () => stepOnce(‘bw’, 1)); } const colorWrap = colorInput?.closest(‘.sb-slider-wrapper’); if (colorWrap) { const colorMinus = colorWrap.querySelector(‘.sb-color-minus’); const colorPlus = colorWrap.querySelector(‘.sb-color-plus’); if (colorMinus) colorMinus.addEventListener(‘click’, () => stepOnce(‘color’, -1)); if (colorPlus) colorPlus.addEventListener(‘click’, () => stepOnce(‘color’, 1)); } const staffWrap = staffInput?.closest(‘.sb-slider-wrapper’); if (staffWrap) { const staffBtns = staffWrap.querySelectorAll(‘button’); if (staffBtns.length >= 2) { staffBtns[0].addEventListener(‘click’, () => stepOnce(‘staff’, -1)); staffBtns[1].addEventListener(‘click’, () => stepOnce(‘staff’, 1)); } } updateStepperState(‘bw’); updateStepperState(‘color’); updateStepperState(‘staff’); syncTilesSelectedByState(); setTimeout(updateCarouselButtons, 80); const track = document.getElementById(‘sb-carousel-track’); if (track) { track.addEventListener(‘scroll’, () => updateCarouselButtons(), { passive: true }); } calculate(); } window.addEventListener(‘load’, init); return { resetUsage, selectDeviceTile, carouselPrev, carouselNext, goToStep, stepOnce, submitForm, toggleSummary, toggleSummarySmart, generateShareLink, applyPreset, toggleBreakdown }; })();
Why Choose Us

Top 3 Concerns Before Leasing a Copier

We understand what SMEs need. From quoting to after-sales service, every step is designed to address your concerns.

📋

Long Contracts, Zero Flexibility

Traditional copier leases lock you in for 48–60 months, with penalties for early termination. If your company relocates or business needs change, the contract becomes a burden.

We offer: Contracts up to 60 months, but only the first 12 months are fixed. After that, you can upgrade, downgrade, or exit freely.
💰

Opaque Pricing & Hidden Fees

Traditional quotes rely on manual calculations, with machine costs often buried in the monthly fee. Excess print charges and maintenance fees are always vague before signing.

We offer: AI instant quoting with every charge clearly itemized. We guarantee transparent lowest pricing with absolutely no hidden costs.
🔧

Maintenance Promises Without Guarantees

Sales reps verbally promise “same-day on-site service,” but contracts never specify it. When the technician arrives, they say parts need to be ordered — and your machine stays down.

We offer: 98% uptime guarantee, with service commitments written into the SLA in black and white. We put it in writing, and we deliver.
Our Products

Flexible Options: Two Printer Series

Whether you want the latest IoT technology or the ultimate value for money, we have the right copier leasing plan for you.

✨ Brand New Models

Lexmark IoT Series

Lexmark, a U.S. brand now under Xerox, designed for the modern smart office. Built-in IoT sensors with CPM cloud print management — auto-alerts when toner runs low or parts need attention, preventing issues before they happen.

  • Proactive cloud-based maintenance monitoring
  • Enterprise-grade network security
  • CPM cloud print management (supports PIN/Badge secure release)
  • Best for: Enterprises that value technology & reliability
♻️ Certified Renewed

Xerox A3 Color Series

Rigorously inspected and refurbished with guaranteed performance throughout the contract. Enjoy flagship-level performance at roughly 30% of the original price — eco-friendly and budget-friendly.

  • Machine price from HK$9,000
  • Parts & labor included throughout the contract
  • Extremely durable, ideal for high-volume environments
  • Best for: Budget-first, high-volume users
Why Us

What You Should Know Before Leasing a Copier

Say goodbye to traditional contract traps. Experience truly transparent pricing and quality service.

Comparison Traditional Copier Leasing Smart Budget Plan
📋 Contract Terms
Contract Length Fixed 48–60 months Locked in for the full term; early exit requires compensation Flexible 12–60 months After the first 12 months: exit / upgrade / downgrade freely
Third-Party
Finance Company
Involved?
Usually yes New machines financed via third-party leasing No Provided directly by the service provider
Personal Guarantor
Required?
Often required Due to third-party financing risk requirements Generally not required No financial intermediary, lower barrier
💰 Pricing Transparency
Quoting Speed Manual quote by sales rep Depends on scheduling (1–3 business days) AI Instant Quote Results in under 30 seconds
Machine Price Transparency Machine cost hidden in monthly fee Total cost hard to budget Machine price listed separately Cash purchase or interest-free installment available
Actual Total Cost Spread over long contract, often above market price AI calculates the most cost-effective plan Lower total cost in the long run
Monthly Fee Structure Mostly lump-sum pricing Calculation method unclear Itemized breakdown Base monthly fee + actual print volume
Promotional Offers Mostly upfront discounts or short-term promos Ongoing monthly rebate throughout the contract Directly deducted from monthly fee
🔧 After-Sales & Maintenance
Service Level
Agreement (SLA)
Usually not specified in contract Mostly verbal promises, unenforceable 98% uptime guarantee Written into the contract in black and white
Machine Breakdown
Handling
Repair-focused approach High barrier for replacement; lengthy process Replacement guarantee if unrepairable If repair fails, replacement is arranged
Refurbished Machine
Options
Unknown refurbishment source Inconsistent quality; vague warranty terms Certified Renewed Parts + labor included throughout the contract
Maintenance Model Reactive — report and wait Technician may still need to order parts on-site AI proactive monitoring Anomalies auto-trigger support
Repair Response Response and on-site time uncertain No time commitment in the contract 2–4 hour response Next business day on-site repair
Toner Management Manual ordering, risk of running out Must wait for delivery after running dry Auto-delivery when toner drops below 20% Eliminates downtime from toner outages
🔄 Flexibility & Termination
Volume Flexibility Hard to adjust during contract Cannot adapt when business fluctuates Scale volume up or down with business needs Flexible adjustment after the first year
Early Termination
Cost
Must pay all remaining monthly fees May also incur removal fees & admin charges Penalty-free exit after the first year No hidden return fees
How It Works

6 Simple Steps to Smart Office Printing

From quoting to after-sales monitoring, a dedicated team guides you every step of the way — powered by AI technology for total peace of mind.

1
Step 1: Instant Quote

AI Instant Quote

Use the calculator above to enter your monthly print volume and staff count. The system instantly calculates the best monthly fee plan. Get a quote in 30 seconds — no waiting for a sales rep.

2
Step 2: Consultation

Dedicated Follow-Up

An account manager will proactively contact you within 1 business day to understand your company’s actual needs, confirm contract terms, answer all questions, and provide a tailored plan recommendation.

3
Step 3: Experience

Showroom Visit / Video Demo

Want to try before you decide? You’re welcome to visit our Kwun Tong Showroom, or arrange a 15-minute Zoom / Teams online demo to see the machine, try the controls, and ask questions live.

4
Step 4: Deployment

On-Site Installation & Training

Our professional technical team handles delivery, installation, and connecting all staff computers and network printer settings. We also provide free on-site training covering Scan to Email, duplex printing, secure printing, and more.

5
Step 5: Smart Monitoring

AI Smart After-Sales Monitoring

After installation, the AI monitoring system activates automatically. When toner drops below 20% or parts show early warning signs, the system auto-arranges resupply or a technician visit — you never need to manually reorder or report issues. The system also auto-reads meters, billing based on actual usage for clear, transparent invoices.

6
Step 6: Freedom

Flexibility & Freedom

Enjoy all-inclusive maintenance with zero extra charges throughout the contract. After the first 12 months, you can choose to renew, upgrade to a faster model, downgrade to save costs, or simply return the machine. No lock-in — leave whenever you want.

FAQ

Frequently Asked Questions

Everything you might want to know before leasing a copier.

Are refurbished (renewed) machines reliable? Won’t they break down often?
We only select Grade A machines in good condition, with all wear parts replaced to OEM standards. We also provide a 98% uptime guarantee and a replacement-if-unrepairable promise, ensuring your business is never affected.
Is the monthly fee truly “all-inclusive”? Are there any hidden charges?
The monthly fee includes: machine rental, toner, all parts, and on-site repair labor. The only thing not included is paper. As long as your print volume stays within the contracted limit, there are absolutely no additional charges.
Can I change plans or add machines if my company grows?
Absolutely! That’s a core value of Smart Budget. You can upgrade to a faster model or add more machines at any time. We’ll flexibly adjust based on your remaining contract value — no need to re-sign a new contract.
Does it support Mac or mobile printing?
All models support Network Print (Windows / Mac). The Lexmark series also has built-in AirPrint and Mopria — iPhone and Android phones can print directly over Wi-Fi without installing any drivers.
What’s the minimum lease term? Can I rent for just a few months?
The standard minimum lease term is 12 months. For special short-term needs (e.g. exhibitions, project sites), please contact us — we can arrange a flexible short-term rental plan.
How fast is the repair response time?
General inquiries receive a response within 2–4 hours. Cases requiring on-site repair are handled by the next business day. Emergency support can be arranged for same-day service.

Ready to Get Started?

Use our AI quote calculator now — get your personalized plan in 30 seconds