TELCOMA Global / Tallyo / Merchant guide
Count the shelf. Review every difference. Then change Shopify.
Tallyo is a Shopify app for counting the physical stock at one location and correcting Shopify's on-hand quantities from the result. Counting itself changes nothing. You review every difference, apply the ones you accept, and can roll the whole count back with one click.
Install and plans
Three steps, all inside the Shopify admin.
Install from the App Store
Search the Shopify App Store for Tallyo and click Install. The app asks for three permissions: products, locations and inventory. It never asks for customers or orders.
Choose a plan
Standard ($19/month) covers one location: the first one you start a count at. If you cancel every count at that location, the next count picks the location again. Plus ($39/month) covers unlimited locations and adds CSV export. Both start with a 14-day free trial and are billed by Shopify on your Shopify bill.
Open the app
In the admin go to Apps → Tallyo: Stocktake & Counts. It has two pages: Counts, the list of your 100 most recent counts with their progress and number of differences, and New count.
Without an active plan or trial, the app shows Choose a plan to keep counting. Existing counts stay readable and Roll back still works; only starting a new count and applying changes to Shopify need a plan. Development stores never need a plan.
How a count works
Four steps, and Shopify is only touched in the third.
Snapshot
Pick a location and, optionally, a subset of products. The app records each tracked item's current on-hand quantity as the expected value.
Scan or type
Scan barcodes or type quantities. Several people can count the same session at once. Nothing is written to Shopify.
Every difference, side by side
Expected against counted for every item. Apply the differences; each write is checked against Shopify's current quantity first.
One click
Every change is stored with the value it replaced, so a whole count can be put back.
A count moves through five statuses, shown as a badge on the Counts page: Loading items (the snapshot is being read from Shopify), Counting (open for scans), In review (counting closed, differences on screen), Applied (written to Shopify) and Cancelled.
Start a count
Name it, pick the location, decide what to count.
- Name. Defaults to today's date, for example Stocktake Sep 25, 2026. Change it if you run several counts a day.
- Location. One location per count. Only items that are tracked in Shopify and stocked at this location are included.
- Items. Everything at this location for a full stocktake, or Only products matching a filter (cycle count) to count part of the stock. The filter uses Shopify's search syntax, and several terms are combined with AND: vendor:Acme, product_type:Shoes, tag:aisle-3, collection:123456 (the collection's numeric id). Tagging products by aisle or by count week is the easiest way to set up a rotating cycle count. The app checks the field names before the count starts: a field Shopify does not know is refused, rather than silently ignored.
- Note. Optional: which shelves or zones, anything the reviewer should know.
Click Start count. The status shows Loading items while the app reads the snapshot from Shopify in pages, at the rate Shopify allows. A few hundred items take seconds; large catalogues take a minute or more. Scanning starts as soon as loading finishes. If Shopify keeps returning an error, the page stops retrying and shows a Retry button; nothing has been changed.
Scanning
Any scanner that types, the camera in the mobile app, or a keyboard.
Bluetooth or USB scanner
Any scanner that works as a keyboard ("keyboard wedge" or HID mode) works here, on a laptop, a tablet or a phone. The cursor sits in the Barcode or SKU box when the page opens; keep it there. The scanner types the code and presses Enter, and the app records it. Make sure the scanner is set to send Enter after each code (the setup guide calls it a suffix or terminator).
Camera
In the Shopify mobile app (iOS or Android) tap Scan with camera. The app uses Shopify's built-in barcode scanner and records one code per tap. In a desktop browser, or when a scan is cancelled, the button says so.
Keyboard
Type the barcode or SKU into the box and press Enter, or click Add. Useful for a damaged label or when a code is printed on the shelf edge.
Quantity per scan is 1 by default. Set it to 6 before scanning a case of six, then back to 1. Each scan adds the quantity to the item's running count; the same item scanned three times counts three.
After each scan a result card shows the item with its image, the running count, the expected quantity and the difference, plus an Add again button for scanning the same item once more. The scan also appears at the top of Recent entries with an Undo button, and a short confirmation such as Blue Tee — M: 12 counted (expected 11) pops up.
The code is matched against the barcodes in the count first, then against SKUs, exact match only. If several variants share one barcode, the app lists them and you tap the right one. If the code matches nothing, you see No item with barcode or SKU "…": the item is untracked in Shopify, not stocked at this location, or outside the product filter. Use Find an item to check.
If an entry cannot be recorded (for example the connection dropped), the app shows Not recorded with the code and a one-tap button to send it again. It never drops a scan silently.
Counting with several people
Open the same count on every device.
There is nothing to set up. Each person opens the count in the Shopify admin on their own device and scans. Every scan is a separate entry in an append-only log, and each item's running count is recomputed from that log, so two people scanning the same shelf simply add up.
Give each device a counter tag before starting, for example Aisle 3, Back room or Till 2. The tag is saved on that device, attached to every entry it records, and shown in the Tag column of Recent entries, so a surprising number among the recent entries can be traced to the shelf it came from. Use a zone or station name, not a person's name; the app is built to store no personal data.
Anyone can Undo an entry from Recent entries while the count is open. The item's count is recomputed without it. Recent entries shows the latest 12 entries from every device; older entries stay in the log and still count, but can no longer be undone from the screen.
Set count vs scans
Scans add. Set replaces.
Scan (adds)
Every scan adds the quantity per scan to the item's running count. This is the normal way to count: pick up, scan, put down.
Set count (replaces)
Under Find an item, search by product name, SKU or barcode, type the number in the Set count column and click Set. The running count becomes exactly that number, whatever was scanned before. Use it after recounting a shelf, for items with no barcode, and for items counted from a case label.
Both kinds of entry appear in Recent entries, marked + 1 for a scan and = 12 for a set, and both can be undone. Quantities are whole numbers.
Review the differences
Expected against counted, for every item.
When the shelves are done, click Review differences. It is enabled once at least one item has been counted. Counting closes and the status becomes In review. Need to scan more? Back to counting reopens the count.
The review page starts with six tiles: Items, Counted, Not counted, Differences, Net units (over minus under) and Value of differences, which uses the cost per item recorded in Shopify and leaves out items with no cost.
Below them, the item table with five filters:
- Differences: counted items whose count differs from the expected quantity. This is what an apply would write.
- Not counted: items nobody scanned. They are left exactly as they are in Shopify.
- Changed in Shopify: items whose quantity moved in Shopify since the snapshot. See the next section.
- Counted: every counted item, including those that matched.
- All items.
Each row shows the product and variant, SKU, expected, counted, the difference as a green (over) or red (under) badge, and a status: Not counted, Counted, Changed in Shopify, Applied or Rolled back. Tables longer than 100 rows are paged.
"Changed in Shopify"
Why an item is skipped, and what to do about it.
When the count started, the app recorded each item's on-hand quantity as the expected value. When you apply, each write tells Shopify "set this item to the counted quantity, provided it is still at the expected quantity". If the quantity moved in the meantime, because of a sale, a transfer, a return or a manual edit, Shopify refuses that one item and the app marks it Changed in Shopify. Nothing is overwritten.
Click Refresh changed items. The app reads each item's current quantity from Shopify and makes it the new expected value, so the difference on screen is against today's number.
If the sale was fulfilled from that shelf after you counted it, your count is out of date too. Click Back to counting, recount the item with Set count, then review again.
Click Apply. Only the refreshed differences are written; items already applied are not touched again.
An item that was removed from the location after the snapshot has no quantity there to compare against. It stays marked Changed in Shopify after a refresh and is never written; the review page tells you how many such items there are.
Apply
The only step that writes to Shopify.
The button reads Apply N changes, where N is the number of counted items whose count differs from expected. Click it and confirm in the dialog, which repeats the location, the number of items that will change and the number of uncounted items that will stay as they are.
The app then sets each item's on-hand quantity to the counted value, in batches, each item checked against Shopify's current quantity as described above. When it finishes you see Applied N of N changes. If some items were changed in Shopify during the count, the banner says how many were skipped and the count stays In review so you can refresh and apply again; otherwise the status becomes Applied.
Every change is recorded with the value it replaced, and appears in the item's inventory history in Shopify as an adjustment made by the app. Items that have been applied are frozen: they no longer accept entries, even if the count is reopened for the rest.
If a Shopify error that is not about a single item interrupts an apply, the app stops, shows the error text, and records exactly which items were written. The next apply carries on from there; nothing is written twice, even if a browser tab was closed half-way through.
Roll back
Put every quantity back with one click.
After a count has been applied, the review page shows Roll back. Click it and confirm. Every quantity the count changed is set back to what it was before, with the same check: an item that has changed again since the apply is left as it is and listed in the result, so a sale made after the stocktake is never undone. The banner reads Restored N quantities, and each row whose quantity was restored shows a Rolled back badge.
Rolling back works without an active plan. A rolled-back count is finished; to count again, start a new count.
CSV export
The review table as a file, for the accountant or the archive.
On the review page click Export CSV (Plus plan). The file contains the rows of the filter that is selected, so Differences exports only the differences and All items exports everything. The file is named after the count and the filter, for example stocktake-sep-25-2026-variance.csv, and opens directly in Excel and Google Sheets.
Cancel a count
Nothing written, nothing lost.
While a count is loading or open for counting, Cancel count on the counting screen closes it. The scans recorded so far are kept for reference, nothing is written to Shopify, and the count cannot be reopened. A count that has already been applied cannot be cancelled; roll it back instead.
Your data
Products and quantities. Never customers.
Product and variant titles, SKUs, barcodes, product images, unit costs, locations and on-hand quantities. Nothing about customers, orders or staff.
Your store's domain, each count, its items and expected and counted quantities, every entry with its optional counter tag, and every adjustment with the value it replaced.
On TELCOMA's server at Fly.io in the United States. Shopify is the only other party that handles the data.
Everything the app stored for your store is deleted.
Full details in the privacy policy.
Frequently asked
The questions merchants ask first.
Why is an item missing from the count?
It is not tracked in Shopify (the variant's Track quantity is off), it is not stocked at the location you chose, or it is outside the product filter. Turn on tracking or stock it at the location, then start a new count; a running count keeps the item list it started with.
Can I count several locations?
One count covers one location, so run one count per location. The Standard plan covers one location, the first one you count at; Plus covers any number, each with its own counts.
Does it work with Shopify POS?
The app runs in the Shopify admin on desktop and in the Shopify mobile app, so a phone at the shelf is enough. It does not add a tile to POS and does not need POS Pro. A POS screen is on the roadmap.
Will uncounted items be set to zero?
No, and there is no setting for it. An item nobody scanned keeps its quantity in Shopify. If you want an item at zero, count it as zero with Set count.
What happens to sales made during the count?
The sale changes the item's quantity in Shopify. When you apply, that item is reported as Changed in Shopify and skipped rather than overwritten. Refresh it, recount if needed, and apply again.
Does counting change anything in Shopify?
No. Starting, scanning, reviewing and cancelling a count are all read-only. Shopify is written to only when you click Apply, and only for the items in the Differences list.
Can two people scan the same item?
Yes. Scans add up, whoever made them, and every entry shows its counter tag. If two people counted the same shelf by mistake, use Set count to put the item at the right number.
A barcode matches several variants.
Some products reuse one barcode across sizes or colours. The app lists the matching variants after the scan and you tap the right one. Giving each variant its own barcode in Shopify avoids the extra tap.
Can I reopen a count after review?
Yes, with Back to counting, as long as the count is In review. After a partial apply, the items already written to Shopify are frozen and the rest can still be counted.
Which scanner should I buy?
Any Bluetooth or USB barcode scanner that works as a keyboard, from any maker. Check that it can be set to send Enter after each code. The app has no list of supported models because it does not talk to the scanner directly.
Do I need to count everything at once?
No. A count stays open until you review it, so a full stocktake can run over several days. For a rotating count, tag products by aisle or by week and start a cycle count with that tag as the filter.
What happens to my data if I uninstall?
Every count, entry and adjustment stored for your store is deleted. Quantities already applied in Shopify stay as they are; Shopify's own inventory history keeps its record of the adjustments.
Support
Ask the people who built it.
When reporting a problem, include your store domain, the count name and location, what you scanned or typed, and the exact text of any banner. We never need your password.
Get help
A reply within one business day.
- [email protected]
- Support page
- Quick answers, known limits, what to include
- Hours
- Monday to Friday, 09:00–18:00 IST