> For the complete documentation index, see [llms.txt](https://docs.hotwax.co/documents/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hotwax.co/documents/learn-shopify/troubleshooting-reference/inventory.md).

# Inventory Sync

Troubleshoot inventory sync issues between HotWax Commerce and Shopify.

**Scenario:** A product's inventory in Shopify differs from the quantity expected from HotWax Commerce.

Start with the affected shop, variant, and Shopify location. An inventory difference can come from the selected location, the publication model, inventory rules, or a delayed or failed delivery. A successful job run alone does not prove that the expected quantity reached Shopify.

## Choose the right comparison

Confirm the location mapping and the inventory model configured for this connection before comparing quantities.

| Publication model | HotWax quantity to investigate                                                  | Shopify context                              |
| ----------------- | ------------------------------------------------------------------------------- | -------------------------------------------- |
| Aggregate channel | Available-to-promise inventory calculated for the channel's facility group      | The mapped aggregate location                |
| Physical location | Facility ATP changes published by physical-location events to Shopify Available | The Shopify location mapped to that facility |

Review [Shopify mappings in Company](https://github.com/hotwax/oms-documentation/tree/user-guides-pub/documents/system-admin/administration/company/manage-shopify-mappings.md) and [the inventory publication models](/documents/learn-shopify/shopify-reference/inventory/inventory-sync.md). Do not compare a single store's quantity with an aggregate channel. Both event paths publish available inventory. Compare Shopify On hand only when investigating the separate `Reset physical on-hand` reconciliation.

```mermaid
flowchart TD
    accTitle: Investigate a Shopify inventory difference
    accDescr: Identify the shop, variant, and location, confirm mapping and quantity basis, compare inventory and adjustment history, then investigate publication delivery before an approved recovery.
    A[Identify shop, variant, and location] --> B[Confirm mapping and quantity basis]
    B --> C[Compare inventory and adjustment history]
    C --> D{Expected quantity reached Shopify?}
    D -->|Yes| E[Check later activity and inventory rules]
    D -->|No| F[Inspect event, batch, and publisher]
    F --> G[Correct cause and use approved recovery]
    G --> C
```

## Verify in HotWax Commerce

1. Open the affected Shopify connection in the Company App and confirm its shop and Product Store.
2. Open `Inventory sync`. Use the channel or physical-location path that matches the selected Shopify location.
3. Check the expected quantity and relevant inventory rules. For an aggregate channel, review the facility group, member facilities, and ATP calculation, including reservations and exclusions.
4. Review waiting events and batches, the publisher's pause state and schedule, and its latest run. Open the affected event and batch to check delivery state and errors.

See [Monitor Shopify inventory sync](https://github.com/hotwax/oms-documentation/tree/user-guides-pub/documents/system-admin/administration/company/manage-shopify-inventory-sync.md) for event, batch, publisher, and reset investigation.

## Verify in Shopify

1. Open Shopify Admin and go to `Products` > `Inventory`.
2. Select the mapped location and find the affected variant by its SKU. For event sync, compare `Available`. `Available` and `On hand` can differ because Shopify also tracks committed and unavailable inventory; an on-hand reset is a separate investigation.

<figure><img src="https://1292394199-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq42f0puI9OYah51t08oQ%2Fuploads%2Fgit-blob-f00523643a01a5fce573a56c974d3bf5aace0d25%2Fshopify-location-inventory.jpg?alt=media" alt="Shopify demo inventory at the Online Store location showing variant SKUs and separate Unavailable, Committed, Available, On hand, and Incoming columns"><figcaption><p>In this demo example, XS / Blue at Online Store has 1,239 Available and 1,267 On hand. For event sync, compare Available; On hand is a separate quantity.</p></figcaption></figure>

3. Open the variant and check `Inventory tracked`. If the variant should track stock but this setting is off, confirm the approved setup with your implementation team. Follow [Shopify's inventory tracking setup](https://help.shopify.com/en/manual/products/inventory/setup/set-up-inventory-tracking).

<figure><img src="https://1292394199-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq42f0puI9OYah51t08oQ%2Fuploads%2Fgit-blob-62bf7ef1488294c44985b60f3d48591d4133b7c3%2Fshopify-variant-inventory-tracking.jpg?alt=media" alt="Shopify variant inventory card showing Inventory tracked enabled and Broadway with 35 Committed, 0 Available, and 35 On hand"><figcaption><p>Abominable Hoodie XS / Blue in hotwax-demo: inventory tracking is enabled. Broadway's 35 On hand are all Committed, leaving 0 Available.</p></figcaption></figure>

4. In the variant's `Inventory` section, select `View adjustment history`.
5. Confirm the location in the history view. Review the time, activity, creator, signed change, and resulting quantity. Check for later adjustments or fulfillment activity after the HotWax update.

<figure><img src="https://1292394199-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq42f0puI9OYah51t08oQ%2Fuploads%2Fgit-blob-2316a2f6bdd9f900de2396bd73358c62bf0a5231%2Fshopify-adjustment-history.jpg?alt=media" alt="Shopify adjustment history for Abominable Hoodie XS Blue at Online Store showing HotWax Order Management corrections and movement receipts with separate quantity totals"><figcaption><p>This demo history shows HotWax Order Management corrections and movement receipts at Online Store. Check the location, creator, and later activity before comparing totals.</p></figcaption></figure>

## Resolve and verify

If the expected change is missing, return to the matching OMS event, batch, and publisher. Correct the cause before retrying. An old Shopify history entry alone does not establish which recovery is appropriate.

`Resend` sends the existing frozen payload; it does not recalculate current inventory. Use the appropriate reset or reconciliation only after confirming the target, quantity basis, and recovery scope with the technical team.

After recovery, refresh both sides and verify the affected variant at the mapped location. If the difference persists, share the shop, variant/SKU, location, expected and actual quantities, observation time, and relevant event, batch, or job identifiers with HotWax Commerce support.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hotwax.co/documents/learn-shopify/troubleshooting-reference/inventory.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
