{"id":16236,"date":"2026-09-08T21:26:36","date_gmt":"2026-09-08T18:26:36","guid":{"rendered":"https:\/\/solarbulgaria.eu\/?page_id=16236"},"modified":"2026-09-11T12:35:06","modified_gmt":"2026-09-11T09:35:06","slug":"products","status":"publish","type":"page","link":"https:\/\/solarbulgaria.eu\/en\/products\/","title":{"rendered":"\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u0438"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"16236\" class=\"elementor elementor-16236\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5b8dff4 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"5b8dff4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a4f54f2\" data-id=\"a4f54f2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fd0fb00 elementor-widget elementor-widget-html\" data-id=\"fd0fb00\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.gsb-shop * { box-sizing:border-box; }\n.gsb-shop { font-family: -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; }\n.gsb-shop .reveal{opacity:1;transform:none;}\n.gsb-shop .reveal.visible{opacity:1;transform:none;}\n.gsb-shop, .gsb-shop * { -webkit-tap-highlight-color: transparent; }\n.gsb-shop a, .gsb-shop a:visited, .gsb-shop a:active, .gsb-shop a:focus { color: inherit; background: transparent; outline: none; }\n.gsb-shop .p-link, .gsb-shop .p-link:visited, .gsb-shop .p-link:active, .gsb-shop .p-link:focus { color:#C0392B !important; background:transparent !important; }\n.gsb-shop .p-card, .gsb-shop .p-card:active, .gsb-shop .p-card:focus-within { background:#fff; }\n.gsb-shop .p-card .img-wrap, .gsb-shop .p-card .img-wrap:active { background:#fff; }\n.gsb-shop .filter-btn:active, .gsb-shop .filter-btn:focus { outline:none; }\n.gsb-shop .p-card img:hover, .gsb-shop .p-card .img-wrap img:hover, .gsb-shop img:hover { opacity: 1 !important; }\n\n.gsb-shop .shop-hero { background:#0A0A0A; padding:56px 48px; text-align:center; }\n.gsb-shop .shop-hero .eyebrow { color:#A81920; font-size:13px; font-weight:600; text-align:center; margin:0 0 8px; }\n.gsb-shop .shop-hero h1 { color:#F2F2F2; font-size:32px; font-weight:600; margin:0; line-height:1.25; }\n\n.gsb-shop .filters { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; padding:28px 48px; background:#F5F4F2; border-bottom:1px solid #E8E6E0; min-height:20px; }\n.gsb-shop .filter-btn { background:#fff; border:1px solid #D5D3CE; color:#5A5A57; font-size:13px; padding:9px 18px; border-radius:20px; cursor:pointer; transition:all .2s ease; font-family:inherit; }\n.gsb-shop .filter-btn.active { background:#141414; color:#fff; border-color:#141414; }\n.gsb-shop .filter-btn:hover:not(.active) { border-color:#A81920; color:#A81920; }\n\n.gsb-shop .shop-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:40px 48px; max-width:1300px; margin:0 auto; background:#fff; }\n.gsb-shop .p-card { background:#fff; border-radius:16px; overflow:hidden; border:1px solid #E8E6E0; transition:transform .3s ease, box-shadow .3s ease; }\n.gsb-shop .p-card:hover { transform:translateY(-6px); box-shadow:0 20px 40px rgba(168,25,32,0.12); border-color:#A81920; }\n.gsb-shop .p-card .img-wrap { height:170px; background:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; }\n.gsb-shop .p-card .img-wrap img { width:100%; height:100%; object-fit:contain; padding:12px; }\n.gsb-shop .p-card.empty-card { display:flex; align-items:center; justify-content:center; background:#FAFAF8; }\n.gsb-shop .p-body { padding:16px; }\n.gsb-shop .p-tag { display:inline-block; background:rgba(168,25,32,0.08); color:#A81920; font-size:10px; font-weight:600; padding:3px 9px; border-radius:10px; margin-bottom:8px; }\n.gsb-shop .p-body h3 { color:#141414; font-size:14px; font-weight:600; margin:0 0 12px; line-height:1.35; min-height:38px; }\n.gsb-shop .p-link { color:#C0392B; font-size:12px; font-weight:600; text-decoration:none; }\n.gsb-shop .p-link:hover { text-decoration:underline; }\n.gsb-shop .shop-msg { grid-column:1\/-1; text-align:center; padding:40px; color:#8A8A87; font-size:14px; }\n\n@media (max-width: 968px) {\n  .gsb-shop .shop-grid { grid-template-columns:repeat(2,1fr) !important; }\n}\n@media (max-width: 640px) {\n  .gsb-shop .shop-grid { grid-template-columns:1fr !important; padding:24px 20px; }\n  .gsb-shop .shop-hero { padding:40px 16px !important; }\n  .gsb-shop .shop-hero h1 { font-size:22px !important; }\n  .gsb-shop .filters { padding:20px 16px; }\n  .gsb-shop .filter-btn { font-size:12px; padding:7px 14px; }\n}\n<\/style>\n\n<div class=\"gsb-shop\">\n\n  <section class=\"shop-hero reveal\">\n    <p class=\"eyebrow\">Products<\/p>\n    <h1>The Complete Range of Global Solar Bulgaria Products<\/h1>\n  <\/section>\n\n  <div class=\"filters\" id=\"gsbShopFilters\"><\/div>\n\n  <div class=\"shop-grid\" id=\"gsbShopGrid\">\n    <p class=\"shop-msg\">Loading products&hellip;<\/p>\n  <\/div>\n\n<script>\n(function(){\n  var root = document.currentScript.closest('.gsb-shop');\n  if (!root) return;\n  var filtersEl = root.querySelector('#gsbShopFilters');\n  var gridEl = root.querySelector('#gsbShopGrid');\n\n  \/\/ Primary product-type categories shown as filter pills (WooCommerce category id -> slug\/label).\n  \/\/ Kept in a fixed, meaningful order; a pill only appears if it currently has products.\n  var CATS = [\n    { id: 42,  slug: 'batteries',   label: 'Batteries' },\n    { id: 45,  slug: 'inverters',   label: 'Inverters' },\n    { id: 55,  slug: 'accessories', label: 'Accessories' },\n    { id: 37,  slug: 'structures',  label: 'Mounting Structures' },\n    { id: 52,  slug: 'panels',      label: 'Solar Panels' },\n    { id: 707, slug: 'integrated',  label: 'Integrated Systems' }\n  ];\n  var catById = {};\n  CATS.forEach(function(c){ catById[c.id] = c; });\n\n  function esc(s){\n    return String(s == null ? '' : s).replace(\/[&<>\"']\/g, function(ch){\n      return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[ch];\n    });\n  }\n\n  function renderFilters(activeSlugs){\n    var html = '<button class=\"filter-btn active\" data-filter=\"all\">All<\/button>';\n    CATS.forEach(function(c){\n      if (activeSlugs.indexOf(c.slug) === -1) return;\n      html += '<button class=\"filter-btn\" data-filter=\"' + c.slug + '\">' + esc(c.label) + '<\/button>';\n    });\n    filtersEl.innerHTML = html;\n    wireFilters();\n  }\n\n  function wireFilters(){\n    filtersEl.querySelectorAll('.filter-btn').forEach(function(btn){\n      btn.addEventListener('click', function(){\n        filtersEl.querySelectorAll('.filter-btn').forEach(function(b){ b.classList.remove('active'); });\n        btn.classList.add('active');\n        var f = btn.getAttribute('data-filter');\n        var cards = gridEl.querySelectorAll('.p-card');\n        var shown = 0;\n        cards.forEach(function(card){\n          var cats = (card.getAttribute('data-cat') || '').split(' ');\n          var match = (f === 'all') || cats.indexOf(f) !== -1;\n          card.style.display = match ? '' : 'none';\n          if (match) shown++;\n        });\n        var msg = gridEl.querySelector('.shop-msg');\n        if (msg) msg.remove();\n        if (shown === 0) {\n          var p = document.createElement('p');\n          p.className = 'shop-msg';\n          p.textContent = 'No products in this category.';\n          gridEl.appendChild(p);\n        }\n      });\n    });\n  }\n\n  function renderCards(products){\n    if (!products.length) {\n      gridEl.innerHTML = '<p class=\"shop-msg\">No products have been added yet.<\/p>';\n      return;\n    }\n    var html = '';\n    products.forEach(function(p){\n      var slugs = [];\n      var tagLabel = '';\n      (p.categories || []).forEach(function(c){\n        var known = catById[c.id];\n        if (known) {\n          slugs.push(known.slug);\n          if (!tagLabel) tagLabel = known.label;\n        }\n      });\n      if (!tagLabel && p.categories && p.categories[0]) tagLabel = p.categories[0].name;\n      var img = (p.images && p.images[0]) ? p.images[0].thumbnail : '';\n      html += '' +\n        '<div class=\"p-card\" data-cat=\"' + esc(slugs.join(' ')) + '\">' +\n          '<div class=\"img-wrap\"><img decoding=\"async\" src=\"' + esc(img) + '\" alt=\"' + esc(p.name) + '\" loading=\"lazy\"><\/div>' +\n          '<div class=\"p-body\">' +\n            (tagLabel ? '<span class=\"p-tag\">' + esc(tagLabel) + '<\/span>' : '') +\n            '<h3>' + esc(p.name) + '<\/h3>' +\n            '<a class=\"p-link\" href=\"' + esc(p.permalink.indexOf('\/en\/produkt\/') !== -1 ? p.permalink : p.permalink.replace('\/produkt\/', '\/en\/produkt\/')) + '\">View Product Details &rarr;<\/a>' +\n          '<\/div>' +\n        '<\/div>';\n    });\n    gridEl.innerHTML = html;\n  }\n\n  fetch('\/wp-json\/wc\/store\/v1\/products?per_page=100&orderby=menu_order&order=asc', { credentials: 'omit' })\n    .then(function(r){ if (!r.ok) throw new Error('http ' + r.status); return r.json(); })\n    .then(function(products){\n      products.sort(function(a,b){var as=a.name.indexOf('Sigen')===0?0:1;var bs=b.name.indexOf('Sigen')===0?0:1;return as-bs;});\n      renderCards(products);\n\n      var activeSlugs = [];\n      CATS.forEach(function(c){\n        var has = products.some(function(p){ return (p.categories || []).some(function(pc){ return pc.id === c.id; }); });\n        if (has) activeSlugs.push(c.slug);\n      });\n      renderFilters(activeSlugs);\n    })\n    .catch(function(){\n      gridEl.innerHTML = '<p class=\"shop-msg\">Products could not be loaded right now. Please reload the page.<\/p>';\n      renderFilters([]);\n    });\n})();\n<\/script>\n\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Products The Complete Range of Global Solar Bulgaria Products Loading products&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_angie_page":false,"footnotes":""},"class_list":["post-16236","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/solarbulgaria.eu\/en\/wp-json\/wp\/v2\/pages\/16236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solarbulgaria.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/solarbulgaria.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/solarbulgaria.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solarbulgaria.eu\/en\/wp-json\/wp\/v2\/comments?post=16236"}],"version-history":[{"count":11,"href":"https:\/\/solarbulgaria.eu\/en\/wp-json\/wp\/v2\/pages\/16236\/revisions"}],"predecessor-version":[{"id":16326,"href":"https:\/\/solarbulgaria.eu\/en\/wp-json\/wp\/v2\/pages\/16236\/revisions\/16326"}],"wp:attachment":[{"href":"https:\/\/solarbulgaria.eu\/en\/wp-json\/wp\/v2\/media?parent=16236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}