خدمات ايكوم عرب

خدمات إيكوم عرب

اكتشف جميع خدمات إيكوم عرب في مكان واحد، من الاستشارات والمتاجر الجاهزة إلى تحسين المتاجر والثيمات والخدمات التقنية.

جاري تحميل جميع خدمات إيكوم عرب...
'; return; } grid.innerHTML = products.map(function (product) { return ` `; }).join(''); } async function fetchCategoryId(origin, slug) { const wpTaxApi = `${origin}/wp-json/wp/v2/product_cat?slug=${encodeURIComponent(slug)}`; try { const response = await fetch(wpTaxApi); if (response.ok) { const categories = await response.json(); if (categories && categories.length && categories[0].id) { return categories[0].id; } } } catch (e) {} const storeCategoriesApi = `${origin}/wp-json/wc/store/v1/products/categories?per_page=100`; try { const response = await fetch(storeCategoriesApi); if (response.ok) { const categories = await response.json(); const category = categories.find(function (cat) { return cat.slug === slug; }); if (category && category.id) { return category.id; } } } catch (e) {} throw new Error('Category ID not found'); } async function fetchAllProducts(origin, categoryId) { let page = 1; let products = []; let keepGoing = true; while (keepGoing) { const apiUrl = `${origin}/wp-json/wc/store/v1/products?category=${categoryId}&per_page=100&page=${page}&orderby=menu_order&order=asc`; const response = await fetch(apiUrl); if (!response.ok) { throw new Error('Products API error'); } const data = await response.json(); if (!Array.isArray(data) || !data.length) { keepGoing = false; } else { products = products.concat(data); page++; if (data.length < 100) { keepGoing = false; } } } return products; } async function initServices() { try { const origin = getSiteOrigin(categoryUrl); const slug = getCategorySlug(categoryUrl); const categoryId = await fetchCategoryId(origin, slug); const products = await fetchAllProducts(origin, categoryId); allProducts = products.map(normalizeProduct); renderProducts(); } catch (error) { grid.innerHTML = `
لم يتم تحميل الخدمات تلقائياً. تأكد من أن رابط التصنيف صحيح وأن WooCommerce Store API يعمل في الموقع.
`; } } filterButtons.forEach(function (button) { button.addEventListener('click', function () { filterButtons.forEach(function (btn) { btn.classList.remove('is-active'); }); button.classList.add('is-active'); activeFilter = button.getAttribute('data-filter') || 'all'; renderProducts(); }); }); if (sortSelect) { sortSelect.addEventListener('change', renderProducts); } initServices(); })();