Free Shipping Estimator
Delivery-date estimate plus free-ship progress, by visitor location.
Live preview
See it in action.
Fully interactive, drag, click, scroll inside the frame, toggle to mobile.
About this section
A compact PDP / cart widget that shows an estimated delivery-date range based on the visitor's country (auto-detected from Shopify Markets), plus a live free-shipping progress bar that updates from the cart. Configure shipping zones as theme blocks: country list, min/max business days, threshold per zone. Skips weekends in the date math.
Install in 90 seconds
- 01
Create /sections/modblo-free-shipping-estimator.liquid.
- 02
Paste the section code and save.
- 03
Add the section to product.json or wherever you want the widget (works great near the Add-to-Cart button or in the cart drawer).
- 04
Add Zone blocks for each shipping region. Set country codes (comma-separated ISO codes, e.g. US, CA), min/max business days, and free-shipping threshold.
- 05
Add a final zone with countries set to * as the fallback for any country not explicitly covered.
The Liquid
Unlock the section code
Free Shipping Estimator is a premium section. Get the full Liquid + scoped CSS paste-ready.
One-time purchase · Lifetime updates · You own the code
Theme editor settings
| Setting | Type | Default |
|---|---|---|
Heading heading | text | Estimated delivery |
Show free-shipping progress bar show_progress | checkbox | true |
Background bg | color | , |
Foreground fg | color | #0b0b0c |
Accent accent | color | #6366f1 |
Shipping zones (theme blocks) blocks One Zone block per shipping region. Use * for the fallback (rest-of-world) zone. | blocks | , |
SEO & accessibility notes
- Country auto-detected from Shopify localization (works with Markets), no IP-geolocation API needed.
- Date math skips Saturday and Sunday for accurate business-day estimates.
- Free-ship progress uses /cart.js polling on cart:updated event, no extra API calls during idle.
- Zone data lives in inert <div data-modblo-fs-zones hidden> so it's invisible to layout but JS-readable.
Related
