{"id":8585,"date":"2026-01-14T19:19:04","date_gmt":"2026-01-14T18:19:04","guid":{"rendered":"https:\/\/innovacore.group\/?post_type=portfolio&p=8585"},"modified":"2026-03-17T15:30:45","modified_gmt":"2026-03-17T13:30:45","slug":"ushop-tax-free","status":"publish","type":"portfolio","link":"https:\/\/innovacore.group\/ro\/portfolio\/ushop-tax-free\/","title":{"rendered":"Ushop Tax Free (USTF) &#8211; Ramburs\u0103ri TVA \u0219i Motor de Cre\u0219tere \u00een Retail"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ushop Tax Free (USTF) serves as a vital bridge between international travelers and retailers, specializing in seamless VAT reclamation. Acting as a certified agent, USTF removes the administrative headache of tax-free shopping while maximizing refund value for tourists. Through a strategic synergy with the ComAve platform, USTF goes beyond compliance\u2014it empowers retailers to track customer behavior, analyze spending patterns, and drive increased sales through data-driven insights.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Transform\u0103 ramburs\u0103rile TVA \u00eentr-un motor strategic de v\u00e2nz\u0103ri cu ecosistemul ComAve.<\/p>\n","protected":false},"featured_media":2369,"parent":0,"template":"","meta":{"inline_featured_image":false,"company_name":"Ushop Tax Free","summary":"<span class=\"ic-nycd\">Ramburs\u0103ri TVA<\/span> &amp; Motor de Cre\u0219tere \u00een Retail","mission":"<p>S\u0103 transform\u0103m o barier\u0103 reglementar\u0103 \u00eentr-un avantaj competitiv. Misiunea USTF este s\u0103 modernizeze experien\u021ba de cump\u0103r\u0103turi f\u0103r\u0103 TVA prin oferirea unei solu\u021bii transparente, digitale, care s\u0103 pun\u0103 bani \u00een buzunarele c\u0103l\u0103torilor \u00een timp ce echipeaz\u0103 comercian\u021bii cu instrumentele necesare pentru a surprinde \u0219i men\u021bine cererea global\u0103.<\/p>\n","impact":"<p>USTF transform\u0103 sectorul ramburs\u0103rii TVA dintr-o sarcin\u0103 administrativ\u0103 pasiv\u0103 \u00eentr-un instrument activ de cre\u0219tere. Prin integrarea serviciilor de cump\u0103r\u0103turi f\u0103r\u0103 TVA cu platforma de loialitate \u0219i analiz\u0103 a ComAve, ofer\u0103 comercian\u021bilor o vizibilitate f\u0103r\u0103 precedent asupra comportamentului cump\u0103r\u0103torilor interna\u021bionali, influen\u021b\u00e2nd direct rata de conversie \u0219i valoarea medie a co\u0219ului.<\/p>\n","company_logo":"https:\/\/innovacore.group\/wp-content\/uploads\/partners_logo-ustf-innovacore-optimized.jpg","website_url":"https:\/\/www.ushoptaxfree.com\/","linkedin_url":"https:\/\/www.linkedin.com\/company\/ushop-tax-free-ltd\/","location":"Dubrovnik, Croa\u021bia","founded_year":"2021","key_numbers":{"item-0":{"metric_label":"+ Parteneri Retail","metric_value":"700"},"item-1":{"metric_label":"% Rat\u0103 de Conformitate","metric_value":"100"},"item-2":{"metric_label":"+ Pie\u021be Europene","metric_value":"6"}},"hiring_status":"angaj\u0103m","sector":"comer\u021b electronic","company_type":"\u00eentreprindere","audience":["business-to-business"],"geo_scope":["mondial"],"business_model":["servicii"],"funding_stage":"neprecizat","partnership_type":"altul","logo_animation":"<div id=\"shoptax-particle-root\">\r\n    <canvas id=\"shoptaxCanvas\"><\/canvas>\r\n<\/div>\r\n\r\n<style>\r\n    #shoptax-particle-root {\r\n        width: 100%;\r\n        height: 300px; \/* Hauteur fixe respect\u00e9e *\/\r\n        display: flex;\r\n        justify-content: center;\r\n        align-items: center;\r\n        background: transparent;\r\n        overflow: hidden;\r\n        cursor: crosshair;\r\n    }\r\n<\/style>\r\n\r\n<script>\r\n(function() {\r\n    const canvas = document.getElementById('shoptaxCanvas');\r\n    const ctx = canvas.getContext('2d', { willReadFrequently: true });\r\n    const root = document.getElementById('shoptax-particle-root');\r\n    \r\n    let width, height;\r\n    let particles = [];\r\n    let mouse = { x: -1000, y: -1000 };\r\n    const particleColor = '#f5f5f5'; \/\/ Gris clair Innovacore\r\n    let time = 0;\r\n\r\n    function init() {\r\n        width = root.offsetWidth;\r\n        height = 300;\r\n        \r\n        const dpr = window.devicePixelRatio || 1;\r\n        canvas.width = width * dpr;\r\n        canvas.height = height * dpr;\r\n        canvas.style.width = width + 'px';\r\n        canvas.style.height = height + 'px';\r\n        ctx.scale(dpr, dpr);\r\n\r\n        createLogoParticles();\r\n    }\r\n\r\n    function createLogoParticles() {\r\n        particles = [];\r\n        const cx = width \/ 2;\r\n        const cy = height \/ 2;\r\n        const isMobile = width < 600;\r\n\r\n        \/\/ --- 1. CONFIGURATION DU DESSIN ---\r\n        \/\/ On dessine tout en blanc pour le scan\r\n        ctx.fillStyle = 'white';\r\n        ctx.strokeStyle = 'white';\r\n\r\n        \/\/ Dimensions relatives\r\n        const iconWidth = isMobile ? 50 : 80;\r\n        const iconHeight = iconWidth * 1.1;\r\n        const gap = isMobile ? 15 : 25;\r\n        \r\n        \/\/ Tailles de police (Serif pentru a se potrivi cu logo)\r\n        const fontBase = \"Times New Roman, Georgia, serif\";\r\n        const sizeSmall = isMobile ? 18 : 28;\r\n        const sizeLarge = isMobile ? 36 : 60;\r\n        const sizeTagline = isMobile ? 12 : 16;\r\n\r\n        \/\/ Estimation de la largeur totale pour centrer\r\n        ctx.font = `bold ${sizeLarge}px ${fontBase}`;\r\n        const textWidthEst = ctx.measureText('Free').width;\r\n        const totalWidth = iconWidth + gap + textWidthEst;\r\n        \r\n        const startX = cx - (totalWidth \/ 2);\r\n        const centerY_Visual = cy; \/\/ Punct central vertical al compozi\u021biei\r\n\r\n        \/\/ --- 2. DESSIN DE L'IC\u00d4NE (Le Sac) ---\r\n        const ix = startX;\r\n        const iy = centerY_Visual - (iconHeight \/ 2);\r\n        \r\n        \/\/ On dessine une silhouette simplifi\u00e9e du sac\r\n        ctx.beginPath();\r\n        \/\/ Haut du sac (l\u00e9g\u00e8rement plus \u00e9troit)\r\n        ctx.moveTo(ix + iconWidth*0.1, iy); \r\n        ctx.lineTo(ix + iconWidth*0.9, iy);\r\n        \/\/ C\u00f4t\u00e9s inclin\u00e9s vers le bas\r\n        ctx.lineTo(ix + iconWidth, iy + iconHeight*0.85);\r\n        \/\/ Bas arrondi\r\n        ctx.quadraticCurveTo(ix + iconWidth\/2, iy + iconHeight, ix, iy + iconHeight*0.85);\r\n        ctx.closePath();\r\n        ctx.fill();\r\n\r\n        \/\/ L'anse (espace n\u00e9gatif) - On \"gomme\"\r\n        ctx.globalCompositeOperation = 'destination-out';\r\n        ctx.beginPath();\r\n        ctx.lineWidth = iconWidth * 0.08;\r\n        \/\/ Forme en U\r\n        ctx.moveTo(ix + iconWidth*0.25, iy + iconHeight*0.1);\r\n        ctx.bezierCurveTo(\r\n            ix + iconWidth*0.25, iy + iconHeight*0.7, \/\/ CP1\r\n            ix + iconWidth*0.75, iy + iconHeight*0.7, \/\/ CP2\r\n            ix + iconWidth*0.75, iy + iconHeight*0.1  \/\/ Fin\r\n        );\r\n        ctx.stroke();\r\n        ctx.globalCompositeOperation = 'source-over'; \/\/ Retour normal\r\n\r\n\r\n        \/\/ --- 3. DESSIN DU TEXTE ---\r\n        const tx = startX + iconWidth + gap;\r\n        ctx.textAlign = 'left';\r\n        ctx.textBaseline = 'alphabetic'; \/\/ More convenient for aligning multiple lines\r\n\r\n        \/\/ Calcul des positions Y relatives au centre\r\n        const line1Y = centerY_Visual - (sizeLarge * 0.6);\r\n        const line2Y = centerY_Visual - (sizeLarge * 0.1);\r\n        const line3Y = centerY_Visual + (sizeLarge * 0.65);\r\n        const line4Y = centerY_Visual + (sizeLarge * 1.1);\r\n\r\n        \/\/ \"Shop\"\r\n        ctx.font = `bold ${sizeSmall}px ${fontBase}`;\r\n        ctx.fillText('Shop',  tx, line1Y);\r\n\r\n        \/\/ \"Tax\"\r\n        ctx.fillText('Tax',   tx, line2Y);\r\n\r\n        \/\/ \"Free\" (Grande et gras)\r\n        ctx.font = `900 ${sizeLarge}px ${fontBase}`;\r\n        ctx.fillText('Free',  tx, line3Y);\r\n\r\n        \/\/ Tagline (Italique)\r\n        ctx.font = `italic ${sizeTagline}px ${fontBase}`;\r\n        ctx.fillText('Tax free shopping just got easier', tx, line4Y);\r\n\r\n\r\n        \/\/ --- 4. SCAN DES PIXELS ---\r\n        const density = 4;\r\n        const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height).data;\r\n        const dataWidth = canvas.width; \r\n\r\n        for (let y = 0; y < canvas.height; y += density) {\r\n            for (let x = 0; x < canvas.width; x += density) {\r\n                if (imageData[(y * dataWidth + x) * 4 + 3] > 128) {\r\n                    const dpr = window.devicePixelRatio || 1;\r\n                    particles.push({\r\n                        x: x \/ dpr,\r\n                        y: y \/ dpr,\r\n                        originX: x \/ dpr,\r\n                        originY: y \/ dpr,\r\n                        vx: 0, \r\n                        vy: 0,\r\n                        size: Math.random() * 1.5 + 0.5,\r\n                        force: Math.random() \r\n                    });\r\n                }\r\n            }\r\n        }\r\n        \r\n        ctx.clearRect(0, 0, width, height);\r\n    }\r\n\r\n    function draw() {\r\n        ctx.clearRect(0, 0, width, height);\r\n        time += 0.05;\r\n\r\n        ctx.fillStyle = particleColor;\r\n        \r\n        particles.forEach(p => {\r\n            \/\/ 1. Respiration\r\n            const waveX = Math.sin(time * 0.5 + p.y * 0.05) * 2;\r\n            const waveY = Math.cos(time * 0.3 + p.x * 0.05) * 2;\r\n\r\n            \/\/ 2. Interaction\r\n            const dx = mouse.x - p.x;\r\n            const dy = mouse.y - p.y;\r\n            const dist = Math.sqrt(dx*dx + dy*dy);\r\n            const radius = 80;\r\n\r\n            let repelX = 0;\r\n            let repelY = 0;\r\n\r\n            if (dist < radius) {\r\n                const force = (radius - dist) \/ radius;\r\n                const angle = Math.atan2(dy, dx);\r\n                repelX = -Math.cos(angle) * force * 20;\r\n                repelY = -Math.sin(angle) * force * 20;\r\n            }\r\n\r\n            \/\/ 3. Physique\r\n            const targetX = p.originX + waveX;\r\n            const targetY = p.originY + waveY;\r\n\r\n            const ax = (targetX - p.x) * 0.08;\r\n            const ay = (targetY - p.y) * 0.08;\r\n\r\n            p.vx += ax;\r\n            p.vy += ay;\r\n            p.vx += repelX * 0.5;\r\n            p.vy += repelY * 0.5;\r\n            p.vx *= 0.85; \r\n\r\n            p.x += p.vx;\r\n            p.y += p.vy;\r\n\r\n            ctx.beginPath();\r\n            ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\r\n            ctx.fill();\r\n        });\r\n\r\n        requestAnimationFrame(draw);\r\n    }\r\n\r\n    const updateMouse = (e) => {\r\n        const r = canvas.getBoundingClientRect();\r\n        const cx = e.touches ? e.touches[0].clientX : e.clientX;\r\n        const cy = e.touches ? e.touches[0].clientY : e.clientY;\r\n        mouse.x = cx - r.left;\r\n        mouse.y = cy - r.top;\r\n    };\r\n\r\n    window.addEventListener('resize', init);\r\n    canvas.addEventListener('mousemove', updateMouse);\r\n    canvas.addEventListener('touchmove', updateMouse, {passive: true});\r\n    canvas.addEventListener('mouseleave', () => { mouse.x = -1000; mouse.y = -1000; });\r\n    canvas.addEventListener('touchend', () => { mouse.x = -1000; mouse.y = -1000; });\r\n\r\n    setTimeout(init, 50);\r\n    draw();\r\n})();\r\n<\/script>"},"pt":[],"pipeline":[],"class_list":["post-8585","portfolio","type-portfolio","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/portfolio\/8585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/portfolio"}],"about":[{"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/types\/portfolio"}],"version-history":[{"count":1,"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/portfolio\/8585\/revisions"}],"predecessor-version":[{"id":8586,"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/portfolio\/8585\/revisions\/8586"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/media\/2369"}],"wp:attachment":[{"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/media?parent=8585"}],"wp:term":[{"taxonomy":"pt","embeddable":true,"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/pt?post=8585"},{"taxonomy":"pipeline","embeddable":true,"href":"https:\/\/innovacore.group\/ro\/wp-json\/wp\/v2\/pipeline?post=8585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}