The short version
Shopify's admin already includes the core inventory toolkit: tracking per variant and location, five stock states, reasoned adjustments, stock counts, purchase orders, transfers and inventory reports.
Low-stock alerts and, on Basic or Lite, ABC analysis still take an app: for alerts, Shopify's Stocky migration guide points to Shopify Flow, a free app on the Basic, Grow, Advanced and Plus plans, and for ABC analysis, Shopify points to a reporting app.
The help pages we read in October 2026 tie a few other pieces to your plan, among them how many active locations you get and POS Pro for counting in the POS app.
Start with Track quantity and Cost per item, because without them there are no stock states and no inventory value.
This page walks the inventory cycle one step at a time. Each step gets a short explanation and a table of the tasks inside it, and every task links to the page on this site that answers it in full.
What Inventory Management Does Shopify Have Built In?
Key takeaway
Every step below happens in the same admin, mostly under Products › Inventory and Analytics › Reports. The table gives each step its screen, the plan boundary Shopify names for it, and the section of this page that explains it.
The inventory cycle in your Shopify admin
| Step | Where it lives in the admin | Plan boundary Shopify names | On this page |
|---|---|---|---|
| Track stock | Track quantity, in the Inventory section of a product or variant | None named | Tracking and stock states |
| Read stock states | Products › Inventory, or the inventory card on a product or variant page | None named | The five stock quantities |
| Keep product data | SKU, barcode and Cost per item on each variant; bulk editor; CSV | None named | SKUs, barcodes and cost |
| Sell at zero, or not | Continue selling when out of stock, on the product | None named; never applies to Shopify POS orders | When stock hits zero |
| Adjust and count | Adjustments on the Inventory page or a product or variant page; Inventory › Stock counts | Counting in the POS app needs POS Pro | Adjusting and counting |
| Restock | Purchase orders and transfers; low-stock alerts in Shopify Flow | Flow is free on Basic, Grow, Advanced and Plus | Purchase orders and transfers |
| Report and value | Analytics › Reports, Inventory category | Plan pages name inventory reports on Starter, Grow and Plus, and all reports on Basic, which Advanced includes; for ABC analysis on Basic or Lite, Shopify points to a reporting app | History and stock value |
| Run several locations | Settings › Locations | The number of active locations depends on the plan | Locations and Stocky |
| Hit a built-in limit | Static Cost per item, location-only transfers, one Vendor field, no emailed purchase orders | — | Where built-in stops |
Plan boundaries as named on Shopify's Inventory help pages, three POS inventory pages, the Shopify Flow page and the plan feature pages, read October 18, 2026. None named means none of those pages names one.
Tracking and Stock States: Switch It On First
Key takeaway
Tracking is a switch on each product or variant: in the Inventory section, turn on Track quantity. Shopify calls it useful when you need to monitor stock levels and prevent overselling, and adds that some product types work better without it. For anything you sell from a shelf, switch it on, including stock you sell on Shopify POS, where tracking also starts with the admin setting.
Tracking and stock-state questions we answer in full
| Your task | Where we answer it | What you'll find |
|---|---|---|
| Work out what an untracked product means for you | What “Inventory not tracked” means | Track quantity is off, so Shopify doesn't treat it as out of stock. |
| Switch tracking on or off for many products | Turning on tracking in bulk | Which bulk editor turns tracking on, and which turns it off. |
| Hold stock back as damaged, in quality control or as safety stock | What the Unavailable states do | On hand but can't be sold: Damaged, Quality control, Safety stock or Other. |
| Fix a product that shows Sold out with stock on hand | Sold out while you still have stock | The storefront sells only Available stock; committed units don't count. |
What On Hand, Available, Committed, Unavailable and Incoming Mean
Key takeaway
Once tracking is on, every variant carries five quantities at each location, and only one of them is stock a customer can buy. Shopify defines it in one line:
Available inventory refers to inventory that you can sell.
The other four explain why a product can look stocked in the admin and still read Sold out on the storefront. The table sets them side by side.
The five quantities at one location
| Quantity | What it counts at a location | Can you sell it? |
|---|---|---|
| On hand | Every unit you have there: the total of Committed, Unavailable and Available | Only its Available part |
| Available | Units that aren't committed or set aside as Unavailable, and that aren't Incoming | Yes |
| Committed | Units set aside, such as those in an unfulfilled order, reserved in a draft order, or in a transfer marked as ready to ship | No |
| Unavailable | Units set aside by apps or held as Damaged, Quality control, Safety stock or Other; still on hand | No |
| Incoming | Units on their way to the location from transfers or apps | Not until received; accepted units from a purchase order or transfer then become Available |
Definitions from Shopify's Understanding inventory states and Adjusting inventory quantities pages, read October 18, 2026.
The quantities move together. When you edit On hand, Available changes by the same amount, and incoming stock you accept from a purchase order or transfer switches to Available automatically once you receive it; apps may put received stock into a different state.
To see them for your own catalog, open Products › Inventory and pick a location. Every tracked variant is listed at each active location, and the state columns sit side by side.
- Products
- Inventory
SKUs, Barcodes and Cost per Item
Key takeaway
Stock is counted on variants, and so are the fields that identify it: an SKU for your own catalog, a barcode for scanning, and Cost per item for what each unit costs you. Settle them before you import or count anything, because bulk edits, CSV files and reports all work from them.
Cost per item deserves the most care. Shopify makes entering it optional, yet the Month-end inventory value report counts only products that have one, and each variant has a single static cost that stays fixed when you receive a purchase order or transfer.
Product data questions we answer in full
| Your task | Where we answer it | What you'll find |
|---|---|---|
| Record what each unit costs you | Adding Cost per item | Where Cost per item lives, and how to add it in bulk. |
| Reuse an SKU across variants | Duplicate SKUs | The admin only warns; Shopify Fulfillment Network requires unique SKUs. |
| Give two variants the same barcode | Shared barcodes between variants | Where a shared barcode causes trouble: scanner and SFN transfers. |
| Decide whether you need GS1 barcodes | Shopify barcodes | When you need GS1 barcodes and when you don't. |
| Get a barcode scanner working again | Barcode scanner not working | Check pairing, cart versus search bar, product setup and power; reset last. |
| Add the options and variants your stock belongs to | Shopify product variants | How to add and manage variants, the level at which Shopify counts stock. |
| Fix a product CSV that won't import | Shopify CSV import errors | What each product CSV import error means and the fix. |
| Re-import a product CSV without wiping data | Whether a CSV import overwrites products | Only with Overwrite products with matching handles selected. |
| Clear the "Inventory policy is not included in the list" error | The inventory policy CSV error | The CSV policy column accepts only deny (the default) or continue. |
When Stock Hits Zero: Keep Selling, Hide or Relabel
Key takeaway
Shopify's default protects you: once a tracked item reaches zero, customers can't buy it until you add stock. The option Continue selling when out of stock lifts that block, and Shopify names the cases it is meant for, among them preorders, stock that is about to arrive, and selling first and ordering supplies later.
Two limits travel with it. The option can be selected only when tracking is on, and it doesn't apply to orders placed from Shopify POS, where staff can keep selling at zero and below either way.
If you would rather stop selling at zero, the work moves to the storefront: hide sold-out products from collections, which also needs tracking on and isn't available on the Starter plan, where collections aren't included; hide sold-out variants; or change what the Sold out label says.
Out-of-stock questions we answer in full
| Your task | Where we answer it | What you'll find |
|---|---|---|
| Decide whether to keep selling past zero | Selling when out of stock | Only where you can genuinely ship late; it never covers POS sales. |
| Hide sold-out products from collections | Hiding out-of-stock products | The collection condition that does it, and which products it leaves visible. |
| Hide variants that have sold out | Hiding sold-out variants | Unpublishing the variant from each channel, and how Flow can automate it. |
| Show "Coming soon" instead of "Sold out" | Changing Sold out to Coming soon | An edit to the theme's default content: no code, default language only, not per product. |
| Restyle the Sold out badge | Changing the Sold out badge | In themes with badge controls, Theme settings set its position, shape and color. |
| Take orders before stock arrives | Shopify pre-orders | Native options versus an app, how payment is taken and how ship dates are shown. |
Adjusting and Counting Stock
Key takeaway
When you click a quantity in the desktop admin, on the Inventory page or a product or variant page, you choose one of two methods. Set to replaces the number, and the history shows the reason you chose, or Manually adjusted if you chose none. Adjust by adds or removes units, and the history keeps showing the movement even when you add a reason. The Add reason option isn't available in the Shopify mobile app. The reasons Shopify offers are:
- Correction, for an inventory error or as a general reason
- Count, Received and Return restock
- Damaged, Theft or loss, and Promotion or donation
A stock count checks what is physically on the shelf against On hand, so you catch damage, admin errors and theft before they turn into stockouts or overstock. You create and manage counts in the admin on a desktop browser, and each count covers one location.
At locations with a POS Pro subscription, staff can also run the count in the Shopify POS app, which needs POS version 11.16 or later.
Adjustment and count questions we answer in full
| Your task | Where we answer it | What you'll find |
|---|---|---|
| Pick the right reason for a quantity change | What the adjustment reasons mean | In Set to, your reason becomes the Activity text; none shows Manually adjusted. |
| See who changed a quantity, when and why | Viewing adjustment history | Where the 180-day history sits, and where older changes may be. |
| Run a full stock count | Running a stock count | Counted quantities reach inventory only when a manager approves the count or someone completes it. |
| Count and receive stock in the POS app | Shopify POS Pro | What POS Pro unlocks, including its in-store inventory tools, and when it pays. |
Changing Many Quantities at Once: Bulk Editor or CSV
Key takeaway
Adjusting one variant at a time stops being practical after a large delivery or a full recount. There are two bulk routes, and the first trades history for speed:
When you use the bulk editor, you set absolute inventory quantities without specifying origin and destination, so this method doesn't create an audit trail of inventory movements.
The second is an inventory CSV. You can export it with all inventory states, the recommended format that protects against accidental overwrites, or with Available quantities only, which is simpler but has no such protection. The file can't exceed 15 MB.
Restocking: Purchase Orders, Transfers and Low-Stock Alerts
Key takeaway
Restocking uses two records that work as a pair. The purchase order holds the deal with your supplier, listing products, quantities, costs, payment terms and supplier details, while the goods themselves move on a transfer:
Each purchase order links to an inventory transfer that tracks the shipment and lets you receive items.
Once the transfer is in progress, its stock shows as Incoming at the destination; when you receive it, in full or in part, the units you accept become Available, unless the product isn't stocked at that location, and rejected units don't change your inventory. A purchase order isn't required, though: you can receive from a supplier on a standalone transfer. Suppliers are records of their own in the admin, while payments to them are made outside Shopify.
For automated low-stock alerts, Shopify's Stocky migration guide points to Shopify Flow, which is a free app on the Basic, Grow, Advanced and Plus plans. Minimum and maximum levels per variant, for transfers and purchase orders, can be set with custom metafield definitions.
Restocking questions we answer in full
| Your task | Where we answer it | What you'll find |
|---|---|---|
| Choose between a purchase order and a transfer | Purchase order vs inventory transfer | The purchase order records the agreement; the transfer moves and receives stock. |
| Buy one product from more than one supplier | More than one supplier per product | One Vendor field; purchase orders auto-fill the Supplier SKU from earlier orders with that supplier. |
| Get a purchase order into a spreadsheet | Exporting a purchase order | Not from the order: a PDF, or an Analytics report where available. |
| Add shipping or duties to a delivery | Cost adjustments on a transfer | It records fees on a shipment; Cost per item stays fixed. |
| Receive one transfer in several deliveries | Transfers in more than one shipment | Yes: add shipments while it's Ready to ship or In progress. |
| Call off a transfer | Cancelling a transfer | Possible in Draft or Ready to ship; committed items return to Available. |
| Remove a transfer completely | Deleting a transfer | Delete it while it's a Draft; cancel it once it's Ready to ship. |
| Get warned before something runs out | Low-stock alerts | Free Flow templates email you when a variant runs low, on Basic and higher plans. |
History and Stock Value: Where the Numbers Live
Key takeaway
For a single product or variant, View adjustment history shows only the last 180 days of changes. Older changes may sit in the Inventory adjustment changes report, which filters adjustments by SKU, location, staff member, app and adjustment reason. Inventory metrics in Analytics reach back only to October 1, 2023.
Stock value lives in Analytics. Filter Analytics › Reports by the Inventory category and open Month-end inventory value, which totals On hand stock for products that carry a Cost per item, so a product without a cost adds nothing to it; the report covers variants adjusted or ordered in the last three years.
- Analytics
- Reports
From October 1, 2026, Shopify changed how inventory reports measure stock, leaving older data as it was:
Starting October 1, 2026, inventory reports measure stock by On hand quantity instead of Available quantity.
Reporting and valuation questions we answer in full
| Your task | Where we answer it | What you'll find |
|---|---|---|
| Put a value on the stock you hold | The inventory valuation report | Month-end inventory value totals stock at Cost per item, as a month-end snapshot. |
| See stock value per location | Inventory value by location | Two fields that add it to a custom exploration in Analytics. |
| Read inventory and profit metrics in Analytics | Inventory and profit in Shopify Analytics | Where the inventory and profit figures sit in Analytics, and what they leave out. |
Several Locations, Life After Stocky, and the Limits
Key takeaway
Our multi-location inventory guide covers this whole section in depth, from plan limits and order routing to what replaced each Stocky feature and whether native tools, an app or a custom build fits.
Shopify defines a location as any physical place where you sell products, fulfill orders or stock inventory. Stock is tracked separately at each one, a product has to be active at a minimum of one location to be sellable, and when you add a location, new products are stocked there by default with a quantity of 0. How many active locations you can run depends on your plan.
Location and channel questions we answer in full
| Your task | Where we answer it | What you'll find |
|---|---|---|
| Know which location a TikTok Shop order draws from | TikTok Shop and your locations | By default, a location that can fill the whole order. |
| Keep stock in step across several stores or marketplaces | Inventory sync between stores | The inventory sync apps compared, for merchants who run more than one store. |
| Sell bundles built from other products' stock | How many bundles you can sell | How component stock limits a bundle, and where Shopify's free bundles app stops. |
Stocky closed on August 31, 2026, and its APIs stopped working the same day; transfers, purchase orders, quantity adjustments, stock counts and reports on historical inventory changes now run in the admin, as Shopify's Stocky migration page lists. Your Stocky history didn't come along: old purchase orders and stocktakes didn't move into Shopify automatically, and Shopify promised read-only access to export that data for at least 90 days after August 31, 2026.
Where the built-in toolkit stops
Key takeaway
The same migration page is candid about where the admin stops short:
- Each variant has one static Cost per item, which stays fixed when a purchase order or transfer is received.
- Transfers move inventory between locations only, not between bins or zones inside one location.
- Each product has a single Vendor field.
- You can't email a purchase order from the admin.
- The native purchase order CSV upload only adds line items to a new draft purchase order.
For planning, the page points to Sidekick, which can help forecast demand, identify products that need replenishing, and draft the purchase order or transfer for you. If your stock also has to stay in step with accounting or warehouse systems, our guide to Shopify ERP integration compares connectors, iPaaS and custom builds.
The Bottom Line
Key takeaway
Apart from Flow for low-stock alerts and a reporting app for ABC analysis on Basic or Lite, you don't need an app to manage inventory in Shopify until you reach one of the edges listed under where the built-in toolkit stops. What decides how well it works is the order you set it up in: tracking first, then clean product data and costs, then counting and restocking routines, with reports last, because they only reflect what the earlier steps recorded.
Frequently Asked Questions
Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Directs the editorial process behind Ecom Store Pro: sets its topics and the rules every AI-written page must pass before publication.
This page was written by AI. Separate AI agents that did not write it check its figures and claims against official sources and test its links and interactive tools. A human editor sets the site's editorial direction, topics and rules and checks that pages are complete and display correctly, but does not check their facts or edit their text. Details may change — always confirm critical data at shopify.com.
Editorial PolicySome links in this article are affiliate links. If you sign up for a Shopify store through these links, we may earn a commission at no extra cost to you. Read our full advertising policy.
