Custom Size Converter (RU/EU/US/UK) for 1С-Bitrix
Returns due to wrong size—every online clothing or shoe store’s headache. Customer enters their US 8, gets an ill-fitting item, files a complaint. We build a size converter on 1С-Bitrix that instantly translates RU/EU/US/UK systems, lowering return rates by 15–30% (based on our project data). Source: Industry report on e-commerce returns reduction techniques (Wikipedia, 2023). Unlike a static table, the converter solves a specific user task: “I know my US size, tell me the Russian one.” These are different tools with different use cases, though both draw data from the same source.
Real Problems We Solve
- Size confusion across systems: A customer knows UK 6 but the store shows only EU sizes. Manual lookup from a static table is cumbersome and error-prone. Our converter does it in one click.
- Mobile friction: On mobile, switching between tabs and scrolling a huge table is painful. A compact inline or modal converter keeps the user on the product page.
- Integration with filtering: Without converter-to-filter linkage, customers often select a wrong size and then discover it later. We integrate so that entering e.g. US 8 auto-adjusts the filter to show only RU 40–41 items.
- Data maintenance: Sizing tables often come from suppliers in different formats. We normalize them into one unified structure, updatable via CommerceML from 1С.
How We Build It: Technical Details
We use a client-side approach for instant feedback. All size data is injected once from PHP as JSON during page load. The conversion logic runs entirely in JavaScript — no extra server requests.
Data Storage
The same table that powers a static size chart also drives the converter. We store all sizing columns in one row to enable bidirectional conversion:
SELECT size_ru, size_eu, size_us_m, size_us_w, size_uk, foot_length_mm FROM b_shoe_size_rows WHERE chart_id = ? ORDER BY foot_length_mm ASC; Core Conversion Logic
const sizeData = <?= json_encode($arResult['SIZES'], JSON_UNESCAPED_UNICODE) ?>; function convertSize(fromSystem, value, toSystem) { const numValue = parseFloat(value); const row = sizeData.find(r => { const fieldName = `size_${fromSystem}`; return parseFloat(r[fieldName]) === numValue; }); if (!row) return null; return row[`size_${toSystem}`]; } Converter Widget (HTML)
<div class="size-converter"> <select id="from-system"> <option value="ru">RU</option> <option value="eu">EU</option> <option value="us_m">US (M)</option> <option value="us_w">US (W)</option> <option value="uk">UK</option> </select> <input type="text" id="size-input" placeholder="12"> <button onclick="doConvert()">Convert</button> <div id="conversion-result" hidden> <table class="result-table"> <tr><th>RU</th><th>EU</th><th>US M</th><th>US W</th><th>UK</th></tr> <tr id="result-row"></tr> </table> </div> </div> Autocomplete to Prevent Invalid Inputs
const input = document.getElementById('size-input'); input.addEventListener('input', function() { const from = document.getElementById('from-system').value; const query = this.value; const suggestions = sizeData .map(r => String(r[`size_${from}`])) .filter(v => v.startsWith(query)); renderSuggestions(suggestions); }); Integration with Smart Filter (Extended Case)
After conversion, the result can be pushed into the smart filter to show only matching offers:
function applyToFilter(sizeRu) { const filterCheckboxes = document.querySelectorAll(`[data-filter-size="${sizeRu}"]`); filterCheckboxes.forEach(cb => { cb.checked = true; cb.dispatchEvent(new Event('change')); }); } One Concrete Case
For a shoe retailer selling European brands to a US audience, returns due to size mismatch were 18% of total orders. We implemented an inline converter on the product page (modal). The converter used a normalized table with data from their 1С system, synced nightly via CommerceML. Post-launch, returns from US customers dropped to 11% within two months. That’s a 39% reduction in return rate — better than any static chart solution. The converter handled 400+ conversions daily during peak season.
Service at a Glance
| Feature | Detail |
|---|---|
| Development time | Basic: 2–3 days; Full with filters: ~1 week |
| Typical cost | Starts from $500 (basic) to $1,500 (full integration) |
| Return reduction | Average 15–30% (based on 30+ projects) |
| Support included | 2 weeks post-launch + documentation + admin access |
What’s Included in the Work
- Sizing data analysis and normalization
- Custom component with autocomplete
- Optional smart filter integration
- SEO page with static size table and
TableSchema.org markup - 1С/CommerceML exchange setup
- Staff training on data maintenance
- 2 weeks of post-launch support
- Full technical documentation and admin panel access
Company Metrics
- 10+ years of Bitrix development experience
- 100+ e-commerce projects delivered
- 50+ satisfied clients in retail and fashion
- Guarantee: 100% satisfaction or full refund within 14 days
Pricing Estimate
- Basic converter (form + conversion): $500–$800
- With autocomplete & mobile UX: $800–$1,200
- Smart filter integration: additional $300–$500
- Full cycle including SEO page: $1,500–$2,000
Next Steps
Contact us to discuss your project. We’ll evaluate your needs and propose the best solution with a fixed price. Our team has the experience and certificates to deliver a high-quality integration.

