Run Stock Counts Directly in Shopify POS: What Merchants and Developers Need to Know

Shopify POS now lets staff perform cycle and full stock counts on the sales floor, while admins retain review and approval controls in Shopify Admin. Learn how the new workflow works, who it impacts, and the steps you should take to adopt it today.

Run Stock Counts Directly in Shopify POS: What Merchants and Developers Need to Know
8 sections

Shopify’s latest merchant‑focused update brings inventory counting straight to the point of sale. Store staff can now run cycle or full stock counts in the Shopify POS app, while the existing review‑and‑approval process stays safely in Shopify Admin. This post breaks down what changed, who is affected, and the concrete actions you should take to get the most out of the new workflow.

Why This Update Matters

Inventory accuracy is a perennial pain point for retailers. Before this release, staff had to tally items on the floor, then manually enter counts in the Admin interface—a process that was time‑consuming and error‑prone. By moving the counting step into POS, Shopify reduces friction, speeds up cycle counts, and creates an audit trail that ties each adjustment to a specific employee and timestamp.

How the New POS Stock Count Flow Works

  • Create a Stock Count in Admin – Users with the “Manage inventory” permission navigate to Products → Stock counts, click “Create count,” select a location, choose a count type (cycle or full), and optionally filter which products to include.
  • Count Appears in POS – As soon as the count is saved, it shows up under the “Stock counts” tab in the POS app for the selected location.
  • Staff Record Quantities – Employees with the “Inventory” permission open the count in POS, scan barcodes or type quantities, and submit the count.
  • Review & Approve in Admin – Submissions do not immediately adjust inventory. Admin users review the count, compare it against system quantities, resolve discrepancies, and then approve the adjustment.
  • Audit Trail – Shopify logs who performed the count, when it was completed, and the before/after values, giving you a reliable compliance record.
  • Who Needs to Take Action?

    Merchants / Store Managers – Ensure the right staff have the new inventory permission in POS and the “Manage inventory” permission in Admin. Set up stock‑count schedules that align with your physical audit cycles.

    Developers – If you build custom integrations that touch inventory (e.g., third‑party ERP syncs, webhook listeners, or custom POS extensions), you’ll want to be aware of two things:

  • Permission scopes – The POS inventory permission maps to the existing write_inventory scope for API calls. Verify that any private apps or custom storefronts request this scope.
  • Webhooks & Events – The count submission triggers the inventory_counts/create webhook, but the actual inventory adjustment fires only after approval, emitting the standard inventory_levels/update webhook. Update your listeners accordingly to avoid premature stock updates.
  • Step‑by‑Step Setup for Merchants

  • Check Permissions – In Shopify Admin, go to Settings → Users and permissions. For each staff member who will count inventory, enable:
  • “Manage inventory” (admin side)
  • “Inventory” (POS side)
  • Create a Count – Products → Stock counts → Create count. Choose:
  • Location – The POS store where counting will happen.
  • Count type – Cycle (selected SKUs) or Full (entire catalog).
  • Products – Use filters or manually select items.
  • Schedule – Immediate or future date/time.
  • Run the Count in POS – Open the POS app, tap the “More” menu, select “Stock counts,” choose the pending count, and start scanning. You can adjust quantities on the fly.
  • Submit for Review – When finished, hit “Submit.” The count now appears in Admin under Products → Stock counts with a “Pending review” status.
  • Review & Approve – Admin users review each line item, resolve discrepancies (e.g., note damaged goods), and click “Approve.” Inventory levels update automatically.
  • Quick Developer Reference: API & Webhook Details

    Below is a minimal GraphQL mutation you can use to programmatically create a stock count – handy for automation or bulk scheduling.

    graphql

    mutation createStockCount($input: StockCountCreateInput!) {

    stockCountCreate(input: $input) {

    stockCount {

    id

    name

    status

    location {

    id

    name

    }

    }

    userErrors {

    field

    message

    }

    }

    }

    Variables example:

    {

    "input": {

    "name": "Weekly Cycle – Store 101",

    "locationId": "gid://shopify/Location/123456789",

    "type": "CYCLE",

    "productIds": ["gid://shopify/Product/111", "gid://shopify/Product/222"]

    }

    }

    Webhook subscription (REST):

    bash

    POST https://yourapp.com/webhooks

    Content-Type: application/json

    {

    "webhook": {

    "topic": "inventory_counts/create",

    "address": "https://yourapp.com/webhooks/inventory_counts",

    "format": "json"

    }

    }

    Remember: the count’s status will be PENDING_REVIEW until an admin approves it, at which point you’ll receive an inventory_levels/update webhook with the final quantity changes.

    Best Practices & Common Pitfalls

  • Don’t rely on immediate inventory changes – Submissions are only provisional. Build any downstream logic (e.g., reorder alerts) to listen for the final inventory_levels/update webhook.
  • Audit trail is intentional – Use the “History” tab on a stock count in Admin to troubleshoot mismatches. This is especially useful when multiple staff members count the same location.
  • Barcode accuracy – Ensure your POS devices have up‑to‑date barcode data. Missing SKUs will fall back to manual entry, which can slow the process.
  • Permissions hygiene – Grant inventory permission only to staff who need it. Over‑permissioning can lead to accidental count submissions.
  • What’s Next for Inventory Management?

    Shopify’s move to embed counting in POS is the first step toward a fully unified inventory workflow. Expect future enhancements such as automatic discrepancy alerts, AI‑driven demand forecasts, and deeper integration with third‑party fulfillment networks. Keeping your permissions, webhooks, and automation scripts up to date now will make those upcoming features easier to adopt.

    Conclusion & Call to Action

    Running stock counts directly from Shopify POS streamlines the audit process, reduces manual data entry, and gives you a clear, searchable audit trail. Merchants should update staff permissions and schedule their first POS count today. Developers, double‑check your inventory scopes and webhook listeners so your integrations stay in sync with the new approval flow. Need help configuring permissions or building a custom inventory webhook? Reach out to our Shopify Solutions team or drop a comment below—we’re happy to assist!

    Tags
    Sources

    Related Articles

    Unlock Transparency: The New Store Activity Log Lets You Track Every Change

    Unlock Transparency: The New Store Activity Log Lets You Track Every Change

    Shopify’s rebuilt Store activity log centralizes every modification—from products to payments—into one searchable timeline. Learn what’s new, who can see it, and how merchants and developers can act today.

    November 13, 20264 min
    Custom Draft Order Discounts Now Respect Presentment Currency

    Custom Draft Order Discounts Now Respect Presentment Currency

    Shopify now calculates custom draft‑order discounts in the draft’s presentment currency instead of the shop’s default. Learn what this means for merchants, developers, and how to update your workflow today.

    November 13, 20264 min
    Checkout Functions Get Smarter: `cart.deliverableLine` Now Includes Cost Modeling and Direct Cart Line Links

    Checkout Functions Get Smarter: `cart.deliverableLine` Now Includes Cost Modeling and Direct Cart Line Links

    Shopify’s latest checkout function update adds cost modeling to `cart.deliverableLine` inputs and ties them directly to their originating cart lines. Learn what this means for developers, how to adjust your code, and the best practices to stay compliant.

    November 13, 20264 min
    Case-Insensitive Market Metafields: What the 2027-01 Storefront API Change Means for Your Store

    Case-Insensitive Market Metafields: What the 2027-01 Storefront API Change Means for Your Store

    Shopify's Storefront API 2027-01 now matches Market.metafields keys case‑insensitively. Learn why this matters, who is affected, and how to update your apps and custom storefronts before the change breaks your logic.

    November 13, 20264 min