2
minutter lesetid

Gavekortet som kan brukes på Vinmonopolet

Erik Kjernlie
Teknisk Leder

Gavekort fra Glede er et fleksibelt og forhåndsbetalt Mastercard, som tilbyr en unik gaveopplevelse for ansatte i alle bransjer.

Allsidigheten til gavekortet

Gavekortet skiller seg ut ved å kunne brukes ikke bare på Vinmonopolet, men også i et bredt spekter av forretninger over hele verden. Dette betyr at de ansatte står fritt til å velge hvordan de vil bruke gaven, enten det er for å kjøpe kvalitetsvin og brennevin, eller for en helt annen shoppingopplevelse. Gavekortet kan derfor brukes i alle de større byene som Oslo, Trondheim, Stavanger og Bergen, men også i mindre tettsteder. Alle får de samme mulightene.

Fordeler for Bedrifter og Ansatte

1. Fleksibilitet og Frihet: Gavekortet gir mottakerne full frihet til å velge sine egne gaver. Enten de er vinelskere eller foretrekker andre produkter, tilpasser dette kortet seg etter hver enkelts ønsker og behov.

2. Universell Aksept: Som et Mastercard-produkt, kan gavekortet bruk hvor som helst i hele verden. Dette gjør det til en ideell gave for ansatte som verdsetter frihet og mangfold i sine valg.

3. Enkel og Bekvem: Uten behov for spesifikke butikker eller tjenester, reduserer Glede Gavekortet kompleksiteten i gavegivingsprosessen, noe som er en fordel for både giveren og mottakeren.

Et Gavekort for Alle Anledninger

Med gavekortet fra Glede kan bedrifter enkelt tilpasse sine gaver til enhver anledning. Enten det er julegaver, jubileum, eller som en anerkjennelse for godt arbeid, tilbyr dette kortet en løsning som er både gjennomtenkt og praktisk.

Hva hvis jeg ikke ønsker at gavekortet skal brukes på Vinmonopolet?

Ikke noe problem. Da kan du enkelt deaktivere at gavekortet ditt ikke skal kunne brukes på Vinmonopolet ved å kontakte oss på support. Vanskeligere er det ikke :)

Konklusjon

Gavekortet representerer en ny æra av bedriftsgaver, hvor valgfrihet og fleksibilitet står i sentrum. Enten det brukes på Vinmonopolet eller i et mangfold av butikker og tjenester over hele verden, gir dette forhåndsbetalte Mastercardet en gaveopplevelse som er både personlig og universell. For bedrifter betyr det en enklere og mer tilfredsstillende måte å vise takknemlighet og anerkjennelse til sine ansatte.

Kontakt oss

Tusen takk! Vi har mottatt din henvendelse, og vil svare deg i løpet av én arbeidsdag 😊
Uups! Noe gikk galt, og meldingen ble ikke sendt. Prøv igjen, eller ta kontakt med oss på e-post: support@glede.app

Kom i gang med Glede

Gi gavekortet som kan brukes overalt — i butikk og på nett!

(function () { const DEBUG = false; const log = (...a) => DEBUG && console.log('[weglot-ui]', ...a); const normalize = (code) => { if (!code) return ''; code = String(code).toLowerCase(); if (code.includes('-')) code = code.split('-')[0]; // en-US -> en if (code === 'nb') code = 'no'; // Bokmål -> 'no' if (code === 'se') code = 'sv'; // common slip return code; }; // We cache a template per language so we can rebuild the list let TEMPLATES = { inner: {}, outer: {} }; function cacheTemplates(wrapper) { // Grab any [lang] blocks (from toggle OR list) and store inner/outer wrapper.querySelectorAll('[lang]').forEach(el => { const lang = normalize(el.getAttribute('lang')); if (!lang) return; if (!TEMPLATES.inner[lang]) TEMPLATES.inner[lang] = el.innerHTML; if (!TEMPLATES.outer[lang]) TEMPLATES.outer[lang] = el.outerHTML; }); log('cached templates', TEMPLATES); } function updateSwitcher(currentLang) { currentLang = normalize(currentLang); const wrappers = document.querySelectorAll('.wg-element-wrapper.sw6'); if (wrappers.length === 0) { log('no wrappers'); return; } else { wrappers.forEach(wrapper => { const toggle = wrapper.querySelector('.wg-dropdown-toggle'); const list = wrapper.querySelector('.wg-dd-1-list'); if (!toggle || !list) { log('missing toggle/list'); return; } // Ensure templates are cached (first run on this page load) if (!TEMPLATES.inner.no || !TEMPLATES.inner.sv || !TEMPLATES.inner.en) { cacheTemplates(wrapper); } // If any template still missing, bail (structure not as expected) if (!TEMPLATES.inner.no || !TEMPLATES.inner.sv || !TEMPLATES.inner.en) { log('incomplete templates'); return; } // 1) Set TOGGLE visual (attribute + optional state class + content) toggle.setAttribute('lang', currentLang); toggle.classList.remove('is-no','is-sv','is-en'); toggle.classList.add(`is-${currentLang}`); toggle.innerHTML = TEMPLATES.inner[currentLang]; // 2) Rebuild LIST to contain ONLY the two other languages (fresh each time) const ALL = ['no','sv','en']; const others = ALL.filter(l => l !== currentLang); // Build a clean list using the captured OUTER html so structure/classes match const htmlA = TEMPLATES.outer[others[0]]; const htmlB = TEMPLATES.outer[others[1]]; // Clear and insert exactly two items list.innerHTML = ''; // Insert via range to keep outerHTML intact const r1 = document.createRange(); r1.selectNode(list); list.appendChild(r1.createContextualFragment(htmlA)); const r2 = document.createRange(); r2.selectNode(list); list.appendChild(r2.createContextualFragment(htmlB)); // Optional: normalize classes on list items too list.querySelectorAll('[lang]').forEach(el => { const l = normalize(el.getAttribute('lang')); el.classList.remove('is-no','is-sv','is-en'); el.classList.add(`is-${l}`); }); log('updated → current:', currentLang, 'others:', others); } ) } } // Event delegation (survives DOM swaps) document.addEventListener('click', function (e) { const link = e.target.closest('.wg-element-wrapper.sw6 [lang]'); if (!link) return; e.preventDefault(); const lang = normalize(link.getAttribute('lang')); // Trigger Weglot switch (subdomain setups will reload; path setups will not) document.cookie = "glede_locale=" + lang + "; path=/; domain=.glede.app; max-age=31536000"; Weglot.switchTo(lang); // Do NOT call update here for subdomain setups; page will reload anyway. }); // Run AFTER Weglot has rendered (important on subdomain reload) function runAfterWeglotReady() { const run = () => { const lang = normalize(Weglot.getCurrentLang()); // Wait one frame to let Weglot paint its switcher nodes requestAnimationFrame(() => updateSwitcher(lang)); }; Weglot.on('initialized', run); // If already initialized (script included late), run immediately if (Weglot.getCurrentLang && Weglot.getCurrentLang()) run(); // For path-based projects (no reload), update visuals after change Weglot.on('languageChanged', (newLang) => { updateSwitcher(newLang) }); } // Boot when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', runAfterWeglotReady); } else { runAfterWeglotReady(); } })();