Back to Compare
PR Lotion® Buy 4, Get 1 Free. $175 Value

Momentous

PR Lotion® Buy 4, Get 1 Free. $175 Value 50 Servings

Flavour

Momentous

Buy

Price History

Loading...

Description

But 4, get 1 free for a limited time. Free $35 Value. Free Shipping. PR Lotion is designed to maximize your training and recovery by unlocking bicarb, a natural electrolyte that improves muscle function and helps you combat fatigue during hard workouts.

Ingredients

Active Ingredient Sodium Bicarbonate – a naturally occurring electrolyte that helps buffer acidity in muscles to support performance and recovery Other Ingredients: Poloxamer 407, Water (Aqua), Isopropyl Palmitate, Lecithin, Cetyl Alcohol, Propylene Glycol, Alcohol Denat., Benzyl Alcohol, Sodium Hydroxide, Polyglyceryl-4 Laurate, Sodium Lauryl Sulfate, Menthol, Sorbic Acid, Fragrance (Parfum) For external use only. Onset Time & Expected Results Apply to working muscles 30 minutes before training or competition, especially for high-intensity sessions, races, or heavy lifts. Begins working in ~30 minutes as sodium bicarbonate is absorbed through the skin. Effects last 5–6 hours. Expected Results Push harder for longer before muscle burn slows you down Maintain higher power output during intense efforts Reduce post-workout soreness and recover faster Improve consistency by stacking stronger training days over time Clinical Research & 3rd Party Test Results There are 3 credible studies related to this product: Beneficial effects of oral and topical sodium bicarbonate during a battery of team sportspecific exercise tests in recreationally trained male athletes Sodium bicarbonate intake improves highintensity intermittent exercise performance in trained young men Transcutaneous delivery of sodium bicarbonate increases intramuscular pH Build Your Stack {const lazyImages = window.lazyImages = window.lazyImages || [] const el = document.querySelector("#image9503") if(el && window.lazyImageFn) window.lazyImageFn(el); else if(el) lazyImages.push(el) } 4.8 Rated 4.8 out of 5 stars 201 {"averageRating":"4.8","reviewCount":201} Fuel Slow-burning energy with no spike or crash 3:1 carb ratio lowers risk of GI distress Essential electrolytes hydrate + combat cramping £22.50 £30.00 Add to Bag Fuel Flavor: Passion Orange GuavaMangoStrawberry LimeCherry Berry Subscribe & Save 25% £ 22.50 £ 30.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 1 month Delivery every 2 months Delivery every 3 months One-time Purchase £ 30.00 £ 30.00 £ 30.00 £ 30.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } Fuel Flavor: Passion Orange GuavaMangoStrawberry LimeCherry Berry Subscribe & Save 25% £ 22.50 £ 30.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 1 month Delivery every 2 months Delivery every 3 months One-time Purchase £ 30.00 £ 30.00 £ 30.00 £ 30.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } Best Seller {const lazyImages = window.lazyImages = window.lazyImages || [] const el = document.querySelector("#image2672") if(el && window.lazyImageFn) window.lazyImageFn(el); else if(el) lazyImages.push(el) } 4.7 Rated 4.7 out of 5 stars 3,092 {"averageRating":"4.7","reviewCount":3092} Whey Protein Isolate Supports lean muscle mass and recovery* High in leucine to build and repair muscle faster* No gums, fillers, or artificial sweeteners £34.50 £46.00 Add to Bag Whey Protein Isolate Flavor: ChocolateVanillaUnflavoredStrawberry Subscribe & Save 25% £ 34.50 £ 46.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 1 month Delivery every 2 months Delivery every 3 months One-time Purchase £ 46.00 £ 46.00 £ 46.00 £ 46.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } Whey Protein Isolate Flavor: ChocolateVanillaUnflavoredStrawberry Subscribe & Save 25% £ 34.50 £ 46.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 1 month Delivery every 2 months Delivery every 3 months One-time Purchase £ 46.00 £ 46.00 £ 46.00 £ 46.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } Upgraded Formula {const lazyImages = window.lazyImages = window.lazyImages || [] const el = document.querySelector("#image6070") if(el && window.lazyImageFn) window.lazyImageFn(el); else if(el) lazyImages.push(el) } 4.9 Rated 4.9 out of 5 stars 3,664 {"averageRating":"4.9","reviewCount":3664} Creatine - 90 Servings New Signature Spec creatine standard Ultrafine powder for exceptional mixability Unrivaled 6-stage testing & certification £24.75 £33.00 Add to Bag Creatine - 90 Servings Subscribe & Save 25% £ 24.75 £ 33.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 3 months Delivery every 2 months Delivery every 1 month One-time Purchase £ 33.00 £ 33.00 £ 33.00 £ 33.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } Creatine - 90 Servings Subscribe & Save 25% £ 24.75 £ 33.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 3 months Delivery every 2 months Delivery every 1 month One-time Purchase £ 33.00 £ 33.00 £ 33.00 £ 33.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } {const lazyImages = window.lazyImages = window.lazyImages || [] const el = document.querySelector("#image7201") if(el && window.lazyImageFn) window.lazyImageFn(el); else if(el) lazyImages.push(el) } 4.8 Rated 4.8 out of 5 stars 260 {"averageRating":"4.8","reviewCount":260} Recovery Supports muscle repair and recovery Replenishes glycogen and energy Helps reduce muscle soreness £31.50 £42.00 Add to Bag Recovery Flavor: ChocolateVanilla Subscribe & Save 25% £ 31.50 £ 42.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 1 month Delivery every 2 months Delivery every 3 months One-time Purchase £ 42.00 £ 42.00 £ 42.00 £ 42.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } Recovery Flavor: ChocolateVanilla Subscribe & Save 25% £ 31.50 £ 42.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 1 month Delivery every 2 months Delivery every 3 months One-time Purchase £ 42.00 £ 42.00 £ 42.00 £ 42.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } {const lazyImages = window.lazyImages = window.lazyImages || [] const el = document.querySelector("#image8484") if(el && window.lazyImageFn) window.lazyImageFn(el); else if(el) lazyImages.push(el) } 4.8 Rated 4.8 out of 5 stars 855 {"averageRating":"4.8","reviewCount":855} 100% Plant Protein Powder 20g of protein with a full amino acid profile Smooth texture. No artificial ingredients, fillers, or gums NSF Certified for Sport®. Trusted by pro athletes £29.25 £39.00 Add to Bag 100% Plant Protein Powder Flavor: ChocolateVanillaVanilla Spice Subscribe & Save 25% £ 29.25 £ 39.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 1 month Delivery every 2 months Delivery every 3 months One-time Purchase £ 39.00 £ 39.00 £ 39.00 £ 39.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } 100% Plant Protein Powder Flavor: ChocolateVanillaVanilla Spice Subscribe & Save 25% £ 29.25 £ 39.00 Out of Stock Protection 10% off future deliveries Cancel or reschedule anytime Experience long-term results Delivery every 1 month Delivery every 2 months Delivery every 3 months One-time Purchase £ 39.00 £ 39.00 £ 39.00 £ 39.00 Sorry, We are currently out of stock! Estimated to be back in stock: Add to Bag Notify me when available View Full Details .first-hidden { display: none; } .product-carousel .swiper-slide { flex-shrink: 0; } @media (min-width: 768px) { .product-carousel .swiper-wrapper { display: flex; gap: 1rem; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; } .product-carousel .swiper-wrapper::-webkit-scrollbar { display: none; } } #shopify-section-template--20282423279799__horizontal_line_hMFxBL { padding-top: 0px; padding-bottom: 10px; } @media (max-width: 1023px) { #shopify-section-template--20282423279799__horizontal_line_hMFxBL { padding-top: 0px; padding-bottom: 10px; } } Frequently Asked Questions What is PR Lotion® used for? PR Lotion® is a topical product designed to support performance during high-intensity or endurance training. It is commonly used by athletes as part of a pre-training or pre-competition routine. How does PR Lotion® work? Momentous PR Lotion® contains sodium bicarbonate and is applied topically to the skin. It is designed to support performance by helping buffer acidity in working muscles during high-intensity exercise. Is PR Lotion® the same as taking baking soda? No. While both involve sodium bicarbonate, Momentous PR Lotion® is a topical product applied to the skin, whereas baking soda is ingested. PR Lotion® is designed to provide a different delivery method without requiring oral consumption. Does PR Lotion® need to be ingested? No. PR Lotion® is a topical product and is applied directly to the skin. It is not ingested. Who should use PR Lotion®? PR Lotion® is commonly used by endurance athletes and individuals performing high-intensity training. It is often included in pre-competition routines to support performance during demanding efforts. When should I apply PR Lotion®? Momentous PR Lotion® is a topical performance product designed to be applied before training or competition. It is typically used as part of a pre-workout routine and should be applied at least 30 minutes before water-based activities. Where do I apply PR Lotion® and how much? Apply PR Lotion® to the primary muscle groups you plan to use during training or competition. For lower-body activities, this typically includes the legs, glutes, and lower back. For upper-body activities, apply to the arms, shoulders, chest, and back. Apply a generous, even layer and allow time for absorption. How long after application does it remain effective? Once absorbed, Momentous PR Lotion® is designed to support performance during extended training or competition sessions. Effects may last several hours, although timing and individual response can vary. Is it better to put PR Lotion® on post-training or pre-training? Momentous PR Lotion® is intended for pre-training or pre-competition use. It is most commonly applied before activity as part of a performance-focused routine. Can I use sunscreen with PR Lotion®? Yes. Apply PR Lotion® first and allow it to absorb for approximately 20 minutes. After absorption, other products such as sunscreen, warming creams, or anti-chafing products can be applied on top. Is PR Lotion® safe for professional athletes? Yes. PR Lotion® is clean sport compliant and tested by both Informed-Sport and Informed-Choice. Each batch is independently screened for banned substances, making it suitable for use by professional and competitive athletes. Is PR Lotion 3rd party tested? Yes. Pr Lotion is Informed Sport Certified, meaning every batch is independently tested to confirm label accuracy, purity, and the absence of banned substances. 1 Bottle Value Pack 4.6 Rated 4.6 out of 5 stars Based on 1,208 reviews 5 Rated out of 5 stars 941 Total 5 star reviews: 941 4 Rated out of 5 stars 124 Total 4 star reviews: 124 3 Rated out of 5 stars 60 Total 3 star reviews: 60 2 Rated out of 5 stars 39 Total 2 star reviews: 39 1 Rated out of 5 stars 44 Total 1 star reviews: 44 88%would recommend these products Reviews Summary Generated by AI from 100 most recent customer reviews Last updated 4 months ago Customers say this lotion helps their legs feel better during workouts and reduces soreness afterward. Many athletes use it before running, cycling, or weightlifting sessions and report less muscle fatigue during exercise. Users frequently mention improved recovery, with reduced stiffness and aches the next day. The lotion is described as easy to apply, though some note it can be difficult to rub in completely and may leave a residue on skin or clothing. A few customers question its effectiveness, with some experiencing no noticeable difference. Most find it works well for both pre-workout preparation and post-exercise recovery. Read More Customers Talked About Recovery Performance Application Workouts Results Filters Write a Review (Opens in a new window) 1,208 reviews Sort Most RecentPhotos & VideosMost HelpfulHighest RatingOldestLowest RatingLeast Helpful S Spencer 4 minutes ago Reviewing PR Lotion® Bottle Rated 5 out of 5 stars 5 Stars The lotion is kinda thick making it hard to apply to skin without diluting. I love results that it renders. Read MoreRead more about this review Was this helpful?Yes, this review from Spencer was helpful. 0 people voted yesNo, this review from Spencer was not helpful. 0 people voted no CS Charity S. Verified Buyer Product Standouts Ease of Use, Product Quality 1 month ago Product Standouts Ease of Use, Product Quality Reviewing PR Lotion® Bottle Rated 5 out of 5 stars This stuff is magic! PR lotion has saved me from several “too sore” days. I’m able to train more comfortably & consistently now. Definitely an “older athletes” best friend Read MoreRead more about this review Was this helpful?Yes, this review from Charity S. was helpful. 0 people voted yesNo, this review from Charity S. was not helpful. 0 people voted no R Robert Verified Buyer 5 months ago Reviewing PR Lotion® Bottle Rated 5 out of 5 stars Critical to recovery and increased frequency PR lotion has been instrumental in my ability to increase frequency and intensity of my workouts. Between using it and the creatine mono hydrate I’ve found a real groove that’s producing results. Read MoreRead more about this review Was this helpful?Yes, this review from Robert was helpful. 0 people voted yesNo, this review from Robert was not helpful. 0 people voted no S Shawn Verified Buyer 5 months ago Reviewing PR Lotion® Bottle Rated 4 out of 5 stars Not Bad After using it for a few weeks for both running and gym use I find the product does aid in slightly less soreness during the activity. The product sits on the surface layer of the skin so it doesn't absorb like normal lotion and can leave an ashy appearance. I only wish there was more product as the bottle is about half empty after less than 10 uses. Read MoreRead more about this review Was this helpful?Yes, this review from Shawn was helpful. 0 people voted yesNo, this review from Shawn was not helpful. 0 people voted no C Christine Verified Buyer 5 months ago Reviewing PR Lotion® Bottle Rated 5 out of 5 stars Love it Love it Read MoreRead more about this review Was this helpful?Yes, this review from Christine was helpful. 0 people voted yesNo, this review from Christine was not helpful. 0 people voted no Loading... Loading... Show More {"areReviewsGrouped":true,"chatAssistant":{"reviewCount":1208},"media":[],"productAttributes":[],"questionCount":0,"reviewAggregate":{"dateUpdated":"2026-07-25T19:04:04.140Z","mediaCount":0,"productAttributeCount":[{"title":"Product Standouts","type":"multi-value","options":[{"title":"Ease of Use","count":1},{"title":"Product Quality","count":1}]}],"productId":"shopify-4380424405079","productName":"PR Lotion® Buy 4, Get 1 Free. $175 Value","ratingAndReviewCount":1208,"ratingAndReviewCountByLevel":{"level1Count":44,"level2Count":39,"level3Count":60,"level4Count":124,"level5Count":941},"ratingAndReviewValuesTotal":5503,"ratingCount":0,"ratingCountByLevel":{},"ratingValuesTotal":0,"recommendationCount":1065,"replyCount":0,"replyWordsTotal":0,"reviewCount":1208,"reviewCountByLevel":{"level1Count":44,"level2Count":39,"level3Count":60,"level4Count":124,"level5Count":941},"reviewRatingValuesTotal":5503,"reviewWordsTotal":42785,"subscriberId_productId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c:shopify-4380424405079","subscriberId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c"},"reviews":[{"subscriberId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c","reviewId":"fb87e8e2-b620-48e1-a7b9-447e92d95bc8","subscriberId_productId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c:shopify-6602000498871","productId":"shopify-6602000498871","body":"The lotion is kinda thick making it hard to apply to skin without diluting. I love results that it renders.","dateCreated":"2026-07-25T19:03:23.000Z","dateUpdated":"2026-07-25T19:03:23.000Z","externalProvider":"shopify-shop","helpfulCount":0,"isRecommended":true,"languageCode":"en","productHandle":"pr-lotion-bottle","productImageUrl":"https://cdn.shopify.com/s/files/1/1400/2351/files/PR-Lotion_HERO_x280.png?v=1778010637","productName":"PR Lotion® Bottle","productUrl":"//www.livemomentous.com/products/pr-lotion-bottle","rating":5,"reviewer":{"displayName":"Spencer"},"isIncentivized":false,"status":"approved","title":"5 Stars","unhelpfulCount":0,"variantId":"39398430769335"},{"subscriberId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c","reviewId":"d0bbd884-6a71-4af8-a7e0-accd047af489","subscriberId_productId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c:shopify-6602000498871","productId":"shopify-6602000498871","body":"PR lotion has saved me from several “too sore” days. I’m able to train more comfortably & consistently now. Definitely an “older athletes” best friend ","dateCreated":"2026-06-05T17:31:58.633Z","dateUpdated":"2026-06-05T17:31:58.633Z","helpfulCount":0,"isRecommended":true,"languageCode":"en","productAttributes":[{"title":"Product Standouts","type":"multi-value","value":["Ease of Use","Product Quality"]}],"productHandle":"pr-lotion-bottle","productImageUrl":"https://cdn.shopify.com/s/files/1/1400/2351/files/PR-Lotion_HERO_x280.png?v=1778010637","productName":"PR Lotion® Bottle","productUrl":"//www.livemomentous.com/products/pr-lotion-bottle","rating":5,"reviewer":{"displayName":"Charity S.","isVerified":true},"isIncentivized":false,"status":"approved","title":"This stuff is magic!","unhelpfulCount":0,"variantId":"39398430769335"},{"subscriberId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c","reviewId":"ad2aae2b-e5d0-4bf7-9ff6-e925dab5798a","subscriberId_productId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c:shopify-6602000498871","productId":"shopify-6602000498871","body":"PR lotion has been instrumental in my ability to increase frequency and intensity of my workouts. Between using it and the creatine mono hydrate I’ve found a real groove that’s producing results.","dateCreated":"2026-02-18T23:59:58.000Z","dateUpdated":"2026-02-18T23:59:58.000Z","helpfulCount":0,"isRecommended":true,"languageCode":"en","productHandle":"pr-lotion-bottle","productImageUrl":"https://cdn.shopify.com/s/files/1/1400/2351/files/PR-Lotion_HERO_x280.png?v=1778010637","productName":"PR Lotion® Bottle","productUrl":"//www.livemomentous.com/products/pr-lotion-bottle","rating":5,"reviewer":{"displayName":"Robert","isVerified":true},"isIncentivized":false,"status":"approved","title":"Critical to recovery and increased frequency","unhelpfulCount":0},{"subscriberId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c","reviewId":"9da4a780-746d-4080-98b2-8c8e05dbc403","subscriberId_productId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c:shopify-6602000498871","productId":"shopify-6602000498871","body":"After using it for a few weeks for both running and gym use I find the product does aid in slightly less soreness during the activity. The product sits on the surface layer of the skin so it doesn't absorb like normal lotion and can leave an ashy appearance. I only wish there was more product as the bottle is about half empty after less than 10 uses.","dateCreated":"2026-02-17T00:55:15.000Z","dateUpdated":"2026-02-17T00:55:15.000Z","helpfulCount":0,"isRecommended":true,"languageCode":"en","productHandle":"pr-lotion-bottle","productImageUrl":"https://cdn.shopify.com/s/files/1/1400/2351/files/PR-Lotion_HERO_x280.png?v=1778010637","productName":"PR Lotion® Bottle","productUrl":"//www.livemomentous.com/products/pr-lotion-bottle","rating":4,"reviewer":{"displayName":"Shawn","isVerified":true},"isIncentivized":false,"status":"approved","title":"Not Bad","unhelpfulCount":0},{"subscriberId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c","reviewId":"149e9a58-e3ac-470c-8465-df71761e1309","subscriberId_productId":"72adcf9f-ede7-4232-8bc6-db71fceaf77c:shopify-6602000498871","productId":"shopify-6602000498871","body":"Love it","dateCreated":"2026-02-12T03:33:05.000Z","dateUpdated":"2026-02-12T03:33:05.000Z","helpfulCount":0,"isRecommended":true,"languageCode":"en","productHandle":"pr-lotion-bottle","productImageUrl":"https://cdn.shopify.com/s/files/1/1400/2351/files/PR-Lotion_HERO_x280.png?v=1778010637","productName":"PR Lotion® Bottle","productUrl":"//www.livemomentous.com/products/pr-lotion-bottle","rating":5,"reviewer":{"displayName":"Christine","isVerified":true},"isIncentivized":false,"status":"approved","title":"Love it","unhelpfulCount":0}],"reviewsKeywords":{"keywordTopics":[{"keywords":[{"name":"recovery","occurrences":7},{"name":"soreness","occurrences":4},{"name":"fatigue","occurrences":1},{"name":"leg soreness","occurrences":1},{"name":"muscle burn","occurrences":1},{"name":"muscle fatigue","occurrences":1},{"name":"night relief","occurrences":1},{"name":"post-ride","occurrences":1},{"name":"post-workout","occurrences":1},{"name":"stiffness","occurrences":1}],"topic":"Recovery"},{"keywords":[{"name":"effectiveness","occurrences":7},{"name":"endurance","occurrences":4},{"name":"performance","occurrences":3},{"name":"strength","occurrences":2},{"name":"training","occurrences":2},{"name":"hard efforts","occurrences":1},{"name":"muscle pump","occurrences":1},{"name":"pre race","occurrences":1},{"name":"training performance","occurrences":1},{"name":"workout enhancement","occurrences":1}],"topic":"Performance"},{"keywords":[{"name":"application","occurrences":3},{"name":"texture","occurrences":2},{"name":"absorption","occurrences":1},{"name":"ease of use","occurrences":1},{"name":"instructions","occurrences":1},{"name":"lotion","occurrences":1},{"name":"messy","occurrences":1},{"name":"no residue","occurrences":1},{"name":"residue","occurrences":1},{"name":"usage","occurrences":1}],"topic":"Application"},{"keywords":[{"name":"workout","occurrences":3},{"name":"workouts","occurrences":2},{"name":"racing","occurrences":1},{"name":"sports teams","occurrences":1},{"name":"trail runs","occurrences":1}],"topic":"Workouts"},{"keywords":[{"name":"results","occurrences":2},{"name":"progress","occurrences":1}],"topic":"Results"},{"keywords":[{"name":"durability","occurrences":3}],"topic":"Durability"},{"keywords":[{"name":"price","occurrences":1},{"name":"quantity","occurrences":1},{"name":"quantity efficiency","occurrences":1},{"name":"subscription","occurrences":1},{"name":"value","occurrences":1}],"topic":"Value"}],"languageCode":"en"},"reviewsNextUrl":"https://api.okendo.io/v1/stores/72adcf9f-ede7-4232-8bc6-db71fceaf77c/products/shopify-4380424405079/reviews?limit=5&orderBy=date%20desc&lastEvaluated=%7B%22reviewId%22%3A%22149e9a58-e3ac-470c-8465-df71761e1309%22%2C%22dateCreated%22%3A%222026-02-12T03%3A33%3A05.000Z%22%2C%22subscriberId_collectionId%22%3A%2272adcf9f-ede7-4232-8bc6-db71fceaf77c%3Ac73fe7ef-1434-4647-8bd0-6af350a32f0b%22%7D","reviewsSummary":{"body":"Customers say this lotion helps their legs feel better during workouts and reduces soreness afterward. Many athletes use it before running, cycling, or weightlifting sessions and report less muscle fatigue during exercise. Users frequently mention improved recovery, with reduced stiffness and aches the next day. The lotion is described as easy to apply, though some note it can be difficult to rub in completely and may leave a residue on skin or clothing. A few customers question its effectiveness, with some experiencing no noticeable difference. Most find it works well for both pre-workout preparation and post-exercise recovery.","contributingReviewCount":100,"dateGenerated":"2026-02-26T00:07:58.996Z","datePublished":"2026-02-26T05:06:32.079Z","languageCode":"en"},"sort":{"defaultSort":"date desc"}} !(function() { const widgets = document.querySelectorAll('.js-oke-widgetSize'); if (widgets && widgets.length) { if (!window.okeSetWidgetSizes) { window.okeSetWidgetSizes = (allWidgets) => { if (allWidgets) { allWidgets.forEach(widget => { const width = widget.getBoundingClientRect().width; widget.classList.remove('oke-is-small', 'oke-is-medium', 'oke-is-large'); widget.classList.add(width > 960 ? 'oke-is-large' : width > 640 ? 'oke-is-medium' : 'oke-is-small'); }); } }; } if (!window.okeResizeObserver) { let okeMetafieldResizerTimer; window.okeResizeObserver = new ResizeObserver(entries => { if (entries && entries.length) { if (okeMetafieldResizerTimer) { clearTimeout(okeMetafieldResizerTimer); } okeMetafieldResizerTimer = window.setTimeout(() => { window.okeSetWidgetSizes(entries.map(e => e.target)); }, 100); } }); } window.okeSetWidgetSizes(document.querySelectorAll('.js-oke-widgetSize')); widgets.forEach((widget) => { window.okeResizeObserver.observe(widget); }); } })(); @media (min-width: 1024px) { .oke-w-main { width: 67%; margin-left: auto; } } [ { "@context": "https://schema.org/", "@type": "Product", "name": "PR Lotion® Buy 4, Get 1 Free. $175 Value", "url": "https:\/\/www.livemomentous.com\/products\/pr-lotion-5kit", "image":"https:\/\/www.livemomentous.com\/cdn\/shop\/files\/V1_PR-Lotion_But4Get1_2000x2000_FEB142025_CC.png?v=1739914807\u0026width=2000","description": "PR Lotion® is the world's first and only lotion that delivers the natural electrolyte sodium bicarbonate to your working muscles directly via your skin using patented technology. By buffering rising acidity levels in your working muscles, PR Lotion® helps to increase power output, combat fatigue, and decrease post-workout muscle soreness.","sku": "PR300BOTTLE-B5","brand": { "@type": "Brand", "name": "Momentous" },"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "1208", "bestRating": "5", "worstRating": "1" },"hasMerchantReturnPolicy": { "@type": "MerchantReturnPolicy", "@id": "#momentous-return-policy", "applicableCountry": "US", "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", "merchantReturnDays": 30, "merchantReturnLink": "https:\/\/www.livemomentous.com\/policies\/refund-policy", "returnMethod": "https://schema.org/ReturnByMail", "returnFees": "https://schema.org/FreeReturn", "customerRemorseReturnFees": "https://schema.org/FreeReturn", "returnShippingFeesAmount": { "@type": "MonetaryAmount", "value": 0, "currency": "USD" }, "refundType": "https://schema.org/FullRefund" }, "offers": [{ "@type": "Offer","sku": "PR300BOTTLE-B5","gtin14": "00850072768168","itemCondition": "https://schema.org/NewCondition", "availability": "https://schema.org/InStock", "price": 106.0, "priceCurrency": "GBP", "url": "https:\/\/www.livemomentous.com\/products\/pr-lotion-5kit?variant=31354650820695","hasMerchantReturnPolicy": { "@type": "MerchantReturnPolicy", "@id": "#momentous-return-policy" } } ] }, { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "https:\/\/www.livemomentous.com" }, { "@type": "ListItem", "position": 2, "name": "Gear \u0026 Topicals", "item": "https:\/\/www.livemomentous.com\/collections\/gear-topicals" }, { "@type": "ListItem", "position": 3, "name": "PR Lotion® Buy 4, Get 1 Free. $175 Value", "item": "https:\/\/www.livemomentous.com\/products\/pr-lotion-5kit" } ] } ] .combined-product-button.flavour-disabled { opacity: 0.5; position: relative; cursor: not-allowed; pointer-events: none; } .combined-product-button.flavour-disabled:after { content: ' '; position: absolute; width: 100%; height: 100%; top: 0; left: 0; background: linear-gradient(to top left, rgba(0,0,0,0) calc(50% - 1px), #CFCFCA, rgba(0,0,0,0) calc(50% + 1px)) } Sign up for offers, product news, and tips Support Account Help & Contact Subscriptions Locations Press Inquiries Company About Us Careers Blog Affiliate Program Trusted Experts Wholesale Corporate Wellness Resources Privacy Policy Terms of Service Your Privacy Choices Accessibility California Prop 65 Save with HSA/FSA Certificate of Analysis Patents Do Not Sell My Information *These statements have not been evaluated by the food and drug administration. This product is not intended to diagnose, treat, cure, or prevent any disease. Afghanistan - USD $ Åland Islands - USD $ Algeria - USD $ Andorra - EUR € Anguilla - USD $ Antigua & Barbuda - USD $ Argentina - USD $ Armenia - USD $ Aruba - USD $ Ascension Island - USD $ Australia - AUD $ Austria - EUR € Bahamas - USD $ Bahrain - USD $ Bangladesh - USD $ Barbados - USD $ Belgium - EUR € Belize - USD $ Bermuda - USD $ Bhutan - USD $ Bolivia - USD $ Bosnia & Herzegovina - USD $ Botswana - USD $ Brazil - USD $ British Indian Ocean Territory - USD $ Brunei - USD $ Bulgaria - USD $ Burkina Faso - USD $ Burundi - USD $ Cambodia - USD $ Cameroon - USD $ Canada - CAD $ Cape Verde - USD $ Caribbean Netherlands - USD $ Cayman Islands - USD $ Central African Republic - USD $ Chad - USD $ Chile - USD $ China - USD $ Christmas Island - USD $ Cocos (Keeling) Islands - USD $ Colombia - USD $ Congo - Brazzaville - USD $ Congo - Kinshasa - USD $ Cook Islands - USD $ Costa Rica - USD $ Côte d’Ivoire - USD $ Croatia - USD $ Curaçao - USD $ Cyprus - EUR € Czechia - USD $ Denmark - USD $ Dominica - USD $ Dominican Republic - USD $ Ecuador - USD $ Egypt - USD $ El Salvador - USD $ Estonia - EUR € Eswatini - USD $ Ethiopia - USD $ Falkland Islands - USD $ Finland - EUR € France - EUR € French Guiana - USD $ French Polynesia - USD $ French Southern Territories - USD $ Gabon - USD $ Gambia - USD $ Germany - EUR € Ghana - USD $ Greece - EUR € Guadeloupe - USD $ Guatemala - USD $ Guernsey - USD $ Guinea - USD $ Guyana - USD $ Haiti - USD $ Hong Kong SAR - USD $ Hungary - USD $ Iceland - USD $ India - USD $ Indonesia - USD $ Iraq - USD $ Ireland - EUR € Isle of Man - USD $ Israel - USD $ Italy - EUR € Jamaica - USD $ Japan - USD $ Jersey - USD $ Jordan - USD $ Kenya - USD $ Kosovo - EUR € Kuwait - USD $ Laos - USD $ Latvia - EUR € Lebanon - USD $ Liberia - USD $ Liechtenstein - USD $ Lithuania - EUR € Luxembourg - EUR € Macao SAR - USD $ Madagascar - USD $ Malawi - USD $ Malaysia - USD $ Maldives - USD $ Mali - USD $ Malta - EUR € Martinique - USD $ Mauritania - USD $ Mauritius - USD $ Mayotte - USD $ Mexico - USD $ Moldova - USD $ Monaco - EUR € Montenegro - EUR € Morocco - USD $ Mozambique - USD $ Namibia - USD $ Nauru - USD $ Nepal - USD $ Netherlands - EUR € New Zealand - USD $ Nicaragua - USD $ Niger - USD $ Nigeria - USD $ Niue - USD $ Norfolk Island - USD $ Norway - USD $ Oman - USD $ Pakistan - USD $ Palestinian Territories - USD $ Panama - USD $ Papua New Guinea - USD $ Paraguay - USD $ Peru - USD $ Philippines - USD $ Pitcairn Islands - USD $ Poland - USD $ Portugal - EUR € Qatar - USD $ Réunion - USD $ Romania - USD $ Rwanda - USD $ San Marino - EUR € São Tomé & Príncipe - USD $ Saudi Arabia - USD $ Senegal - USD $ Seychelles - USD $ Sierra Leone - USD $ Singapore - USD $ Slovakia - EUR € Slovenia - EUR € Solomon Islands - USD $ Somalia - USD $ South Africa - USD $ South Georgia & South Sandwich Islands - USD $ South Korea - USD $ South Sudan - USD $ Spain - EUR € Sri Lanka - USD $ St. Helena - USD $ St. Pierre & Miquelon - USD $ Suriname - USD $ Svalbard & Jan Mayen - USD $ Sweden - USD $ Switzerland - USD $ Taiwan - USD $ Tajikistan - USD $ Tanzania - USD $ Thailand - USD $ Togo - USD $ Tokelau - USD $ Trinidad & Tobago - USD $ Tristan da Cunha - USD $ Tunisia - USD $ Türkiye - USD $ Turkmenistan - USD $ Tuvalu - USD $ U.S. Outlying Islands - USD $ Uganda - USD $ Ukraine - USD $ United Arab Emirates - USD $ United Kingdom - GBP £ United States - USD $ Uruguay - USD $ Vatican City - USD $ Venezuela - USD $ Vietnam - USD $ Western Sahara - USD $ Yemen - USD $ Zambia - USD $ Zimbabwe - USD $ United Kingdom - GB £ .country-selector { position: relative; } .country-selector__select { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; } .country-selector__selected-display { display: flex; align-items: center; gap: 8px; } document.querySelector('.country-selector__select').addEventListener('change', function() { const selectedOption = this.options[this.selectedIndex]; const flagSrc = selectedOption.dataset.flagSrc; const currency = selectedOption.dataset.currency; // Update the displayed flag and text const display = this.closest('.country-selector').querySelector('.country-selector__selected-display'); display.querySelector('img').src = flagSrc; display.querySelector('img').alt = selectedOption.text; display.querySelector('span').textContent = selectedOption.text; // Submit the form this.closest('form').submit(); }); document.addEventListener("DOMContentLoaded", () => { const managePreferencesBtn = document.querySelector( 'a[aria-label="Your Privacy Choices"]' ); if (managePreferencesBtn) { managePreferencesBtn.addEventListener("click", (event) => { event.preventDefault(); const consent = window[Symbol.for("blotout-consent")]; if (consent && typeof consent.showBanner === "function") { consent.showBanner(); console.log('Banner Fired') } }); } }); document.addEventListener('DOMContentLoaded', function() { // Handle newsletter form submission document.addEventListener('newsletter-submit', function(event) { const email = event.detail.email; // Here you can integrate with your email service (Klaviyo, Mailchimp, etc.) // Example: Send to Klaviyo or your backend console.log('Newsletter subscription:', email); // You can add your newsletter integration here // For example, if using Klaviyo: // if (window._learnq) { // window._learnq.push(['identify', { $email: email }]); // } }); }); /* Ensure x-cloak works properly */ [x-cloak] { display: none !important; } /* Custom styles for localization form integration */ #footer-new .country-selector { min-width: 200px; } #footer-new .country-selector__selected-display { padding: 8px 12px; cursor: pointer; transition: border-color 0.2s; } #footer-new .country-selector__selected-display:hover { border-color: #f97316; } #footer-new .country-selector__selected-display:focus-within { outline: 2px solid #f97316; outline-offset: 2px; } /* Ensure proper spacing for social icons */ #footer-new [role="list"] { list-style: none; padding: 0; margin: 0; } /* Smooth transitions for all interactive elements */ #footer-new a, #footer-new button { transition: all 0.2s ease-in-out; } /* High contrast mode support */ @media (prefers-contrast: high) { #footer-new { border-top: 2px solid currentColor; } #footer-new a:focus, #footer-new button:focus { outline-width: 3px; } } /* Reduced motion support */ @media (prefers-reduced-motion: reduce) { #footer-new * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } .footer-new__logo { width: 300px; height: 120px; } @media (max-width: 768px) { .footer-new__logo { width: 200px; height: 85px; } } .new-footer-klaviyo-form button[type="button"] { font-size: 0 !important; } .new-footer-klaviyo-form button[type="button"]::before { content: ""; display: inline-block; width: 19px; height: 16px; background-image: url("data:image/svg+xml;utf8,"); background-repeat: no-repeat; background-size: contain; margin-right: 6px; /* spacing before text */ vertical-align: middle; } function closeKlaviyoOutOfStockModal() { let modalElem = document.getElementById("klaviyo_modal"); modalElem.style.display = "none"; document.getElementById('back-in-stock').innerHTML = "" document.body.classList.remove('back-in-stock-opned') } function successKlaviyoOutOfStockModal() { document.getElementById("klaviyo_out_of_stock_form").innerHTML = `

You will receive an email when the product is back in stock! `; } function createKlaviyoOutOfStockSubscriptionModal(variantId, productTitle, variantTitle, backDate, image) { let modalElem = document.createElement("div"); modalElem.innerHTML = `

We’ll notify you when the product is back in stock!
${productTitle}
${productTitle}

${variantTitle}

Estimated to be back in stock: ${backDate}

Email
Notify me when available ` modalElem.id = "klaviyo_modal"; modalElem.classList.add("klaviyo_modal"); modalElem.style.display = "block"; return modalElem; } function klaviyoFormValidateEmail(email) { return String(email) .toLowerCase() .match( /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ ); }; window.openKlaviyoStockAlertSubscriptionForm = function(variantId, productTitle, variantTitle, backDate, image) { let modalElem = createKlaviyoOutOfStockSubscriptionModal(variantId, productTitle, variantTitle, backDate, image); document.getElementById('back-in-stock').appendChild(modalElem); document.body.classList.add('back-in-stock-opned') document.querySelectorAll('.klaviyo_modal_close_triger').forEach(item => { item.addEventListener("click", closeKlaviyoOutOfStockModal); }) document.getElementById("klaviyo_out_of_stock_form_button").addEventListener("click", function(evt) { evt.stopPropagation(); const email = document.getElementById("Klaviyo_out_of_stock_email").value; const emailValidation = klaviyoFormValidateEmail(email); console.log(email, variantId, 'email, variantId'); if (!emailValidation) return; const data = { data: { type: "back-in-stock-subscription", attributes: { profile: { data: { type: "profile", attributes: { email: email } } }, channels: ["EMAIL"] }, relationships: { variant: { data: { type: "catalog-variant", id: `$shopify:::$default:::${variantId}` } } } } }; fetch("https://a.klaviyo.com/client/back-in-stock-subscriptions/?company_id=MfVp5f", { method: "POST", headers: { "Content-Type": "application/json", "revision": "2024-06-15" }, body: JSON.stringify(data) }) .then(async res => { if (!res.ok) { const errorText = await res.text(); // Don't assume JSON here console.error("Klaviyo API error:", errorText); throw new Error("Failed to subscribe"); } // Only try parsing JSON if there's content const contentType = res.headers.get("content-type") || ""; if (contentType.includes("application/json")) { const result = await res.json(); console.log("Subscription success:", result); } // Run your success handler successKlaviyoOutOfStockModal(); }) .catch(err => { console.error("Klaviyo Back-in-Stock Error:", err); }); }); document.getElementById("Klaviyo_out_of_stock_email").addEventListener("input", function(evt) { let email = document.getElementById("Klaviyo_out_of_stock_email").value; let emailValidation = klaviyoFormValidateEmail(email) if (emailValidation) { document.getElementById('klaviyo_out_of_stock_form_button').removeAttribute("disabled"); } else { document.getElementById("klaviyo_out_of_stock_form_button").setAttribute("disabled", "true"); } }) } window.upsell_popup = { title : null, subtitle : null, info : null, product_handle : "", product_id : 1234, product_image : "//www.livemomentous.com/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12_550x.gif", product_variants : [ ], base_product_id : 1234 } if (window.location.pathname == '/a/account/login') { window.location.replace('/tools/recurring/login/'); } window.addEventListener('load', function() { var _learnq = window._learnq || []; function addedToCart() { fetch(`${window.location.origin}/cart.js`) .then(res => res.clone().json().then(data => { var cart = { total_price: data.total_price/100, $value: data.total_price/100, total_discount: data.total_discount, original_total_price: data.original_total_price/100, items: data.items } if (item !== 'undefined') { cart = Object.assign(cart, item) } if (klAjax) { _learnq.push(['track', 'Added to Cart', cart]); klAjax = false; } })) }; (function (ns, fetch) { ns.fetch = function() { const response = fetch.apply(this, arguments); response.then(res => { if (`${window.location.origin}/cart/add.js` .includes(res.url)) { addedToCart() } }); return response } }(window, window.fetch)); var klAjax = true; var atcButtons = document.querySelectorAll("form[action*='/cart/add'] button[type='submit']"); for (var i = 0; i { window.ShopifyAnalytics.meta.selectedVariantId = '31354650820695'; console.log( 'window.ShopifyAnalytics.meta.selectedVariantId:', window.ShopifyAnalytics.meta.selectedVariantId ); }, 5000); .rebuy-product-actions .subscription-checkbox .slider.round, .buttons-wrappers button:nth-of-type(2) { display: none; } .siena-iframe { display: none; } @media (max-width: 1366px) { .siena-iframe { z-index: 39; } .siena-iframe.siena-iframe--bottom-0, .siena-iframe.siena-iframe--fullscreen{ z-index: 9999999; } } ttd_dom_ready( function() { if (typeof TTDUniversalPixelApi === 'function') { var universalPixelApi = new TTDUniversalPixelApi(); universalPixelApi.init("h4w8qq9", ["k1r6x4d"], "https://insight.adsrvr.org/track/up"); } }); document.querySelectorAll('button[aria-label*="Add to Bag"]').forEach(function(btn) { var productn = btn.getAttribute('aria-label').slice(11) btn.addEventListener('click', function(event) { var conversionPixel = new Image(); conversionPixel.src = "https://insight.adsrvr.org/track/pxl/?adv=h4w8qq9&ct=0:fmme5s8&fmt=3&td1=" + productn + "&ts=" + (new Date()).getTime(); // Adding a unique ID to prevent caching conversionPixel.height = 1; conversionPixel.width = 1; conversionPixel.style.display = "none"; // Hide the pixel document.body.appendChild(conversionPixel); }); });
0 ? 'is-visible' : 'is-hidden', 'widget-layout-' + currentLayout()]">

:

1 ? 'lazy' : 'eager'" v-bind:src="itemImage(product, product.selected_variant, '400x400')" v-bind:alt="itemImageAlt(product, product.selected_variant)">
{{ value }}
{{ frequencyLabel(frequency, product.subscription_interval) }}
Quantity {{ n }}
Sale price Original price
Price
Powered by Rebuy
0 ? 'is-visible' : 'is-hidden']">

:

0">
{{ variant.title }}
{{ value }}
0">
0 ? 'is-visible' : 'is-hidden', 'widget-layout-' + currentLayout()]">

:

1 ? 'lazy' : 'eager'" v-bind:src="itemImage(product, product.selected_variant, '400x400')" v-bind:alt="itemImageAlt(product, product.selected_variant)">
{{ value }} Select your purchase method
Out of Stock Protection {{ frequencyLabel(frequency, product.subscription_interval) }}
One-Time Purchase Receive Once Add to Bag
Price View Product
el.classList.remove('show')); $event.target.closest('.rebuy-product-block').querySelector('.rebuy-product-options').classList.add('show')" type="button">
Price
Powered by Rebuy
0 ? 'is-visible' : 'is-hidden', 'widget-layout-' + currentLayout()]">

:

1 ? 'lazy' : 'eager'" v-bind:src="itemImage(product, product.selected_variant, '400x400')" v-bind:alt="itemImageAlt(product, product.selected_variant)">
{{ value }} Select your purchase method
Out of Stock Protection {{ frequencyLabel(frequency, product.subscription_interval) }}
One-Time Purchase Receive Once Add to Bag
Price View Product
el.classList.remove('show')); $event.target.closest('.rebuy-product-block').querySelector('.rebuy-product-options').classList.add('show')" type="button">
Price
Powered by Rebuy Search Search for products, collections, pages, and articles .search-form-wrapper { position: relative; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); isolation: isolate; } .search-form__input:focus { border: 1px solid #000; } .search-form__results { width: 480px; border-radius: 10px; border: 1px solid #E5E7EB; background: #FFF; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); top: 100%; } @media(max-width: 640px) { .search-form__results { width: 100%; border-radius: 10px; border: none; margin-top: 0; } } .search-form__results.show { display: block; } .search-result-divider { border-top: 1px solid var(--grey-100, #e5e5e5); } .search-product-img { width: 5rem; height: 5rem; } @media(max-width: 640px) { .search-product-img { width: 70px; height: 70px; } } .atc-btn[data-loading] { opacity: 0.6; pointer-events: none; } .atc-btn[data-added] { background-color: #2d7a3a; } .search-form__results.is-loading::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, transparent 0%, var(--grey-900, #171717) 50%, transparent 100%); background-size: 200% 100%; animation: search-loading-shimmer 1.2s ease-in-out infinite; pointer-events: none; } .search-form__results-content { max-height: calc(100vh - 170px); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; } .search-result-divider { position: sticky; bottom: 0; background-color: #FFF; z-index: 10; } @keyframes search-loading-shimmer { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } } @media(max-width: 640px) { .search-product-row { flex-direction: column; align-items: flex-start !important; } .search-recommended-section { display: none; } } .query-item-text *, .query-item-text { white-space: nowrap; } .query-item-text mark { background-color: #FFFADF; color: inherit; border-radius: 2px; } .search-form__clear-btn { background: none; border: none; padding: 0; cursor: pointer; line-height: 0; color: var(--grey-400, #999); } .search-form__clear-btn:hover svg path { stroke: var(--grey-700, #404040); } (function() { 'use strict'; const SEARCH_ICON = ` `; // Guard: only define the class once even if snippet is rendered multiple times if (!window.MomentousPredictiveSearch) { window.MomentousPredictiveSearch = class { constructor(wrapper) { this.wrapper = wrapper; this.input = wrapper.querySelector('[data-search-input]'); this.resultsContainer = wrapper.querySelector('[data-search-results]'); this.resultsContent = wrapper.querySelector('[data-search-results-content]'); this.form = wrapper.querySelector('.search-form'); this.submitBtn = wrapper.querySelector('[data-search-submit]'); this.clearBtn = wrapper.querySelector('[data-search-clear]'); this.debounceTimer = null; this.currentRequest = null; this.currentQuery = ''; this.minQueryLength = 2; this.debounceDelay = 300; this.cache = new Map(); this.requestId = 0; this.init(); } init() { this.input.addEventListener('input', (e) => { this.handleInput(e.target.value); this.updateClearBtn(); }); if (this.clearBtn) { this.clearBtn.addEventListener('click', () => { this.input.value = ''; this.currentQuery = ''; this.hideResults(); this.updateClearBtn(); this.input.focus(); }); } this.input.addEventListener('focus', () => { if (this.input.value.length >= this.minQueryLength) { this.showResults(); } }); this.input.addEventListener('touchend', (e) => { e.stopPropagation(); this.input.focus(); }); this.input.addEventListener('touchstart', (e) => { e.stopPropagation(); }, { passive: true }); const handleOutsideInteraction = (e) => { if (!this.wrapper.contains(e.target)) { const sidebarPanel = document.getElementById('ss-panel'); if (sidebarPanel && sidebarPanel.contains(this.wrapper) && sidebarPanel.contains(e.target)) { return; } this.hideResults(); } }; document.addEventListener('click', handleOutsideInteraction); document.addEventListener('touchstart', handleOutsideInteraction, { passive: true }); document.addEventListener('keydown', (e) => { if (e.key === 'Escape') this.hideResults(); }); } updateClearBtn() { const show = this.input.value.length >= this.minQueryLength; if (this.clearBtn) this.clearBtn.classList.toggle('hidden', !show); if (this.submitBtn) this.submitBtn.classList.toggle('hidden', show); } handleInput(query) { const trimmedQuery = query.trim(); if (this.debounceTimer) clearTimeout(this.debounceTimer); if (trimmedQuery.length { this.fetchSearchData(trimmedQuery); }, this.debounceDelay); } async fetchSearchData(query) { if (this.cache.has(query)) { const cached = this.cache.get(query); this.setLoadingState(false); this.renderResults(cached.results, query, cached.recommended); return; } if (this.currentRequest) { this.currentRequest.abort(); this.currentRequest = null; } const requestId = ++this.requestId; const controller = new AbortController(); this.currentRequest = controller; const baseUrl = window.Shopify?.routes?.root || '/'; const apiUrl = `${baseUrl}search/suggest.json?q=${encodeURIComponent(query)}&resources[type]=product,query&resources[limit]=5&resources[limit_scope]=each`; try { const response = await fetch(apiUrl, { signal: controller.signal, headers: { 'Accept': 'application/json' } }); if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`); const data = await response.json(); if (requestId !== this.requestId) return; this.currentRequest = null; const results = data.resources?.results || {}; if (this.cache.size > 50) this.cache.clear(); this.cache.set(query, { results, recommended: null }); this.setLoadingState(false); this.renderResults(results, query, null); } catch (error) { if (error.name === 'AbortError') return; if (requestId !== this.requestId) return; console.error('Predictive search error:', error); this.setLoadingState(false); this.showError(); } } async fetchRecommendations(productId) { try { const baseUrl = window.Shopify?.routes?.root || '/'; const url = `${baseUrl}recommendations/products.json?product_id=${productId}&limit=6&intent=related`; const response = await fetch(url, { headers: { 'Accept': 'application/json' } }); if (!response.ok) return []; const data = await response.json(); return (data.products || []) .filter(p => { const tags = (p.tags || []).map(t => t.toLowerCase()); return !tags.includes('searchnise_ignore') && !tags.includes('search_hide'); }) .slice(0, 3); } catch (e) { return []; } } async addToCart(variantId, btn) { btn.setAttribute('data-loading', ''); btn.textContent = 'Adding...'; try { const response = await fetch('/cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ id: variantId, quantity: 1 }) }); if (!response.ok) throw new Error('Failed to add to cart'); btn.removeAttribute('data-loading'); btn.setAttribute('data-added', ''); btn.textContent = 'Added!'; document.dispatchEvent(new CustomEvent('cart:refresh')); setTimeout(() => { btn.removeAttribute('data-added'); btn.textContent = 'Add to Cart'; }, 2000); } catch (e) { btn.removeAttribute('data-loading'); btn.textContent = 'Add to Cart'; console.error('ATC error:', e); } } bindAtcButtons() { this.resultsContent.querySelectorAll('.atc-btn').forEach(btn => { btn.addEventListener('click', (e) => { e.preventDefault(); const variantId = btn.dataset.variantId; if (variantId) this.addToCart(variantId, btn); }); }); } renderResults(results, query, preloadedRecommended) { if (!results || ((!results.products || results.products.length === 0) && (!results.queries || results.queries.length === 0))) { this.resultsContent.innerHTML = `
No results found for "${this.escapeHtml(query)}" `; this.showResults(); return; } const products = (results.products || []) .filter(p => { const tags = (p.tags || []).map(t => t.toLowerCase()); return !tags.includes('searchnise_ignore') && !tags.includes('search_hide'); }) .slice(0, 4); const queries = (results.queries || []).slice(0, 4); const firstProductId = products.length > 0 ? products[0].id : null; let html = ''; if (products.length > 0) { html += `
`; products.forEach(product => { html += this.renderMatchedProduct(product); }); html += ` `; } if (queries.length > 0) { html += `
Top Searches
  • ${SEARCH_ICON} ${queries.map(q => this.renderQueryItem(q)).join('')}
`; } const searchUrl = (window.Shopify?.routes?.root || '/') + `search?q=${encodeURIComponent(query)}&type=product`; html += `
View all results for “${this.escapeHtml(query)}” `; if (firstProductId) { if (preloadedRecommended && preloadedRecommended.length > 0) { html += this.renderRecommendedSection(preloadedRecommended); } else if (preloadedRecommended === null) { html += `
`; } } this.resultsContent.innerHTML = html; this.showResults(); this.bindAtcButtons(); if (firstProductId && preloadedRecommended === null) { this.fetchAndPatchRecommendations(firstProductId, query); } } renderMatchedProduct(product) { const imgUrl = product.featured_image?.url || product.image || ''; const imgSized = imgUrl ? imgUrl.replace(/(\.[a-z]+)(\?.*)?$/i, '_220x220$1$2') : ''; const price = this.formatPrice(product.price, product.price_min, product.price_max); const isSingleVariant = !product.variants || product.variants.length ${imgSized ? `${title}` : `
` }
${title}
${price ? `
${price} ` : ''} View Product `; } renderSuggestedProduct(product) { const imgUrl = product.featured_image?.src || product.featured_image?.url || product.images?.[0] || ''; const imgSized = imgUrl ? imgUrl.replace(/(\.[a-z]+)(\?.*)?$/i, '_300x300$1$2') : ''; const productUrl = this.escapeHtml(product.url || `/products/${product.handle}`); const title = this.escapeHtml(product.title || ''); return `
${imgSized ? `${title}` : `
` }
${title} `; } renderQueryItem(item) { const queryText = item.styled_text || this.escapeHtml(item.text || ''); const queryUrl = this.escapeHtml(item.url || '#'); return `
  • ${queryText} `; } renderRecommendedSection(recommended) { return `