Shopify Countdown Timer
Free iframe embed for Shopify product pages, collection pages, and homepage banners. No app install, no monthly fee, no theme lock-in. Works on Dawn, Sense, Refresh, and every Online Store 2.0 theme.
<iframe src="https://gotimer.org/e/countdown?duration=3600&label=Sale+ends&theme=dark&accent=%23ff3b3b" width="100%" height="420" frameborder="0" allow="autoplay" loading="lazy" style="border-radius:12px;border:0;max-width:480px;"></iframe>
A flash-sale 1-hour countdown — paste this into a Custom Liquid section above your Add to Cart button.
Method 1 — Custom Liquid (Online Store 2.0 themes, recommended)
If you're on Dawn, Sense, Refresh, Craft, Crave, Studio, Origin, Colorblock, or any 2021+ Shopify theme, this is the fastest path — no theme code edits needed.
- In Shopify admin, go to Online Store → Themes and click Customize on your live theme.
- From the template dropdown (top center), choose Products → Default product (or whichever template).
- On the left sidebar, click Add section and select Custom Liquid.
- Drag the Custom Liquid section to the position you want (above "Add to cart" is the highest-converting spot for sale urgency).
- Paste the iframe markup from above into the section's Custom Liquid content field.
- Click Save. The countdown now appears on every product page using that template.
Method 2 — Direct template injection (legacy themes)
For pre-OS-2.0 themes (Debut, Brooklyn, Narrative, Boundless, and older custom themes):
- In Shopify admin, go to Online Store → Themes → Actions → Edit code.
- In the file tree, open
sections/product-template.liquid(ortemplates/product.liquidon the oldest themes). - Find the area where the "Add to cart" button lives. Just above it, paste the iframe markup wrapped in a
<div>:
<div class="gotimer-sale-countdown">
<iframe src="https://gotimer.org/e/countdown?duration=3600&label=Sale+ends&theme=dark&accent=%23ff3b3b"
width="100%" height="320" frameborder="0" loading="lazy"
style="border-radius:12px;border:0;max-width:480px;"></iframe>
</div>- Click Save. Refresh a product page in another tab to confirm.
Method 3 — Homepage banner (any theme)
- In Theme Editor, switch the template dropdown to Home page.
- Click Add section and pick Custom Liquid.
- Drag it to the top of the page (above the hero slider).
- Paste the iframe. For a sticky top banner, wrap it with:
<div style="position:sticky;top:0;z-index:50;background:#111;padding:8px;text-align:center;">
<iframe src="https://gotimer.org/e/countdown?duration=3600&theme=dark&accent=%23ff3b3b&controls=none"
width="100%" height="60" frameborder="0" loading="lazy" style="border:0;max-width:600px;"></iframe>
</div>Per-product countdowns via metafield
If every product has its own launch or sale-end date, drive the countdown from a metafield instead of hard-coding the duration.
- In Shopify admin: Settings → Custom data → Products.
- Add a metafield with namespace
custom, keylaunch_date, type Date and time. - On each product page, set the launch date in the metafield UI.
- In your product template (Custom Liquid section or theme code), compute seconds remaining and inject into the iframe URL:
{%- assign launch = product.metafields.custom.launch_date -%}
{%- if launch -%}
{%- assign secs = launch | date: "%s" | minus: "now" | date: "%s" -%}
{%- if secs > 0 -%}
<iframe src="https://gotimer.org/e/countdown?duration={{ secs }}&label=Launch+in&theme=dark&accent=%23ff3b3b"
width="100%" height="320" frameborder="0" loading="lazy"></iframe>
{%- endif -%}
{%- endif -%}Conversion best-practices for sale countdowns
- Place it above the buy button, not below — the urgency signal must come before the decision moment.
- Use red accent (
accent=%23ff3b3b) and dark theme for highest contrast on mobile-checkout flows. - Hide the controls (
controls=none) so shoppers can't pause or restart the timer. - Pair with a discount code in the label — the label can repeat the code (
label=Code+FLASH+at+checkout). - Don't fake the countdown— if the "sale ends in 1 hour" resets on every visit, savvy shoppers notice and trust drops. Use a real deadline if possible.
Testing checklist before going live
- Preview on desktop, tablet, and mobile (Shopify Theme Editor has all three).
- Visit the product page in an incognito window to confirm the embed renders.
- Check that the iframe doesn't interfere with the Add-to-cart click area on mobile.
- If you use Shopify's Online Store speed test, run it before and after — the lazy-load attribute should keep the score unchanged.
Looking for a Pomodoro-style timer for a productivity-focused product (like a study planner)? Try the embed hub configurator with timer type set to Pomodoro / Interval.
Related
Shopify Countdown Timer FAQ
Do I need a Shopify app to use this?
Will it work on Dawn, Sense, Refresh, and other Online Store 2.0 themes?
product.liquid or your theme's template file.Can I use this for a flash sale countdown that auto-resets per visit?
duration=3600 (1 hour) and the timer counts down 1 hour from each visitor's page load. For a hard-deadline sale where every visitor sees the same end moment, compute the seconds-until-sale-ends and bake that into the iframe URL; on the sale-end day swap to an "expired" banner.Will the embed slow my Shopify store?
loading="lazy"), so it only requests the embed when the visitor scrolls to it. No impact on Shopify's online-store speed score for above-the-fold sections.Can I make every product page have its own countdown automatically?
launch_date metafield to the product, then in your product template read the metafield and inject the seconds-remaining into the iframe URL. Example Liquid: {% assign secs = product.metafields.custom.launch_date | date: "%s" | minus: "now" | date: "%s" %} followed by the iframe with duration={% raw %}{{ secs }}{% endraw %}.