Inventory Synchronization
Learn how to synchronize inventory effortlessly from HotWax Commerce to Shopify
Syncing Inventory From HotWax Commerce To Shopify
There are two ways to update the inventory count on Shopify: through webhooks or batch jobs.
You can keep your inventory data synced in real-time with Shopify's webhooks. By subscribing to the 'inventory level update' webhook, you can trigger synchronization whenever there's an inventory update in HotWax Commerce. Keep in mind that Shopify can't guarantee webhook delivery, so it's important to periodically reconcile your data with Shopify to ensure everything stays up-to-date.\
HotWax Commerce suggests using batch jobs at regular intervals to sync inventory in bulk, ensuring no product updates are missed. To accomplish this, HotWax Commerce provides the option to schedule the 3 different jobs to offer retailers the flexibility to schedule as per their business requirements.
Upload Recent Inventory Change
The Upload Recent Inventory Changes
job updates the inventory on Shopify through the following steps:
Identifying Products with Inventory Changes: The 'Upload recent inventory change' job examines the inventory records of HotWax Commerce's products. It identifies products that have undergone inventory changes since the last synchronization. In the following example, there are five products with inventory records in HotWax Commerce:
Product List | Inventory Count at 1:00 PM | Inventory Count at 1:15 PM |
---|---|---|
Product A | 100 | 95 |
Product B | 50 | 50 |
Product C | 25 | 30 |
Product D | 100 | 100 |
Product E | 80 | 80 |
At 1:15 PM, the job that runs every 15 minutes detects that there are inventory changes for Product A and Product C that require syncing with Shopify after the 'Upload recent inventory change' task is executed.
Comparing Inventory counts between HotWax Commerce and Shopify: To update its inventory records, HotWax Commerce initiates an API call to retrieve information from Shopify about products that have undergone changes in HotWax Commerce. The inventory counts for these products in Shopify are then compared with the inventory counts that HotWax Commerce has on file.
Product List | Inventory Count in Shopify | Inventory Count in HotWax Commerce | Inventory Difference |
---|---|---|---|
Product A | 100 | 95 | -5 |
Product C | 25 | 30 | 5 |
Uploading accurate inventory on Shopify: After comparing inventory changes, the 'Upload recent inventory change' job records the difference and generates a GraphQL file for the affected products. This file is then uploaded to Shopify, which reads it and updates the 'available adjustments' field to either add or deduct inventory based on the changes.
Product List | Inventory Count in Shopify | Available Adjustments | Updated Inventory Count in Shopify |
---|---|---|---|
Product A | 100 | -5 | 95 |
Product C | 25 | 5 | 30 |
When updating inventory on Shopify, HotWax Commerce ensures that the location in Shopify matches the location in HotWax Commerce for merchants. If users utilize a non-Shopify POS, all physical locations in HotWax Commerce will be mapped to one virtual location in Shopify. However, if merchants use Shopify POS and have multiple store locations and an eCom location for online orders, all Shopify locations will be mapped one-to-one with HotWax locations. This means that any inventory updates made to the retail stores and warehouses in HotWax will be reflected in the specific store locations and eCom locations in Shopify for merchants.
Hard Sync
Sometimes, there may be a slight delay of a few milliseconds between two inventory update jobs from other systems. For instance, if job-1 runs at 1:00:00 PM and job-2 runs at 1:15:00 PM, job-2 checks the inventory changes that happened between 1:00:00 PM and 1:15:00 PM.
However, if a sale occurs in-store at 12:59:59 PM and HotWax Commerce receives an inventory update from the POS at 1:00:01 PM, both jobs won't detect the changes in inventory.
To prevent this issue, merchants can use Hard Sync
job once a day to synchronize the inventory counts of all products from HotWax Commerce to Shopify. The synchronization is achieved through the GraphQL file, similar to how inventory synchronization is performed for products with recent updates.
Push Updated Inventory Deltas to Shopify
The Push Updated Inventory Deltas to Shopify
job syncs only recent inventory deltas to Shopify. If a product is sold too fast on Shopify and orders are not yet downloaded in HotWax Commerce, then inventory of this product gets out of stock on Shopify, however, inventory in HotWax Commerce is still available. In such cases, the inventory of these products also gets reset with the current ATP in HotWax Commerce with the previous jobs. And due to this Shopify was overselling the inventory.
To improve inventory accuracy, this job only syncs the inventory variances recorded in HotWax commerce rather than resetting the inventory. This means any variance—whether negative (Such as damaged, lost, POS Sales) or positive (TO receiving, Returns restock) are updated to the respective Shopify locations.
For example, Product A has 5 units listed in both Shopify and HotWax Commerce. Shopify then receives 4 orders for this product, which have not yet been downloaded into HotWax Commerce. Meanwhile, one unit of Product A is reported in HotWax Commerce as damaged or missing, reducing the online ATP in HotWax Commerce to 4. In this scenario, HotWax Commerce will now push a -1 inventory variance to Shopify instead of resetting the inventory to 4. The ATP on Shopify will be adjusted to 0, ensuring the product is marked as Out of Stock
in Shopify, as Shopify has already received orders for 4 units.
In another example, if a store receives a transfer order for Product B with 2 units, which originally had 10 units, then a variance of 2 will be pushed on Shopify to update the Shopify ATP to 12.
Last updated