Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (dataLayer[0]["shoptet"]["pageType"] == "productDetail") {
- let product_id = dataLayer[0]["shoptet"]["product"]["guid"];
- const eshop_id = dataLayer[0]["shoptet"]["projectId"];
- fetch("https://shoptet.webotvurci.cz/eshop-endpoints/" + eshop_id + "/product-variants/setting-hash")
- .then((response) => response.json())
- .then((response) => {
- var product_connections_setting = "https://cdn.myshoptet.com/usr/webotvurci.myshoptet.com/user/documents/product-variants/" + eshop_id + "/eshopSetting.json?" + response;
- fetch(product_connections_setting)
- .then((response) => response.json())
- .then((json) => {
- let products = json.products[product_id];
- if (products !== undefined) {
- products.forEach((element) => {
- let product_config_id = element;
- let product_config_data = json.configs[product_config_id];
- WtShowProductInterconnectionsAddonCisBox(product_config_data);
- });
- }
- });
- })
- .catch((error) => {
- console.log(error);
- });
- }
- function formatNumber(number) {
- const fixedNumber = number.toFixed(2);
- const formatter = new Intl.NumberFormat('cs-CZ', {
- minimumFractionDigits: 2,
- maximumFractionDigits: 2,
- });
- return formatter.format(fixedNumber).replace('.', ',');
- }
- function najdiCenuBezDPH(identifier) {
- const element = document.querySelector(`[data-micro-identifier="${identifier}"]`);
- if (!element) {
- console.log('Element s daným identifikátorem nebyl nalezen.');
- return null;
- }
- const cenaBezDPHElement = element.querySelector('.price-additional');
- if (!cenaBezDPHElement) {
- console.log('Element s cenou bez DPH nebyl nalezen.');
- return null;
- }
- var rawPriceText = cenaBezDPHElement.textContent.trim();
- var priceText = rawPriceText.replace(/[^\d,]/g, '').trim();
- var formattedPrice = priceText.replace(',', '.');
- return formattedPrice;
- }
- function WtShowProductInterconnectionsAddonCisBox(product_config_data) {
- var productData = product_config_data;
- if (dataLayer[0]["shoptet"]["pageType"] == "productDetail" && typeof productData !== 'undefined') {
- var container;
- container = document.querySelector(".p-detail-info");
- if (productData.hasOwnDesign === true && productData.type === "list") {
- var customSelectBox = document.createElement('div');
- customSelectBox.setAttribute('class', `c-product-interconnection-detail-params--custom is-template--${shoptet.design.template.name}`);
- var itemsContainer = document.createElement('table');
- itemsContainer.setAttribute('class', 'c-product-interconnection-custom--image-select-list-dropdown');
- // Vytvoření záhlaví tabulky
- var headerRow = document.createElement('tr');
- var headers = ["Název produktu", "Počet kusů", "Cena bez DPH", "Cena za kus", "Odkaz"];
- headers.forEach(headerText => {
- var header = document.createElement('th');
- header.textContent = headerText;
- headerRow.appendChild(header);
- });
- itemsContainer.appendChild(headerRow);
- customSelectBox.appendChild(itemsContainer);
- let product_id = dataLayer[0]["shoptet"]["product"]["guid"];
- for (var key in productData.productsSetting) {
- var item = document.createElement('tr');
- item.setAttribute('class', 'c-product-interconnection-custom--image-select-list-dropdown__item');
- item.dataset.link = productData.productsSetting[key].link;
- var name = productData.productsSetting[key].label;
- var link = productData.productsSetting[key].link;
- var velikostBaleni;
- var pocetKusu;
- if (name === "1ks") {
- velikostBaleni = name;
- pocetKusu = 1;
- } else {
- const casti = name.split("-");
- velikostBaleni = casti[0].trim();
- pocetKusu = parseInt(casti[1].trim().replace('ks', ''), 10);
- }
- var printPrice = "";
- var printPricePerPiece = "";
- if (key !== product_id) {
- var cenaBezDPH = parseFloat(najdiCenuBezDPH(key));
- printPricePerPiece = formatNumber(cenaBezDPH / parseFloat(pocetKusu));
- printPrice = formatNumber(cenaBezDPH);
- } else {
- var priceElement = document.querySelector('.price-additional');
- var rawPriceText = priceElement.textContent.trim();
- var priceText = rawPriceText.replace(/[^\d,]/g, '').trim();
- var formattedPrice = priceText.replace(',', '.');
- var priceFloat = parseFloat(formattedPrice);
- var pricePerPiece = priceFloat / pocetKusu;
- printPrice = formatNumber(priceFloat);
- printPricePerPiece = formatNumber(pricePerPiece);
- }
- item.innerHTML = `
- <td data-label="Název produktu">${velikostBaleni}</td>
- <td data-label="Počet kusů">${pocetKusu} Ks</td>
- <td data-label="Cena bez DPH">${printPrice} Kč</td>
- <td data-label="Cena za kus">${printPricePerPiece} Kč</td>
- <td data-label="Odkaz"><a href="${link}">Zobrazit</a></td>
- `;
- itemsContainer.appendChild(item);
- }
- if (container) {
- container.parentNode.insertBefore(customSelectBox, container);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement