A customer emails: "My unit stopped working, it's under warranty." Which unit did they get? Or a supplier calls about a bad batch of serials, and you need every customer who received one. If the answer lives in a stack of packing notes or someone's memory, you'll spend the afternoon on it. Serial tracking turns it into a search.
What Shopify does and doesn't do
Shopify tracks inventory by quantity per variant and location. It has no field for a serial number on an order line, and no lot or expiry date either. Merchants have asked for it on the Shopify forum for years, and the answer is still an app or a workaround. Even a July 2026 review of Shopify's inventory features lists serial tracking as not natively supported.
Serial numbers vs lot numbers
- A serial number identifies one unit. Electronics, tools, bikes, anything with a warranty card. One per item shipped.
- A lot (or batch) number identifies a production run. Supplements, cosmetics, food, anything with an expiry date. Many units share one.
The tracking problem is the same: record which number went out on which order, and be able to search it later. Lots usually also need an expiry date.
Four ways to track serials
1. Type it into the order note or timeline
Free and immediate. The packer adds "SN 4471-0932" as a comment on the order. It works until you need to find it: the timeline isn't something you can search for all orders with a given serial, and a typo is invisible.
2. A shared spreadsheet
Order number, product, serial, date, packer. Searchable, and you can sort for recalls. It depends on someone filling it in every time, usually after the box is sealed, which is exactly when the serial is no longer visible.
3. An order metafield
Add a custom field to orders (Settings → Metafields and metaobjects → Orders) called "Serial numbers" and fill it in on the order page. It's attached to the order, so support sees it. It's still typed by hand, and Shopify doesn't check it against anything.
4. An app that records it while packing
The packer scans the serial barcode right after scanning the item into the box. The app saves it on the order, refuses a duplicate, and lets you search later. This is the only option that catches mistakes as they happen.
If you need serials tracked from the moment stock arrives, through every shelf, until it sells, that's a job for an inventory or warehouse app that receives serialized stock (SKUSavvy is one that does this for Shopify). Most small stores only need the outbound part: which serial went to which customer.
What a good setup gets right
- Capture it at the bench. The serial is on the unit in the packer's hand. Ten minutes later it's sealed in a box.
- Scan, don't type. Serials are long and full of 0s and Os. Most products print them as a barcode; scan it.
- Catch the wrong barcode. The most common mistake is scanning the product's own barcode instead of the serial. A good tool notices.
- Stop duplicates. The same serial packed twice is a typo or a problem worth knowing about right then.
- Put it on the order. Whoever answers the warranty email should see the serial on the Shopify order without asking the warehouse.
- Make it searchable. A recall should be one search that returns every order, customer and date, ready to export.
How Pickadoodl does it
I build Pickadoodl, and serial and lot tracking is on every plan, including Free. Choose the products that need numbers in Settings. While packing, the packer scans a serial for each unit, or a lot for each line with an optional expiry date, and the order can't be marked packed until they're recorded. Pickadoodl stops a product barcode scanned by mistake, a repeated serial and a lot in the wrong format. When packing finishes, the numbers go into a pinned "Serial and lot numbers" field on the Shopify order, and Reports → Who got this? finds every order a serial or lot went to.
What it doesn't do: count stock by serial or lot. It records what went out, not what's on the shelf.