← All articles

Smiirl Counter Not Updating on Shopify? Here's How to Fix It

If your Smiirl counter connected fine at first but has since stopped moving — or never updated at all after you added your Shopify JSON feed — you're dealing with one of a small handful of usual suspects. Almost all of them are fixable in a few minutes once you know where to look.

First, rule out the polling delay

Smiirl counters don't refresh instantly. They check the JSON URL you gave them on an interval, typically every few minutes, not the second an order comes in. If you just placed a test order, wait at least five minutes before assuming anything is broken.

Check that the JSON URL is actually reachable

Open your feed URL directly in a browser, in a private/incognito window (so you're not accidentally logged into anything that would let it load for you but not for the counter). You should see raw JSON, something like:

{
  "value": 42
}

If instead you see a login page, a blank screen, or an error, the counter can't read it either — and that's your problem, not a Shopify or Smiirl bug. Common causes: the URL sits behind authentication, the hosting service it's running on has gone to sleep (common with some free-tier hosts), or the server crashed and never restarted.

Check the JSON format itself

Even a technically "working" URL can fail silently if the JSON isn't formatted the way the counter expects. Things that commonly break it:

Extra text before or after the JSON object (a stray print statement, a debug log line). The number wrapped in quotes as a string instead of a plain number. Missing or renamed fields — if your counter expects a specific key name and your feed changed it, the device has nothing to read.

Check the counter's own settings

It sounds obvious, but it's worth confirming directly in the counter's app: the correct URL is still saved, not an old one from a previous setup attempt. The mode is actually set to read from a URL (some devices have a separate manual/static mode that silently overrides a live feed if it gets toggled). There's no leftover whitespace or line break pasted in with the URL.

If the connection works, but the number itself looks wrong

This is a different problem from "not updating," and it's worth telling apart. If the counter is clearly refreshing (the last-checked time changes, or you can see it attempting to load) but the number doesn't match what you expect, the feed itself is likely counting something other than what you think it's counting.

The most common culprits: refunded or cancelled orders that never got subtracted, unpaid orders being counted the same as completed ones, or a reset that fires at the wrong time because it's using UTC instead of your store's timezone. We cover refunds in more detail in how to get your counter to ignore refunds, and timezone resets in why your counter resets to zero.

When to rebuild the feed instead of debugging it

If you've checked all of the above and it's still unreliable, that's often a sign the underlying feed wasn't built to run unattended — for example, a script running on a free hosting tier that sleeps after inactivity, or one without any error handling for when Shopify's API is briefly unavailable. At that point, debugging further usually costs more time than starting over with something designed to run continuously.

That's the specific gap Flipcounter fills: it listens to your Shopify order and refund webhooks directly, stays running, and gives you one stable JSON URL that's built to be polled indefinitely — no sleeping servers, no stale scripts to babysit.

See how it works.