How to add "New", "Sale" and "Low stock" badges to Shopify products without editing theme code

Walk through any physical shop and the shelf tells you what is new, what is discounted and what is nearly gone. On a Shopify collection page every product looks the same: image, title, price. Badges bring the shelf back. A red "-30%" or a small "Only 3 left" on the product image changes which product gets the click.
This guide covers the ways to add badges in Shopify, what goes wrong with the common approaches, and how to get it done in a few minutes.
Badge types that actually change behaviour
Not every label is worth adding. These are the ones that consistently move click-through and conversion:
- Sale / discount percentage, calculated from compare-at price, not typed by hand.
- New, for products published in the last N days.
- Low stock, shown only when inventory drops below a number you set.
- Sold out, so shoppers do not click into a product they cannot buy.
- Best seller, for the products you choose or the top sellers by orders.
- Free shipping, on products that qualify.
- Seasonal: Black Friday, Christmas, Clearance, Limited edition.
The key word in most of these is automatically. A "Sale" badge someone forgot to remove after the sale ends is worse than no badge.
Option 1: Product tags plus theme code
The classic approach: tag the product "badge-new", and add Liquid to the product card that prints a label when the tag exists. Many themes support a variant of this out of the box.
It works until it does not:
- Someone has to add and remove tags by hand. "New" becomes "new for six months".
- Discount badges cannot calculate the percentage; you tag "sale" and the label says "Sale" regardless of 5% or 50%.
- Low stock needs inventory data the tag does not have.
- The label text is one language. A Lithuanian or German storefront shows "Sale" in English.
- Every theme update risks overwriting the card snippet.
Option 2: Theme built-in badges
Dawn and other Shopify themes show "Sale" and "Sold out" badges natively, in the theme's language. That covers two badge types with no styling control and no scheduling. If those two are all you need, use them and skip apps.
Option 3: A badge app
A badge app reads product data (price, compare-at price, inventory, publish date, tags, collections) and decides which badge to show. What to check before installing:
- Rules from data, not tags. Discount % from prices, Low stock from inventory, New from publish date.
- Targeting by collection, tag or hand-picked products, and scheduling with start and end dates.
- Languages. The badge text should follow the storefront language. Most badge apps ship English plus a handful of languages; if your store is in Lithuanian, Latvian, Estonian, Finnish or Czech, check the list.
- How it is placed. Theme app extension (nothing written into theme files, disappears on uninstall) versus JavaScript injection (flicker, layout shift, leftover code).
- Price. Badges are simple; there is no reason to pay per product.
How Badgely does it
Badgely is our free badge app. Eleven badge types, six one-click seasonal templates, and every label ships translated into 60 storefront languages, including all Baltic and Nordic languages, so a multilingual store gets "Nauja", "Jauns" and "Uusi" without typing anything.
Five badge types apply themselves from live product data (New, Sale, Discount %, Low stock, Sold out). The rest show wherever you target them, by collection, tag or product, with optional start and end dates.
Badgely is a theme app extension: the badge data is precalculated on the server, so product grids make no extra requests and nothing is added to your theme files. Uninstalling removes every badge. It is free with no product limit, because we use it as the way merchants find our other apps.
Setup: install, pick badge types, choose targeting, enable the app embed in the theme editor. The Badgely setup guide covers positioning on product cards and the full language list.
Frequently asked questions
Can I change the wording of a badge? Yes, per language. Any of the 60 translations can be overridden, and custom text badges can say anything.
Do badges show on the product page as well as collections? Yes: collection pages, product pages, search results and the home page, wherever the theme renders product cards.
Will badges slow down collection pages? Not with Badgely. Badge decisions are made on the server ahead of time; the storefront only renders a small label element per product.
What about Shopify Markets with translated product URLs? Badgely matches translated URLs from Shopify Markets, so the right badge shows on localised product pages too.
Badgely is built by MB „Liūto media" in Lithuania. It is free; our paid apps for delivery dates, shipping bars, reorder reminders and TikTok video are listed at liutoapps.com.

How to get customers to make TikTok videos of your products (and use them legally)
Seven Shopify apps from Liūto media: which one do you actually need?
How to calculate the reorder interval for consumable products (with real examples)