////////////////////////////////////////////////////////////////////////// // Markup // Funkcja przygotująca markup dla wszystkich produktów function idmPrepareProductsMarkup(products, addToBasket){ let markup = ""; products.forEach((prod)=>{ markup += idmPrepareSingleProductMarkup(prod, addToBasket); }) return markup; } // funkcja przygotowująca markup dla wybranego produktu function idmPrepareSingleProductMarkup(prod, addToBasket){ const prodExchangedData = app_shop.fn?.idmGetOmnibusDetails({productData: prod}); // pobranie labelek let labelHTMLMarkup = ""; if(typeof prodExchangedData.activeLabel === "object") Object.entries(prodExchangedData.activeLabel).forEach(([key,value])=>{ labelHTMLMarkup += value; }) // markup pojedynczego produktu let singleMarkup = ""; singleMarkup += `
${idmPrepareHotspotImgMarkup(prod)} ${labelHTMLMarkup}
${prod.name}
${idmPrepareHotspotPriceMarkup(prod, prodExchangedData)}
${idmPrepareHotspotAddToBasketMarkup(prod, addToBasket)}
`; return singleMarkup; } // markup zdjęcia function idmPrepareHotspotImgMarkup(prod){ let markup = ""; if(prod.iconSmallSecond !== undefined && prod.iconSecond !== undefined) markup +=` ${prod.name} `; else if(prod?.iconSmall !== undefined) markup += ` ${prod.name} `; else markup += `${prod.name}` return markup; } // markup cen function idmPrepareHotspotPriceMarkup(prod, prodExchangedData){ const price = prod.price.price[idmPriceType]; const unit = prod.unit; const pointsPrice = prod?.points; const convertedPrice = prod.price?.unitConvertedPrice?.[idmPriceType]?.formatted; return ` ${price.formatted} / ${unit?.sellBy} ${unit?.sellBy > 1 ? unit?.plural : unit?.singular} ${convertedPrice ? `${convertedPrice}` : ""} ${pointsPrice ? `${pointsPrice} pkt.` : ""} ${price.value === 0 ? `${idmHotspotTextObject["Cena na telefon"]}` : ""} ${prodExchangedData?.beforeRebate?.visible ? `${prodExchangedData?.beforeRebate?.html}` : ""} ${prodExchangedData?.newPriceEffectiveUntil?.visible ? `${prodExchangedData?.newPriceEffectiveUntil?.html}` : ""} ${prodExchangedData?.omnibus?.visible ? `${prodExchangedData?.omnibus?.html}` : ""} ${prodExchangedData?.max?.visible ? `${prodExchangedData?.max?.html}` : ""} `; } // markup dodawania do koszyka function idmPrepareHotspotAddToBasketMarkup(prod, addToBasket){ let markup = ""; if(!addToBasket && typeof addToBasket !== "undefined" || (typeof addToBasket === "undefined" && typeof idmGeneralHotspotObjData === "object" && !idmGeneralHotspotObjData?.options?.addToBasket) || !addToBasket && typeof idmGeneralHotspotObjData === "undefined") return markup; // link do produktu jak nie jest to zwykły produkt if(prod.type !== "product") markup = `Zobacz produkt`; else if(addToBasket === "range" || typeof addToBasket === "undefined" && typeof idmGeneralHotspotObjData === "object" && idmGeneralHotspotObjData?.options?.addToBasket === "range") // +- markup = `
`; else // Zwykłe dodanie do koszyka markup = `
`; return markup; }