---
title: HotWax Commerce adds a durable event ledger for Shopify inventory publishing
description: HotWax Commerce records inventory events in a durable ledger, batches Shopify updates safely, and exposes the publishing flow in Company.
---

[![HotWax Commerce](https://www.hotwax.co/hs-fs/hubfs/hotwax-logo.png?width=1924&height=609&name=hotwax-logo.png "HotWax Commerce")](https://www.hotwax.co/)

[![HotWax Commerce](https://www.hotwax.co/hs-fs/hubfs/Common%20assets/Logos/HotWax/HWCLogoDarkMode.png?width=1924&height=609&name=HWCLogoDarkMode.png "HotWax Commerce")](https://www.hotwax.co/)

☰

- Product 
    - Overview 
          - [Order Management System](https://www.hotwax.co/product/omnichannel-order-management-system/)
          - [Store Inventory Management](https://www.hotwax.co/solution/store-inventory-management)
          - [Omnichannel Suite](https://www.hotwax.co/product/omnichannel-order-management-system-for-shopify/)
          - [OMS Architecture](https://www.hotwax.co/product/technology/oms-architecture)
          - [MCP Server](https://www.hotwax.co/product/technology/mcp-server)
          - [AI Powered Order Routing](https://www.hotwax.co/product/technology/ai-powered-order-routing)
          - [FAQ](https://www.hotwax.co/frequently-asked-questions)
          - [Product Updates](https://www.hotwax.co/product-updates)
          - [Knowledge Base](https://www.hotwax.co/hotwax-commerce-documentation)
    - Integrations 
          - [Shopify](https://www.hotwax.co/shopify-order-management-integration)
          - [NetSuite](https://www.hotwax.co/hotwax-netsuite-integration)
          - [All Integrations](https://www.hotwax.co/all-integrations/)
- Use Cases 
    - By Business Benefits 
          - [Prevent Overselling](https://www.hotwax.co/use-cases/prevent-overselling)
          - [Unified Inventory](https://www.hotwax.co/solution/unified-inventory/)
          - [Order Routing](https://www.hotwax.co/solution/configurable-order-routing)
          - [Ship From Store](https://www.hotwax.co/solution/ship-from-store-software)
          - [Buy Online Pick-Up In Store](https://www.hotwax.co/solution/buy-online-pick-up-in-store-bopis-software/)
          - [Pre-Orders](https://www.hotwax.co/solution/pre-orders/)
          - [Inventory Transfers](https://www.hotwax.co/inventory-transfers)
          - [Cycle Counts](https://www.hotwax.co/cycle-count)
          - [Return In Store](https://www.hotwax.co/solution/buy-online-return-in-store-boris-software)
          - [Retail Sales Audit](https://www.hotwax.co/product/omnichannel-retail-sales-audit-oresa/)
    - By Business Model 
          - [Footwear](https://www.hotwax.co/industries/footwear)
          - [Jewelry](https://www.hotwax.co/industries/jewelry)
          - [Fashion & Apparel](https://www.hotwax.co/industries/apparel-and-fashion)
          - [Beauty](https://www.hotwax.co/industries/beauty-and-personal-care)
          - [Travel](https://www.hotwax.co/industries/travel-and-bags)
- Resources 
    - [Blog](https://www.hotwax.co/blog)
    - [Podcast](https://www.hotwax.co/podcast)
    - [Whitepaper](https://www.hotwax.co/whitepaper)
    - [Luxury Order Management](https://www.hotwax.co/order-management-system-for-luxury-brands)
    - [Comparing Order Management Capabilities B/W Shopify and HotWax](https://www.hotwax.co/comparing-order-management-capabilities-between-shopify-and-hotwax)
    - [How To Do By Online Pick-Up In Store Right](https://www.hotwax.co/how-to-do-buy-online-pick-up-in-store-right)
    - [Solution Briefs](https://www.hotwax.co/solution-briefs)
    - [Demo Videos](https://www.hotwax.co/demo-videos/)
    - [Sample BI Reports](https://www.hotwax.co/business-intelligence-bi-reports)
- Company 
    - [Our Story](https://www.hotwax.co/about-us/our-story/)
    - [Team](https://www.hotwax.co/about-us/)
    - [Partners](https://www.hotwax.co/become-a-partner)
    - [Customers](https://www.hotwax.co/customers)
    - [Pressroom](https://www.hotwax.co/hotwax-commerce-pressroom)
    - [Social Impact](https://www.hotwax.co/social-impact-hotwax-commerce)
    - [Events](https://www.hotwax.co/events-and-conferences)
    - [Security](https://www.hotwax.co/privacy-and-security)

[Contact Us](https://cta-na2.hubspot.com/web-interactives/public/v1/track/click?encryptedPayload=AVxigLLk4qu1XJKsAD%2Fnh%2FIskYOzRsKM90SmmLg6TDdeS094zUNQCnpKW3qraBc%2F9AKqv3oTNPIuQu%2F8e1WLQuzA8qEWBwZYMpMN0AOwdf5g3EqyhyLoXlhxSkfRC9Zl6t9p1XGV63hHv22mEINsPrMZqtXXevms0XlmddQs49GljNzU&portalId=6357099)

[Product updates](https://www.hotwax.co/product-updates)

# HotWax Commerce adds a durable event ledger for Shopify inventory publishing

HotWax Commerce now records the changes behind Shopify inventory updates in a durable event ledger. Retailers can follow a receipt, return, or reservation from its source through the quantity calculation and the message sent to Shopify. If delivery needs a retry, HotWax keeps the original publishing decision attached to that message.

Published **August 1, 2026**

Type **Product Update**

Author **Aditya Patel**

HotWax Commerce now records the changes behind Shopify inventory updates in a durable event ledger. Retailers can follow a receipt, return, or reservation from its source through the quantity calculation and the message sent to Shopify. If delivery needs a retry, HotWax keeps the original publishing decision attached to that message.

Inventory movement and online availability are not always the same thing. A receipt might replenish stock held back for store shoppers without making another unit available online. The new flow separates what happened in the order management system (OMS) from how much Shopify should change.

## Record the event once

The supporting data feed passes a source reference after the business transaction commits. The event controller reads the saved receipt, inventory detail, or configuration change instead of accepting a quantity calculated by the caller.

Each ledger row identifies the event type, source reference, inventory channel, and Shopify inventory item. An inventory channel connects a group of facilities to a Shopify inventory location. A purchase receipt, transfer receipt, return restock, or reservation remains distinguishable within the same flow.

That combination also prevents the same source event from creating another adjustment for the same channel and inventory item when the feed is replayed. Configuration changes with a future start or end date enter the calculation when that date takes effect.

## Publish the sellable change, not every movement

HotWax calculates available-to-promise (ATP) inventory, the quantity available to sell after reservations, before and after the event. It reconstructs the affected facility's quantities from the saved inventory details, applies its minimum stock and order-routing eligibility, and combines the eligible facilities in the channel. Facilities not changed by the event contribute their stored sellable inventory counts. The channel calculation then applies channel-level safety stock and, when inventory reservation is enabled, deducts open order demand still in virtual queues. The calculated channel availability cannot fall below zero.

For example, a store holds back five units of a product for store shoppers. Its ATP quantity is four, so its online contribution is zero: `max(0, 4 - 5) = 0`. Receiving one more unit raises ATP to five, but the online contribution remains zero: `max(0, 5 - 5) = 0`. With the other channel quantities and rules unchanged, that receipt has no effect on Shopify availability. HotWax records a no-change decision and sends no adjustment.

A later receipt of two units raises the same store's ATP from five to seven. The store's online contribution rises from zero to two. With no other channel deduction, HotWax records a change of two, not the store's full inventory quantity. A facility excluded from order routing can likewise receive inventory without adding stock to that channel's online availability.

## Follow the event through to Shopify

The ledger keeps quantity calculation separate from delivery. A publisher groups pending changes by inventory channel, inventory item, and event type by default. This keeps one item's failure from blocking unrelated items and preserves the reason for the adjustment.

For a Shopify connection with real-time inventory push enabled, the flow looks like this:

[![Shopify inventory publishing flow, from a committed source event through sellable quantity calculation, batching, delivery, and retry.](https://raw.githubusercontent.com/hotwax/product-updates/5fa9046f9c100a8b36c4967708de5e501961c53a/assets/product-updates/2026-08/shopify-inventory-publishing-flow.png)](https://raw.githubusercontent.com/hotwax/product-updates/5fa9046f9c100a8b36c4967708de5e501961c53a/assets/product-updates/2026-08/shopify-inventory-publishing-flow.png)

The publishing job can drain a channel's pending queue into saved messages. Old ledger rows become eligible for cleanup only after their work reaches a terminal state and the retention period passes. An absolute inventory reset can supersede unbatched changes when HotWax needs to reassert the authoritative quantity. Messages already saved for delivery retain their original assignment and request.

## Retry the same Shopify adjustment without adding it twice

There are two separate protections. The ledger key prevents HotWax from recording a source event twice. A Shopify idempotency key prevents a retry of the resulting outbound message from applying its inventory adjustment again.

HotWax reserves a system message ID when it builds a batch. It saves that ID as the `idempotencyKey` passed to Shopify's `inventoryAdjustQuantities` mutation through the `@idempotent` directive. The request, destination connection, and key stay fixed. A retry sends the saved message rather than generating a new key or recalculating its quantities.

For example, Shopify might apply an adjustment of two units before the connection drops and HotWax receives the response. Retrying that message with the same key and parameters lets Shopify recognize the earlier operation instead of adding two more units. A separate receipt creates a separate message and key, even if its quantity happens to be identical.

[Shopify's idempotency guide](https://shopify.dev/docs/apps/build/apis/graphql-admin/implementing-idempotency) documents a 24-hour recognition window. Within that window, a retry of a successful request returns the stored result without repeating the operation. A retry after 24 hours is not protected by that key. The August release calls Shopify API version `2026-01`, which supports the directive. System message IDs are unique within one OMS instance; separate instances sharing a Shopify shop must not reuse a key for different adjustments.

## Monitor the flow from Company

The `Inventory Sync` workspace in Company shows waiting events, batches, jobs, recent reset runs, and event history for each Shopify connection. Teams can see whether inventory is waiting to be batched, in flight, failed, or delivered, then follow the message back to the source events behind it.

Company also exposes whether the supporting data feeds run in manual or real-time mode. Because this setting applies across the OMS, the interface presents it as an operational control rather than a preference for one individual user.

The result is a publishing flow that answers what changed sellable inventory, what HotWax sent, and which saved message needs attention when delivery fails.

## More from this month

### [Release Note August 2026 apps release notes Read note](https://www.hotwax.co/product-updates/release-notes/2026-08)

### [Product Update HotWax Commerce keeps Shopify fulfillment locations and OMS allocations aligned Read update](https://www.hotwax.co/product-updates/2026-08/shopify-fulfillment-location-reconciliation)

### [Product Update HotWax Commerce brings NetSuite subsidiary mapping into Company Read update](https://www.hotwax.co/product-updates/2026-08/multi-company-oms-and-netsuite-subsidiary-mapping)

[![HotWax Commerce](https://www.hotwax.co/hubfs/Hotwax-2021/HotWax_February2020/Images%20Icons,%20Apparel%20background,%20Hexagon/logo-hotwax-dark.svg "HotWax Commerce")](https://www.hotwax.co/)

### Connect

### Headquarters

175 S Main St Suite 1310,   
 Salt Lake City, UT 84111

- Product 
    - [Omnichannel Order Management](https://www.hotwax.co/product/omnichannel-order-management-system/)
    - [FAQ](https://www.hotwax.co/frequently-asked-questions)
    - [Product Updates](https://www.hotwax.co/product-update)
    - [Documentation](https://www.hotwax.co/hotwax-commerce-documentation)
- Use cases 
    - [Buy Online Pick-Up In Store](https://www.hotwax.co/solution/buy-online-pick-up-in-store-bopis-software/)
    - [Configurable Order Routing](https://www.hotwax.co/solution/configurable-order-routing)
    - [Ship From Store](https://www.hotwax.co/solution/ship-from-store-software)
    - [Unified Inventory](https://www.hotwax.co/solution/unified-inventory/)
    - [Pre-Orders](https://www.hotwax.co/solution/pre-orders/)
    - [Buy Online Return In Store](https://www.hotwax.co/solution/buy-online-return-in-store-boris-software)
    - [Store Inventory Management](https://www.hotwax.co/solution/store-inventory-management)
- Solutions 
    - [Omnichannel OMS for Shopify](https://www.hotwax.co/product/omnichannel-order-management-system-for-shopify/)
    - [Omnichannel Retail Sales Audit](https://www.hotwax.co/product/omnichannel-retail-sales-audit-oresa/)

© 2026 HotWax Commerce

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Aditya Patel",
    "url" : "https://www.hotwax.co/product-updates/author/aditya-patel"
  },
  "datePublished" : "2026-08-01T00:00:00.000Z",
  "headline" : "HotWax Commerce adds a durable event ledger for Shopify inventory publishing",
  "mainEntityOfPage" : {
    "@id" : "https://www.hotwax.co/product-updates/2026-08/event-driven-shopify-inventory-publishing",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://www.hotwax.co/hubfs/hotwax-logo.png"
    },
    "name" : "HotWax Commerce"
  }
}
```