`; } } else { console.log("failed to remove"); } } else { let isAdded = addToList(myIcon.dataset.handle); if (isAdded) { savedList = readWishList(); [itemCount, itemCountFloating].forEach(item=>item.innerHTML = savedList.length); myIcon.dataset.status = "true"; myIcon.classList.add("added"); } else { console.log("failed to add") } } updateAllIcon(); }) return myIcon; } function updateAllIcon() { document.querySelectorAll(".wishlist_btn").forEach(button=>{ if (button.hasAttribute("data-handle")) { let isPresent = findItem(button.dataset.handle); if (isPresent) { button.classList.add("added"); button.dataset.status = "true"; } else { button.classList.remove("added"); button.dataset.status = "false"; } } }) } // ========================================================================================= Objective utility functions // =============================================== On-page organizing wishlist item list wishlistControls.forEach(control=>{ control.addEventListener("click", ()=>{ ["col3", "col4", "col5"].forEach(thisClass=>wishlistContainer.classList.remove(thisClass)); wishlistControls.forEach(btn=>btn.classList.remove("active")); control.classList.add("active"); wishlistContainer.classList.add(control.dataset.row); }) }) // =========================================================================== Generating products on the wishlist page function printProduct(thisProduct) { let variant_id = thisProduct.variants[0].id; let cardImageContainer = null; cardImageContainer = createElement("a"); cardImageContainer.href = `${window.Shopify.routes.root + 'products/' + thisProduct.handle}`; let cardImage = createElement("img", ["product_card_img"]); if (thisProduct.image && thisProduct.image.src) { cardImage.src = thisProduct.image.src; } else { cardImage.src = "https://cdn.shopify.com/s/files/1/0533/2089/files/placeholder-images-image_large.png?format=webp&v=1530129081"; } cardImageContainer.appendChild(cardImage); let cardTitle = null; cardTitle = createElement("a", ["product_card_title"], [], thisProduct.title); cardTitle.href = `${window.Shopify.routes.root + 'products/' + thisProduct.handle}`; let cardPrice = createElement("p", ["product_card_price"], [], `${"${{amount}}".trim().split("{")[0] + thisProduct.variants[0].price}`); let cardComparePrice = createElement("p", ["product_card_compare_price"], [], `${thisProduct.variants[0].compare_at_price.length > 0 ? "${{amount}}".trim().split("{")[0] + thisProduct.variants[0].compare_at_price : ""}`); let priceContainer = createElement("div", ["product_card_price_container"], [cardComparePrice, cardPrice]) let variantContainer = createElement("div", ["product_card_variant_container"]); let cardDetailButton = null; cardDetailButton = createElement("a", ["product_card_button", "inline"], [], "Details"); cardDetailButton.href = `${window.Shopify.routes.root + 'products/' + thisProduct.handle}`; let cardForm = createElement("form", ["product_form_custom_wishlist"]); cardForm.method = "post"; cardForm.action = `/cart/add/${variant_id}`; cardForm.acceptCharset = "UTF-8"; cardForm.enctype = "multipart/form-data"; cardForm.novalidate = "novalidate"; let cardInputProduct = createElement("input"); cardInputProduct.type = "hidden"; cardInputProduct.name = "form_type"; cardInputProduct.value = "product"; let cardInputChar = createElement("input"); cardInputChar.type = "hidden"; cardInputChar.name = "utf8"; cardInputChar.value = "✓"; let cardInputVariant = createElement("input"); cardInputVariant.type = "hidden"; cardInputVariant.name = "id"; cardInputVariant.value = variant_id; cardInputVariant.disabled = "disabled"; let cardSubmit = createElement("button", ["product_card_button"], [], "Add to cart"); cardSubmit.type = "submit"; cardSubmit.name = "add"; cardSubmit.value = variant_id; let cardInputProductId = createElement("input"); cardInputProductId.type = "hidden"; cardInputProductId.name = "product-id"; cardInputProductId.value = variant_id; [cardInputProduct, cardInputChar, cardInputVariant, cardSubmit, cardInputProductId].forEach(item=>cardForm.appendChild(item)); let cardButtonContainer = createElement("div", ["product_card_button_list"], [cardDetailButton, cardForm]); if (thisProduct.options[0].values[0] != "Default Title") { for (option in thisProduct.options) { let cardOptionName = createElement("p", ["product_card_option_name"], [], thisProduct.options[option].name); let cardVariantSelect = createElement("select", ["product_card_option_set"]); for (value in thisProduct.options[option].values) { let cardVariantOption = createElement("option", [], [], thisProduct.options[option].values[value]); cardVariantOption.value = thisProduct.options[option].values[value]; cardVariantSelect.appendChild(cardVariantOption); } let optionData = []; for (variant in thisProduct.variants) { let variantData = [ thisProduct.variants[variant].title, thisProduct.variants[variant].id, thisProduct.variants[variant].image_id != null ? thisProduct.images.find(img=>img.id == thisProduct.variants[variant].image_id).src : null, [ "${{amount}}".trim().split("{")[0] + thisProduct.variants[variant].price, thisProduct.variants[variant].compare_at_price.length > 0 ? "${{amount}}".trim().split("{")[0] + thisProduct.variants[variant].compare_at_price : "" ] ]; optionData.push(variantData); } cardVariantSelect.addEventListener("change", ()=>{ variantUpdate(optionData); }) let cardOption = createElement("div", ["product_card_option"], [cardOptionName, cardVariantSelect]); variantContainer.appendChild(cardOption) } } let cardContainer = createElement("div", ["product_card", "product"], [cardImageContainer, cardTitle, priceContainer, variantContainer, cardButtonContainer]); function variantUpdate(optionData) { let selectedDataSet = Array.from(cardContainer.querySelectorAll(".product_card_option_set"), item => item.value); let selectedVariant = null; optionData.forEach(option=>{ if (selectedVariant == null) { selectedVariant = option; selectedDataSet.forEach(item=>{ if (!option[0].includes(item)) { selectedVariant = null; } }) } }) cardPrice.innerHTML = selectedVariant[3][0]; cardComparePrice.innerHTML = selectedVariant[3][1]; selectedVariant[2] != "null" ? cardImage.src = selectedVariant[2] : null; if (cardForm.tagName == "FORM") { cardForm.action = `/cart/add/${selectedVariant[1]}`; cardInputVariant.value = selectedVariant[1]; cardSubmit.value = selectedVariant[1]; cardInputProductId.value = selectedVariant[1]; } else if (cardForm.tagName == "BUTTON") { cardForm.dataset.variant = selectedVariant[1]; } } if (!cardContainer.classList.contains("icon_holder")) { let icon = generateIcon(thisProduct.handle); icon.addEventListener("click", ()=>{ cardContainer.classList.add("hiding"); setTimeout(()=>{ cardContainer.style.display = "none"; }, 300) }) appendIcon(cardContainer, icon); } wishlistContainer.appendChild(cardContainer); } // =============================================== Fetching product data from Shopify function fetchProduct(item) { jQuery.getJSON(window.Shopify.routes.root + 'products/' + item, function(thisProduct) { printProduct(thisProduct.product); responseCount += 1; }).fail(function(response) { if (response.status == 404) { responseCount += 1; failedProducts.push(item); } }); } function updateList () { setTimeout(()=>{ if (responseCount == savedList.length) { let newList = []; savedList.forEach(save=>{ if (!failedProducts.includes(save.toLowerCase())) { newList.push(save); } }) saveWishList(newList); let updatedList = readWishList(); itemCount.innerHTML = updatedList.length; itemCountFloating.innerHTML = updatedList.length; responseCount = 0; failedProducts = []; loadingSpinner.classList.remove("active"); wishlistContainer.classList.add("active"); } else { updateList() } }, 100) } // =============================================== Manipulating wishlist window wishlistClose.addEventListener("click", ()=>{ isWishlistOpen = false; pageBody.classList.remove("no_scroll"); Array.from(wishlistSection.parentElement.
children ).forEach(sibling=>sibling.classList.remove("functionally_hidden")); // wishlistSection.classList.add("functionally_hidden"); wishlistContainer.classList.remove("active"); wishlistUtility.classList.remove("active"); wishlistTrigger.classList.add("active"); loadingSpinner.classList.add("active"); updateAllIcon(); }) wishlistTrigger.addEventListener("click", ()=>{ isWishlistOpen = open; pageBody.classList.add("no_scroll"); Array.from(wishlistSection.parentElement.children).forEach(sibling=>sibling.classList.add("functionally_hidden")); wishlistSection.classList.remove("functionally_hidden"); wishlistContainer.classList.add("active"); wishlistUtility.classList.add("active"); wishlistTrigger.classList.remove("active"); savedList = readWishList(); itemCount.innerHTML = savedList.length; wishlistContainer.innerHTML = ""; if (savedList.length > 0) { savedList.forEach(item=>{ let thisProduct = fetchProduct(item); }) } else { wishlistContainer.innerHTML = `
`; } updateList() }) // =============================================== Manipulating Savelist function removeFromList(value) { let newList = []; savedList.forEach(item=>{ if (value.toLowerCase() != item.toLowerCase()) { newList.push(item); } }) return saveWishList(newList); } function addToList(value) { let newList = []; if (!savedList.includes(value)) { newList = [...savedList, value]; } else { newList = savedList; } return saveWishList(newList); } function saveWishList(value) { let isSaveLocal = saveLocal(value); let isSaveCloud = true; if (isSaveLocal && isSaveCloud) { return true; } } function readWishList() { let myLocal = readLocal(); // let myCloud = readCloud(); return myLocal; } // =============================================== Manipulating local storage function saveLocal(value) { try { const jsonString = JSON.stringify(value); localStorage.setItem("wishlist", jsonString); return true; } catch (error) { return false; } } function readLocal() { try { const storedValue = localStorage.getItem("wishlist"); if (storedValue !== null) { return JSON.parse(storedValue); } else { return []; } } catch (error) { return []; } } // =============================================== Manipulating Customer Metafield function readCloud() { } async function saveCloud(value) { } }) })()
Home Mirricard Mirror Samples BRAND: MirriCard
Regular price $2.50
Regular price Sale price $2.50
Unit price / per
Sale Sorry - Out of Stock
Discounts, taxes and shipping calculated at checkout.
Enter Quantity
This is the maximum quantity you can select.
View full details DETAILS Format Cover Weight 100 lb / 270 gsm Cover - 12pt Size 8.5 x 11 Inch Quantity 1 Sheet Finish Reflective Mirror, Smooth; Non-Adhesive White Back Coating High Quality Film Lamination Colors Available 12 Applications Decorative - Invitations - Announcements - Cardmaking - Scrapbooking - Calligraphy - Paper Crafts - Tags - Packaging and more Printing Laser - Offset - Litho - Screening - Foil Blocking - Embossing - Debossing Other Mirror Front; Non-Adhesive White Back
Manufactured using an exceptionally high quality film, this is the absolute finest cardstock available today with a mirror surface.
Applications:Can be hand or machine cut cleanly. Compatible with l aser, offset, litho, screening, foil blocking, embossing, debossing. When using adhesive, werecommend using scor tape rather than liquid adhesive for a cleaner finish.
Great for scrapbooking, card making and craft projects !Can be hand or machine cut cleanly. When using adhesive, werecommend using scor tape rather than liquid adhesive for a cleaner finish.See ourPaper 101 Guide for additionalinformation on printing, die-cutting and more.
Interested in swatches of all of our papers? Order ourProfessional Swatch Deck . Hold the paper in your hands, feel it, mix and match colors.
Start creating today andMake Something Beautiful®
Disclaimer
To assist you in finding paper that best suits your application, we offer paper samples for color matching and testing with your specific application, and recommend testing prior to purchasing your paper. Printing: Cardstock Warehouse provides best practice recommendations for printing and other applications based on our in-house testing and specifications provided by the manufacturing paper mills. The majority of our papers are suitable for conventional printing and processing methods, however, when it comes to paper compatibility with printing and other applications, we cannot explicitly guarantee outcomes. This is due to the diverse range of consumer and professional printers and other processing equipment, each with its unique mechanical and technical characteristics. Additionally, different inks, adhesives and other processing techniques can yield varying results when used on different paper types. If you plan to utilize the services of a professional, we recommend consulting with them to address your specific needs. Color: While we take great care to accurately photograph product colors, device screens and monitors may not display true to color; photographs are meant to be used only as a guide. When color matters, we recommend purchasing samples prior to purchasing a larger quantity. Cardstock Warehouse Paper Co, Inc. assumes no liability for any incidental or consequential damages or losses that may occur, whether they are related to color, printing, other applications, or information provided, regardless of whether provided verbally, in writing, or on this website. Ultimately, the responsibility for the outcome lies solely with the consumer.