How the eBikes USA Trade-In Program Works
Our trade-in process is simple, transparent, and designed to help you upgrade with confidence:
- Fill out the form above to get started.
- Get a Quote: One of our eBike specialists will assess your bike and offer a competitive trade-in value.
- Apply Credit Toward a New eBike: Instantly apply the value of your trade toward a new eBike from our wide selection of top brands.
What Our Experts Look for When Evaluating Your eBike
When pricing a trade-in, our team uses a detailed inspection process focused on condition, components, market demand, and ride readiness. Here's what matters most:
1. Overall Condition
The physical state of the bike matters. A well-maintained bike will hold more value than one that's been heavily used without care.
2. Battery Health
The battery is one of the most important and expensive components on an eBike. Expert Tip: Bring the charger and any paperwork from the original purchase for verification.
3. Motor and Electronics
A functioning motor is crucial to your bike's trade-in value.
4. Tires, Drivetrain, and Brakes
We do a mechanical check to ensure your bike is safe to ride.
5. Make, Model, and Brand Demand
Some brands hold value better than others. High-end, name-brand bikes typically have more resale potential.
6. Modifications or Upgrades
If you've made upgrades like a higher-capacity battery, premium brakes, or a suspension seatpost, those can add value as long as they're compatible and properly installed.
Read More
+ result.low + ' -
// ----------------------------------------------------------
// Display "Other" brand result (no dollar value — reach-out message)
// ----------------------------------------------------------
function showOtherBrandResult() {
document.querySelectorAll('.step').forEach(function(s) { s.classList.remove('active'); });
document.querySelector('.step[data-step="result"]').classList.add('active');
document.getElementById('progress').style.display = 'none';
var labelEl = document.querySelector('.result-label');
var valEl = document.getElementById('result-value');
var noteEl = document.getElementById('result-note');
labelEl.textContent = '';
valEl.textContent = 'Thank you!';
valEl.className = 'result-value positive';
valEl.style.fontSize = '32px';
noteEl.textContent = "We'll be in touch to discuss your trade-in.";
}
// ----------------------------------------------------------
// Submit form: collect data, POST to webhook, show result
// ----------------------------------------------------------
function submitForm() {
var btn = document.getElementById('contact-submit-btn');
btn.classList.add('loading');
btn.textContent = pendingOtherBrand ? 'Submitting' : 'Calculating';
btn.disabled = true;
// Collect contact info
var contact = {
name: (document.getElementById('contact_name').value || '').trim(),
email: (document.getElementById('contact_email').value || '').trim(),
phone: (document.getElementById('contact_phone').value || '').trim()
};
// "Other" brand early exit — skip calculation, send contact-only payload
if (pendingOtherBrand) {
var otherBrandName = '';
var otherEl = document.getElementById('input_0_other');
if (otherEl) otherBrandName = otherEl.value.trim();
var payload = {
type: 'other_brand',
contact: contact,
brand: otherBrandName || 'Other',
notificationEmail: config.settings['Notification Email'] || '',
storeName: config.settings['Store Name'] || '',
timestamp: new Date().toISOString()
};
var webhookUrl = config.settings['Submission Webhook'];
if (webhookUrl) {
fetch(webhookUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
}).catch(function(err) {
console.warn('Submission webhook failed:', err);
});
}
btn.classList.remove('loading');
showOtherBrandResult();
return;
}
// Collect calculator answers
var answers = [];
config.questions.forEach(function(q, idx) {
var answer = '';
if (q.inputType === 'text' || q.inputType === 'number') {
var el = document.getElementById('input_' + idx);
answer = el ? el.value.trim() : '';
} else {
answer = getSelectedLabel(idx) || '';
}
answers.push({ question: q.question, answer: answer });
});
// Calculate result
var isDisqualified = pendingDisqualify !== null;
var result = calculateResult(isDisqualified, isDisqualified ? pendingDisqualify.offer : 0);
// Build POST payload
var payload = {
contact: contact,
answers: answers,
result: { value: result.value, low: result.low, type: result.type },
notificationEmail: config.settings['Notification Email'] || '',
storeName: config.settings['Store Name'] || '',
timestamp: new Date().toISOString()
};
// POST to submission webhook (non-blocking — result shows regardless)
var webhookUrl = config.settings['Submission Webhook'];
if (webhookUrl) {
fetch(webhookUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
}).catch(function(err) {
console.warn('Submission webhook failed:', err);
});
}
// Show result immediately (don't wait for POST)
btn.classList.remove('loading');
showResult(result);
}
// ----------------------------------------------------------
// Utility
// ----------------------------------------------------------
function escHtml(str) {
var div = document.createElement('div');
div.textContent = str;
return div.innerHTML;
}
// ----------------------------------------------------------
// Start
// ----------------------------------------------------------
loadConfig();
})();