Free delivery on orders over $80 in Quebec and Ontario.
🇨🇦 Proudly Canadian.
Français
Corporate
Featured
Featured
New Products All Our Products Gift Sets Gift-card Greeting card Laurie Marois x Solem Leucan x Solem
✨ Waterproof Backpack✨ Towels Children's Towels Ponchos Oversized Beach Towels Chair Beachband Eyewear Cleaning Wipes All beach towels
Sports
Sports
Sports towels Golf Towels Small Multisport Towels All Sports
Kitchen
Kitchen
Dust cloths Dish Towels Polishing Cloths Kitchen Cloths Glass and Mirror Cloths Napkins All the kitchen
Beauty
Beauty
Bath Towels Hand Towels Hair Towels Headbands Gloves Makeup Remover Pads and Wipes All beauty
Buy + Save +
Buy + Save +
3 packs = 10% off
4 packs = 15% off
5 packs = a FREE pack of kitchen towels!
3 packs = $10 savings
4 packs = $15 savings
5 packs = $25 savings
6 packs = one pack of dish-towels FREE!
3 towels = $20 savings
4 towels = $30 savings
5 towels = $40 savings
6 towels = a FREE XL beach towel!
3 packs = 10% off
4 packs = 15% off
5 packs = one pack of make-up remover wipes FREE!
Solem Universe
Solem Universe
About us
Discover our 100% Canadian company
Our ambassadors
Collaborations in height and color
Our social
commitments
Sustainable development
Reward Program
Event
Corporate
New Products All Our Products Gift Sets Gift-card Greeting card Laurie Marois x Solem Leucan x Solem
✨ Waterproof Backpack✨ Towels Children's Towels Ponchos Oversized Beach Towels Chair Beachband Eyewear Cleaning Wipes All beach towels
Sports towels Golf Towels Small Multisport Towels All Sports
Dust cloths Dish Towels Polishing Cloths Kitchen Cloths Glass and Mirror Cloths Napkins All the kitchen
Bath Towels Hand Towels Hair Towels Headbands Gloves Makeup Remover Pads and Wipes All beauty
3 packs = 10% off
4 packs = 15% off
5 packs = a FREE pack of kitchen towels!
3 packs = $10 savings
4 packs = $15 savings
5 packs = $25 savings
6 packs = one pack of dish-towels FREE!
3 towels = $20 savings
4 towels = $30 savings
5 towels = $40 savings
6 towels = a FREE XL beach towel!
3 packs = 10% off
4 packs = 15% off
5 packs = one pack of make-up remover wipes FREE!
About us
Discover our 100% Canadian company
Our ambassadors
Collaborations in height and color
Our social
commitments
Sustainable development
Reward Program
Event












The reusable makeup remover wipe
21 cm x 19 cm
Out of stock
Many in stock
Many in stock
Many in stock
22,00 $
22,00 $
22,00 $
22,00 $
Achetez plus, économisez plus!
3 paquets = 10 % d'économie
4 paquets = 15 % d'économie
5 paquets = un paquet de lingettes démaquillantes gratuit!
Color
Pink/ Gray
Turquoise/ Gray
Grey/ Gray
Color Turquoise/ Gray
Ultra-absorbent
Designed in Quebec
soft
Eco-responsible
Quick-drying
Pick-up available, usually ready in 24 hours
220 Rue Turgeon
Hébertville QC G8N 1R7
Canada
1 581-844-0452
Shipped in XX TO XX hours.






1 / 6
L
Lucie Pilon
Doux et efficace
M
Mélanie masson
Tellement douce et nettoie super bien!
Service à la clientèle impeccable!
Merci Solem
D
Diane Decoste
Lingettes démaquillantes en microfibre
E
Elen Labbé
Wow
Mon fils et moi les adorons, en plus d’être super douce,elles font des petits miracles avec le visage !
i
isabelle sauve
J’adore!
Mais quelle belle découverte! C’est ma belle sœur qui m’a fait un cadeau pour que je l’essaie… L’essayer C’est l’adopter! C’est clair que je vais faire découvrir ce produit à d’autres personnes.
Complete Your Solem "Kit"
Microfiber Makeup Remover Pads (Pack of 2)
33 reviews
22,00 $
Headband - Simone Collection
22 reviews
15,00 $
Hair Towel - Simone Collection
60 reviews
50,00 $
Join the Solem community and share your story #YourDailyPartner
{{ tier_title }}
","reward_you_get_popup":"You get","reward_they_get_popup":"They get","reward_free_shipping_popup":"You get a free shipping discount They get a free shipping discount","reward_you_get_free_popup":"Free shipping","popup_item_tier_benefits_title":"Benefits","popup_item_tier_benefits_next_tier":"Next tier","popup_item_tier_benefits_list_of_tiers":"List of tiers","reward_tier_achieved_on":"Achieved on {{ month }} {{ day }}, {{ year }}","reward_tier_multiply":"Multiplier","reward_tier_multiply_points":"Earn {{ multiply_points }}x the petals","earn_tier_more_points":"Earned {{ more_points }}/{{ next_tier_points }} {{ points_name }}","reward_as_discount":"{{ amount }} discount","reward_as_points":"{{ amount }} {{ points_name }}","reward_as_gift_card":"{{ amount }} gift card","flexible_discount":"Discount","flexible_discount_price":"Discount price","available_discount_title":"You don't have any available rewards at the moment","reward_your_tier":"Your tier:","reward_next_tier":"Next tier:","reward_page_confirm":"Confirm exchanging","reward_redeem_cancel":"Cancel","reward_redeem_confirm":"Confirm","reward_page_earn_points":"Earn points","reward_not_enough_points":"Not enough points","select_rewards":"Select Reward","shop_now":"Shop now","reward_birthday":"Birthday","reward_enter_birthday":"Enter your birthday","reward_please_enter_birthday":"Please, enter your birthday","reward_enter_valid_birthday":"Enter valid birthday date","warning_title_for_reward":"Oops, it seems like the Loyalty & Rewards program is not available for this account.","warning_title_for_reward_requirelogin":"To participate in our Loyalty & Rewards program, you should verify your account first. Please {{ log_in_link }} to check your eligibility.","reward_notifications_earned_points":"You’ve earned {{ points_name }}!","reward_notifications_spend_your_points":"Spend your petals! You have {{ point_balance }} {{ points_name }}","reward_activity_reset_points":"Reset petals","reward_activity_reset_tiers":"Reset tiers","reward_activity_reset_tiers_description":"","reward_notifications_you_have":"You have
{{ points_name }}","reward_notifications_discount_check":"Use discount on the check out page","reward_notifications_add_discount_to_your_cart":"You have available discount. Add discount to your cart!","reward_discount_unavailable":"Discount unavailable","reward_program_emails":"Reward program emails","reward_title_earn_for_place_order":"Buy this item and earn {{ points_count }} {{ points_name }}","reward_title_earn_for_place_order_on_cart_or_checkout":"You are earning {{points_count}} {{points_name}} on this purchase","reward_save_btn":"Save","reward_delay_points_pending_status_rule":"Pending","referral_page_inviting_text":"By Inviting Your Friend","referral_page_your_benefit":"Your Benefit","referral_page_your_friends_benefit":"Your Friend's Benefit","referral_page_get":"Get","referral_page_no_reward_text":"praised by inviting your friends!","referral_link":"Referral link","copy_link":"Copy Link","referral_page_share_title":"Share on Social Media","referral_page_active_discounts":"Active discounts","claim_referral":"Claim","referral_notification_label":"Please enter your email to claim the gift","email_sent_successfully":"Your email has been sent successfully!","referral_page_share_link_not_log_in":"Log in to start sharing your link","reward_activities_order_refund":"Order refund","reward_activities_order_updated":"{{rule_title}} (Order updated)","activity_refund_earn_points":"-{{ points_count }} {{ points_name }}","activity_order_tier_lowered":"Tier lowered ({{ tier_title }})","order_refunded_activity_spend":"+{{ points_count }} {{ points_name }}","reward_activity_discount_refund":"Discount refund","reward_activity_gift_card_refund":"Gift card refund","refund_tier_activity_discount_refund":"Discount refund ({{ discount_code }})","referrer_guest_notify_message":"Sign up to get your discount","reward_sender_block_list_in_referral_program":"Sorry, this referral link is no longer active","referral_title_history":"History","referral_not_allowed_to_use_referral_program":"You are not allowed to use the referral program","referral_no_activity":"No activity","referral_history_customer_name":"Name","referral_history_customer_email":"Email","referral_history_status":"Status","referral_history_date":"Date","order_redeem_discount_name":"Discount redeem on the order ({{ name_order }})","discount_expire_in_day":"Discount expires in {{ days_count }} day","discount_expire_in_days":"Discount expires in {{ days_count }} days","activity_discount_expired_code":"Discount expired {{ code }}","activity_discount_expired":"Discount expired","reward_expired":"Expired","current_balance":"Current balance","birthday_gift_multiply_message":"Petals for every order placed on your Birthday will get multiplied by {{ multiply_points }}!","your_discount_code":"Your discount code:","verify_account_message":"To get a reward for creating an account, please verify your email address.","verify_account_email_is_send_massage":"Verification email sent,
please check your inbox.","verify_account_button":"Verify account","spending_card":"Spending rule card","minimum_purchase":"Requires minimum purchase {{ discount_amount }}","tier_info":"Tier info","completed_rule":"Completed rule","earning_rule":"Earning rule","reward_popup":"Reward popup","birthday_field":"Birthday field","birthday_success":"Your information has been saved. You will receive your reward on your Birthday","points_expires_on_date":"Expires on {{ day }} {{ month }} {{ year }}","points_program_title":"Petals program","points_program_description":"Join our Loyalty program and earn rewards for completing various actions on our store!","referral_program_title":"Referral Program","referral_program_description":"Invite your friends to our store and get rewarded for each referred friend.","referral_program_attencion":"You will receive a reward once your referral will make their first purchase with us.","referral_share_link_description":"Share your referral link with friends","vip_tiers_description":"Complete more actions to level up and get more exclusive benefits.","your_status":"Your status","next_status":"Next status","registration_description":"Join the Loyalty Program to enjoy exclusive rewards!","join_now":"Join now","have_account":"Already have an account?","reward_is_currently_unavailable":"This reward is currently unavailable, please contact site administrator. {{ reload_page_btn }}","reload_page_btn":"Reload the page","log_in_link":"log in","allcolibri_success_activation":"CONGRATS! YOU'VE JUST {{ campaignName }}","allcolibri_day_limit_request":"Activation limit is possible once a day","user_authentication_required":"User authentication required","allcolibri_is_disabled":"Allcolibri is disabled","allcolibri_post_request":"The request is expected to be sent type POST","not_enough_points_for_redeem":"Not enough points for redeem","reward_tab_title":"Rewards","points_name":"petals","point_name":"petal","reward_checkout_use":"Use","reward_checkout_select_discount":"Select discount","reward_checkout_discount_value":"Discount value","reward_for_past_action":"Reward for past action","referral_history_status_pending":"Pending","referral_history_status_approved":"Approved","referral_histrory_status_declined":"Declined","referral_welcome_title":"You are welcome to join our loyalty program!","referral_sign_up":"Sign up to receive your reward!","shop_it":"SHOP IT","back":"Back","click_for_sound_on":"Click for sound on","click_for_sound_off":"Click for sound off","view_on_instagram":"View on Instagram","view_on_tiktok":"View on Tiktok","instagram_gallery":"Instagram Gallery"}
element by its name attribute "checkout" var divElementAppend = document.querySelector( '[name="checkout"][form*="Drawer"], [name="checkout"][form*="drawer"],.picky-widget .picky-bundle-add-to-cart-button' ); if (Shopify.shop == 'les-boites-shop-moi-ca.myshopify.com') { divElementAppend = document.querySelector('#cart-drawer [action="/cart"] button :last-child')?.parentElement?.parentElement; document.querySelector(".menu__item.menu__item--icon .cart__toggle").addEventListener('click', function (e) { setTimeout(() => { refresh(getStoreFrontData, false); }, 1000); }); } else { // console.log("shop name", Shopify.shop); divElementAppend = divElementAppend?.parentElement?.parentElement; } if (divElementAppend == null || divElementAppend == 'undefined') { divElementAppend = document.querySelector(`.${responseData.data.data.drawer_parent_class} .${responseData.data.data.drawer_append_class}`); const element = document.querySelector(`${responseData.data.data.drawer_click_class}`); if (element) { console.log("element found"); element.addEventListener('click', function (e) { console.log("element clicked"); setTimeout(() => { refresh(getStoreFrontData, false); }, 1000); }); } } if (responseData.data.data.hide_cart_drawr_block == 1) { if (divElementAppend && !document.querySelector('#cartTogglePickPackDrawer')) { // Append the new HTML content using insertAdjacentHTML divElementAppend.insertAdjacentHTML('beforeend', contentToAppend); var modal3 = document.getElementById("Modal3"); document.querySelectorAll('.model3Btn').forEach((value) => { value.onclick = function (e) { if (!e.target.checked) { modal3.style.display = "flex"; // model3btn toggler pe class lgi hai? check } } }); var span5 = document.getElementsByClassName("close5")[0]; var span6 = document.getElementsByClassName("close6")[0]; if (span5) { span5.onclick = function () { if (modal3) { modal3.style.display = "none"; } } } if (span6) { span6.onclick = function () { if (modal3) { modal3.style.display = "none"; } } } document.querySelectorAll('.cartDrawrStripWrapperMain').forEach((element) => { element.style.display = 'block'; var pageLanguage = document.documentElement.lang || navigator.language || navigator.userLanguage; var lang = pageLanguage.substring(0, 2); if (window.location.href.includes('mariefil')) { lang = 'fr'; console.log(`[PickPack] Language detected: ${lang} (Store: Mariefil)`); } else { console.log(`[PickPack] Language detected: ${lang}`); } if (lang == 'fr') { document.querySelectorAll('.stipsFrench').forEach((element) => { element.style.display = 'block'; }); document.querySelectorAll('.stipsEnglish').forEach((element) => { element.style.display = 'none'; }); } if (lang == 'en') { document.querySelectorAll('.stipsFrench').forEach((element) => { element.style.display = 'none'; }); document.querySelectorAll('.stipsEnglish').forEach((element) => { element.style.display = 'block'; }); } }); // console.log('appended', contentToAppend); } else { // console.log('No element found with class'); } } } responseData = await fetchData(`${CART_DATA_BASE}/api/get_cart_data_cloud`); console.log(responseData); if (responseData.success && responseData.data.success) { getStoreFrontData = responseData; if (window.location.href.includes('cart')) { if (responseData.data.data.auto_add_cart == 1) { var pageLanguage = document.documentElement.lang || navigator.language || navigator.userLanguage; var lang = pageLanguage.substring(0, 2); let consent_message = responseData.data.data.auto_add_consent_message; if (lang == 'fr') { consent_message = responseData.data.data.auto_add_consent_message_fr; } consent_message = consent_message.replace("%SECTION%", lang === 'fr' ? "Procéder au paiement" : "Proceed to Checkout"); consent_message = `${consent_message}`; let consent_button = responseData.data.data.continue_shopping_text || "Continue shopping without PickPack" if (lang == 'fr') { consent_button = responseData.data.data.continue_shopping_text_fr || "Continuer vos achats sans PickPack"; } consent_button = `
${consent_button}
`; tmp_responseData = await getCart(); await fetch(`${CLOUD_BASE}/api/enable_auto_add`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${shopify_access_token}`, }, body: JSON.stringify({token: tmp_responseData.token.split('?')[0]}), }); document.addEventListener('click', async function (e) { if (e.target && e.target.id === 'checkoutWithoutPickPack') { e.preventDefault(); // Empêche la redirection immédiate let cartData = await getCart(); // Récupère les produits du panier let updates = {}; // Identifie les produits Pick Pack à supprimer cartData.items.forEach((item) => { if (item.vendor === 'Pick Pack') { updates[item.id] = 0; // Supprime le produit du panier } }); if (Object.keys(updates).length > 0) { await updateCart(updates); // Met à jour le panier pour supprimer les Pick Pack } await fetch(`${CLOUD_BASE}/api/disable_auto_add`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${shopify_access_token}`, }, body: JSON.stringify({token: tmp_responseData.token.split('?')[0]}), }); window.location.href = "/checkout"; } }); if (responseData.data.data.consent_message_class) { const selector = `.${responseData.data.data.consent_message_class.trim()}`; const targetElement = document.querySelector(selector); if (targetElement) { targetElement.insertAdjacentHTML('afterend', consent_message); } else { console.warn(`Aucun élément trouvé avec la classe : ${selector}`); } } else { if (document .querySelector('[name="checkout"][form="cart"], [name="checkout"][form="Cart"],[form="cart"][name="checkout"],.ajax-cart__button-submit')) { document .querySelector('[name="checkout"][form="cart"], [name="checkout"][form="Cart"] ,[form="cart"][name="checkout"],.ajax-cart__button-submit') .parentElement.insertAdjacentHTML('afterend', consent_message); } else { var elements = document .querySelectorAll('[name="checkout"]'); elements[elements.length - 1].insertAdjacentHTML('afterend', consent_message); } } if (responseData.data.data.continue_shopping_text_class) { if (document.querySelector(`.${responseData.data.data.continue_shopping_text_class}`)) { document.querySelector(`.${responseData.data.data.continue_shopping_text_class}`).insertAdjacentHTML('afterend', consent_button); } } else { if (document .querySelector('[name="checkout"][form="cart"], [name="checkout"][form="Cart"],[form="cart"][name="checkout"],.ajax-cart__button-submit')) { document .querySelector('[name="checkout"][form="cart"], [name="checkout"][form="Cart"] ,[form="cart"][name="checkout"],.ajax-cart__button-submit') .parentElement.insertAdjacentHTML('afterend', consent_button); } else { var elements = document .querySelectorAll('[name="checkout"]'); elements[elements.length - 1].insertAdjacentHTML('afterend', consent_button); } } } if (responseData.data.data.hide_cart_page_block == 1) { if (!document.querySelector('#cartToggleMovo')) { if (responseData.data.data.cart_page_append_class != null) { if (document.querySelector(`.${responseData.data.data.cart_page_append_class}`)) { document.querySelector(`.${responseData.data.data.cart_page_append_class}`).insertAdjacentHTML('afterend', '
'); } } else { if (document .querySelector('[name="checkout"][form="cart"], [name="checkout"][form="Cart"],[form="cart"][name="checkout"],.ajax-cart__button-submit')) { document .querySelector('[name="checkout"][form="cart"], [name="checkout"][form="Cart"] ,[form="cart"][name="checkout"],.ajax-cart__button-submit') .parentElement.insertAdjacentHTML('beforebegin', '
'); console.log("cart append if"); } else { var elements = document .querySelectorAll('[name="checkout"]'); if (Shopify.shop == 'anotherlandn.myshopify.com') { elements[0].insertAdjacentHTML('beforebegin', '
'); } else { elements[elements.length - 1].insertAdjacentHTML('beforebegin', '
'); console.log("cart append", Shopify.shop); } } } var modal3 = document.getElementById("Modal3"); document.querySelectorAll('.model3Btn').forEach((value) => { value.onclick = function (e) { if (!e.target.checked) { modal3.style.display = "flex"; // model3btn toggler pe class lgi hai? check } } }); var span5 = document.getElementsByClassName("close5")[0]; var span6 = document.getElementsByClassName("close6")[0]; if (span5) { span5.onclick = function () { if (modal3) { modal3.style.display = "none"; } } } if (span6) { span6.onclick = function () { if (modal3) { modal3.style.display = "none"; } } } } } if (responseData.data.data.hide_floating_cart_page_block == 1) { /*$('#append_cart').append(responseData.data.data.cart);*/ var appendCartDiv = document.getElementById('append_cart'); appendCartDiv.innerHTML += responseData.data.data.cart; /*document.querySelector('#append_cart').innerHTML(responseData.data.data.cart);*/ var modal3 = document.getElementById("Modal3"); document.querySelectorAll('.model3Btn').forEach((value) => { value.onclick = function (e) { if (!e.target.checked) { modal3.style.display = "flex"; // model3btn toggler pe class lgi hai? check } } }); } } if (window.location.href.includes('/products/')) { if (responseData.data.data.auto_add_cart == 1) { var pageLanguage = document.documentElement.lang || navigator.language || navigator.userLanguage; var lang = pageLanguage.substring(0, 2); let consent_message = responseData.data.data.auto_add_consent_message; if (lang == 'fr') { consent_message = responseData.data.data.auto_add_consent_message_fr; } consent_message = consent_message.replace("%SECTION%", lang === 'fr' ? "Procéder au paiement" : "Proceed to Checkout"); consent_message = `${consent_message}`; let consent_button = responseData.data.data.continue_shopping_text || "Continue shopping without PickPack" if (lang == 'fr') { consent_button = responseData.data.data.continue_shopping_text_fr || "Continuer vos achats sans PickPack"; } consent_button = `
${consent_button}
`; tmp_responseData = await getCart(); await fetch(`${CLOUD_BASE}/api/enable_auto_add`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${shopify_access_token}`, }, body: JSON.stringify({token: tmp_responseData.token.split('?')[0]}), }); document.addEventListener('click', async function (e) { if (e.target && e.target.id === 'checkoutWithoutPickPack') { e.preventDefault(); // Empêche la redirection immédiate // Récupère le panier actuel let cartData = await getCart(); // Identifiez l'élément qui contient l'ID du produit courant. let currentProductId = document.querySelector('input[name="id"]').value; let updates = {}; cartData.items.forEach((item) => { if (item.id != currentProductId) { updates[item.id] = 0; } }); if (Object.keys(updates).length > 0) { await updateCart(updates); } // Après suppression, on re-vérifie le panier pour s'assurer que le produit courant y figure let updatedCart = await getCart(); const isProductInCart = updatedCart.items.some(item => item.id.toString() === currentProductId); // Si le produit courant n'est pas dans le panier, on l'ajoute if (!isProductInCart) { await fetch('/cart/add.js', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({id: currentProductId, quantity: 1}) }); } // Désactive l'ajout automatique s'il était activé await fetch(`${CLOUD_BASE}/api/disable_auto_add`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${shopify_access_token}`, }, body: JSON.stringify({token: tmp_responseData.token.split('?')[0]}), }); window.location.href = "/checkout"; } }); var consent_message_show = false; if (responseData.data.data.consent_message_class) { const selector = `.${responseData.data.data.consent_message_class.trim()}`; const targetElement = document.querySelector(selector); if (targetElement) { targetElement.insertAdjacentHTML('afterend', consent_message); consent_message_show = true; } else { console.warn(`Aucun élément trouvé avec la classe : ${selector}`); } } if (!consent_message_show) { if (document.querySelector('.shopify-payment-button__button')) { document.querySelector('.shopify-payment-button__button').insertAdjacentHTML('afterend', consent_message); } else { document.querySelector("[name='add']").insertAdjacentHTML('afterend', consent_message); } } var consent_button_show = false; if (responseData.data.data.continue_shopping_text_class) { if (document.querySelector(`.${responseData.data.data.continue_shopping_text_class}`)) { document.querySelector(`.${responseData.data.data.continue_shopping_text_class}`).insertAdjacentHTML('afterend', consent_button); consent_button_show = true; } } if (!consent_button_show) { if (document.querySelector('.shopify-payment-button__button')) { document.querySelector('.shopify-payment-button__button').insertAdjacentHTML('afterend', consent_button); } else { document.querySelector("[name='add']").insertAdjacentHTML('afterend', consent_button); } } } // if (responseData.data.data.auto_add_product == 1) { // // if (responseData.data.data.product_page_append_class != null) { // if (document.querySelector(`.${responseData.data.data.product_page_append_class}`)) { // document.querySelector(`.${responseData.data.data.product_page_append_class}`).insertAdjacentHTML('afterend', consent_message); // } // } else { // if (document.querySelector('.shopify-payment-button__button')) { // document.querySelector('.shopify-payment-button__button').insertAdjacentHTML('afterend', consent_message); // } else { // document.querySelector("[name='add']").insertAdjacentHTML('afterend', consent_message); // } // } // } if (responseData.data.data.hide_product_page_block == 1) { if (responseData.data.data.product_page_append_class != null) { if (document.querySelector(`.${responseData.data.data.product_page_append_class}`)) { document.querySelector(`.${responseData.data.data.product_page_append_class}`).insertAdjacentHTML('afterend', '
'); } } else { if (document.querySelector('.shopify-payment-button__button')) { document.querySelector('.shopify-payment-button__button').insertAdjacentHTML('afterend', '
'); } else { document.querySelector("[name='add']").insertAdjacentHTML('afterend', '
'); } } var modal3 = document.getElementById("Modal3"); document.querySelectorAll('.model3Btn').forEach((value) => { value.onclick = function (e) { if (!e.target.checked) { modal3.style.display = "flex"; // model3btn toggler pe class lgi hai? check } } }); var span5 = document.getElementsByClassName("close5")[0]; var span6 = document.getElementsByClassName("close6")[0]; if (span5) { span5.onclick = function () { if (modal3) { modal3.style.display = "none"; } } } if (span6) { span6.onclick = function () { if (modal3) { modal3.style.display = "none"; } } } } if (responseData.data.data.hide_floating_product_page_block == 1) { /*$('#append_cart').append(responseData.data.data.cart);*/ /*document.querySelector("'#append_cart'").append(responseData.data.data.cart);*/ var appendCartDiv = document.getElementById('append_cart'); appendCartDiv.innerHTML += responseData.data.data.cart; } } shopify_access_token = responseData.data2; cart_default = responseData.data.data.cart_default; var pageLanguage = document.documentElement.lang || navigator.language || navigator.userLanguage; if (window.location.href.includes('mariefil')) { pageLanguage = 'fr'; console.log("marifils store", pageLanguage); } updateModalContent(pageLanguage.substring(0, 2)); document.querySelectorAll('.topStrip').forEach((element) => { element.style.display = 'grid'; }); document.querySelectorAll('.cartDrawrStrip').forEach((element) => { element.style.display = 'flex'; }); document.querySelectorAll('.footerStrip').forEach((element) => { element.style.display = 'flex'; }); document.querySelectorAll('.cartDrawrStripWrapperMain, .cartDrawrStripWrapper_div').forEach((element) => { element.style.display = 'block'; var pageLanguage = document.documentElement.lang || navigator.language || navigator.userLanguage; var lang = pageLanguage.substring(0, 2); if (window.location.href.includes('mariefil')) { lang = 'fr'; console.log("marifils store 2", lang); } if (lang == 'fr') { console.log('french language'); document.querySelectorAll('.stipsFrench').forEach((element) => { element.style.display = 'block'; }); document.querySelectorAll('.stipsEnglish').forEach((element) => { element.style.display = 'none'; }); } if (lang == 'en') { console.log('englis language'); document.querySelectorAll('.stipsFrench').forEach((element) => { element.style.display = 'none'; }); document.querySelectorAll('.stipsEnglish').forEach((element) => { element.style.display = 'block'; }); } }); setTimeout(function () { if (!getCookieTwo('hide_popup') && eligible && !cart_default && display_popup) { document.querySelector('#Modal2').style.display = 'flex'; } if (document.querySelector('#confirmAddPickPack')) { document.querySelector('#confirmAddPickPack').addEventListener('click', async function (e) { e.preventDefault(); document.getElementById('confirmAddPickPack').disabled = true; document.getElementById('continueWithoutPickPack').disabled = true; await getData('true', true); document.getElementById('confirmAddPickPack').disabled = false; document.getElementById('continueWithoutPickPack').disabled = false; }); } if (document.querySelector('#continueWithoutPickPack')) { document.querySelector('#continueWithoutPickPack').addEventListener('click', function (e) { let date = new Date(); // Set the expiration time to 5 hours from now date.setTime(date.getTime() + 5 * 60 * 60 * 1000); document.cookie = 'hide_popup=true; expires=' + date.toUTCString() + '; path=/'; e.preventDefault(); if (checkout_click) { window.location.href = '/checkout'; } document.querySelector('#Modal2').style.display = 'none'; }); } }, 3000); document .querySelectorAll('#floatingToggle,#cartToggleMovo, #cartTogglePickPackDrawer') .forEach(function (element) { element.addEventListener('change', async function (e) { console.log('changed'); e.preventDefault(); if (e.target.checked == true) { //document.cookie = 'default_check=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; await getData('true'); } else { } }); }); if (document.querySelector('#cartTogglePickPackDrawer') && document.querySelector('#cartToggleMovo')) { document.querySelector('#cartTogglePickPackDrawer').addEventListener('change', function () { if (this.checked) { document.querySelector('#cartToggleMovo').checked = true; } else { document.querySelector('#cartToggleMovo').checked = false; } }); document.querySelector('#cartToggleMovo').addEventListener('change', function () { if (this.checked) { document.querySelector('#cartTogglePickPackDrawer').checked = true; } else { document.querySelector('#cartTogglePickPackDrawer').checked = false; } }); if (document.querySelector('#floatingToggle')) { document.querySelector('#floatingToggle').addEventListener('change', function () { if (this.checked) { document.querySelector('#floatingToggle').checked = true; } else { document.querySelector('#floatingToggle').checked = false; } }); } } const {fetch: originalFetch} = window; window.fetch = async (...args) => { let [resource, config] = args; const response = await originalFetch(resource, config); // Check if resource is a string before using includes const url = typeof resource === 'string' ? resource : resource.url; if (url && typeof url === 'string') { if (url.includes('/cart/change') || url.includes('/cart/change.js')) { setTimeout(async () => { console.log("[PickPack] Cart update detected, refreshing storefront data..."); let currentCart = await getCart(); let pickPackExists = currentCart.items.some(item => item.vendor === 'Pick Pack'); if (!pickPackExists) { // Si Pick Pack a été retiré, mettre tous les toggles à off if (document.querySelector('#cartTogglePickPackDrawer')) { document.querySelector('#cartTogglePickPackDrawer').checked = false; } if (document.querySelector('#cartToggleMovo')) { document.querySelector('#cartToggleMovo').checked = false; } if (document.querySelector('#floatingToggle')) { document.querySelector('#floatingToggle').checked = false; } } refresh(getStoreFrontData); }, 500); } if (url.includes('/cart/add') || url.includes('/cart/add.js')) { console.log("[PickPack] Product added, refreshing storefront data..."); setTimeout(() => { console.log("refresh 012"); refresh(getStoreFrontData); }, 500); } } return response; }; const originalOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function (method, url, async, user, pass) { originalOpen.call(this, method, url, async, user, pass); const originalSend = this.send; this.send = function (data) { const xhr = this; xhr.addEventListener('load', async function () { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status >= 200 && xhr.status < 300) { console.log(`[PickPack] HTTP Request detected: ${url}`); if (url.includes('/cart/add') || url.includes('/cart/add.js')) { refresh(getStoreFrontData); } if (url.includes('/cart/change') || url.includes('/cart/change.js')) { setTimeout(async () => { let currentCart = await getCart(); let pickPackExists = currentCart.items.some(item => item.vendor === 'Pick Pack'); if (!pickPackExists) { // Si Pick Pack a été retiré, mettre tous les toggles à off if (document.querySelector('#cartTogglePickPackDrawer')) { document.querySelector('#cartTogglePickPackDrawer').checked = false; } if (document.querySelector('#cartToggleMovo')) { document.querySelector('#cartToggleMovo').checked = false; } if (document.querySelector('#floatingToggle')) { document.querySelector('#floatingToggle').checked = false; } } refresh(getStoreFrontData); }, 500); } if (url.includes('/cart/update') || url.includes('/cart/update.js')) { const urlObj = new URL(url, window.location.origin); if (!urlObj.searchParams.has('no_refresh')) { console.log('refreshing'); setTimeout(async () => { let currentCart = await getCart(); let pickPackExists = currentCart.items.some(item => item.vendor === 'Pick Pack'); if (!pickPackExists) { // Si Pick Pack a été retiré, mettre tous les toggles à off if (document.querySelector('#cartTogglePickPackDrawer')) { document.querySelector('#cartTogglePickPackDrawer').checked = false; } if (document.querySelector('#cartToggleMovo')) { document.querySelector('#cartToggleMovo').checked = false; } if (document.querySelector('#floatingToggle')) { document.querySelector('#floatingToggle').checked = false; } } refresh(getStoreFrontData); }, 500); } } } }); originalSend.call(xhr, data); }; }; getData('first_run'); document.getElementById('enable_again')?.addEventListener('click', function (e) { e.preventDefault(); if (document.querySelector('#cartToggleMovo')) { document.querySelector('#cartToggleMovo').checked = true; } if (document.querySelector('#floatingToggle')) { document.querySelector('#floatingToggle').checked = true; } if (document.querySelector('#cartTogglePickPackDrawer')) { document.querySelector('#cartTogglePickPackDrawer').checked = true; } }); document.getElementById('disable_again')?.addEventListener('click', function (e) { e.preventDefault(); if (document.querySelector('#cartToggleMovo')) { document.querySelector('#cartToggleMovo').checked = false; } if (document.querySelector('#floatingToggle')) { document.querySelector('#floatingToggle').checked = false; } if (document.querySelector('#cartTogglePickPackDrawer')) { document.querySelector('#cartTogglePickPackDrawer').checked = false; } getData('false'); setTimeout(() => { window.location.href = window.location.pathname; }, 500); }); var span5 = document.getElementsByClassName("close5")[0]; var span6 = document.getElementsByClassName("close6")[0]; if (span5) { span5.onclick = function () { if (modal3) { modal3.style.display = "none"; } } } if (span6) { span6.onclick = function () { if (modal3) { modal3.style.display = "none"; } } } /* waitForElement( '#enable_again', function () { console.log('ELEMENT LOADED'); }, 10000 ); */ } } //main(); var ip_response = fetch('https://ipinfo.io/json') .then((ip_response) => ip_response.json()) .then((ip_data) => { if (ip_data && (ip_data.country == 'CA')) { main(); } }); });