RU

Скло, корпуси та складові фари Chrysler Grand Voyager (2008-2015)

Скло, корпуси та складові фари Chrysler Grand Voyager (2008-2015)
Скло, корпуси та складові фари Chrysler Grand Voyager (2008-2015)

Стекло фар и корпус для Chrysler Grand Voyager

Chrysler Grand Voyager (2008-2015) – это автомобиль, ставший символом комфорта и элегантности в своем классе. Этот минивэн не ставит скорость во главу угла, ведь его главное преимущество – атмосфера салона. Изысканные деревянные панели, хромированные акценты и инновационный дизайн создают непревзойденное чувство уюта. Кресла, которые могут поворачиваться на 180 градусов, и раскладной стол между сиденьями делают эту модель идеальной для долгих поездок и семейного отдыха. Разработчики уделили внимание каждой детали, чтобы обеспечить максимальный комфорт для водителя и пассажиров.

Почему вашим фарам Крайслер Гранд Вояжер требуется качественное обслуживание?

Чтобы ваш Крайслер всегда выглядел как новый, особое внимание следует уделить состоянию фар. Если вы заметили царапины, трещины, запотевания или пожелтения стекла фар, это может отрицательно повлиять на функциональность. Своевременная замена стекла фар позволит сохранить их блеск и эффективность. В нашем интернет-магазине СтеклоФар вы найдете все необходимое для ремонта и ухода за фарами: стекла, корпуса, световоды, линзы, ремкомплекты, крышки корпусов и герметики.

Мы предлагаем запчасти для фар не только дляChrysler, но и для таких марок, как Skoda, Nissan,

'; } else { productsRoot.insertAdjacentHTML('beforeend', '
'); } const formData = new FormData(); formData.append('type_id', typeId); formData.append('category_id', categoryId); formData.append('page', page); fetch('index.php?route=product/category/getProductsByType', { method: 'POST', body: formData }) .then(res => res.json()) .then(data => { state.page = data.page || page; state.hasMore = data.has_more || false; state.showMoreText = data.text_show_more || ''; if (append) { // Убираем спиннер догрузки и добавляем карточки document.getElementById('append-spinner')?.remove(); productsRoot.insertAdjacentHTML('beforeend', data.product_cards_html || ''); } else { productsRoot.innerHTML = data.product_cards_html || ''; } renderLoadMore(typeId, state); updatePagination(typeId, state.page, data.pagination_html || ''); }) .catch(err => { console.error('Ошибка загрузки товаров:', err); if (!append) { productsRoot.innerHTML = '

Ошибка загрузки товаров.

'; } else { document.getElementById('append-spinner')?.remove(); } }) .finally(() => { state.isLoading = false; }); } function updatePagination(typeId, currentPage, paginationHtml) { const paginationWrap = document.getElementById('category-pagination'); if (!paginationWrap) return; paginationWrap.innerHTML = paginationHtml || ''; const hasPaginationLinks = paginationWrap.querySelectorAll('a, span').length > 0; paginationWrap.style.display = hasPaginationLinks ? '' : 'none'; // Добавляем/обновляем filter_type во все ссылки пагинации paginationWrap.querySelectorAll('a').forEach(link => { try { const url = new URL(link.href, window.location.origin); // Удаляем старый filter_type если был url.searchParams.delete('filter_type'); // Добавляем текущий, если он не "все" (пустой или 0) if (typeId) { url.searchParams.set('filter_type', typeId); } link.href = url.toString(); } catch (e) { console.warn('Не удалось обновить ссылку пагинации:', link.href); } }); } // ── Кнопка "показати ще" ───────────────────────────────────────── function renderLoadMore(typeId, state) { loadMoreWrap.innerHTML = ''; if (!state.hasMore) return; const btn = document.createElement('button'); btn.id = 'load-more'; btn.className = 'btn-loadmore'; btn.type = 'button'; btn.dataset.loadingText = 'Загрузка...'; btn.innerHTML = state.showMoreText.toUpperCase() + ` `; btn.addEventListener('click', function () { fetchProducts(typeId, state.page + 1, true); }); loadMoreWrap.appendChild(btn); } nav.addEventListener('click', function (e) { const btn = e.target.closest('.tab'); if (!btn) return; // Уже активная — ничего не делаем if (btn.classList.contains('is-active')) return; // Переключаем is-active nav.querySelectorAll('.tab').forEach(b => { b.classList.remove('is-active'); b.setAttribute('aria-selected', 'false'); }); btn.classList.add('is-active'); btn.setAttribute('aria-selected', 'true'); // Синхронизируем radio const input = document.getElementById(btn.dataset.for); if (input) input.checked = true; const typeId = input ? input.value : 'None'; // Загружаем с первой страницы (не append) // Сбрасываем состояние этой вкладки tabState[typeId] = { page: 1, hasMore: false, isLoading: false }; // Показываем пагинацию сразу (до запроса), скроется если надо в then() const paginationWrap = document.getElementById('category-pagination'); if (paginationWrap) paginationWrap.style.display = ''; fetchProducts(typeId, 1, false); }); });