Svetog Save 9, Srbobran
Pon–Pet 08:00–16:00
← Nazad na modele
Galerija odabrane varijacije
Multiprint katalog
MEZZO
Odaberite nijansu proizvoda, pregledajte slike i proverite dostupne veličine i stanje na lageru.
Zalihe za odabranu varijaciju
Crna
Šifra
Cena
Zaliha
Dolazak
Opis
Bežični zvučnik snage 5 W sa RGB svetlom, dizajniran kao atraktivan promotivni proizvod koji kombinuje zvuk i vizuelni efekat. Dinamično osvetljenje dodatno privlači pažnju, čineći ga pogodnim za kancelarije, evente i poslovne poklone. Isporučuje se u poklon kutiji sa uključenim Type-C kablom za punjenje.
Ključne karakteristike:
Bežični zvučnik • Snaga zvučnika 5 W • RGB svetlo • BT verzija 5.4 • Domet rada do 10 m • Punjiva baterija kapaciteta 800 mAh • Vreme punjenja oko 2 sata • Vreme reprodukcije do 3 sata • Type-C kabl za punjenje uključen • Poklon kutija
×
"}],"statuses":[]}],"images":[{"image_url":"https://apiv2.promosolution.services/content/ModelItem/3811910_001.jpg?v=250218112005","image_webp":"https://apiv2.promosolution.services/content/ModelItem/3811910_001.webp?v=250218112005","sort_order":1},{"image_url":"https://apiv2.promosolution.services/content/ModelItem/3811910_002.jpg?v=250218112005","image_webp":"https://apiv2.promosolution.services/content/ModelItem/3811910_002.webp?v=250218112005","sort_order":2},{"image_url":"https://apiv2.promosolution.services/content/ModelItem/3811910_003.jpg?v=250218112005","image_webp":"https://apiv2.promosolution.services/content/ModelItem/3811910_003.webp?v=250218112005","sort_order":3},{"image_url":"https://apiv2.promosolution.services/content/ModelItem/3811910_004.jpg?v=250218112005","image_webp":"https://apiv2.promosolution.services/content/ModelItem/3811910_004.webp?v=250218112005","sort_order":4},{"image_url":"https://apiv2.promosolution.services/content/ModelItem/3811910_005.jpg?v=250218112005","image_webp":"https://apiv2.promosolution.services/content/ModelItem/3811910_005.webp?v=250218112005","sort_order":5},{"image_url":"https://apiv2.promosolution.services/content/ModelItem/3811910_006.jpg?v=250218112005","image_webp":"https://apiv2.promosolution.services/content/ModelItem/3811910_006.webp?v=250218112005","sort_order":6},{"image_url":"https://apiv2.promosolution.services/content/ModelItem/3811910_020.jpg?v=260406152905","image_webp":"https://apiv2.promosolution.services/content/ModelItem/3811910_020.webp?v=260406152905","sort_order":20}],"thumb":"https://apiv2.promosolution.services/content/ModelItem/3811910_001.jpg?v=250218112005","total_qty":1560,"has_new":false}};
const rmHasAnySize = false;
const rmCurrencyMode = "RSD";
const rmExchangeRate = 125;
const rmMainImage = document.getElementById('rmMainProductImage');
const rmVariantThumbButtons = document.querySelectorAll('.rm-variant-thumb');
const rmSelectedVariantTitle = document.getElementById('rmSelectedVariantTitle');
const rmMiniGallery = document.getElementById('rmMiniGallery');
const rmVariantsTableBody = document.getElementById('rmVariantsTableBody');
const rmStatusBox = document.getElementById('rmStatusBox');
const rmSpecsBox = document.getElementById('rmSpecsBox');
const rmLightbox = document.getElementById('rmLightbox');
const rmLightboxImage = document.getElementById('rmLightboxImage');
const rmLightboxClose = document.getElementById('rmLightboxClose');
function rmEscapeHtml(str) {
return String(str ?? '')
.replaceAll('&', '&')
.replaceAll('<', '<')
.replaceAll('>', '>')
.replaceAll('"', '"')
.replaceAll("'", ''');
}
function rmSetMainImage(src) {
if (rmMainImage && src) {
rmMainImage.src = src;
}
}
function rmFormatPrice(value) {
if (value === null || value === '') return '-';
let num = Number(value);
if (rmCurrencyMode === 'RSD' && rmExchangeRate && !isNaN(rmExchangeRate)) {
num = num * Number(rmExchangeRate);
return num.toLocaleString('sr-RS', { minimumFractionDigits: 0, maximumFractionDigits: 0 }) + ' RSD + PDV';
}
return num.toLocaleString('sr-RS', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + ' €';
}
function rmFormatStock(value) {
const num = Number(value || 0);
if (num <= 0) return 'Nema';
if (Number.isInteger(num)) return String(num);
return num.toLocaleString('sr-RS', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
}
function rmRenderMiniGallery(group) {
rmMiniGallery.innerHTML = '';
const images = [...(group.images || [])];
const sizeChartImage = "";
const sizeChartLabel = "Tabela veličina";
if (sizeChartImage) {
images.push({
image_url: sizeChartImage,
is_size_chart: true,
label: sizeChartLabel
});
}
images.forEach((img, index) => {
const item = document.createElement('div');
item.className = 'rm-mini-gallery-item';
if (img.is_size_chart) {
item.innerHTML = `
${rmEscapeHtml(img.label || 'Tabela veličina')}
`;
} else {
item.innerHTML = ` `;
}
item.addEventListener('click', () => {
rmSetMainImage(img.image_url);
});
rmMiniGallery.appendChild(item);
if (index === 0 && img.image_url) {
rmSetMainImage(img.image_url);
}
});
}
function rmRenderTable(group) {
rmVariantsTableBody.innerHTML = '';
(group.items || []).forEach(item => {
const tr = document.createElement('tr');
let html = '';
html += `${rmEscapeHtml(item.external_id || '-')} `;
if (rmHasAnySize) {
html += `${rmEscapeHtml(item.size || '-')} `;
}
html += `${rmEscapeHtml(rmFormatPrice(item.price))} `;
html += `${rmEscapeHtml(rmFormatStock(item.total_stock))} `;
let arrivalText = '-';
if (item.arrival_date) {
const d = new Date(item.arrival_date);
if (!isNaN(d.getTime())) {
arrivalText = d.toLocaleDateString('sr-RS');
} else {
arrivalText = item.arrival_date;
}
if (item.arrival_qty !== null && item.arrival_qty !== '' && Number(item.arrival_qty) > 0) {
arrivalText += ` / ${rmFormatStock(item.arrival_qty)}`;
}
if (item.arrival_value) {
arrivalText += ` / ${rmEscapeHtml(item.arrival_value)}`;
}
} else if (item.arrival_value) {
arrivalText = rmEscapeHtml(item.arrival_value);
}
html += `${arrivalText} `;
tr.innerHTML = html;
rmVariantsTableBody.appendChild(tr);
});
}
function rmRenderSpecsAndStatuses(group) {
rmStatusBox.innerHTML = '';
rmSpecsBox.innerHTML = '';
const firstItem = (group.items || [])[0];
if (!firstItem) {
return;
}
const statuses = firstItem.statuses || [];
const specs = firstItem.specifications || [];
if (statuses.length > 0) {
statuses.forEach(status => {
const badge = document.createElement('div');
badge.className = 'rm-status-badge';
const imgHtml = status.image_url
? ` `
: '';
badge.innerHTML = `${imgHtml}${rmEscapeHtml(status.name || 'Status')} `;
rmStatusBox.appendChild(badge);
});
}
const rows = [];
// Osnovni detalji iz promobox_products
rows.push(['Šifra', firstItem.external_id || '-']);
rows.push(['Model', "MEZZO" || '-']);
rows.push(['Brend', firstItem.brand || '-']);
rows.push(['Boja', firstItem.shade_name || firstItem.color_name || '-']);
// Pakovanje iz osnovnih product polja
if (firstItem.package) rows.push(['Pakovanje', firstItem.package]);
if (firstItem.package_info) rows.push(['Info pakovanja', firstItem.package_info]);
if (firstItem.commercial_package) rows.push(['Komercijalno pakovanje', firstItem.commercial_package]);
if (firstItem.carton) rows.push(['Karton', firstItem.carton]);
if (firstItem.weight) rows.push(['Neto težina', `${firstItem.weight}${firstItem.weight_um ? ' ' + firstItem.weight_um : ''}`]);
if (firstItem.ean) rows.push(['EAN', firstItem.ean]);
if (firstItem.catalog_page) rows.push(['Stranica kataloga', firstItem.catalog_page]);
// Specifikacije iz promobox_product_specifications
const usedLabels = new Set(rows.map(r => String(r[0]).toLowerCase().trim()));
specs.forEach(spec => {
const label = String(spec.specification || '').trim();
const value = String(spec.name || '').trim();
if (!label || !value) return;
const normalized = label.toLowerCase();
if (usedLabels.has(normalized)) return;
rows.push([label, value]);
usedLabels.add(normalized);
});
if (rows.length > 0) {
rows.forEach(([label, value]) => {
const row = document.createElement('div');
row.className = 'rm-spec-row';
row.innerHTML = `
${rmEscapeHtml(label || '-')}
${rmEscapeHtml(value || '-')}
`;
rmSpecsBox.appendChild(row);
});
} else {
rmSpecsBox.innerHTML = `
Detalji proizvoda
Nema dodatnih podataka.
`;
}
}
function rmActivateGroup(groupKey) {
const group = rmVariantGroups[groupKey];
if (!group) return;
rmVariantThumbButtons.forEach(btn => btn.classList.remove('active'));
document.querySelector(`.rm-variant-thumb[data-group-key="${CSS.escape(groupKey)}"]`)?.classList.add('active');
rmSelectedVariantTitle.textContent = group.label || '';
rmRenderMiniGallery(group);
rmRenderTable(group);
rmRenderSpecsAndStatuses(group);
}
rmVariantThumbButtons.forEach(btn => {
btn.addEventListener('click', () => {
const groupKey = btn.getAttribute('data-group-key');
rmActivateGroup(groupKey);
});
});
rmActivateGroup(10);
if (rmMainImage) {
rmMainImage.addEventListener('click', () => {
if (rmMainImage.src) {
rmLightboxImage.src = rmMainImage.src;
rmLightbox.classList.add('open');
}
});
}
rmLightboxClose.addEventListener('click', () => {
rmLightbox.classList.remove('open');
rmLightboxImage.src = '';
});
rmLightbox.addEventListener('click', (e) => {
if (e.target === rmLightbox) {
rmLightbox.classList.remove('open');
rmLightboxImage.src = '';
}
});
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
rmLightbox.classList.remove('open');
rmLightboxImage.src = '';
}
});