{"product_id":"suit-274","title":"Van Gils","description":"\u003cdiv id=\"suit-attributes-container\" style=\"margin: 20px 0; padding: 15px; border: 1px solid #eee; border-radius: 5px; background: #f9f9f9;\"\u003e\n    \u003cdiv id=\"suit-attributes\"\u003e\n        \u003cdiv id=\"attributes-loading\" style=\"text-align: center; padding: 10px;\"\u003e\n            \u003cdiv class=\"loading-spinner\"\u003e\u003c\/div\u003e\n            \u003cp\u003eLoading suit attributes...\u003c\/p\u003e\n        \u003c\/div\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"suit-measurements-container\" style=\"margin: 20px 0; padding: 15px; border: 1px solid #eee; border-radius: 5px; background: #f9f9f9;\"\u003e\n    \u003ch3 style=\"margin-top: 0;\"\u003eSuit Measurements\u003c\/h3\u003e\n    \u003cdiv id=\"suit-measurements\"\u003e\n        \u003cdiv id=\"measurements-loading\" style=\"text-align: center; padding: 10px;\"\u003e\n            \u003cdiv class=\"loading-spinner\"\u003e\u003c\/div\u003e\n            \u003cp\u003eLoading suit measurements...\u003c\/p\u003e\n        \u003c\/div\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv style=\"margin: 20px 0; padding: 15px; text-align: center; border: 1px solid #eee; border-radius: 5px; background: #f9f9f9;\"\u003e\n    \u003cdiv style=\"display: flex; align-items: center; justify-content: center; gap: 10px;\"\u003e\n        \u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n            \u003cpath d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003eElk pak is uitgebreid gecontroleerd, is van 100% wol en verkeert in uitstekende staat\u003c\/span\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n    .loading-spinner {\n        border: 4px solid rgba(0, 0, 0, 0.1);\n        border-radius: 50%;\n        border-top: 4px solid #3498db;\n        width: 30px;\n        height: 30px;\n        animation: spin 1s linear infinite;\n        margin: 0 auto 10px;\n    }\n    @keyframes spin {\n        0% { transform: rotate(0deg); }\n        100% { transform: rotate(360deg); }\n    }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n    async function fetchAndDisplaySuitDetails(suitId) {\n        const apiUrl = `https:\/\/potternam.pythonanywhere.com\/api\/product?suit_id=${suitId}`;\n\n        try {\n            const response = await fetch(apiUrl);\n            if (!response.ok) {\n                throw new Error(`API request failed with status ${response.status}`);\n            }\n            const result = await response.json();\n\n            const sortedAttributes = Object.entries(result.attributes)\n                .sort(([keyA], [keyB]) =\u003e {\n                    const numA = parseInt(keyA.split(' ')[0], 10);\n                    const numB = parseInt(keyB.split(' ')[0], 10);\n                    return numA - numB;\n                })\n                .filter(([_, value]) =\u003e value !== null \u0026\u0026 value !== undefined \u0026\u0026 value !== \"\" \u0026\u0026 value !== \"NULL\")\n                .map(([key, value]) =\u003e {\n                    const displayKey = key.replace(\/^\\d+\\s\/, '');\n                    return `\u003cdiv style=\"margin: 5px 0;\"\u003e\u003cstrong\u003e${displayKey}:\u003c\/strong\u003e ${value}\u003c\/div\u003e`;\n                })\n                .join('');\n            document.getElementById('suit-attributes').innerHTML =\n                sortedAttributes || '\u003cp\u003eNo suit attributes available.\u003c\/p\u003e';\n\n            const sortedMeasurements = Object.entries(result.measurements)\n                .sort(([keyA], [keyB]) =\u003e {\n                    const numA = parseInt(keyA.split(' ')[0], 10);\n                    const numB = parseInt(keyB.split(' ')[0], 10);\n                    return numA - numB;\n                })\n                .filter(([_, value]) =\u003e value !== null \u0026\u0026 value !== undefined \u0026\u0026 value !== \"\" \u0026\u0026 value !== \"NULL\")\n                .map(([key, value]) =\u003e {\n                    const displayKey = key.replace(\/^\\d+\\s\/, '');\n                    return `\u003cdiv style=\"margin: 5px 0;\"\u003e\u003cstrong\u003e${displayKey}:\u003c\/strong\u003e ${value}\u003c\/div\u003e`;\n                })\n                .join('');\n            document.getElementById('suit-measurements').innerHTML =\n                sortedMeasurements || '\u003cp\u003eNo suit measurements available.\u003c\/p\u003e';\n        } catch (error) {\n            console.error('Error fetching suit details:', error);\n            document.getElementById('suit-attributes').innerHTML =\n                '\u003cp\u003eFailed to load suit attributes. Please try again later.\u003c\/p\u003e';\n            document.getElementById('suit-measurements').innerHTML =\n                '\u003cp\u003eFailed to load suit measurements. Please try again later.\u003c\/p\u003e';\n        }\n    }\n    fetchAndDisplaySuitDetails('274');\n\u003c\/script\u003e\n\n\u003cp\u003enummer-274\u003c\/p\u003e","brand":"Resui","offers":[{"title":"Default Title","offer_id":57718816637253,"sku":null,"price":139.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0523\/3967\/1235\/files\/IMG_20260409_143037274_20260415_172101.jpg?v=1776527734","url":"https:\/\/resui.nl\/products\/suit-274","provider":"Resui","version":"1.0","type":"link"}