Everything the app can do, in one place: install steps, every bar type and setting, the appearance reference, page targeting, several bars at once, scheduling, all 60 languages, per-market thresholds, templates and troubleshooting.
Add Barly from the Shopify App Store, or enter your store domain on the home page. Barly asks for no access to your products or customers — it only stores your bar settings.
Pick a type — free shipping progress, countdown or announcement — set the threshold or deadline, and style everything with the live preview: colours, gradients, fonts, icons, position, height.
Open Online Store → Themes → Customise → App embeds, and switch Barly bars on. Save. This is what draws the bar; without it the app has no effect on your storefront.
Open any page of your store. The bar is part of the very first HTML the page delivers, so it appears instantly — no flicker, no jumping content, no extra requests.
The bar every store should start with: it tells the shopper exactly how much more to add for free shipping, and pays for itself in bigger carts.
You set one number — the free shipping threshold, in your store currency. From then on the bar handles the whole journey by itself:
| Cart state | What the shopper sees |
|---|---|
| Empty or below the threshold | “Spend €12.50 more for free shipping” with a progress bar filling towards the goal |
| Cart changes (add, remove, quantity) | The amount and the progress recalculate instantly, without a page reload — Barly watches cart activity in the background |
| Threshold reached | The bar switches to your unlocked message — “Free shipping unlocked!” — with an optional burst of confetti |
Both texts — the “remaining” message and the “unlocked” message — can be overridden per language in the editor. Use {amount} where the remaining sum should appear; the currency formatting follows your store settings automatically.
A deadline in flip-style digits. Three modes, all honest.
| Mode | How it works | Right for |
|---|---|---|
| Fixed end date | One campaign, one deadline — you pick the exact date and time | Black Friday, launches, sale endings |
| Repeats daily | Ends at the same time every day, then starts again — e.g. every day at 15:00 | Same-day dispatch cut-offs |
| Evergreen per visitor | Each visitor gets their own timer (you set the length in minutes), remembered in their browser | First-visit offers, cart reservations |
When it reaches zero you choose what happens: the bar hides, or keeps showing the message without the digits. No fake timers that quietly reset — if you promise a deadline, the bar keeps it.
A plain message with an optional button — new collection, holiday notice, store-wide code, free returns. No logic, just your words. Write the message per language in the editor; languages you leave empty fall back to your English text.
The editor shows a live preview of a small storefront, so you see exactly where the bar will sit and how it will look before you save.
| Control | What it does | Options |
|---|---|---|
| Background | The bar's main colour | Any colour, picker or hex |
| Gradient | Optional second colour — the bar blends from Background to this, left to right. Clear it for a solid bar | Any colour or none |
| Text | Colour of the message and icon | Any colour |
| Accent | Colour of the progress fill and the countdown digit blocks | Any colour |
| Font | Typeface for the bar text | Theme font (matches your store), System sans-serif, Serif, Monospace — plus 30 Google Fonts, from Inter and Poppins to Playfair Display and Pacifico, loaded automatically |
| Icon | Small icon before the message — pick visually from the grid | 19 icons: truck, gift, lightning, clock, tag, heart, star, fire, snowflake, bell, percent, sparkles, crown, leaf, package, sun, umbrella, rocket, megaphone — or none |
| Position on screen | Where the bar sits | Top of page / Bottom of page |
| Progress style | Shipping bars only — how the progress is drawn | None, Thin line, Line with dot |
| Text size | Font size of the message | 11–22 px |
| Bar height | Minimum height of the bar | 32–72 px |
| Bold text | Heavier message text | On / off |
| Sticky | The bar stays visible while the shopper scrolls | On / off |
| Floating pill PRO | Instead of a full-width strip, the bar becomes a rounded pill floating over the page with a shadow | On / off |
| Close button | Adds an ×. A closed bar stays hidden for the rest of that visit | On / off |
| Confetti on unlock | Shipping bars only — a celebratory burst when the goal is reached (skipped automatically for visitors with reduced-motion set) | On / off |
Any bar can carry a button — “Shop now” linking to your sale, a collection, a landing page, even an external URL. The button label is part of the language dictionary, so it follows the shopper's language too, and you can override it per language like any other wording. On small screens the button hides automatically so the message always fits.
Five switches decide where a bar appears. All five are on by default.
| Switch | Covers |
|---|---|
| Home | Your store's front page |
| Collections | All collection and product-list pages |
| Products | Every product page |
| Cart | The cart page |
| Everything else | Search, blog posts, custom pages — anything not covered above |
Targeting is what lets several bars work side by side — a cart-only timer never competes with a store-wide shipping bar.
A visitor sees one bar at a time: Barly walks your list from the top and shows the first bar that matches the current page. Everything else follows from that one rule.
The arrows on the Bars screen set the order. The bar nearest the top wins whenever two bars target the same page — so during a campaign, move the campaign bar up and it overrides your everyday bar; afterwards it hands back automatically.
Bars that target different pages never compete. A classic set: free shipping progress on the home page and collections, a dispatch-deadline countdown on product pages, and a “cart reserved” timer on the cart. Three bars, all live at once, each in its own place.
Give seasonal bars start and end dates — Black Friday, then Christmas, then New Year — and keep your everyday bar undated at the bottom of the list. Each campaign switches itself on and off, and between campaigns the everyday bar shows. Set the whole season up in October and never touch it again.
However many bars you create, storefront speed does not change: inactive, expired and not-yet-started bars are filtered out at publish time, so the storefront only ever receives the bars that can actually show.
Every bar has optional Starts and Ends dates. A bar with a start date in the future stays hidden until that day; one with an end date in the past stops showing — no midnight edits, no forgotten “SALE ENDS TODAY” bars still up a week later. A bar can have only a start date (switches on and stays), only an end date (shows until then), or both. The end date runs to the end of that day.
Bar wording follows your storefront language. If a shopper views your store in Latvian, the bar is in Latvian — nothing to configure.
Every language has its own text fields in the editor. Leave a field empty and the built-in translation below is used; type your own and it wins for that language. For shipping bars you can override both the “remaining” and the “unlocked” message; use {amount} where the sum should appear. For announcements, empty languages fall back to your English message.
| Language | Code | Free shipping message |
|---|---|---|
| English | en | Spend €12.50 more for free shipping |
| Afrikaans | af | Nog €12.50 tot gratis aflewering |
| العربية | ar | تبقى €12.50 للشحن المجاني |
| Azərbaycan | az | Pulsuz çatdırılmaya €12.50 qaldı |
| Български | bg | Остават €12.50 до безплатна доставка |
| বাংলা | bn | ফ্রি ডেলিভারির জন্য আর €12.50 |
| Bosanski | bs | Još €12.50 do besplatne dostave |
| Català | ca | Et falten €12.50 per a l'enviament gratuït |
| Čeština | cs | Do dopravy zdarma zbývá €12.50 |
| Dansk | da | €12.50 tilbage til gratis fragt |
| Deutsch | de | Noch €12.50 bis zum kostenlosen Versand |
| Ελληνικά | el | Ακόμη €12.50 για δωρεάν αποστολή |
| Español | es | Te faltan €12.50 para el envío gratis |
| Eesti | et | Tasuta tarneni on jäänud €12.50 |
| Euskara | eu | €12.50 falta dira doako bidalketa lortzeko |
| فارسی | fa | €12.50 تا ارسال رایگان مانده |
| Suomi | fi | €12.50 jäljellä ilmaiseen toimitukseen |
| Filipino | fil | €12.50 na lang para sa libreng shipping |
| Français | fr | Plus que €12.50 pour la livraison gratuite |
| Gaeilge | ga | €12.50 fágtha go seachadadh saor |
| Galego | gl | Fáltanche €12.50 para o envío gratis |
| עברית | he | עוד €12.50 למשלוח חינם |
| हिन्दी | hi | मुफ़्त डिलीवरी के लिए €12.50 और |
| Hrvatski | hr | Još €12.50 do besplatne dostave |
| Magyar | hu | Még €12.50 az ingyenes szállításig |
| Հայերեն | hy | Անվճար առաքմանը մնաց €12.50 |
| Bahasa Indonesia | id | Belanja €12.50 lagi untuk gratis ongkir |
| Íslenska | is | €12.50 eftir í fría sendingu |
| Italiano | it | Ti mancano €12.50 per la spedizione gratuita |
| 日本語 | ja | あと€12.50で送料無料 |
| ქართული | ka | უფასო მიწოდებამდე დარჩა €12.50 |
| Қазақша | kk | Тегін жеткізуге €12.50 қалды |
| 한국어 | ko | €12.50 더 담으면 무료배송 |
| Lietuvių | lt | Iki nemokamo pristatymo liko €12.50 |
| Latviešu | lv | Līdz bezmaksas piegādei atlicis €12.50 |
| Македонски | mk | Уште €12.50 до бесплатна достава |
| Bahasa Melayu | ms | Tambah €12.50 lagi untuk penghantaran percuma |
| Malti | mt | Fadal €12.50 għal kunsinna b'xejn |
| Norsk (bokmål) | nb | €12.50 igjen til gratis frakt |
| Nederlands | nl | Nog €12.50 tot gratis verzending |
| Norsk | no | €12.50 igjen til gratis frakt |
| Polski | pl | Do darmowej dostawy brakuje €12.50 |
| Português (BR) | pt-BR | Faltam €12.50 para frete grátis |
| Português (PT) | pt-PT | Faltam €12.50 para envio grátis |
| Română | ro | Mai ai €12.50 până la livrare gratuită |
| Русский | ru | До бесплатной доставки осталось €12.50 |
| Slovenčina | sk | Do dopravy zadarmo zostáva €12.50 |
| Slovenščina | sl | Še €12.50 do brezplačne dostave |
| Shqip | sq | Edhe €12.50 deri te dërgesa falas |
| Српски | sr | Још €12.50 до бесплатне доставе |
| Svenska | sv | €12.50 kvar till fri frakt |
| Kiswahili | sw | Ongeza €12.50 upate usafirishaji bure |
| ไทย | th | ซื้ออีก €12.50 รับส่งฟรี |
| Türkçe | tr | Ücretsiz kargoya €12.50 kaldı |
| Українська | uk | До безкоштовної доставки залишилось €12.50 |
| Oʻzbek | uz | Bepul yetkazib berishga €12.50 qoldi |
| Tiếng Việt | vi | Mua thêm €12.50 để được miễn phí vận chuyển |
| 简体中文 | zh-CN | 再购€12.50即可免运费 |
| 繁體中文 | zh-TW | 再購€12.50即可免運費 |
| isiZulu | zu | Kusele €12.50 ukuze uthole ukulethwa mahhala |
Every built-in phrase is translated into each of these — 4 phrases × 60 languages.
If you sell in several currencies, one number would be wrong somewhere — €50 and 50 000 ISK are very different offers. With per-market thresholds you set a separate amount for each currency, and the bar picks the right one for each visitor automatically. The progress calculation always uses the currency the shopper actually sees, so the remaining amount is always consistent with your checkout.
One click fills the editor with a finished design — type, colours, texts, targeting, even scheduling where it makes sense. Everything stays fully editable afterwards; a template is a starting point, not a cage.
| Group | Templates | Examples |
|---|---|---|
| Seasonal & sales | 16 | Black Friday, Cyber Monday, Christmas, flash sale, payday sale, pre-orders closing |
| Free shipping | 10 | Ten looks for the same job — ocean, forest, midnight, neon, nordic and more |
| Cart goals & gifts | 6 | Free gift at a threshold, mystery box, cart-reserved timer, cart-only nudge |
| Trust & social proof | 4 | Customer rating, secure checkout, local pickup, student discount |
| Style statements | 5 | Mono luxe, terminal, bubble, sport, eco |
| Announcements | 7 | Free returns, holiday deadline, new collection, follow us |
The free plan is complete, not crippled: one polished bar with live cart tracking, all 60 languages and no watermark, forever.
| Feature | Free | Pro |
|---|---|---|
| Bars | 1 | Unlimited |
| Free shipping progress + live cart tracking | ✓ | ✓ |
| Announcement bars | ✓ | ✓ |
| All 60 languages + per-language overrides | ✓ | ✓ |
| Full visual editor, top/bottom position, sticky | ✓ | ✓ |
| Confetti on unlock | ✓ | ✓ |
| Countdown bars (fixed, daily, evergreen) | — | ✓ |
| Button on the bar | — | ✓ |
| Floating pill style | — | ✓ |
| Scheduling by date | — | ✓ |
| Per-market thresholds | — | ✓ |
| 48 templates | — | ✓ |
Pro comes with a 7-day free trial, monthly or yearly (two months free on yearly). Cancelling Pro keeps your bars — Pro-only ones simply pause until you return.
Most bar apps draw the bar with JavaScript after the page loads — you see the page jump. Barly stores your settings inside Shopify itself and the bar is rendered server-side into the very first HTML. Zero layout shift, zero extra requests, no effect on your speed score.
It stays hidden for the rest of that visit and comes back on the next one. If you never want it dismissed, switch the close button off.
Barly listens to your theme's own cart requests — add to cart, quantity changes, removals — and recalculates the remaining amount the moment they happen. It works with drawer carts, AJAX carts and plain cart pages alike, on any theme.
In the visitor's own browser. Each visitor gets a personal deadline the first time they see the bar, and it survives page changes. It is not tied to any account and stores nothing personal.
Nothing. The bar is a theme app embed — nothing is written into your theme files. Switching the embed off removes the bar instantly; uninstalling the app also deletes your settings from our servers.
Check the theme embed first: Online Store → Themes → Customise → App embeds → Barly bars must be on, and the theme must be saved. This accounts for almost every case.
Open the bar and check Show on pages — home, collections, products and cart are separate switches, and a page type that is unticked never shows the bar.
That is the priority rule: one bar at a time, the first match from the top of your list wins. Either move the new bar up with the arrows, or give the two bars different pages under Show on pages so each has its own territory.
That is the close button doing its job: a closed bar stays hidden for the rest of the visit. Open your store in a private window to see it fresh, or switch the close button off in the bar’s appearance settings.
A bar with a start date in the future, or an end date in the past, does not render at all. Check the Schedule section in the editor — and remember dates are checked against your store’s timezone.
Yes — any theme: Online Store 2.0, vintage and fully custom builds. The bar places itself above the theme’s content and sits above theme overlays. If your theme somehow covers it, write to us — that is a bug we want to fix.
Switch the theme embed off, or uninstall the app. Both remove the bar immediately — nothing was written into your theme files, so nothing is left behind. Uninstalling also deletes your data from our servers.