Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Discover how HotWax Commerce's Job Manager App streamlines order, product, and inventory operations with its workflow management features.
HotWax Commerce’s Job Manager App enables you to view, schedule, and update job workflows running in the HotWax Commerce's Order Management System for operations related to orders, products, inventory and more.
To directly access the Job Manager application, click on the provided or navigate to the and locate it within the Workflow section.
The Launchpad serves as the central hub for all HotWax Commerce apps, providing easy access to development, user acceptance testing (UAT), and production versions of the applications all in one place.
This document outlines key pages and functions within the Launchpad.
Key items:
Home page
Application categories
Application instances
Allows accessing all HotWax Commerce applications.
Characteristics:
Single Sign-On (SSO): Enables users to log in applications using their credentials. After the initial login in the Launchpad, they gain automatic access to all associated applications without the need to enter their login details again.
Shows how apps are categorized on basis of their characteristics.
This category revolves around managing the orders using the three apps: BOPIS, Pre-Order Management and Fulfillment.
BOPIS (Buy Online, Pickup In-Store) HotWax Commerce’s BOPIS app enables users to handover store pick-up orders to customers.
Pre-Order Management HotWax Commerce’s Pre-Order Management app enables users to manage pre-orders and backorders, with planned future inventory to fulfill the orders.
Fulfillment HotWax Commerce's Fulfillment app enables users to pick, pack, and ship orders brokered to the stores from the OMS.
This category revolves around managing the workflow using the three apps: Threshold Management, Job Manager and Import.
Threshold Management HotWax Commerce’s Threshold Management app enables merchandisers to set inventory thresholds for a group of products.
Job Manager HotWax Commerce’s Job Manager app helps the operations teams to manage jobs by scheduling new jobs, skipping or canceling scheduled jobs and finding failed jobs that need attention.
Import HotWax Commerce’s Import app enables users to import inventory and purchase orders.
This category revolves around managing the inventory using the three apps: Receiving, Cycle Count and Picking.
Receiving HotWax Commerce’s Receiving app enables users to manage incoming shipments, purchase orders, and return orders.
Cycle Count HotWax Commerce’s Cycle Count app enables stock associates to count the store’s inventory, and reconcile systematic and physical inventory.
Picking HotWax Commerce’s Picking app enables the fulfillment team to efficiently pick order items during order fulfillment.
This category revolves around managing users and facilities using the two apps: User Management, and Facilities.
User Management HotWax Commerce’s User Management app allows businesses to create and manage users within the HotWax Commerce OMS.
Facilities HotWax Commerce’s Facilities app assists businesses in overseeing multiple facilities like stores and warehouses, and managing attributes like facility details and fulfillment options for each facility.
Users can access specific instances of the HotWax apps.
Instances:
1. Production Instance: To access the production instance of an app, users can click on the respective app card.
2. UAT (User Acceptance Testing) Instance: Users can access the UAT instance of an app by clicking on the bottom right icon of the respective app card.
3. Dev (Development) Instance: Users can access the dev instance of an app by clicking on the bottom left icon of the respective app card.
Related flows:
Discover your guide for troubleshooting issues for order brokering due to inventory unavailability
Click on the SKU from the sales order page to view the product inventory details on the Product Inventory View page.
Check the inventory availability across the facilities. Use the facility filter to check the inventory in individual facilities.
Verify if the inventory is available for that product. If the inventory is not available or is less than the brokering threshold, the order will move to the unfillable parking.
For example: If an item has a brokering threshold of 10 units but only 5 units are available across all facilities, the order will not be brokered and will move to unfillable parking.
Ensure that the order routing run for unfillable parking is scheduled. This ensures that all such orders are picked up in the next brokering cycle for inventory allocation.
Retailers sometimes prefer not to split orders to minimize shipping costs. If only part of an order is available at one fulfillment location, the order won't be routed. If inventory is scattered across multiple facilities, you need to decide whether to split the order.
If you decide to allow order splitting, navigate to the Order Routing App.
Navigate to the brokering run > order batch > inventory rule.
Check if partial allocation is allowed for that inventory run.
Turn the partial allocation toggle on if you want to enable order splitting.
Save the inventory rule configuration.
Troubleshooting Guide for orders stuck in created status
In HotWax Commerce, all orders are initially marked as "Created" after being downloaded. Orders can be auto-approved using a scheduled job called Approve Orders, which checks the approval status of Shopify orders based on parameters set by Shopify merchants. The job runs at a default frequency of 30 minutes and approves orders once all necessary details and required references are established.
Clients may have varying approval processes, such as requiring customer IDs or payment verification tags. If the job is stuck in the "Created' status", it could be due to missing or incorrect order attributes.
Orders may not get approved if essential attributes are missing. For instance, some clients may require specific information such as a customer ID or Municipio ID. If these attributes are missing, the approval job cannot verify and approve the order, causing it to remain in the 'Created' status. For detailed instructions on how to add missing order attributes, refer to our
View shipments for a fulfilled transfer order.
When a Transfer Order (TO) is fulfilled, the Fulfillment section appears on the Transfer Order Details page. It lists every shipment for the TO, including shipment ID, tracking code, and status.
To view shipment details, select a shipment in the Fulfillment section. The Shipment Details card shows:
Shipped date
Shipping method
Carrier
Tracking code
To learn how to fulfill a TO, see the Transfer Order Fulfillment guide.
Review key fields and actions on the Transfer Order Details page.
The Transfer Order Details page shows the status, facility assignments, shipping configuration, and item-level progress for a Transfer Order (TO).
The top section displays the TO name and a status selector (Created, Approved, or Cancelled).
The Origin card lists the facility name, address, carrier, and shipping method.
The Destination card lists the receiving facility name and address.
A chronological log of events in the TO lifecycle, including creation and status changes.
Each item appears as a separate card with:
Quantity ordered
Quantity shipped
Quantity received
Select Add item to Transfer to add products to an existing TO.
Select the More (⋮) icon on an item card to access these actions:
Edit order quantity: Update quantities if stock availability changes at the origin facility.
Fulfill: Open the Fulfillment App to start fulfillment and monitor shipments.
Receive: Open the Receiving App to start receiving and monitor receipt progress.
Complete Item: Manually mark an item as completed when it needs to be closed out (for example, exceptions or partial transfers).
If there are no jobs in the pending state, it's an unusual situation. Contact HotWax support.
If there are many jobs in the pending state, it indicates a potential backlog in the job queue.
Wait for an hour and then check again if the jobs have run or not.
After waiting, recheck the running tab on the pipeline page. If the jobs have not run, proceed to the next step.
If there are still jobs in the pending state after waiting, contact HotWax support.
Provide details about the extended duration and the number of jobs in the pending state.
By following these steps, you can identify and address issues related to jobs running for an extended duration. If you need further assistance or have additional questions, reach out to the HotWax support team for prompt support.
Another common issue is the presence of incorrect order attributes. This could mean that the required information is either incomplete or inaccurately entered, which can prevent the order from being approved. For example, incorrect municipio ID can lead to approval failures.
Find and organize transfer orders in the Transfers App.
The Transfer Orders page opens when you sign in. It lists every Transfer Order (TO) and lets you quickly narrow results with search, filters, grouping, and sorting.
Use the search bar at the top of the page.
Enter the TO name to filter the list in real time.
Use filters in the Location or Fulfillment panel to refine the list.
Open the dropdown for the filter you need.
Choose a value; results update automatically.
Available filters:
Product Store
Origin
Destination
Method
Group TOs to review related orders together.
At the top of the page, open the Group By dropdown.
Select a grouping option.
Expand any card to view TOs and see ordered, shipped, and received quantities.
Grouping options:
Order Item: Default view showing each TO with key details.
Destination: Group by receiving facility with totals per destination.
Destination and Product: Group by destination and item (e.g., Men’s Denim Jacket → Boston Store).
Origin: Group by origin facility with totals per origin.
Select the Created Date column header to toggle ascending or descending order.
Discover how HotWax Commerce manages restock returns for both online and in-store orders, ensuring accurate inventory management and syncing with Shopify.
HotWax Commerce operates with a specific inventory management approach for restocking online returns. When inventory is returned on Shopify, it provides an option to enable the restock returned inventory flag. However, HotWax Commerce does not automatically increase the inventory count in its system even if the restocked return flag is enabled on Shopify. This is because HotWax Commerce lacks visibility into the specific location where the inventory is received. Instead, inventory is updated only when the updated inventory count is received from Warehouse Management Systems (WMS) or Enterprise Resource Planning (ERP) systems.
Store associates can configure whether to accept the return of the product with or without restocking it, depending on the specific requirements set by the retailer. If the decision is to restock in-store order items immediately upon receipt, the inventory changes are updated in HotWax Commerce instantly. These inventory updates are then synced with Shopify through the Upload recent inventory change job from HotWax Commerce Job Manager app. To schedule the job follow these steps:
Log in to the HotWax Commerce Job Manager App from the launchpad.
Within the Job Manager app, go to the Inventory page.
Locate the Upload recent inventory change job within the more jobs section of the inventory page.
The Cycle Count App is designed to help organizations maintain accurate inventory by tracking, verifying, and reconciling stock levels. It supports different types of counts, including Directed Cycle Counts for selected items, and Hard Counts for comprehensive facility-wide inventory verification.
The app provides distinct views for Admins and Store Associates:
Admin View: Allows reviewing, approving, or rejecting counts, managing variance thresholds, and helping maintain inventory accuracy across the system.
: Enables associates to perform counts, record quantities, and submit them for review.
With built-in features like bulk actions, variance alerts, and timestamped tracking, the Cycle Count App keeps inventory accurate across your network.
Discover how HotWax Commerce automatically allocates sales orders for pre-order items on a first-in, first-out (FIFO) basis, with the flexibility for manual allocation when needed.
Once a customer places an order for a pre-order item, the sales order is automatically allocated to the purchase order inventory on a first-in, first-out (FIFO) basis. This ensures that customers who place orders first receive their inventory first. However, there are instances when merchandisers need to manually manage these allocations, either due to errors or the need for reallocation. HotWax Commerce provides the flexibility for merchandisers to manually manage purchase orders through the following methods:
In order to review associated sales orders for a selected item and get overview of the total quantity ordered and consumed ATP for that specific purchase order item, merchandisers can view all the sales orders associated with that purchase order through the following steps:
Status (Approved, Cancelled, Completed, Created)
Origin and Product: Group by origin and item (e.g., Women’s Denim Skirt → New York Store).
Click on the job title to open the job card.
Specify the job run time and preferred frequency based on your operational needs.
Click on Save Changes to schedule the job according to the defined run time and frequency.



Navigate to the Procurement > Purchase Orders View > Purchase Order Detail page
Click on Review Allocation in the line item field to view all associated orders with that purchase order.
This will open up a review allocations page where merchandisers get a holistic view of all the sales orders allocated with that purchase order and they can take actions such as removing allocations.
In cases where sales orders are not allocated to the purchase order due to any error or if the relevant purchase order is canceled, resulting in unallocated sales orders, merchandisers can manually allocate sales orders to purchase order items efficiently. Here's how:
Navigate to the Procurement > Purchase Orders View > Purchase Order Detail page.
Click Allocate Sales Order in the line item field, opening a confirmation pop-up. Click yes to view all unallocated sales orders for that product.
Select the sales orders to associate with the existing purchase order. This will allocate the sales order with the existing purchase order, and the order will be fulfilled accordingly.
Whenever there's a change in the arrival date of the purchase order items, the same arrival date needs to be synced with the sales order. This ensures an accurate view of when an order needs to be fulfilled, and customers are informed about changes in their product's arrival date. Merchandisers can do this through the following steps:
Navigate to the Procurement > Purchase Orders View > Purchase Order Detail page
Click on Sync Date with SO in the respective line item field which opens a confirmational pop-up.
Click yes to sync the date for all sales orders associated with the existing purchase order.
Merchandisers may sometimes encounter inaccurate allocations of sales orders with purchase orders or they want to remove allocations to utilise that inventory for in-store sales. Such issues can be rectified by removing allocations through following steps:
Navigate to the Procurement > Purchase Orders View > Purchase Order Detail page
Click Remove Allocation in the line item field to open the Review Allocations page.
This will display all the sales orders for which the inventory is allocated. Merchandisers can select the sales orders they want to remove the allocation for by clicking on the checkbox and then clicking on the Remove Allocations button.
The Find Sales Order page in HotWax Commerce offers users a comprehensive listing of all orders, accompanied by essential order details including order items, order ID, order date, and customer information. Additionally, users can easily ascertain the current status of each order and identify the facility to which it is allocated. For enhanced order management, the page also displays promise dates and auto-cancel dates, ensuring timely fulfillment.
To streamline the search process, users have the option to search for orders using product identifiers on the search page. Moreover, filters such as product store, facility, and sales channel are available to further refine and manage the order list.
For seamless integration with external systems, users can export order data in CSV format, facilitating efficient order fulfillment processes across platforms.
HotWax Commerce offers the following features on the Sales Order Page:
The Search Sales Order feature on the Sales Order page provides users with quick access to information regarding a specific Order Information. Users can search for Orders based on various identifiers such as Order ID, Customer name, SKU, etc. to get an instant overview of the order.
Step-by-Step Usage Instructions:
Navigate to the HotWax Commerce platform and log in with your credentials. The first page that opens up upon logging in is the Sales Order page.
Within the Sales Order Page, you'll find a search bar.
In the search bar, you can enter the identifier of the desired order you wish to locate.
Press the Enter
HotWax Commerce allows users to sort through numerous orders based on different filter criteria. Enabling users to focus on specific subsets of orders, making it particularly valuable for those dealing with high order volume.
You can apply these filters to Sales Orders:
You can save the search filters using the disc icon and view the saved search filter by clicking on the three horizontal eclipses on the right.
HotWax Commerce has different queues that act as a virtual facility to park the orders that are awaiting fulfillment. Users can view the orders in the queue to identify orders that currently do not have inventory allocated to them.
By filtering orders based on queues, users can focus on handling orders that require immediate attention or fall into the queue.
Users can also filter the orders that will be auto-canceled today to make sure such orders are prioritized.
Enables users to export all displayed sales orders into CSV using the Export CSV function. Once the filtered orders are displayed, Click on the Export CSV option to initiate the export process.
Discover how to troubleshoot missing product linking issues between HotWax Commerce and Shopify for enabling pre-order options and seamless product synchronization.
Despite having 0 inventory in both HotWax Commerce and the Shopify store, the pre-order option is unavailable for a product. The root cause is the absence of proper linking between the product in HotWax Commerce and the Shopify store.
HotWax Commerce encounters difficulties in showcasing products for pre-orders on the Shopify store when there is no linkage between the products in HotWax Commerce and the corresponding Shopify store. This issue commonly arises when a retailer manages the same product catalog across multiple Shopify stores.
Products within Shopify
Retailers streamline their operations by employing a unified product catalog across multiple Shopify stores. Consequently, products obtain distinct internal IDs on each store, while retaining a consistent and unique identifier, typically the SKU. It's important to note that not all stores carry the entire product range; instead, a hierarchical structure is established with one store functioning as the master catalog and others as child catalogs, each tailored to specific product offerings. This approach facilitates efficient management and customization of product availability across diverse Shopify storefronts.
Products in HotWax
In instances where a common product catalog is employed across multiple Shopify stores, HotWax adopts a structured approach. It designates one specific Shopify store as the master catalog, responsible for comprehensive product information. The same set of products is then associated with other Shopify stores, considering them as child catalogs. To establish a connection with HotWax, a product must be initially configured in the parent store and subsequently linked to the corresponding child store. Failure to follow this setup process inhibits HotWax from establishing a connection with the Shopify store and transmitting updated product information. This systematic approach ensures a cohesive and organized integration between HotWax and the various Shopify stores within the shared product ecosystem.
Association in HotWax Commerce
Step 1: Verify Product Association with the Shopify Store
Locate the Product in HotWax
Navigate to the within HotWax Commerce.
Open the Audit page and examine the Shop listing status card to check the stores to which the product is currently listed. If it's not linked to the desired store, proceed with the following steps:
Step 2: Link product to Shopify store
Access the Find Product Page
Visit the Find Product page:https://{instanceName}.hotwax.io/commerce/control/FindProduct.
Open the detailed page for the specific product.
Inspect the Shopify Shop Product Section
Step 3: Refresh products to reflect changes
Execute Jobs in the Job Manager App
Within the Job Manager app, initiate the following jobs: Auto refresh pre-order catalog and Sync variant details by searching them from the pipeline page.
Review products in Hotwax and Shopify
By following these steps meticulously, you ensure a seamless and accurate linking of products, ultimately improving the functionality of the pre-order option on the Shopify store.
Comprehensive guide to reviewing cycle counts in the Cycle Count App, including filtering counts, accepting or rejecting items, and managing inventory variance thresholds.
Once a count has been submitted for review by the facility it was assigned to, it will be shown on the Pending Review page.
These filters make it easier to prioritize which counts to review first, based on time and location.
Facility, to check which locations have pending reviews
Created Date, to review cycle counts created during a specific period.
The pending review list view shows how many of the assigned items have been counted as well as the due date of the count. Clicking on a count opens the detail page for it.
If the cycle count is submitted for the first time, a Submitted badge will appear. For counts with items that were recounted and re-submitted, a Re-submitted badge will indicate that the count was reassigned and resubmitted by the facility after a recount.
The detail page of a pending review cycle count is where items are finally accepted or rejected from a cycle count.
The overview section, similar to the Assigned page, shows a high-level readout of how the count performed and overall accuracy. The due date of a cycle count can still be adjusted if it needs to be assigned back to a facility with a new due date.
The Inventory Variance Threshold function helps reviewers quickly filter out cycle count results based on the percent variance recorded. Counts that pass the variance threshold will be filterable using the green threshold filter, and counts that fall below the threshold can be filtered out under the red threshold filter.
Admins can use the slider of the inventory threshold to get accept/reject suggestions accordingly.
Each count item will show the following information:
Counted: Represents the physically available sellable inventory counted at the facility for a given product. If an item is not counted, this information will not be shown on an item.
Systemic: Represents the quantity on hand at the time when that particular count was submitted.
Variance: Shows the difference between the expected and counted values if a count is submitted for an item.
User
If no count has been submitted for an item, a red badge labeled Not Counted will be displayed along with the date that this product was last counted.
Every count item has three options that the reviewer must select from. When a count is closed, all items where no action was performed will be rejected by default to ensure that they do not impact inventory.
Accept: Accepting a count commits the variance submitted by that count to the OMS’s actual inventory and also becomes available to be synced to external systems as cycle counts or inventory adjustments. Click the green thumbs-up button to accept a count.
Recount: When variances reported in a count are outside of acceptable limits and a recount by the store is required, click on the yellow recount button. This will reject the current count and add the same item back into the count so that when the count is reassigned to the facility, the product is available to be counted again.
Reject: Rejecting an item discards a submitted count, ensuring that it does not impact OMS inventory levels. clicking on the red thumbs-down button rejects the cycle count for the items.
Based on the variance threshold selected, suggested actions will be highlighted with an outline. Admins can use the slider of the inventory threshold to accept/reject suggestions accordingly.
Items with variances within acceptable tolerances will be suggested by the system to be accepted, and items below acceptable tolerance will be suggested for recount or rejection. Items that were not counted at all will be suggested for recount.
Select multiple items by clicking on the checkbox at the end of an item and clicking on the desired bulk action in the bottom toolbar. All items can be selected or unselected by clicking on the checkbox in the top toolbar. Retailers can also switch the green or red threshold tabs to accept/reject items in bulk.
If an item needs to be added to a count before being reassigned to a facility for a recount, click on the add toolbar at the top of the screen, search for the product using the product identifier, and click on Add to Count to add the product.
All the newly added items and the items sent for recount will need to be reassigned to the facility. Click on the re-assign button in the overview section to reassign the inventory count to the facility.
To close a count, click on the primary action button at the bottom of the screen. This will prompt you to confirm that the current count is ready to close. All open count items from the count will be rejected and the count will no longer be editable. Closed counts are shown on the Closed page.
Learn how HotWax Commerce OMS simplifies in-store return processes for retailers, ensuring efficient handling of online orders in physical stores.
The Creating In-Store Returns feature in HotWax Commerce addresses challenges for retailers selling products across multiple channels. In the absence of online order information in POS systems, in-store returns can become complex. HotWax Commerce, an Omnichannel Order Management system, resolves this by maintaining records of online orders from e-commerce platforms, ensuring efficient in-store return processes on the HotWax Commerce platform, and improving workflow for store associates.
Learn how HotWax Commerce automates pre-order and back-order management through the use of purchase orders, offering integration with ERP systems and a simplified process for manual import.
HotWax Commerce aids in automating pre-order and back-order management by leveraging purchase orders. This automation includes the automatic listing and de-listing of products which is particularly beneficial for retailers who have large purchase order catalogs.
Purchase orders (POs) provide crucial details about item specifics and upcoming inventory arrivals. Retailers can integrate their ERP systems with HotWax Commerce to synchronize purchase orders automatically or utilize the Import App to manually import purchase order CSV files.
To know how you can manage your purchase orders from your ERP system like NetSuite, please refer to the . For users who want to import their purchase orders manually, HotWax Commerce’s Import app simplifies the process of importing purchase orders and their inventory into HotWax Commerce. Here’s how retailers can upload purchase orders using the Import App:
Learn how to troubleshoot inaccurate inventory computation issues in HotWax Commerce for accurate product availability, especially during pre-orders.
Discover how to manage uploaded purchase orders in HotWax Commerce, including viewing, editing, making changes, or canceling purchase orders.
Once the Purchase order has successfully been uploaded to HotWax Commerce, Merchandisers can view the purchase orders via the Find Purchase Order Page. This can be done by clicking on Procurement > Purchase Orders from the HotWax Commerce’s Hamburger menu.
The Find Purchase Orders page showcases the following details:
Consolidated View: Offers a comprehensive display of all upcoming purchase orders and their individual items.
Discover how HotWax Commerce streamlines the return management process for Shopify retailers by integrating with Shopify to import returns.
The import returns feature in HotWax Commerce streamlines the return management process for retailers using Shopify. Returns, whether initiated by customers or customer service representatives (CSRs), are a common aspect of eCommerce. Retailers often leverage third-party return management apps to handle returns efficiently. However, HotWax Commerce doesn't function as a Return Management System; instead, it integrates with Shopify to import the returns.
HotWax Commerce downloads return data once the return process is completed in Shopify, and this information is then transmitted to ERP systems for financial and accounting purposes. The integration avoids the need for direct links between ERP and Return Management Systems.
Here's how returns can be imported from Shopify to HotWax Commerce:
log in to the HotWax Commerce Job Manager App from the launchpad.
Enter a clear, searchable name so the TO is easy to find later.
Product Store: The available product store is selected by default; change it if needed.
Origin: Select Assign next to Origin (or the preselected facility) and choose the shipping facility.
Destination: Select Assign next to Destination and choose the receiving facility.
Carrier: Choose a shipping carrier (for example, FedEx).
Method: Choose a supported method for that carrier (for example, Standard, Same Day, or Next Day).
Ship Date: Select the shipment date from the calendar.
Delivery Date: Select the expected delivery date.
Add items manually or by uploading a CSV.
Recommended for TOs with many items.
In the Import items CSV section, download the sample file if needed.
Upload the CSV containing SKUs and quantities.
After upload, select the product identifier type and map the identifier and quantity columns.
Recommended for TOs with only one or a few items.
Search by SKU or another identifier.
When the product appears, select the Add (+) icon.
Quantities can be set per item or in bulk.
Enter the quantity directly or use the stepper arrows.
Use the ellipsis (⋮) menu to Book QoH (all on-hand stock) or Book ATP (available-to-promise stock).
Select Remove from order in the same menu to delete an item.
Select the checkbox above the item list to select all items.
Apply Book QoH, Book ATP, or Custom Quantity to update every item at once.
Review the destination facility, shipping method, transfer dates, and item quantities.
Select the checkmark icon in the lower-right corner to create the TO.
After creation, you land on the Transfer Order Details page with the order in Created status.
On the detailed page, review the Shopify shop product section to identify the store with which the product is currently connected.
Establish the Connection
Initiate the connection by clicking the Add button.
Select the Shopify store designated as the Shop in OMS.
Input the Shopify product ID and Inventory ID (extracted from the product on the Shopify store).
Product
Store1 Internal ID
Store2 Internal ID
SKU1234
1543
1462
Product
HotWax Internal ID
Store1 Internal ID
Store2 Internal ID
SKU1234
SKU1234
1543
1462

Checkout workflows involved in Order Management. Gaining an understanding of these processes will give you an overview of how orders are handled from start to end.
The section details how various jobs contribute to the overall system, from order allocation to inventory management, and offers resolutions into troubleshooting and performance.
Discover your guide for troubleshooting Brokering Issues due to Incorrect Shipping Method
The platform will display the search results based on the provided SKU or order ID.
You can now view all pertinent details related to the order, including customer information, order items, and status. Click on the order to access the detailed information.
Promised Date
This filter categorizes orders based on their promise date, allowing users to filter them by predefined time intervals.
Auto Cancel Date
The auto-cancel date is the predetermined deadline by which an order will be automatically canceled if not fulfilled.
Shipping Method
Filter by the shipping method such as delivery speed (standard, expedited, express), cost, or specific carriers.
Product Store
Choose the desired Product Store from the dropdown menu to filter by a specific store.
Facility
Select the Facility to narrow down the results to a particular location.
Order Status
Filter by Order Status to view orders in a specific stage (created, approved, completed, canceled).
Item Status
Filter by Item Status to focus on specific stages of item fulfillment (Reserved, Picking, Packing, Shipped, Delivered).
Sales Channel
Choose the desired Sales channel from the dropdown menu to filter by a specific channel such as Shopify, Amazon, etc.
Order Date
This filter categorizes orders based on their order date, allowing users to filter them by predefined time intervals.
Pre-Orders
Orders that are placed in Pre-order parking (To hold pre-ordered items until released from HC) can be shown by clicking on the Pre-orders checkbox.
Back Orders
Orders that are placed in Backorder parking (To hold back-ordered items until released from the HC) can be shown by clicking on the Back-orders checkbox.
Brokering Queue
Orders that are placed in the Brokering Queue (To hold orders for in-stock items until the next brokering run) can be shown by clicking on the Brokering Queue checkbox.
Unfillable Hold
Orders that are placed in the Unfillable Hold (To hold unfillable items from further brokering and auto-cancellation) can be shown by clicking on the Unfillable Hold checkbox.
Navigate to Create Order Return:
In the main menu, click on Order Management.
From the dropdown, select Create Order Return.
Search for the Order:
On the Create Order Return page:
Utilize the search tab to locate specific orders.
Enter relevant details such as Shopify Order ID, Customer Name, Order creation date, Customer Email Address, or Customer Phone Number.
Click Search to find the specific sales order.
Select Create Return:
Once the order is located, click on the Create Return button associated with the order.
Complete the Return Details:
You will be redirected to the Create Return page.
Select the first checkbox for all items or individual boxes for selective returns.
Enter the Facility ID where the customer is returning the item.
Choose the Return Reason from the dropdown menu.
Optionally, enter the Employee ID.
Click the Create Return button to initiate a return request.
Alternatively, store associates can also create returns by going to the sales order for which the return needs to be created and clicking on the Create RMA button.
View Returns Page:
After creating the return, you will be directed to the View Returns page.
Store managers wanting to review and approve multiple return requests can also access the View Returns page through the following steps:
Navigate to the Sales Return Page from the hamburger menu.
Locate and track the status of the return (Requested, Received, or Completed).
Click on the order ID to access the View Returns page for detailed information about the return.
Authorize Returns:
On the View Returns page, click the Accept button to approve the return request.
To finalize the return process, click the Receive Return button.
Partial Returns:
If only specific items need acceptance:
Select the checkboxes for those items.
Click the Update button to receive a return for the selected items.
Ensure Returns Job is Scheduled:
In the HotWax Commerce Job Manager app, ensure the refunds job to update returns on e-commerce for refund creation is scheduled from the Orders page.
Verify Returns on Shopify:
To verify order returns on Shopify:
Go to the Shopify admin panel.
Navigate to Orders
By following these detailed steps, store associates can efficiently navigate through the HotWax Commerce platform, manage in-store returns, and contribute to a smooth and effective customer experience.
Fill in the required data in the downloaded CSV file.
Click the Upload button to select and upload your CSV file.
Map all necessary columns to their matching fields.
After mapping, click Review. If any records are missing, map and save them.
Click the Import button in the bottom-right corner to finish.
Purpose: Used when the sellable inventory in OMS must exactly match the available inventory (ATP) from an external system like NetSuite. In cases When NetSuite (or any third-party system) is used as a Warehouse Management System (WMS), it reserves inventory for orders that need to be fulfilled.
How It Works: The method compares the inventory quantity in the uploaded file with the current ATP in HotWax OMS. The difference (delta) is then applied to both ATP and QOH (Quantity on Hand) in OMS to reflect accurate inventory.
Example: For Product A at a store:
Initial QOH: 10 units
Initial ATP: 5 units
File’s Quantity: 4 units After resetting:
QOH: 9 units (adjusted by the delta of -1)
ATP: 4 units (adjusted by the delta of -1)
Purpose: Used to sync physical inventory from external systems like NetSuite to HotWax OMS without accounting for inventory reservations. This ensures OMS reflects the actual on-hand quantity.
How It Works: The method compares the QOH in the uploaded file with the system's QOH in OMS. The difference (delta) is applied to both QOH and ATP, ignoring any reservations.
Example: For Product A at a store:
Initial QOH: 10 units
Initial ATP: 5 units
File’s Quantity: 4 units After resetting:
QOH: 4 units (adjusted by a delta of -6)
ATP: -1 unit (adjusted by the same delta of -6)
Purpose: In many warehouses, retailers maintain separate zones for eCommerce and wholesale inventory. When inventory is moved from one zone to another within the same warehouse, it's treated as an inventory transfer.
How It Works: This method adjusts inventory by a specified quantity to reflect the transfer, locking in the internal variance.
Example: For Product C in a warehouse with two zones:
Initial QOH in eCommerce Zone: 12 units
Initial QOH in Wholesale Zone: 8 units
Transfer Quantity: 5 units (from eCommerce to Wholesale) After transfer adjustment:
QOH in eCommerce Zone: 7 units (adjusted by a delta of -5)
QOH in Wholesale Zone: 13 units (adjusted by a delta of +5)
Purpose: This method is used when physical inventory is found or re-counted, such as locating misplaced items. It resets both QOH and ATP to the exact values provided in the uploaded CSV file.
How It Works: Directly sets ATP and QOH to the values provided in the CSV.
Example: For Product D at a store:
System QOH: 2 units
System ATP: 1 unit
Physical Count (recovered inventory): 6 units After adjustment using recount method:
QOH: 6 units (set directly based on physical count)
ATP: 5 units (set to match ATP)
Purpose: This method is ideal for planned product launches. It allows retailers to schedule when inventory should become available in the system. Once the scheduled time arrives, the uploaded inventory is automatically set live.
How It Works: Schedule inventory import so that the stock becomes available at a predefined date and time (e.g., 10 AM on June 31st).
Example: For Product E scheduled to launch on June 30th:
Current QOH in system: 0 units
Scheduled Import File QOH: 100 units
Scheduled Import Time: June 30th, 10:00 AM After scheduled import executes:
QOH: 100 units
ATP: 100 units
Purpose: This method supports pre-launches by importing inventory tied to future purchase orders. It enables customers to place pre-orders even though the stock has not yet physically arrived.
How It Works: Imports inventory related to a future purchase order, enabling pre-orders.
Example: For Product F tied to an upcoming purchase order:
Current QOH: 0 units
Preorder Inventory in Import File: 200 units
PO Expected Delivery Date: July 10th After PO import:
QOH: 0 units (no physical inventory yet)
ATP: 200 units (reflecting preorder availability)
The Import App enables retailers to view and schedule jobs for various inventory import methods.
If any required field is missing in the uploaded file, the app displays it before processing begins. It also highlights what’s missing for example:
“Seems like uploaded file has missing products, checked with initial 10 records.”
Retailers can also View History of file processing.
From View history retailers can:
View logs with key details: start/stop time, and log ID.
Check file status: Finished, Running, Failed, or Pending.
Download failed records for analysis.
Head to the Import App> Purchase order page by clicking on the Purchase order in the left menu.
Upload the CSV File by simply clicking on the Upload text within the first field.
Upon uploading, there might be variations in column names in Hotwax Commerce and the uploaded purchase order, like 'Order ID' in HotWax Commerce can be named as 'Internal ID' in other systems. To avoid errors, users must map these columns accurately. Here are the fields to be mapped:
Order ID: Acts as a unique identifier for the order.
Shopify Product SKU: Shopify's distinct product identifier.
Arrival Date: Expected arrival date of the order.
Ordered Quantity: Quantity of products ordered.
Facility ID: Identifies the specific facility.
Users can easily map these fields by selecting the exact field from dropdown menus. For added convenience, HotWax Commerce allows Merchandisers to save these mappings within the Import App by clicking on the New mapping button, streamlining future uploads. Saved mappings appear as buttons above the mapping field for quick access.
Apart from this merchandisers need to create a new field i.e. IsNewProduct and mark the field as either ‘Yes’ or ‘No’. This field helps HotWax commerce identify whether a product is a new product and should be added to the pre-order catalog or the product was already being sold on the e-commerce and currently it is currently out of stock, in such cases, it is added to the backorder catalog.
After saving mappings, proceed by clicking on the Review button to transition to the PO review page. This ensures a smooth completion of the process.
The PO Review page provides a detailed overview of PO CSV data and assists users in identifying and correcting errors within the CSV file.
The purchase order page offers the following functions to ensure accurate importation into HotWax Commerce:
Search Products: For Merchandisers managing a large catalog of products in their CSV, getting details about individual products is crucial. Merchandisers can search for individual products for review using the product SKU. In the product fields, the merchandiser will get a comprehensive view of that particular product, including whether it is on backorder or pre-order, the quantity ordered, and the expected inventory arrival date.
Bulk Adjustments: Merchandisers can select products for adjustments using checkboxes available in each product's field. To select all products, the merchandiser can click on the checkbox at the top right of the page. Once products are selected, merchandisers need to click on the bulk adjustment screen, which will open a pop-up screen with the following options:
Buffer days: Refers to additional time added to the expected delivery date of a pre-order product to account for potential delays. For example, if the Purchase order arrival date is 10th January, the user can set a buffer days of 10 so that the dispatch date for Shopify PDP will be shown as 20th January.
Order Buffer: Refers to the inventory or quantity of a pre-order product that a merchandiser may set to manage inventory discrepancies or excess demand. For example, if a product has an upcoming inventory of 100, the user can set 10 as order buffer so that the available to promise inventory on Shopify becomes 90.
Catalog: Merchandisers can determine whether the product is on backorder or pre-order.
Facility: Merchandisers can select the facility where the purchase order for that inventory is received.
DateTime Parse Errors: Retailers working in different countries often face issues with time formats (e.g., European countries follow DD/MM/YYYY formats, while US companies follow MM/DD/YYYY format). Similarly, purchase orders can have different formats. If there's any format mismatch, the error message will be available in this field. Merchandisers can specify the date format easily by clicking on the DateTime Parse Errors and adjusting the date according to the PO.
Missing Facilities: There may be instances when the facility name in the purchase order is inaccurate, causing errors in the uploading process. For example, if the Times Square facility is incorrectly mentioned as Time Square in the Purchase order, this field will show an error. Merchandisers can rectify this error by clicking on the Missing Facilities field which will open up a missing facilities pop up card. Merchandisers can rectify the mistake by typing the correct facility name and click on the save button to update the changes.
Missing Products: Similarly, there can be errors in product namings. If a product is not available in HotWax Commerce, this field will display an error. Merchandisers can rectify the mistake by clicking on this field, and opening a pop-up menu where they can correct and save it.
Reset Changes: If a merchandiser wants to start afresh with the changes, they can click on the reset icon at the top right of the page.
Filter Products: Purchase orders for different facilities can be included in the same CSV file. If a merchandiser wants to view upcoming purchase orders of a specific facility, they can filter by clicking on the Purchase order IDs at the bottom of the page.
Upload Purchase Order: Once the review is complete, merchandisers can click on the blue upload icon at the bottom right to upload the purchase order in HotWax Commerce.
Shopify's available inventory is computed by deducting open orders from the physical inventory published by the ERP.
During pre-selling, inventory levels can go below zero due to overcommitment of inventory, causing negative inventory.
HotWax deliberately disables specific functionalities to reserve inventory for committed orders, ensuring that committed inventory is not deducted twice. This precaution is taken because Shopify already incorporates committed inventory within its shared inventory levels.
Current State of Inventory Deduction in HotWax
QOH Inventory in ERP
20
20
Committed orders
10
10 (ignored)
Inventory from Shopify
10
10
Available to sell in HotWax
0 (=20-10-10)
HotWax relies on Shopify's inventory-level webhooks as a crucial mechanism to determine the available inventory for its products. In HotWax, negative inventory values from Shopify are systematically treated as zero, mitigating the risk of inaccurate stock calculations. The issue arises when HotWax reads inventory from multiple locations. This process introduces a potential for inaccuracies in product availability computations, particularly when Shopify indicates negative stock levels.
Location
Shopify
HotWax
Canada
1
1
Belgium
-1
0
Available
0
1
For Shopify
Navigate to the Product on Shopify:
Locate the specific product within your Shopify admin panel.
Check Inventory:
Review the inventory level for the product at all the locations. Hint: There must be locations with negative inventory numbers.
Verify the sum of location Inventories:
Ensure that the combined inventory from all locations sums to 0.
For HotWax
Find the Product in HotWax:
Locate the corresponding product in the HotWax Commerce Pre-order app's Catalog page and click the product to open the Product Audit page.
Check Inventory in the Online ATP calculation card:
Examine the inventory level for the product within HotWax. The online ATP would be more than 0.
To see how HotWax allocates pre-orders to physical inventory when HotWax is the source of inventory, check out this blog: https://www.hotwax.co/blog/how-to-capture-and-release-shopify-pre-orders-with-ease
Purchase Order Specifications: Presents purchase orders in an exploded pattern, revealing distinct specifications for each item.
Purchase Order Status: Indicates the current status of the purchase order, whether it's in a created, approved, completed, or canceled state.
On-Hand Inventory Overview: Provides insights into available quantities and available-to-promise inventory on Shopify.
Created Date and Arrival Date: Merchandisers can easily view when the purchase order was created in HotWax Commerce and when will the inventory of the purchase order items arrive.
Merchandisers can easily view individual Purchase orders by searching Purchase Order ID, HotWax Commerce ID, or Product name from the search bar. Moreover, they have the ability to filter search results based on PO status, arrival date, or facilities.
Additional functionalities that are available on the Find Purchase Orders page are:
Grouping: Merchandisers have various options to view purchase order items, they can group the items by order items, products, and their arrival dates, etc. For example, if a merchandiser changes the grouping to a parent product, they will be able to see all the parent products and the inventory overview of that product, irrespective of the variant's inventory.
Export CSV: Merchandisers can export the CSV files of all the purchase orders for external auditing purposes.
Once the merchandiser has located their desired purchase order, they can execute various flows to ensure precise synchronization of pre-order information with the eCommerce platform.
Merchandisers may opt to cancel purchase orders due to various reasons such as supplier issues or lack of demand. HotWax Commerce allows the cancellation of uploaded purchase orders by following these steps:
Navigate to Procurement > Purchase Orders > Find Purchase Order.
Select the desired purchase order > Open Purchase Order Detail page.
The cancel button, located at the top left of the page, facilitates the cancellation process, changing the purchase order status to canceled.
Merchandisers can modify the purchase order arrival date if there’s a change from the supplier's end. This alteration assists in providing the accurate promise date to the customers
Navigate to the desired purchase order detail page.
View purchase order item details at the bottom of the page. Click the pencil icon to adjust the arrival date.
Changes made can be tracked by clicking on the history icon in the line item field.
For bulk updating of all product arrival dates, merchandisers can import another CSV in the import app and cancel the existing PO.
In cases where product demand differs from expectations, merchandisers can alter the quantity of purchase order items rather than create a new purchase order. Steps to execute this adjustment include:
Navigate to the Purchase Order Detail page.
Click the Edit Items button at the top of the line items to modify quantities. Insert the accurate quantity and click on Save button to sync the latest inventory changes to the e-commerce platform for selling.
To cancel specific items instead of the complete purchase order, merchandisers can follow these steps:
Select the desired purchase order from the Find Purchase Order Page.
Click on the Edit Items button at the top of the purchase order line item list.
Click on the Delete icon in the last column of the line item. Confirm the deletion process in the pop-up prompt by clicking yes.
Within the Job Manager app, go to the Orders page.
Locate the Returns job within the import section of the Orders page.
Click on the job title to open the job card.
Specify the job run time and preferred frequency based on your operational needs.
Click on Save Changes to schedule the job according to the defined run time and frequency.
Refer to our Shopify Integration guide for detailed insights into how the import return job facilitates the import of order returns from Shopify.
Operations teams can easily create and assign multiple cycle counts to different locations at once using the new bulk import feature.
The Bulk Import functionality of HotWax Commerce’s Cycle Count App is designed to simplify the process of creating and assigning cycle counts for multiple products across multiple facilities. It allows users to create multiple cycle counts using a CSV upload which eliminates the need to create individual requests for each product or location.
This reduces manual effort, minimizes errors, and enhances operational efficiency, especially for retailers with large store networks.
This guide explains how to create cycle counts in bulk
The template of the CSV file is as follows:
HotWax Commerce’s Cycle Count App accepts five key fields:
Count_Name: The name of the inventory count.
This is a required field.
If multiple SKUs are part of the same count, repeat the count name.
For example, if the user is naming a count "WEEK_3", it should be repeated for each SKU in that count.
1. Accessing the Cycle Count App
Navigate to the Cycle Count App from the HotWax Commerce's launchpad.
Log in using credentials.
2. Uploading the CSV file
In the bottom right corner of the draft page, click the + button to initiate a new count.
Two icons appear; Select the icon with multiple pages for a bulk import.
On the Draft Bulk modal, click on the Upload button on the top-right to import the prepared CSV file.
3. Mapping custom CSV fields to the systemic fields
Click the dropdown next to "Count name" and select your custom field for the count name.
Repeat previous step for the other fields (Product SKU, Facility, Status, Due Date).
4. Confirm and Upload
After mapping the fields, click the Upload button on the bottom of the screen.
Confirm the upload in the popup window.
5. Review uploaded files
Once uploaded, the file will appear at the bottom of the Draft bulk screen which can be downloaded.
The files will be processed within 10 minutes of the upload.
6. Canceling Uploaded Counts
If the uploads have not been processed, users can cancel them by clicking the trash-bin icon next to the file.
This document presents a case study of a Canada-based online retailer operating a central warehouse and multiple retail stores, with shipping capabilities extending to the USA. The retailer focuses on optimizing logistics to improve delivery speed, reduce operational costs, and enhance inventory management. This guide explores how businesses with similar models can leverage an advanced order routing system to achieve these goals.
Manage all pending, running, and completed jobs from the Pipeline page. With intuitive controls and detailed job information, you can effectively monitor and manage job execution.
Pipeline page
Provides a holistic view of all jobs, including their status, scheduled time, and execution details.
Characteristics
Chronological sequence for prioritized execution
Jobs are displayed in chronological sequence, ensuring that jobs with the closest expiration time are prioritized for execution.
Timeline Visualization for Clear Execution Scheduling
A highlighted time frame clearly depicts the job's runtime and scheduled frequency, providing a visual representation of the job's execution timeline.
On-the-fly Editing for Dynamic Job Management
Users can seamlessly skip, cancel, edit, or reschedule any pending jobs before they start running. This flexibility allows users to adapt to changing requirements and optimize job execution based on real-time needs.
Filter logs by failed records and failed files.
View and modify the file execution mode between Async and Queued options.
View and add the products included in the uploaded file.
Download log file, uploaded files and failed records for troubleshooting.
The retailer offers standard shipping with delivery within 7 days for all USA and Canada orders.
All orders should be prioritized by the FIFO rule, ensuring that orders placed first are brokered first.
To minimize international shipping costs, it is essential to fulfill all orders through the central warehouse rather than retail stores. Shipping directly from the warehouse ensures cost efficiency and avoids the higher expenses associated with international shipping from individual retail locations.
For orders within Canada, the warehouse is the primary fulfillment center. Retail stores act as backup fulfillment points only when the warehouse lacks sufficient inventory. This strategy enables effective inventory management while still providing backup options to meet demand.
If no inventory is available at any locations, the order should be available for re-routing. These unfillable orders should be rerouted along with regular orders.
The brokering should be scheduled frequently to ensure continuous and timely order processing.
US Orders should be prioritized before Canada Orders since Canada orders can also be fulfilled from the store while US orders can only get inventory from the warehouse.
All US orders must be fulfilled exclusively from the central warehouse in Canada.
Warehouse First: Canada orders should be prioritized to be fully fulfilled from the warehouse.
Store Fulfillment: If the warehouse lacks inventory, orders should be fully fulfilled from stores.
Partial Fulfillment from Warehouse: If neither the warehouse nor stores have the entire stock, orders items with available inventory should brokered to the warehouse.
Partial Fulfillment: If the warehouse is out of stock, partial fulfillment from stores should be allowed.
The retailer operates two separate online stores in the US and Canada. During the initial mapping of shipping methods, they should be configured distinctly to differentiate between orders destined for the USA and those for Canada.
U.S. Orders: Mapped to "US_Standard_Shipping." All standard orders from the US store will use this shipping method.
Canada Orders: Mapped to "Standard_Shipping." Standard orders from the Canada store will use this shipping method.
Two facility groups need to be created:
Group for Warehouses: To centralize warehouse-based fulfillment.
Group for Stores: To route orders to retail stores when necessary.
A single brokering run is scheduled every 15 minutes to ensure timely order processing for both U.S. and Canada orders. This regular interval ensures that orders are brokered efficiently across different regions.
This routing rule is dedicated to handling Canadian orders, ensuring they are processed separately from U.S. orders.
Two filters are applied in this routing rule:
Queue Filter: Orders are fetched from three queues to ensure complete coverage of all types of Canadian orders:
Brokering Queue: Includes orders brokered for the first time.
Rejected Item Parking Queue: Includes orders rejected from fulfillment locations.
Unfillable Queue: Includes orders that were previously unfillable due to a lack of available inventory.
Shipping Method Filter: The filter is set to include only Standard Shipping, which is the designated shipping method for Canada orders.
The orders are sorted by Order Date, ensuring that Canadian orders are brokered on a first-come, first-served basis, following the FIFO principle.
The following five inventory rules are applied to route Canadian orders effectively:
Inventory Filter: A Facility Group Filter is applied to prioritize fulfillment from Warehouses Only.
Inventory Sort: Orders are sorted by Proximity to the customer.
Action: Partial fulfillment is turned off, and if no warehouse can fulfill the order, the order is sent to the next rule.
Inventory Filter: A Facility Group Filter is applied to allow fulfillment from any store.
Inventory Sort: Orders are sorted by Proximity to the customer to prioritize the nearest store.
Action: Partial fulfillment is turned off. If no store can fulfill the entire order, the order is sent to the next rule.
Inventory Filter: A Facility Group Filter is applied to allow fulfillment from warehouses only.
Inventory Sort: Orders are sorted by Proximity to the customer to minimize delivery time from the warehouse.
Action: Partial fulfillment is turned on, meaning available inventory in the warehouse is allocated to the order. For items that are unavailable, the order is sent to the next rule.
Inventory Filter: A Facility Group Filter is applied to allow fulfillment from all stores.
Inventory Sort: Orders are sorted by Proximity to the customer, ensuring the closest store can fulfill the order.
Action: Partial fulfillment is turned on so that available inventory in the stores is allocated to the order. For any remaining unfilled items, the order is sent to the Unfillable Queue for further processing later.
For U.S. orders, a U.S. Routing Rule is created to manage routing and fulfillment. This batch ensures U.S. orders are processed based on their specific requirements.
Order Filter: Two filters are applied to U.S. orders:
Queue Filter: Orders are fetched from the Brokering Queue, Rejected Item Parking, and Unfillable Queue, ensuring all orders are processed, including previously unfulfilled or rejected orders.
Shipping Method Filter: Only orders using the US_Standard Shipping Method are included in this batch, ensuring that only U.S. standard shipping orders are routed.
Order Sort: Orders are sorted by Order Date, ensuring that earlier orders are processed first, following the first-in, first-out (FIFO) principle.
For U.S. orders, the following inventory rule is applied to prioritize the central warehouse as the fulfillment location.
Inventory Filter: The Facility Group Filter is set to include only the warehouse as the fulfillment source for U.S. orders.
Inventory Sort: Orders are sorted by Proximity to ensure that the nearest location is considered.
Action: Turn on partial fulfillment to allow the system to fulfill orders from available inventory in the warehouse. If any items are unavailable in the warehouse, the order is moved to the Unfillable Queue for future processing.
U.S. orders should be mapped to "US_Standard_Shipping," and a new routing batch should be created to ensure that these orders are fulfilled on a FIFO basis.
All U.S. orders should be fulfilled from the central warehouse. Select the facility group filter for the warehouse, allowing partial fulfillment to allocate available inventory. If items are unavailable, move them to the unfillable queue.
Activate Inventory Rules: Define fulfillment strategies for U.S. and Canadian orders.
Activate Each Order Batch: Ensure orders are processed according to their respective shipping methods.
Activate the Brokering Run: Schedule the brokering run every 15 minutes to ensure continuous and timely order brokering.
By leveraging a robust order routing system, retailers can optimize order fulfillment. Specific batches for U.S. and Canada orders, combined with precise inventory rules, ensure that U.S. orders are fulfilled from the central warehouse, and Canada orders are managed efficiently between the warehouse and stores. This streamlined approach enhances order processing efficiency, reduces costs, and supports reliable delivery within the 7-day standard shipping timeframe.
10 (=20-10)

This document aims to provide detailed troubleshooting steps for resolving issues related to order brokering in HotWax Commerce. The goal is to ensure smooth operation of the brokering engine, proper scheduling, and correct configuration of inventory rules, order batches, and facilities.
HotWax Commerce Order Brokering is a critical function that ensures orders are routed correctly based on predefined rules and schedules. Issues with order brokering can result in delays, incorrect order routing, and inventory mismanagement. This document will guide users through diagnosing and resolving common issues encountered during the brokering process.
Discover how HotWax Commerce's Pre-order Solution maximizes revenue potential and operational efficiency for retailers, simplifying the entire pre-order process.
HotWax Commerce’s Pre-order Solution empowers retailers to maximize revenue potential and operational efficiency. With intuitive applications and workflows, managing Pre-orders becomes straightforward.
Our solution enables retailers to sell inventory at full price before arrival, reducing end-of-season markdowns and securing increased revenues. By handling mixed cart orders, allocating inventory for online and physical stores, and facilitating Pre-order fulfillment without risking overselling, HotWax Commerce simplifies the entire Pre-order process.
Learn about HotWax Commerce's return management solutions, including importing returns from Shopify and creating in-store returns.
HotWax Commerce offers solutions for two distinct types of return managemnet: Importing Returns from Shopify and Creating In-Store Returns.
Import Returns from Shopify:
In the context of Mail Returns, customers or the Customer Service Representative (CSR) team can initiate return requests via email or phone calls.
Shopify retailers typically employ third-party return management apps for efficient return handling.
HotWax Commerce, while not functioning as a dedicated Return Management System, integrates with Shopify. It downloads return data post-completion, transmitting the information to ERP systems for financial and accounting purposes. This integration is facilitated without the need for direct links between ERP and Return Management Systems, showcasing HotWax Commerce's innate capabilities for data transfer.
In-Store Returns:
Shopify retailers utilizing Shopify POS can efficiently create and manage in-store returns for online orders directly through the POS system. Returns for these orders is also imported from SHopify
For retailers on non-Shopify POS systems, HotWax Commerce steps in to provide essential tools and functionality for creating and managing returns effectively within the platform.
This approach ensures that retailers using HotWax Commerce have a comprehensive and flexible system for handling returns, whether initiated by customers through various channels or managed within the HotWax Commerce platform itself.
159
WP02-28-Purple
INV_COUNT_ASSIGNED
2024-11-12
WEEK-1
156
WSH11-28-Orange
INV_COUNT_CREATED
2024-10-31
PRODUCT_SKU: The SKU of the product requiring a cycle count.
This is a required field.
Facility_ID: The ID of the HotWax facility where the count will be assigned.
This is an optional field.
Blanks the count in the 'Draft' status'.
STATUS: The status of the count.
This is an optional field.
The user must use:
INV_COUNT_CREATED to save the count as a draft and assign it later.
INV_COUNT_ASSIGNED to assign the count immediately.
Blanks create the count in the 'Draft' status'.
DUE_DATE: The due date of the count.
This is an optional field.
The user must use the yyyy/mm/dd format.
Blanks create the count with no due date.
WEEK-3
49
WP09-28-Black
INV_COUNT_CREATED
2024-11-31
WEEK-3
49
WSH07-28-Blue
INV_COUNT_CREATED
2024-11-31
WEEK-2
In this document we will provide descriptions of some imaginary retailers we work with and their unique order routing, brokering, and fulfillment strategies. Each retailer has specific business needs, and this page will guide you through configuring rules tailored to meet those requirements.
The return status will be completed now on the sales returns page.
Order DetailsReturn information will be available for the corresponding order items.
Customized Job Configurations for Tailored Execution
Scheduled job parameters can be modified directly from the Job Pipeline page, enabling users to tailor job execution to specific needs. This flexibility allows for optimization of job performance and resource utilization.
Detailed Job History for Analysis and Troubleshooting
Comprehensive historical job data is readily accessible for analysis and troubleshooting purposes. Users can identify patterns, optimize job performance, and resolve recurring issues by examining historical job execution details.
The Job Manager App shows all jobs (scheduled, running, or completed) on the Pipeline page, organized into three tabs: Pending, Running, and History.
Change run time and frequency: Use the dropdowns to update when and how often the job runs.
Edit custom parameters: View, copy, and modify job-specific parameters with the more option on the job card.
Skip the job: Temporarily skip the current run. The job will resume based on its schedule.
Disable the job: Cancel the current and future runs. The job can only be manually re-enabled to run again.
View history: Check the execution history and status (e.g., finished or failed).
Run Now: Run the job immediately by creating a duplicate instance. This action is irreversible.
Copy job details: Copy key job info like job ID, name, description, and runtime data.
Pin job: Pin frequently used jobs for quick access at the bottom of the page.
This tab lists jobs in the pending status, meaning they are queued and waiting to begin execution. Retailers can take multiple actions from the job card, as listed above.
Details visible in the Pending tab:
Time: Indicates when the job is scheduled to run, based on the timezone selected in the app.
Frequency: Indicates how often the job runs (e.g., every 15 minutes).
Recurrence: Displays the number of counts the job is retried once failed.
Job Enum ID: An internal identifier used by HotWax to define the type or purpose of the job.
This tab lists jobs in the running status i.e jobs those are currently in execution. It allows retailers to monitor the active job.
Details visible in the Running tab:
Start Time: Indicates when the job started running.
Service Name: Indicates which OMS service is executing the job.
Running Duration: Indicates how long the job has been running.
This tab lists all jobs that have been completed, whether finished or failed. Retailers can add custom parameters, view job history, copy details, or pin the job card.
Details visible in the History tab:
Created By: Shows the user who initially created the job.
Updated By: Shows the user who last updated job parameters like schedule or frequency.
Time Zone: Displays the time zone in which the job was executed.
Copy Job Info: Retailers can copy fields like Job ID, Job Name, and runtime data for further use.
Displays all the jobs queued for execution.
Displays all the jobs running in the system.
Displays all the historical jobs. Historical jobs can be filtered by their status.
Easily locate specific jobs by name or category.
Quickly find jobs by applying filters based on category and status.
The Data Manager log provides history of files imported into the OMS, including the file import status, processing timestamps, and any error records. These logs support tracking, analysis, and troubleshooting of file imports.
When accessing the Data Manager Log from the Job Manager App, users can directly view the following details:
Number of successfully processed files.
Number of failed files.
Files with error records.
Clicking View Details redirects retailers to a detailed logs page where they can:
Access individual logs with specifics like start and finished date and time, user information, and unique log IDs.
Download the original file and failed records for further analysis.
Filter logs to display only those that failed execution or contain error records.
View file execution mode such as Async or Queued
Keep frequently accessed jobs readily available for quick access. Pinned jobs will be visible in the footer.
Displays the number of counts the job is retried once failed.



Guide to overview closed cycle counts in the Cycle Count App, including performance metrics, detailed count summaries, and export options for comprehensive reporting.
The Closed counts page gives a review of all counts that have been closed. This page is helpful for getting an overview of how cycle counts have been performing.
The top of the page has two metrics:
Counts closed: Number of counts that have been closed in the selected time range.
Average variance: The average variance presents an overall measure of how accurate inventory has been across all recently closed cycle counts.
The Closed count list shows the name and ID of the cycle count along with the facility from which it is completed and the date on which the cycle count is closed. Admins can also see the item count details such as how many items were available in the count and how many of them were counted. the rejected inventory counts and the total inventory variance are also visible for admins to easily identify the count with major inaccuracies.
The Closed counts page includes all standard search and sort options, but adds a few specific filters to support retrospective analysis. Admins can filter by:
Facility, to view closed counts from a certain location
Created Date, to check when a count was initiated
Closed Date, to focus on when it was completed (with After/Before options)
This is especially useful during audits or reporting when time-based filtering is key.
The Closed counts details page displays item-level information including counted quantity, system quantity, variance, and item status (accepted or rejected) of each item. The page also displays overall progress and total variance in the cycle count.
To get a detailed view of recently closed counts, use the export function available at the right bottom and save counts offline in a CSV format that can be opened in all common spreadsheet tools.
Configurable export options: Commonly referenced values can be configured during export to help make reporting easier.
Facility
Internal ID
External ID
Primary/Secondary Product ID
Internal ID
Internal Name
SKU
UPC
Line Status
Accepted
Rejected
When importing the Count ID, facility and Internal ID are mandatory fields, while individual columns can also be selected to be included in the export, but all fields are selected by default. The following columns are available to export:
Why does the order status on the "Find Order" page show as "created" even though the order is already approved?
This discrepancy is likely due to an issue with Solr indexing, which can occur if the Solr instance was down when the order status was updated.
To resolve this issue, follow these steps:
Reindex the order by going to the order detail page and clicking the reindex button just below the order ID.
Verify that the order status has been correctly updated on the find order page in the OMS.
The table below defines all the parameters used in the job configuration.
Troubleshooting guide for duplicate orders
This document aims to provide a clear, concise, and solution-focused guide to diagnose and resolve issues related to order import duplications in HotWax Commerce. The desired outcome is to ensure the successful and error-free import of orders, avoiding duplicate jobs and ensuring smooth operations.
Schedule jobs responsible for importing all products and orders into the system for the initial deployment and instance configuration from the Initial Load category.
Displays the jobs for initial OMS setup to import all products and orders.
Characteristics
One time ExecutionThese jobs are executed only once during the initial setup and rarely during instance redeployments.
Product and Order Importation
Facilitate the importation of all products and orders from the eCommerce platform for the initial instance setup.
Shopify retailers can capture additional crucial order details through metafields. When HotWax Commerce enters a retailer’s Shopify ecosystem, it becomes the source of truth for all order-related information.
HotWax Commerce stores these metafields as order attributes enabling Shopify retailers to conveniently provide necessary order information to accounting systems for accurate financial reporting. For example, customer identification CustomerID and designated delivery location Municipio are crucial attributes for one of our clients.
If orders do not have all valid order attributes, the orders remain in “created” status and these orders can not proceed with the fulfillment process. By using the , you can find out which orders have a missing order attribute.
The Store Permissions tab allows you to configure specific settings that control how store associates interact with inventory data during counting. It includes two primary cards: Quantity on Hand and Force Scan.
The Quantity on Hand card includes a toggle for Show Systemic Inventory:
When enabled, the system displays the current systemic inventory, showing the expected physical quantities at each location during inventory counting.
When disabled, the systemic inventory values are hidden from store associates, ensuring they only see their manually counted inventory quantities.
The Force Scan card includes a toggle for Required Barcode Scanning:
When enabled, store associates are required to scan inventory barcodes in order to count inventory. Manual entry of inventory quantities is restricted to prevent errors.
Additionally, the Barcode Identifier dropdown allows the selection of the identifier used for barcode scanning:
If the selected identifier is unavailable, the system will default to using the Internal Name for scanning, ensuring the process remains smooth.
Name or ID of the facility where the count was performed.
Primary Product ID
Unique identifier for the primary product being counted.
Line Status
Current status of the line item (e.g., Accepted, Rejected).
Expected Quantity
The expected quantity of the product in the inventory.
Counted Quantity
The actual counted quantity of the product.
Variance
The difference between the expected and counted quantities.
Field
Description
Count ID
Unique identifier for the cycle count.
Count Name
Descriptive name of the cycle count.
Accepted by User
Name or ID of the user who accepted the count.
Created Date
Date when the cycle count was created.
Last Submitted Date
Date when the count was last submitted.
Closed Date
Date when the count was closed.

Facility
Specifies the SFTP location and path for importing the file from.
-
-
3
remoteFilename
A specific file name is passed to process it.
-
xyz.csv
4
groupBy
Parameter to specify which field of the CSV file to use as a grouping parameter for multi-threading.
None
orderId
5
additionalParameters
Additional parameters for job customization.
-
-
6
fileNameRegex
Specifies a regular expression for filtering filenames.
-
.
7
scheduleNow
true - Imports data into the MDM and processes immediately
false - Imports data into the MDM for the ‘Process Bulk Import Files Job’ to process
-
true
8
frequency
The interval in minutes used to calculate the last sync time by subtracting it from the current time when no previous sync exists.
-
2 min
9
limit
Records fetched from an API query can be paginated. The limit parameter specifies the maximum records fetched in a page.
-
50
10
orderId
HotWax OrderId for the order that needs to be processed by the job
All eligible orders
HC29435
11
cancelledDate
The date for which canceled orders are to be uploaded by the service.
null
12/12/2024
12
createdByJobId
ID of the job that initiated this job.
-
1005759
13
bufferTime
Specifies the (in minutes) for scheduling the job.
-
5 min
14
thruDateBuffer
Specifies the time (in minutes) for scheduling jobs.
-
5 min
15
financialStatus
Parameter to filter records using a specific financial status
all
settled
16
filterQuery
Specifies a filter query for more targeted metafield downloads.
-
-
17
intervalDays
Specifies the number of days between each notification sent to customers.
-
10
18
maxOccurrences
Specifies the maximum number of times a notification can be sent to customers
0
3
19
emailType
Specific type of email template to use for a notification
-
DM_ERROR_FILE
20
facilityid
Parameter to filter the records by the passed HotWax facility IDs.
None
[‘132’, ‘27’]
21
productId
Parameter to filter the records by the passed HotWax product IDs.
all
93853
22
idType
Specifies type of ID being passed in the idValue parameter.
SKU
UPCA
23
iDValue
Specifies the value of the idType passed in the idValue Parameters
-
654253097
24
startDateTime
This parameter is used to define the starting point in time from which records should be processed.
-
12-12-2025 10:10:23
25
returnId
HotWax return id for the return that needs to be processed by the job
-
10941
26
fileProcessingDelay
Specifies the interval for processing a file.
-
5 min
27
Since Id
Processes records created after the record with the specified ID.
Since beginning
2024-12-16 13:24:03
28
configId
The configuration ID of the MDM where the job uploads the file it imports.
-
CARRIER_CODE
29
topicEnumID
This parameter is passed in a service to trigger a webhook associated with that specific topic.
-
WEBHOOK_SHIP_SHIPPED
30
propertyResource
Specifies the property resource for configuration.
-
FTP_CONFIG
31
nameSpace
Specifies the namespace category in Shopify. Note: In Shopify metafields, the namespace is a way to categorize or group related metafields together to avoid naming conflicts and organize data.
-
HotwaxOrderDetails
32
Shipment ID
The ID associated with the shipment.
-
12602
1
includeAll
‘true’ - To process all records ‘false’ - To process only records after the last run time
true
true
2
importpath
HotWax Commerce can face order import duplication issues, particularly when the system goes down during scheduled import jobs. If the system is down for a period during which multiple import jobs are scheduled, all pending jobs might run simultaneously upon the system's recovery, leading to duplicate order imports. This document outlines the scenarios where this issue might occur and provides step-by-step processes to diagnose and resolve these issues.
System Downtime with Scheduled Order Import Jobs
The system goes down during scheduled order import jobs.
Upon recovery, all pending jobs run simultaneously.
Result: Duplicate orders are created.
To prevent simultaneous execution and duplicate orders, ensure the Schedule Now parameter is set to False when scheduling order import jobs. This setting ensures jobs run sequentially.
Verify if the Issue Exists
Check the system logs to identify any periods of downtime.
Verify if multiple import jobs were scheduled during the downtime.
Identify if duplicate orders have been created by checking order statuses and attributes.
If the job runs every 5 minutes and the system is down for 10 minutes, verify that all pending jobs did not run at the same time upon recovery.
Identify and Remove Duplicate Orders
Verify Duplicate Orders
If the system was down for a significant duration and meanwhile multiple jobs may run, retailers must manually identify duplicate orders by checking for identical Shopify IDs.
Identify orders stuck in the "Created" state, as only one order will have order attributes saved for approval.
Example
Move Duplicate Orders to General Ops Parking
Open the relevant duplicate orders
Navigate to the Items section and click on the Move items to parking text.
Select general ops parking and click on save to move the item to general ops parking.
Cancel Orders
Navigate to the Sales Orders page
Filter by Facility: General Ops Parking.
Identify the duplicate orders and click to open the order details page
Click on the Cancel button on the top to cancel the orders
Ensure orders are not manually approved by the CSR and fulfillment is not started. If fulfillment of the order is started, manually reject the order before cancellation. { % endhint %}
Empower users to schedule the import process, enabling them to select the desired execution time.
Go to the Initial Load category.
Initiate the Import Products in Bulk job.
Choose the desired runtime from the dropdown menu.
Confirm the selected runtime.
Go to Miscellaneous Jobs page.
Initiate the Process bulk imported files job.
Once product importation is complete, proceed to the Import Orders in Bulk job.
Select the preferred runtime from the dropdown menu.
Verify the order and fulfillment status.
Input the Last Shopify ID from which order numbers should be imported into HotWax Commerce OMS.
Execute the import process.
Go to Miscellaneous Jobs page.
Initiate the Process bulk imported files job.
To ensure consistency between HotWax Commerce and Shopify, verify if an order has the Order Metafields in Shopify. Typically, the attributes will sync automatically later.
If an order in Shopify has meta fields that are missing in OMS, it could be due to one of the following:
Import Order Metafield Job Not Running: The job responsible for importing metafields might not be running. Ensure that this job is scheduled and operating correctly in HotWax Commerce
Check Job Scheduling in NiFi: Verify that the job responsible for importing metafields and placing them on SFTP is scheduled and functioning as expected in NiFi.
Verify SFTP Import in OMS: Ensure OMS is properly configured to import metafields from SFTP.
Manual addition of meta fields in OMS should be considered only if the above checks are confirmed and the issue persists.
Note: If manual addition is necessary, ensure correct spelling and format when adding tags in OMS.
If an order metafield is missing from Shopify and the OMS, it's crucial to investigate the root cause. This may involve identifying issues such as the metafield not being available due to order-related problems.
For example, if the Riskified or Signified approved tag is missing in Shopify, the order contains high or medium fraud risk. There is a high chance that you will receive a chargeback on this order.
In such cases, CSRs have to manually verify the orders and add the attribute in the Order Attribute section on the Order View page.
Easily search and select the jobs you want to execute or configure. You can also schedule jobs and set their run times.
Schedule Jobs
Conveniently configure and schedule all selected jobs simultaneously to streamline your workflow.
Product store
If your OMS is connected to multiple eCommerce stores selling different collections of products, you may have multiple Product Stores set up in HotWax Commerce.
eCom stores (Shopify Configs)
If your OMS is connected to multiple eCommerce stores selling the same catalog operating as one Company, you may have multiple Shop Configs for the selected Product Store.
Select jobs
Search Jobs and use the Add function to select jobs to be scheduled.
Scheduler
Configure and schedule all selected jobs simultaneously.
Choose the Product store.
Select the relevant Shopify configurations.
Click Select Jobs function to proceed to locate and add the jobs you wish to schedule.
Adjust the scheduled run time and frequency according to your requirements.







Managing inventory and order fulfillment is a critical aspect of retail operations. However, sometimes items may be unavailable across all facilities. In such cases, retailers can use the Auto-Cancel Date Management feature, which provides them with the ability to automate the cancellation of orders that cannot be fulfilled due to inventory shortages within the desired frame. This feature helps retailers avoid operational delays and improve customer satisfaction by ensuring orders do not remain in limbo indefinitely. When an item is marked unfillable after a failed brokering attempt, users can set or modify an auto-cancel date, streamlining the process of handling these unfillable orders. For example, an e-commerce order can have a 5-day auto-cancel period, while SendSale orders may not have any auto-cancellations, allowing flexibility based on business rules.
1. Access the Order Routing App
Navigate to: Launchpad > App. This is where you configure brokering runs and set up auto-cancellation rules for unfillable orders. Inventory managers or fulfillment team members typically use this to manage order fulfillment and brokering logic.
2. Select the Brokering Run
Choose the brokering run for which you want to set an auto-cancellation date. Different brokering runs may handle various fulfillment strategies for example unfillable order brokering runs may be different from regular runs, so selecting the right run ensures the proper application of auto-cancellation rules.
3. Select the Order Batch
Within the selected brokering run, choose the relevant order batch. Retailers may want to set different auto-cancellation rules for standard orders versus expedited orders. This step allows for customizing rules based on order priorities and fulfillment types.
4. Navigate to the Last Inventory Rule
Inside the chosen order batch, scroll down and select the last inventory rule. This rule is designed to handle scenarios where the item is unavailable across all facilities, triggering the need for auto-cancellation or alternative handling options.
5. Set the Auto-Cancel Date
Go to the "Unavailable Item" card and add the desired auto-cancel date in the Auto-Cancel Date chip. This defines the time frame (e.g., 5 days) for holding the unfillable item before it is automatically canceled.
You can move the item to unfillable parking for the item with unavailable inventory so that it can be easily differentiated with the regular orders.
If the inventory for an unfillable item is expected to arrive soon or if the order needs to be held longer, you can remove the auto-cancel date.
Navigate to the "Unavailable Item" Card in the relevant inventory rule within the Order Batch
Clear the Auto-Cancel Date: Use the Clear Auto-Cancel Date toggle to remove the previously set date. This prevents the item from being automatically canceled.
Using these options, you can control when and how unfillable orders are managed, ensuring better coordination and reduced chances of unnecessary order cancellations.
6c1155ebf7fb916b6b59081a0872361151feee8e
Regularly monitor the Unfillable Report, which highlights orders in unfillable parking with an auto-cancel date. This report helps ensure that unfillable items are correctly scheduled for cancellation and allows you to adjust or clear the auto-cancel date if needed.
When the auto-cancel date is reached, the system automatically runs the autocancelorderitems job at midnight. This job cancels any unfillable items and logs the cancellation reason as "auto-cancellation," ensuring timely order resolution and preventing delays in the process.
This document provides a comprehensive guide to diagnose and resolve synchronization issues related to order import errors caused by special characters in notes and incorrectly formatted email fields.
Order import fails in HotWax Commerce OMS due to special characters in the "Note" field. Such as 🌟 👍 😊 or miscellaneous characters.
Order import fails in HotWax Commerce OMS due to incorrectly formatted email addresses. Such as name#example.com or name@#example.com, etc.
Common Error Messages:
"Rollback called in Entity Engine SQLProcessor java.lang.Exception"
"E-mail address not formatted correctly, must be like: name@domain"
Access OMS:
Navigate to HotWax Commerce OMS and log in with your user credentials.
Go to the MDM page from the hamburger menu and click on EXIM > MDM > Shopify order mdm.
Identify Failed Order:
Find the order that failed to import by looking at the error messages in OMS.
Download JSON File:
Append /json
Remove Special Characters and Correct Email Format:
Edit the JSON file to remove any special characters from the note field.
Correct the email address to adhere to the standard format.
Save Edited JSON:
By following these detailed steps, you can effectively troubleshoot and resolve synchronization issues between HotWax Commerce and Shopify, ensuring a smooth and error-free order import process.
This issue is handled in [Release 5.9.0](https://docs.hotwax.co/integrate-with-hotwax/oms-release-versions/oms-release-versions)
This troubleshooting guide aims to address issues where orders remain stuck in the fulfillment app even after completion or incorrectly appear as created on the find sales orders page when they are completed or approved.
HotWax Commerce utilizes Solr, an open-source enterprise-search platform, to index product orders and other data within its system. The order details page retrieves data directly from the database, while the find order detail page relies on Solr for rapid data retrieval. Solr inconsistencies can lead to discrepancies in displayed information across these pages and apps.
If an order remains in the created or approved status on the find sales orders page, while it's marked as completed in the OMS:
Navigate to the order details page and click on the reindex button located near the top of the page, next to the refresh button. This action will index the order correctly.
If the issue persists, follow these steps:
For more details, kindly refer to this .
Navigate to the Find Order Details page where you can manage order indexing.
Click the Create Order Index button to initiate the indexing process.
A modal window will appear. Enter the order ID associated with the order you want to index.
Click the Create OISGIR Index button if an order is encountering fulfillment difficulties.
In the modal window that appears, enter the order ID associated with the order facing fulfillment issues.
Once the order ID is entered, click the Create OISGIR Index button. Providing only the order ID is sufficient to generate its index; filling out all fields is not necessary.
Discover the Soft Allocation Workflow for seamless order handling between Shopify and HotWax Commerce.
The Soft Allocation Workflow establishes a seamless integration between Shopify and HotWax Commerce, facilitating the efficient handling of orders with soft-allocated items. By configuring a customized Shopify Flow, triggered upon order creation, and tagged with specific criteria, this workflow ensures that orders are appropriately marked with the necessary identifiers before being imported into HotWax. This tag, denoted as HC_PRE_SELECTED_FAC, serves as a key element in the subsequent fulfillment process. The OMS is configured to recognize this tag and automatically allocate the associated items to the pre-selected facility, streamlining the fulfillment of orders with soft-allocated items. Additionally, the workflow incorporates essential product store settings in both Shopify and the OMS to further enhance accuracy and ensure a smooth, automated fulfillment process.
To implement a Shopify Flow tailored to the specific requirement of tagging orders with soft-allocated items, follow this comprehensive guide:
1. Create a New Shopify Workflow:
Navigate to Settings > Apps and sales channels in your Shopify admin.
Select the .
Click "Open app."
Create a new workflow by clicking "Create workflow."
2. Set Trigger to Order Created:
Choose the trigger "Order Created" to initiate the workflow when an order is created in Shopify.
Note: Shopify Flows may not run instantly after order creation. To ensure that orders are imported only after tags have been applied to a soft-allocated order, use the buffer parameter in the import order job.
3. Add Tag on Orders with Soft Allocated Items:
Select Condition to establish criteria that must be met before any actions can proceed.
Set the condition to:
Select orders > line items > Custom Attributes > Key.
Input hcShippingFacility
By following these steps, you'll create a specialized workflow that seamlessly tags orders with soft-allocated items, ensuring a smooth integration with HotWax.
1. Set Product Store Settings:
Go to the Hamburger Menu in OMS.
Navigate to Settings > Store to open the Product Store page for your dedicated store > Store Settings section.
Click "Add" and select the setting from the dropdown: Preselected facility for same day shipping. Input the value with the same tag added in Shopify HC_PRE_SELECTED_FAC. This setting ensures that orders imported with this tag have their line items checked for pre-selected facilities to fulfill them.
By following these steps in both Shopify and OMS, you establish a seamless Soft Allocation flow, ensuring accurate fulfillment based on specified criteria.
Order cancellations are a common occurrence in online retail. If a merchant is using both Shopify and HotWax Commerce, cancellations can happen in two ways:
Cancellations made in Shopify and updated in HotWax Commerce.
Cancellations made in HotWax Commerce and updated in Shopify.
HotWax Commerce recommends canceling orders on Shopify and then updating them on HotWax Commerce, following the same process as used for order creation. This approach ensures that cancellations are handled consistently by both customers and the customer service team. In special cases, such as auto cancellations and mass pre-order cancellations, Shopify retailers can use HotWax Commerce to cancel orders and update them on Shopify.
HotWax Commerce can import cancellation updates in two cases:
When customers request order cancellations from Shopify or CSR teams cancel orders due to suspected fraudulent orders, they can cancel the entire order through the following steps:
Go to the order page on Shopify.
Select the desired order.
Click on More Actions and choose Cancel Order.
To sync cancellation updates from Shopify to HotWax Commerce, there are two options available: webhooks and batch jobs. By subscribing to the Canceled Order webhook, customers can cancel orders in real-time. However, it should be noted that Shopify webhooks may only sometimes be reliable. Therefore, it is recommended to schedule the Canceled Order Job. The canceled order job can be scheduled from the HotWax Commerce Job Manager App.
Navigate to the Order section in the job manager app.
Open the job card titled Canceled Order.
Select the order run time and schedule.
Save the Changes, this will schedule the job to import the canceled orders.
When customers request to remove any item from the order or the CSR team cancels the ordered item due to inventory variance, they can partially cancel the order through the following steps:
Access the order page on Shopify.
Choose the Edit option.
Adjust the quantity or remove the specific item(s) to be canceled.
For partial cancellations, the order status in Shopify does not change, only the last updated date for the order changes. HotWax Commerce partially cancels the order through the following steps:
Navigate to the Order section in the job manager app.
Open the job card titled Canceled Item.
Select the order run time and schedule.
Save the Changes, this will schedule the job to import the canceled items.
For more details on how canceled orders are imported, refer to the Shopify-HotWax Commerce Integration document.
Cancellation of an order can have a different nature on OMS. If an order is not brokered, when it's still in the created or approved status but not brokered yet, the order will be marked as canceled on the sales order dashboard of HotWax Commerce. This ensures that the canceled order is properly measured and since the order is not allocated to any store, there would be no changes in the store ATP, only the brokering queue inventory is released.
If an order is brokered for fulfillment to the facility and gets canceled on Shopify, the Fulfillment app will show the impact regardless of whether the job is Open, In Progress, or Completed status. The canceled orders will be automatically removed from the Fulfillment app so that store associates can identify that no further operation needs to be done to fulfill the orders. The ATP of the canceled orders items will increase both for the store and online ATP computation.
If the order is packed, the CSR team should verify with the fulfillment team that the order needs to be unpacked and has been canceled. This ensures that the order is not shipped to the customer.
When Partial order cancellation happens in HotWax commerce, the order item is removed from the fulfillment app, and its inventory is corrected similarly to complete order cancellation. The order status will remain as per the other items, such as created, approved, or completed, only the order item status is changed to canceled which can be visible on the order details page against the line item which is canceled.
Possible Causes:
Item does not exist in the system
PO status is canceled
Item has Inventory in the system
Resolution Steps:
Status of PO items must be created or approved, ensuring canceled PO items are not considered for Pre-Order.
The promise date of a PO item must be in the future, guaranteeing that purchase order items will arrive in the future, not from an old PO.
The current inventory of the item must be 0, indicating it's out of stock and qualified for Pre-Order or backorder.
If the 'isNewProduct' field of a PO is marked as “yes”, it’s identified as a Pre-Order product; if marked “no”, it's categorized as a backorder product.
Products from purchase orders that don't meet these criteria won't be listed in HotWax Commerce's pre-order catalog. It's important to ensure that purchase order items adhere to these criteria for accurate listing.
Resolution Steps:
Ensure all future inventory of pre-orders is received.
Ensure the Purchase Order status changes to “Canceled” or “Completed”.
Ensure the Purchase Order arrival date (promised fulfillment date) has passed.
There is no Return for any pre-order or backorder.
Possible Causes:
PO status is canceled
PO has a past expected delivery date.
Items have available inventory in the system.
The generated file is not processed by Shopify and is lying unread at the specified SFTP location
Resolution Steps:
Status of PO items must be created or approved, ensuring canceled PO items are not considered for Pre-Order.
The promise date of a PO item must be in the future, guaranteeing that the purchase order item will arrive in the future, not from an old PO.
The current inventory of the item must be 0, indicating it's out of stock and qualified for Pre-Order or backorder.
If the 'isNewProduct' field of a PO is marked as “yes”, it’s identified as a Pre-Order product; if marked “no”, it's categorized as a backorder product.
Possible Causes:
PO status is canceled
Item does not exist anymore in the pre-order or backorder category.
Item has Inventory in the system.
The generated file is not processed by Shopify and is lying unread at specified SFTP location
Resolution Steps:
Status of PO items must be created or approved.
The promise date of a PO item must be in the future.
Ensure the current inventory of the item must be 0.
Ensure that the file is processed by Shopify from the SFTP location
Products from purchase orders that don't meet these criteria won't be listed in Shopify’s pre-order catalog. Contact the Shopify team if your product is still not listed on Shopify.
This document provides steps to diagnose and resolve issues when orders fail to transfer from Shopify to HotWax Commerce (OMS).
When an order fails to import from Shopify to HotWax, it typically does not appear in the OMS, and an error is logged in the EXIM Import record for Shopify orders in HotWax Commerce. Several factors can contribute to these errors, such as incompatibility of exported data, API endpoint issues, or the absence of required meta fields during order processing. A report titled The Shopify Order Import Error Report details these failures, outlining specific errors generated by the system. These errors can usually be resolved by the following steps:
Navigate to OMS: Log in to OMS.
Check Order: Search the order on the OMS find order page to verify if the order is already available in OMS.
Log in to OMS: Use your username and password to log in to Hotwax Commerce OMS.
Navigate to the Import Section:
Go to MDM > EXIM in from the hamburger menu.
If the order still fails to import, troubleshoot the import failure by checking the error logs in the EXIM Import record for detailed errors. Some possible failure reasons are:
Connection timeout.
Transaction is empty.
Learn how to resolve brokering issues related to incorrect scheduling
The brokering engine relies on correctly scheduled runs to process and route orders. If the scheduling is incorrect, the engine won't execute, leading to unprocessed orders and potential delays in order fulfillment.
Verify Brokering Schedule
Navigate to the Order Routing App.
Click on the Brokering Run card you would like to run for routing.
Verify the run time and the frequency to ensure they are set correctly.
Read our user manual to learn more
Example
Incorrect Scheduling: If the brokering run is set to execute at 3:00 PM daily but needs to run every hour, adjust the frequency to "Hourly" in the Brokering Run settings.
If you observe that a process is not functioning correctly in Hotwax Commerce, for example, if orders are not being synchronized, this issue often stems from either the job not being scheduled at all or being incorrectly scheduled. Ensuring proper job scheduling is crucial to maintaining the smooth operation of processes like order synchronization within Hotwax Commerce. This document aims to provide a structured approach for identifying and resolving synchronization issues between HotWax Commerce and external systems due to job scheduling errors.
This document provides a detailed guide to diagnose and resolve the exceptions caused by duplicated jobs in HotWax Commerce, which can lead to data duplication, data redundancy, and system performance issues. The goal is to ensure smooth job execution and accurate data management.
Hard counts are used for large-scale inventory checks, such as year-end stock takes. Unlike regular cycle counts, hard counts require stores to count every item in stock, with no exclusions. The goal is to gain an accurate and comprehensive understanding of a store's inventory across the entire company.
Click the plus button located at the bottom right of the page. This will open a list for creating different types of counts.
HotWax Commerce provides a unified view of inventory by seamlessly connecting with various technology systems used by retailers, including Enterprise Resource Planning (ERP), Point of Sale (POS), and Warehouse Management Systems (WMS). HotWax Commerce ensures that inventory updates from all these systems are synchronized to support various business scenarios. HotWax Commerce determines the "Available to Promise (ATP)" or the amount of inventory that can be sold and then sends it to e-commerce channels. This makes HotWax Commerce the ultimate authority on inventory availability. Users can see both consolidated ATP and facility-wise ATP by clicking on the total ATP count.
Managing cycle counts requires a lot of manual communication, especially for merchants with a large inventory network. Operations managers and admins often aren’t in a position to directly communicate cycle count requests to ground teams, instead rely on static forms of communication like email. If merchants need inventory reconciliation for multiple items, inconsistency in the information flow can lead to inaccurate inventory.
The directed Cycle Count App is designed to adapt to the user who is operating it. When an admin team member logs in, they are provided with admin screens that are dedicated to the holistic operations of cycle count management. Within the admin view, users can create draft cycle counts, assign them to stores for counting, and then review and either accept or reject them for recounts. After counts are completed, the admin views also show analytics of their counts for better overall visibility into inventory accuracy. For store side of the Cycle Count App, you can refer to our team.
This page explains how HotWax Commerce calculates Available-to-Promise (ATP) by syncing inventory across channels and factoring in safety stock, thresholds, and facility exclusions.
HotWax Commerce integrates with ERP, POS, and WMS systems to provide a unified inventory view, ensuring stock levels are synchronized with platforms like Shopify. When calculating Online Available to Promise (ATP) for Shopify, HotWax Commerce considers more than just the quantity on hand (QOH). It also factors in safety stock, thresholds, reserved quantities, brokering queue orders, and excluded facilities` to avoid overselling scenarios.
For example, the product "blue shirt" from the brand NotNaked has a current quantity on hand (QOH) of 100 units. There are 10 orders placed for this product, with inventory allocated to 5 of those sales orders. Additionally, the product has 5 units set aside as safety stock and 5 units as a threshold. One facility, which is unavailable for fulfillment, has 5 units of Available-to-Promise (ATP) inventory. The ATP for this product can be calculated using the following formula:
Online ATP = QOH - (Reserved quantities + Safety stock + Threshold + Orders in brokering queue + Excluded facilities’ ATP)
Here is the given information:
Given:
Discover your guide to troubleshooting brokering issues due to incorrect Facility Associations
For orders to be routed correctly, the facilities need to be associated with the appropriate facility group. If the facilities are not correctly configured in the facility groups, orders might be routed to the wrong locations, causing delays and inefficiencies.
Check the Import Results in the Shopify order mdm page for any failed records.
Check Shopify Logs:
Review Shopify Plus logs or feeds for specific error messages related to the failed import.
Inspect "Note" and "Email" Fields:
Open the JSON file and locate the note key. Check for any special characters, emojis, or miscellaneous symbols.
Locate the email key and verify that the email address follows the standard format (e.g., name@domain).
Save the changes made to the JSON file.
Re-import Order:
If an error is resolved within the job execution time (generally 15 minutes), the import order job should automatically import the order.
Otherwise, manually import the order by navigating to MDM / EXIM > MDM > Shopify orders mdm, select Shopify Config, upload your JSON or CSV file using the Upload File field, and run the job.
Verify Successful Import:
Ensure the order is successfully imported without errors.
Item is associated with the pre-order or backorder category.
Ensure the file is read and processed from the SFTP location.
Select the Shield option to begin the hard count. This will open the Hard Count page.
During the setup, there is no need to select specific products. The focus is on choosing the facilities to which the hard count will be assigned.
Facilities can be selected individually or by group.
Click on the Individual tab.
Select the desired facilities.
Click on the Group tab. All facility groups will be listed.
Select a facility group to automatically include all facilities within that group for the count.
After creating the hard count, toggle the Auto assign to store setting located in the top right of the page to automatically assign the hard count to stores. If this setting is turned off, the hard count will be created in the Draft status.
Click on the Checkmark done icon at the bottom right of the page to finalize.
Open order details to review assignments, shipping plans, and item-level progress.
Jump to fulfillment and receiving workflows once orders are approved.
See also:
Navigate to Shopify Jobs and select Import Shopify Order under the Order Management tab.
Re-import the Order:
Select the Shopify config and enter the Shopify Order ID.
Run the job by clicking the Run button.
Verify Successful Import:
To verify the order's successful import, go to MDM > EXIM.
Navigate to Shopify Jobs and click on Shopify Order MDM under the MDM tab.
Valid fields are missing in order JSON.
Identify the issue's source, determining if it originates from Shopify, the integration process, or HotWax Commerce.
If the cause remains unclear, reach out to HotWax Commerce support, providing them with the error logs for efficient troubleshooting.
Go to the settings section, scroll down in the hamburger menu, and select the search admin page.
Locate the index operations section at the bottom of the page, which includes the following four boxes:
Create order indexes
Create product indexes
Create user login indexes
Create OISGIR indexes
Create Order Index button within the modal window to accurately index the order.If no values are entered in the field, all available data will still be indexed automatically.


Quantity on hand
100 Units
Reserved quantities
5 Units
Safety stock
5 Units
Threshold
5 Units
Orders in brokering queue
5 Units
Excluded facilities' ATP
5 Units
Hence,
HotWax Commerce will push 75 units as the sellable Online ATP to Shopify, ensuring accurate inventory representation for online sales. However, retailers managing large product assortments and multiple facilities may face challenges in handling individual product settings at scale. Each product can have different configurations for safety stock, thresholds, store pickup, and shipping rules. Modifying product categories or introducing new ones requires uploading large CSV files, which takes time and limits flexibility in adjusting fulfillment rules.
The ATP app simplifies this by allowing retailers to configure multiple rules to manage safety stock, threshold, store pickup, and shipping for bulk products with ease. The ATP app allows retailers to apply rules based on product tags and facility types or groups, reducing manual work. It supports real-time available to promise computation based on all these rules and automates inventory synchronization across multiple channels.
Move the Order to Unfillable Hold Queue: Instead of canceling, you can send the order to the unfillable hold queue if you anticipate the inventory arriving soon. This step ensures that the order is retained in the system until the item is back in stock, improving order fulfillment efficiency.


Click Then to specify the action to be taken if the condition is met.
Choose Actions and select an action based on the condition's results.
Set the action to:
Choose 'Add Order Tags'.
Input HC_PRE_SELECTED_FAC as the tag name.
Add one more setting named: Preselected facility tag and add value hcShippingFacility. This line item property on the item that needs to be read to determine the facility of the order.
Check Inventory Rules
If the brokering run schedule is correct, proceed to check the inventory rules by clicking on the order batch you would like to run.
Verify if the order batches are correctly sorted. The sorting should align with the expected order processing sequence.
Verify Inventory Rule Configuration
Check the inventory rules by clicking on the inventory rule associated with the order batch.
Verify if the order brokering facilities are correctly configured. Ensure the facilities to which the orders should be routed are specified accurately.
Verify if the inventory sorting criteria are correctly set to prioritize the orders as needed.
Confirm Status
Finally, verify the status of the inventory rule, order batch, and brokering run. Ensure that each status is set to "Active" and not in "Draft."
A job is not scheduled or is disabled, preventing expected data synchronization. For example, the operation team often forgets to schedule the Process Bulk Imported Files and expects the Import Orders Job will fetch all the orders from Shopify and start showing them in HotWax Commerce.
A job is not scheduled correctly, causing delays or affecting synchronization. For example, If you schedule a job with a frequency to run with a run-time value(date) of two days later when the job was supposed to run 15 minutes from now, then the job won’t start running in every 15 minutes until 2 days.
Identify the Exception:
Check if a process is not working as expected by looking at the results. If you don't get your desired result within a specified time frame, it indicates an exception.
Backtrack the Exception:
Look into the results in HotWax Commerce OMS to identify the step or task that is not performed.
Access Job Manager:
Open Job Manager using your user credentials.
Navigate to the job causing the issue. For example, if the issue is related to order import(as we see in the above example), go to Job Manager > Miscellaneous > Process bulk import files.
Analyze the Job:
Check if the job is scheduled correctly.
Identify if the job is disabled or configured incorrectly.
Read here to learn more about jobs in HotWax Commerce that can be scheduled as per the retailer’s preference.
Schedule or Configure the Job:
If the job is Disabled, schedule it by adding the runtime value and the frequency in which the job should run
If the job is configured incorrectly, update it as per your preference. Read here to learn more about how to schedule a job in HotWax Commerce.
Save the Changes:
Make the necessary changes to the job.
Click on the Save Changes button to ensure they take effect.
Verify Job Schedule:
Check the job schedule on the pipeline page to ensure the job is scheduled and running at the desired frequency and time.
Monitor Job Execution:
After scheduling or reconfiguring the job, monitor its execution to ensure it runs as expected.
By following these detailed steps, you can effectively troubleshoot and resolve synchronization issues between HotWax Commerce and Shopify caused by jobs not being scheduled or incorrectly scheduled. This ensures smooth job execution, minimizes system performance issues, and maintains accurate data management.
Overlapping jobs causing system performance issues.
Data duplication or redundancy due to duplicated jobs.
Interrupted job flow affecting the order life cycle.
For example, In the Job Manager app, we have two jobs: Approve Order, which means, approves the orders that are in in created status after checking the requisite criteria, and Approve Sales Order, which acts as the same as Approve Order but has a different attribute (field) values. Let’s suppose we have scheduled the approve orders job every 5 minutes and approve sales orders every 15 minutes This collectively means we have two jobs: one is ready to run 5 minutes after the previous run, whereas the other is ready to run from now every 15 minutes. These two jobs will overlap every 15 minutes and may result in system performance issues. Additionally, the collision of these jobs may interrupt the job flow.
Track the Exception:
Identify where the exception occurs or which step of the order life cycle is affected.
Analyze Job Pattern:
Determine if a process is running more than once within its scheduled frequency, indicating a duplicated job.
Access Job Manager:
Open the Job Manager app in HotWax Commerce.
Navigate to the Job Manager > Order page (for the example provided). For example, If the duplicacy arises in another area like Brokering, navigate to the corresponding section, such as Job Manager > Brokering.
Identify Duplicated Jobs:
Traverse all jobs and identify those with overlapping schedules. For example, Approve Order is scheduled every 5 minutes, and Approve Sales Order is scheduled every 15 minutes.
Duplicated jobs can also be identified by disabling the job with the exception. If the job is disabled once and it is still visible as scheduled after refreshing the page, then the job was duplicated.
Compare Jobs:
Compare both jobs to understand their functionality and attributes.
Disable Duplicated Job:
Terminate or remove the duplicated job causing the exception and the one that is outdated.
Click on the job to open its details.
Click the Disable button to deactivate the job.
Verify Job Termination:
Navigate to the pipeline page and search for the disabled job to ensure the problematic job is successfully disabled.
By following these detailed steps, you can effectively troubleshoot and ensure a smooth job execution process, minimize system performance issues, and maintain accurate data management.
Navigate to the Facilities App.
Navigate to the Facility Groups page.
Identify the facility group with the "Brokering_Group" subtype.
Click on the chip available against the facilities.
From the submenu, click on "View Facilities" to verify the facilities or "Quick Edit" to add or remove any facility from the group.
Navigate to the Order Routing App.
Navigate to inventory rules by clicking on the brokering run and order batch for the orders you would like to broker.
Click on the inventory rule you would like to configure.
Click on "Filter", select "Facilities," and choose the correct facility group to which you would like to broker the order.
For more details on Order Routing, refer to our user manual.


Retailers need real-time insights into their product inventory, to ensure informed decision-making and efficient inventory management. The Find Product Inventory page within HotWax Commerce serves as a centralized hub for managing specific inventory details of products. It offers a comprehensive view of various reservations and availability statuses, including reserved, committed, and available ATP (Available to Promise). Retailers can get visibility into reservations, queues, and excluded facilities, and the Find Product Inventory page empowers users to optimize their inventory allocation and fulfillment processes. Users can see all the columns in which inventory is reserved and the available-to-promise at the end. The following details are available for the inventory on the page:
Brokering queue
Queue that holds orders awaiting brokering.
Unfillable hold queue
Log in to HotWax Commerce by entering your credentials on the login page.
Within the hamburger menu, find and select the Warehouse option. This will open a submenu with various warehouse-related functionalities.
From the Warehouse submenu, choose the Inventory option. This action will direct you to the Find product Inventory page
Users can search for products based on various identifiers such as Product ID, Product name, SKU, Parent Product, or Keyword to get an instant overview of the inventory status of the searched product, facilitating informed decision-making and resource allocation for the retailers. The Search Products feature on the Find Product Inventory page provides users with quick access to information regarding a specific product inventory. It streamlines the process of checking ATP (Available-to-Promise) computation for specific products.
Retailers operating multiple warehouses or stores need facility-specific inventory visibility to efficiently manage and monitor product availability at each fulfillment location. The Facility filter provides users with visibility of products available at a particular facility, enabling users to make decisions regarding restocking, fulfillment, and redistribution. The Facility filter enhances workflow by enabling users to swiftly identify stock levels, assess inventory distribution, and optimize their supply chain operations.
Navigate to the Find Product Inventory page within HotWax Commerce. Look for the Facility filter option located at the top of the page.
Click on the dropdown menu associated with the Facility filter. A list of available facilities or locations will appear.
Once you've selected a facility from the dropdown menu, the page will display a list of products associated with the chosen facility. Review product availability, quantities, and details related to inventory management at this location.
For example: If you'd like to search for the available product inventory of the SKU "WJ08-XS-Gray" in the Times Square facility, search for the SKU in the search bar and select 'Times Square' from the facility filter.
In a multi-channel retail environment, efficient inventory management across various sales channels is crucial for success. The Inventory Channel Filter in HotWax Commerce provides users with the ability to view available products and their inventory on specific inventory channels. This feature enables retailers to view separate Available-to-Promise (ATP) inventories for each channel, minimizing risks and ensuring streamlined operations.
For example, if a retailer chooses the Amazon sales channel and searches for SKU "WJ08-XS-Gray" in the search bar they will get the breakdown of the product ATP that is available to sell online on Amazon.
Navigate to the Find Product Inventory page within HotWax Commerce where inventory details are displayed. Look for the Inventory Channel Filter, which is typically located at the top of the page.
If you want to view inventory details for a specific inventory channel, click on the dropdown menu to select the desired channel from the available options.
If you need to find a specific product's inventory breakdown for the selected channel, use the search functionality provided within the interface. Enter the identifier of the product you're interested in, and the system will display its inventory details for the chosen channel.
Gain a clear understanding of your presell catalog with HC's Audit feature, allowing you to track the status of pre-orders and back orders, and confirm listed items on the eCommerce platform.
Merchandisers need a clear picture of their presell catalog to understand the status of pre-orders and back orders. This helps them figure out when these pre-orders will show up on Shopify. This overview also lets them check and confirm listed items, even after they're on the e-commerce platform.
To see their complete presell catalog, merchandisers can go to the catalog page through the left menu in the Pre-Order app.
The Catalog page shows all items in pre-orders or backorders in one place. On the right side, users can see when the last pre-order computation job commenced and when will the next job run.
Users can search for product SKUs for which they want to audit by their SKU, Product name, Product ID, or keywords in the search bar. They can also filter products by clicking Pre-order or Backorder to see items in those categories. Only items in those categories will appear in the filtered list. Products not added to the catalog won’t show up in the search results.
Once a merchandiser identifies their desired SKU, clicking on the product leads to the product detail page. This page facilitates an audit of the pre-order catalog through the following steps:
Variants View: Auditors can explore all product variants, such as colors and sizes, click on each variant to access specific information about that SKU.
Verify Shopify Pre-Order listing details such as:
Pre-order Eligibility: Check the product's qualification for the presell category based on future and current inventory. Merchants will view Yes if product is eligible No if product is ineligible You can check the pre-order eligibility criteria to identify when a product is eligible for pre-order/backorder.
Verify Category: Confirm if the product is correctly categorized on Shopify by checking for the ✅ icon in the UI. When the category is incorrect on Shopify, the auditors will see a warning sign that the product is incorrectly categorized. The incorrect categorization on Shopify is mostly due to the Job for syncing on Shopify has not commenced yet. Check Jobs for Pre-Order Catalog Synchronization with eCommerce to ensure accurate categorization.
Verify Active Purchase Orders- Auditors can view the status of the active purchase orders for that specific products under Verify Active Purchase Order card. This card offers complete information if there’s any purchase order for this product that is scheduled to arrive and is not completed yet. The Active Purchase Order Page offers the following information:
Pre-selling category: This field shows whether the product is in pre-order or backorder
Ordered value: Check how many quantities are ordered in this purchase order
Available: Check if there’s already a purchase order received for the same product and if yes what is the current status of the inventory.
Corresponding sales orders: Check how many sales orders have already been received for this product
Check Online ATP computation- Online ATP calculation card offers the complete inventory explainability about how the pre-order item reaches the online ATP from the ordered quantity., This card contains the following information:
Online ATP: The inventory available to promised online or the inventory on which the pre-orders can be taken will be visible in this field.
Quantity on Hand: The total inventory that the retailer receives at the physical location will be visible in this field.
Excluded ATP: Retailers can view how much inventory is excluded from the quantity on hand. The inventory can be excluded due to, already received online orders on it, the inventory also may have an order buffer which serves as safety stock for pre-orders.
Related Job Information: Auditors have access to all product listing-related jobs, including their last execution time and upcoming run schedules. This quick access allows auditors to verify the completion of pre-sell computations, order brokering, and pre-order release jobs. Merchandisers can quickly run or cancel jobs by clicking on their respective names.
Shopify Shop Listing Status: Auditors can track product listings and delistings across Shopify stores. In case of any discrepancies due to job failures causing inaccurate listings or delistings, this information helps identify errors. Merchandisers can investigate the issue manually and resolve it to ensure accurate product category on Shopify.
Learn how to troubleshoot issues with scheduling jobs in the HotWax Commerce Job Manager application for seamless job management.
If you are unable to schedule a job in the Job Manager application, and the job data is not appearing, it could be due to missing job draft data, missing job runtime data, or issues with the service in the OMS.
Access the instance web tools using this URL: https://{instance.name}.hotwax.io/webtools/control/FindGeneric?entityName=JobSandbox.
In the JobSandbox form, find the Job Name field.
Enter the job name you are attempting to schedule.
Move to the "Status Id" field and enter SERVICE_DRAFT.
Click the search button.
If the job data is not found, it means it's missing, and you need to add it. Refer to the for guidance on how to create and input job data.
In cases where the job draft data is available but scheduling issues persist, follow these steps:
Locate the service name field in the job draft data.
Check if there is data in the service name field.
If not found, contact the HotWax Support team for assistance.
Extract runtime ID from the job draft data.
Search for the Runtime Data entity and input the runtime ID in the "Runtime ID" field.
Click the search button.
If no runtime data is found, it is missing. Add runtime data from Webtools: Import/Export page using XML data. Refer to the for guidance on how to input runtime data.
If runtime data is available, and the job is still not executing, the data is incorrect.
Edit the runtime record, scroll down to find runtimeInfo, and copy the text.
Remove rich text using tools like ChatGPT.
Replace the cleaned data in runtime info and update it.
Retry the job to check if the issue is resolved.
If the problem persists, contact support for further assistance.
By following these steps, you can ensure that the necessary job data is available, allowing you to schedule the job successfully in the Job Manager application.
Learn how to troubleshoot failed job issues in the HotWax Commerce Job Manager app.
A scheduled job might fail in HotWax Commerce due to various reasons, such as incorrect parameter settings, outdated information, or conflicts within the system.
Users can swiftly identify the reasons for a failed job from the pipeline page of the Job Manager app. This feature allows user to pinpoint the reasons behind failed jobs, facilitating easy troubleshooting of errors. Here's how you can find out the reason behind the failed jobs:
Navigate to the Pipeline page in the job manager.
Within the pipeline page, click on the History tab.
Apply a filter by clicking the checkbox against the Failed option to display only failed jobs.
Click on the Failed badge to view the reason for the failed job.
Common Reasons for Job Failure:
Scheduled jobs can fail due to incorrect parameter settings. If users are facing any issues regarding job configuration, they can follow these steps to rectify the problem:
Step 1: Verify Configuration Data
Search for the job on the pending page in the Job Manager.
You will find the job card with all scheduled job instances.
Pick any instance and open its details.
In the details, find the Custom Parameters option and click on it to view all custom parameters.
Step 2: Verify Custom Parameters
Verify the custom parameters against the expected values for the service.
You can find the expected custom values in the setup manual for the process you are troubleshooting.
If the parameters are incorrect, proceed to the next step.
Step 3: Disable the Job
Find the job in the category pages and open its detail page.
Disable the job. The custom parameters of a job cannot be edited while it’s running.
Step 4: Correct Incorrect Parameters
Click on "Custom Parameters" and correct the parameters.
Schedule the job again.
Step 5: Check Job Status
After the scheduled time, check the job to see if it has successfully completed. If the job fails, contact the HotWax support team for further assistance.
By following these steps, you can address configuration data issues that may lead to a scheduled job failure. If the problem persists or if you have additional questions, reach out to the HotWax support team for prompt assistance.
Shopify integration issues may arise if Shopify experiences downtime during the day, leading to job failures reliant on accessing its API calls. These failures can be attributed to internal errors within the Shopify platform.
If you encounter any issues with Shopify integration, you can manually run the job by clicking on the Run Now button or wait for the next scheduled job to resolve the problem.
In job scheduling systems, a semaphore could be used to manage the allocation of resources (like CPU time, memory, or disk space) among competing processes or jobs. This ensures that resources are efficiently utilized and that no single job monopolizes Semaphore issues in job scheduling can lead to various consequences when a job fails. These include resource starvation, deadlocks, performance degradation, job abandonment, and system instability. These issues can result in failed or incomplete tasks, resource contention, and system-wide slowdowns, emphasizing the importance of proper monitoring and mitigation strategies. If you encounter any issues with semaphore, you can manually run the job by clicking on the Run Now button or wait for the next scheduled job.
Guide to creating and managing draft cycle counts in the Cycle Count App, including adding products, assigning facilities, and setting due dates.
A directed cycle count begins as a draft. When logging into the Cycle Count App, the Drafts page is the first page you’ll see. To create a new draft, click on the + icon at the bottom right of the screen.
A new Draft count will open up on a new page where you can begin setting up a new count.
Name your cycle count, a cycle count ID will be automatically assigned to it.
Add products to the count
Adding Individual Products
Click on the text field below the count name. As you enter the product's SKU, it will show up to the right of the input field. Ensure that the product SKU is accurate, otherwise the products won't appear in the results.
If the product you want to add to the draft count appears, click on the
Add a Due Date Due dates can be added by clicking on the date button from the configuration options. For example, retailers may want to ensure that all the inventory is counted before commencing a season-end sale.
Assign a Facility
Retailers must assign a cycle count facility to move a count from Draft to Assigned. Click + Assign and select a facility from the modal.
Once a count is ready to be assigned to a facility, click on the send button at the bottom right of the draft cycle count. The created draft will now appear in the assigned tab and on the of the Cycle Count App.
The Draft Counts page allows sorting by Created Date (default), Due Date, or Alphabetical order.
Admins can narrow results with the facility filter as well:
A specific facility
Unassigned counts
By default, counts across all locations are visible.
Order rejections in a store may lead to change in the inventory. In the event where an order is rejected with a reason like Damaged or Not in Stock, it means that physical inventory present in the store doesn’t match systemic inventory, indicating the need for a cycle count.
For this, there is a configurable product store setting named Create cycle count for rejected items, which automatically creates a draft count in HotWax’s Cycle Count App whenever an order rejection causes a change in the inventory levels, to identify the actual stock and address the discrepancy.
When an order item is rejected and causes a variance in Available to Promise (ATP), a draft cycle count named Rejected Item Count is created.
A link to the draft count is automatically sent to the operations team or admins, so that they can assign it to the facility that rejected the order item.
The draft count stays in a Draft status until it is assigned. If additional rejections from the same facility occur before the count is assigned, they are also added to the same count.
The Order Routing app in HotWax Commerce offers retailers flexibility in configuring various scenarios to meet their specific needs. However, certain settings outside the app can still impact order routing processes.
To prevent operational strain when fulfilling online orders alongside walk-in customers, retailers can set a maximum order capacity for each store. This helps avoid exceeding a store's fulfillment capabilities. Once the set limit is reached, the brokering engine will automatically route further orders to other facilities with available capacity.
The process for setting the Maximum Order Capacity is consistent across the Facility, Fulfillment, and ATP apps. Follow these steps to configure the maximum capacity for a facility:
In each app (Facility, Fulfillment, ATP), locate the capacity settings for the store.
Click the capacity chip on the store’s order capacity card.
Choose from the following options:
Unlimited Capacity
To optimize inventory usage and fulfillment speed, retailers often split orders across multiple locations. However, this can result in high shipping costs, especially for low-value items. HotWax Commerce provides an option to set a Brokering shipment threshold value to avoid high shipping costs. If this threshold is set, orders will be allowed to split only if they are above the mentioned threshold.
Example:
1- If an order contains a `Black Belt' of $80 and a 'Brown Wallet' worth $160, the order will not be split as both items should be above the threshold.
2- If an order contains a 'Black Belt' and 'Black Wallet' valued at $80 each, the order will not be split as both item falls below the threshold.
3- If an order contains two items—'Brown Belt' and 'Brown Wallet'—each worth $160, and the brokering threshold is set to $100, the items will be split since both items are above the threshold.
Navigate to Store Settings
In the HotWax Commerce Order Management System, go to the Product Store page.
Click Add Settings in the store settings section.
Once the threshold is set, orders will only be split if the value of the items meets or exceeds the threshold, ensuring more efficient shipping and reducing losses on low-value shipments.
This guide will help you understand how to manage and route orders efficiently using HotWax Commerce’s Order Routing App, optimizing order fulfillment strategies.
Retailers handling multiple sales channels and fulfillment locations need sophisticated order routing. It allows each order to be fulfilled from the most optimal location, considering factors such as shipping method, proximity to the customer, inventory levels, fulfillment capabilities, and the option to split orders across locations. Effective order routing helps retailers achieve faster delivery times, reduce shipping costs, and maintain balanced inventory across all locations.
Configurable order routing takes traditional routing a step further by allowing retailers to customize and fine-tune order routing across their fulfillment network. Instead of depending on a fixed set of rules, configurable routing uses a brokering algorithm that evaluates orders and fulfillment options against a series of sequential rule sets, each with specific conditions.
This high level of customization enables retailers to create order routing that aligns with their unique business needs, and adjust routing parameters in real time without requiring external support. Retailers can optimize factors such as fulfillment costs, inventory distribution, and workload across locations, offering a strategic approach to order management. For scenarios where an order doesn’t meet the criteria of any rule set, configurable routing allows retailers to define specific actions to manage all unfillable orders, making sure no order is left unresolved.
This dynamic approach to order routing also lets retailers quickly adapt to evolving market conditions and customer expectations.
HotWax Commerce's highly dynamic and configurable Order Routing App provides a structured framework for managing order routing with flexibility. The app enables retailers to define how orders are routed across their fulfillment network.
Below is a brief overview of the brokering framework, we will understand each component in more detail in the following sections.
Order routing is organized into three hierarchical levels:
A brokering run is the highest level of organization in order routing and lets retailers control the routing frequency based on business needs. Each brokering run can have a different frequency, routing different batches of orders to meet varying fulfillment priorities. For example:
A brokering run scheduled every 5 minutes could prioritize high-priority orders, like same-day deliveries for fast routing and fulfillment.
For standard delivery orders with medium priority, a separate brokering run can be set to run every 6 hours, aligning with less urgent timelines.
Within each brokering run, there are multiple routings, or “routing rules.” Each routing defines a batch of orders by using filters and sorting criteria. For example, in a "High-Priority Run," routings might include:
Same-day delivery batch: Includes orders that need same-day delivery.
Next-day delivery batch: Includes orders on next-day delivery.
Two-day delivery batch: Includes orders on two-day delivery.
These routing rules help retailers prioritize routing for specific order batches with different fulfillment timelines and conditions.
Within each routing, multiple inventory rules define how inventory is allocated to the order batches. These rules allows for optimal facility look up based on factors such as proximity, stock availability, and other strategic criteria. For example:
Same-day delivery batch: Inventory rules can prioritize fulfillment from warehouses within a 100-mile radius of the customer to meet same-day delivery targets. If inventory is unavailable, a secondary rule could expand the range to 250 miles and include stores.
Next-day delivery batch: For next-day orders, inventory rules can prioritize fulfillment from warehouses within a 250-mile range, accommodating the one-day delivery SLA. Next inventory rules in sequence can apply if the first inventory rule doesn’t allocate inventory for all orders in the batch.
In the following sections, we’ll dive deeper into each level, to understand how brokering runs, routing rules, and inventory rules work together to optimize order routing.
The Test Drive feature is used to test different types of orders to verify that all routing flows are working as expected.
Manage pre-configured job automation from Job Details page to streamline operations within the Order Management System.
Every automation task is organized within a dedicated Job Details page, providing a clear overview of job information and actions. This centralized approach ensures quick access to job configurations and facilitates job management.
Clearly identifies the job for easy recognition.
Provides a concise explanation of the job's purpose.
Access a comprehensive job history, including the date, runtime, and status of past runs. The history will display the last 10 records.
Temporarily postpone a job's execution for the upcoming runtime without affecting future scheduled runs.
Permanently stop a job from running further.
Trigger a job to run immediately and resume its scheduled execution pattern afterward.
Set the job's execution time, helping users manage when their scheduled automation.
Set how often the job runs.
Make changes to the job's parameters, settings, or execution details as necessary, allowing users to set up workflows specific to their scenarios. Custom parameters have to be configured before a scheduled job and cannot be changed while a job is pending execution.
Navigate to the required job category and find the job you want to schedule.
Click on the job to view Job Details.
Set the run time.
Set the frequency.
Quickly share the important job related information such as job's ID, name, description, and runtime for debugging.
Retailers usually plan new product launches and need these products to be available for sale in future dates at precise times. For instance, if a retailer plans to start selling a new product at 10 AM after one month, they need the inventory to be synced exactly at that time. Previously, this required manual intervention, which was prone to errors. Manual management of inventory synchronization could lead to delays or mistakes, causing products to not be available for sale as planned, resulting in missed sales opportunities and customer dissatisfaction.
To address this challenge, HotWax Commerce offers a scheduled inventory restocking feature in the Import App. Retailers can upload a CSV file containing the products they want to restock and specify the facility and product store for which the inventory needs to be updated. Crucially, during inventory restocking, the update inventory service also runs in HotWax Commerce to ensure that inventory is increased in HotWax Commerce but also synced with Shopify.
The Product Inventory Configurations page in HotWax Commerce offers users the ability to configure product inventory settings globally or for individual facilities. This is crucial for retailers with large product catalogs, as it allows for product-specific settings that cannot be covered across all the facilities. For example, bespoke items may only be available from certain facilities, necessitating specific configurations at the product level.
The Global Settings section enables users to customize various product configurations at the company level. This customization includes managing product thresholds, order brokering, store pickup options, and shipping timelines. These settings are essential for optimizing inventory management and order fulfillment processes.
The Test Drive feature is used to test different types of orders to verify that all routing flows are working as expected.
What Can Be Tested
Brokering Run (test a full group of routings)
Routing Rule (test one routing and its rules)
Inventory Rule (see how stock levels and ATP impact decisions)
Guide to managing assigned cycle counts in the Cycle Count App, including tracking progress, rescheduling counts, and moving them to the review stage.
Assigned cycle counts are awaiting the assigned facilities to submit for review. While assigned, the admin view provides insights into the progress made by stores.
In the Assigned Counts view, search and sorting options work similarly to the Drafts page, helping admins quickly find and reorder counts.
What’s different here is the focus on tracking progress.
Admins can filter counts:
Order ID: 12345, Shopify ID: 98765 - Approved
Order ID: 12346, Shopify ID: 98765 - CreatedWhile using the Test Drive feature, scheduled brokering stops temporarily. This can be done using the "Pause scheduled brokering" toggle present on the Test Drive card. This toggle turns off scheduled brokering for that product store, preventing the system from automatically routing orders.
The toggle also shows how many other users are currently running a Test Drive session. This helps avoid conflicts, especially when multiple team members are testing at the same time. Showing active sessions helps prevent anyone from accidentally turning scheduled brokering back on while others are still working in the test environment.
On a Routing Run page, a Test Drive button will appear just below the description.
Selecting the button opens the Test Drive interface, where all routing and inventory rules linked to the selected run are displayed. A search bar is available to find orders.
Selecting Test Order opens the order details. This includes the order name, internal ID, the facility or parking where the order currently exists, whether it is in the brokering queue or at a specific facility, the carrier partner, and the delivery type, such as standard or next-day.
If the order is not yet brokered, the routings eligible to broker the order will be highlighted. If the order is already brokered, the routing and rule that were used will be highlighted.
A Broker Order button is available. Selecting this brokers the order using the rules from the selected brokering run.
To test the order again, the Reset Order button can be used. This moves the order from the allocated facilities back to the parking facility it originally came from.
The rejection reason will state that it was part of a brokering test drive. No variance will be recorded when an order is reset.
The items in the order appear in separate cards based on ship groups. Each card shows the reason why those items were brokered to a specific facility.
Each item also displays the Available To Promise (ATP) and Quantity On Hand (QoH) at the facility.
To view the details of a routing and or a routing rule, click the details button to show the configuration of the selected routing or routing rule. If a filter does not match the test order, an error icon will appear on that filter.
To test a single routing instead of a group, a specific routing can be selected from the order batch.
Inside the routing, clicking the Test button will show an order search bar.
Once an order is selected, the app checks if the selected routing can broker the order based on its filters. If a filter is blocking the selected order from qualifying in the routing, Test Drive will flag those filters. If the order is brokered, the ship group card will display the routing rule that allocated the items.
To test an individual inventory rule, select any rule to test. After selecting, a Test button will appear on the configuration page. Clicking the Test button opens the Test Drive interface. In the interface, search for an order and check if the inventory rule is working as expected.
Import Products in Bulk: Import all products from Shopify. Make sure you run this before importing orders in bulk during initial setup.
Import Orders in Bulk: Before importing historical orders in bulk, make sure all products are set up or else order import will not run correctly.



Use the search filter option to find specific products within the selected facility. Enter the product identifier of the product to access its inventory breakdown at the chosen facility.
Queue that holds orders that cannot be fulfilled at the moment.
Pre-order queue
Queue that holds pre-orders awaiting fulfillment.
Backorder queue
Queue that holds backorders awaiting fulfillment.
Excluded facilities ATP
Shows inventory of facilities excluded from online selling.
Excluded ATP
Shows inventory excluded from online selling.
Threshold
Limit set by a merchandiser to avoid overselling online.
Online ATP
Inventory available for promise on online channels.
Available to Promise (ATP)
Inventory available for promise to customers, representing actual availability.
Verify Promise Date: Every product that is eligible for pre-order will have a promise date for the future. Promise date can also be verified from the active purchase order card.
Verify Presell Timeline: Review each eligible pre-order product for a future promise date. Auditors can monitor the timeline to observe when the preselling commenced and ceased, and the reasons behind halting the preselling process.
Total PO items: Check how many items are going to be received in this purchase order
Total PO ATP: Check how many available to promise inventory can be deduced from this PO. if the merchandiser has added any order buffer, yes then the ATP for the PO will be less than the incoming inventory
Hold Physical Inventory: Shopify retailers managing Pre-Order inventory balance it between eCommerce and physical stores. For retailers with brick-and-mortar stores, HotWax Commerce allows a Hold Physical Inventory setting. This setting reserves excess Pre-Order stock for physical stores before pushing surplus to eCommerce. For example, if the 100 inventory is received for 80 online orders, the remaining 20 won’t be immediately available online to sell as available products. Instead, the retailer can hold the surplus inventory exclusively for their offline customers.
+Adding Products in Bulk
If you already have a list of products in a CSV file format, you can upload the list of products by clicking the upload button in the upper right of the page.
Select a file from your computer and upload it to the app.
Once uploaded, you’ll be prompted to select which product identification you’ve uploaded in the CSV and which column the products are located in.
Click the save button and the products will be added to your count. Products that are already added to the count will not be added again.
Removing Products
If a product has been added that needs to be removed, click on the x button at the end of any product's row.
No Capacity
Custom Capacity
Select Custom Capacity and enter the desired maximum limit (e.g., 10 orders per day) for each facility.
From the settings submenu, select Brokering Shipment Threshold.
Enter the threshold value to prevent splitting orders below this amount (e.g., set the threshold to $100).
Save Settings
Save the store settings to apply the brokering threshold across the Product Store.
Save the changes to see the schedule job on the Pipeline page.

Access the Import App:
Locate the HotWax Commerce Import app in the app launchpad.
Log in with your user credentials.
Navigating to Inventory Page:
Within the Import app, the default page opened is the Purchase Order page.
Navigate to the Schedule Restock page from the left menu.
Only users with Super or Admin user permissions can access the Schedule Restock page in the Import App.
Uploading CSV File with Saved Mappings:
Click on the upload button and select the preferred CSV file.
Map CSV Fields
Map CSV file fields with corresponding HotWax Commerce fields.
The following fields need to be mapped and filled in while scheduling restocks:
Field
Description
Shopify Product SKU
The unique product identifier used by Shopify.
Restock Quantity
Represents the updated inventory count for the product.
Schedule Time
Specify when the inventory needs to be restocked and synced with Shopify.
Facility
Specify the facility where the products need to be restocked.
Product Store
Specify the product store for which the product needs to be restocked.
Shopify Store
Specify the Shopify store where the inventory needs to be synced after restocking.
Shopify Product SKU field is the default product identifier, but users can choose the preferred product identifier from the options in the dropdown menu. HotWax Commerce supports the following product identifiers:
Field
Description
Shopify Product SKU
The Stock Keeping Unit number assigned to products.
Product ERP ID
Unique identifier of the product in the ERP system.
GTIN
Global Trade Item Number is an identifier for trade items.
ISBN
International Standard Book Number (ISBN) is a numeric commercial book identifier.
Manufacturer (Model) Number
Unique number issued by manufacturers to identify individual products.
Shopify Product ID
Unique product identifier on Shopify.
Saving Custom CSV Mappings:
Save custom CSV mappings directly within the Import app for future use by clicking on the New Mappings button.
In the future, you can utilize the saved mappings within the Import app to expedite the process of mapping.
Reviewing Inventory:
Click on the Review button to inspect and verify all scheduled inventory updates.
This will open an Inventory review page where you can ensure data accuracy and completeness before finalizing.
Add/Modify Restock Details:
Merchandisers can also add or change Facilities, Product Store, or Shopify Shop by choosing the relevant options from the drop-down menus for the relevant fields.
Finalizing Update:
Once you have verified all the items, proceed by clicking on the Upload icon.
This will open up a confirmation module; confirm inventory upload by clicking on the Upload Button.
You will get a success message indicating that the inventory has been updated successfully.
If the merchandisers have any operational level changes, such as their sale being postponed to a later date or they want to remove some products from that sale, they can reschedule or cancel the restocking from the Schedule Restock page.
All the scheduled restocks will appear at the bottom of the page, with the scheduled date and time. Merchandisers can click on the overflow menu to reschedule or cancel the restocks as per their requirements.
To avoid overselling due to inventory inaccuracies, merchandisers prefer not to promise all the inventory to the online sales channel. So the merchandising team keeps a buffer stock on a company level before promising the inventory to online channels, also called Inventory Threshold. Adjusting the threshold is crucial for maintaining optimal inventory levels. During peak seasons, increasing the threshold prevents stockouts, while reducing it during slower periods prevents excess inventory. Here's how retailers can adjust thresholds
Navigate to the Global Settings section on the Product Inventory Configurations page.
Click on Threshold to access the dialog box.
Modify the threshold value to match your requirements.
Retailers may sometimes want to ensure that some products are routed to only specific locations and they may want manual control on these products. Enabling or disabling order brokering based on product-specific requirements ensures optimal order routing for the products. This step is essential, particularly for bespoke products that cannot be fulfilled from all locations.
Navigate to the Global Settings section on the Product Inventory Configurations page.
Open the dialog box by selecting Order Brokering.
Toggle the setting to enable (Y) or disable (N) order brokering based on your business needs.
Retailers sometimes have bulky items in their catalogs that are not optimized for store pickup. Enabling or disabling store pickup options ensures accurate order fulfillment options, for the customer.
Navigate to the Global Settings section on the Product Inventory Configurations page.
Access the dialog box for Store Pickup.
Toggle the setting to allow (Y) or disallow (N) store pickup according to your business model.
Setting minimal days to ship the product is crucial for meeting customer expectations and optimizing order fulfillment timelines. For example, bespoke items may require a minimum of 2 days to ship, therefore, they cannot be available for same-day or next-day delivery.
Navigate to the Global Settings section on the Product Inventory Configurations page.
Open the dialog box by selecting Days to Ship.
Edit the number of days required for order shipment.
The Inventory Configuration section empowers users to efficiently manage their inventory by configuring facilities, adjusting safety stock levels, and organizing locations within each facility. This feature is aimed to optimize inventory levels, streamline warehouse operations, and ensure seamless order fulfillment processes.
Adding facilities is crucial for retailers operating in multiple regions or countries to streamline storage and distribution efficiently. Not all products are available at all facilities, so facilities need to be associated with the product where the product will be sold or fulfilled from. This ensures accurate order routing and efficient inventory management across various locations.
Click on the Add Facility function in the Inventory configuration section to open a dialog box.
Select the desired facility and its location from the dropdown menu.
Click Add to confirm the addition of the facility.
Adding locations within each facility helps in optimizing product storage and organization. It enables businesses to effectively manage their warehouse space, improve inventory visibility, and streamline order picking and packing processes, resulting in enhanced operational efficiency and customer satisfaction.
Click on the Add Location function to open a dialog box.
Choose the facility to which you want to add a location from the dropdown menu.
Select the geographical information or address for the location from the dropdown menu.
Click Add to confirm the addition of the new location to the selected facility.
Editing a product's safety stock levels ensures maintaining an adequate level of stock to meet demand and prevent stockouts. Safety stock is set to ensure stores have stock that can be used in case of any inventory variance or to reserve stock for in-store sales. By adjusting safety stock levels, businesses can optimize inventory investment, minimize carrying costs, and mitigate the risk of stockouts, thereby enhancing customer satisfaction and revenue generation.
Locate and click on the edit icon of the facility for which you want to adjust the safety stock.
Update the minimum stock (Safety Stock) as required.
Click Add to confirm the changes in safety stock.
By Facility, to monitor activity at a specific location
By Created Date, to isolate counts initiated during a chosen time window
This helps in reviewing workload distribution and progress across teams.
The list of assigned counts shows how many of the items in each count have been completed and when the count is due. If the count is sent for the first time, it will have an Assigned badge. If a count has been sent for a Re-count after being reviewed, it will have a Re-count Requested badge.
The details page of an assigned count helps track the exact progress of the specific count and take any corrective actions or initiate discussions with store personnel to ensure the full completion of a count.
The detail section of an assigned count starts with an overview of the count and its progress. On the left part of the overview, you’ll see details added during creation such as count name, assigned facility, and due date. On the right side, there is a brief progress insight.
The progress metric shows how many assigned cycle count line items have been completed. This does not represent the accuracy of the count, but rather the completeness of the whole count.
The variance metric shows the accuracy of the count for the counted items. It shows the total expected count along with the total inventory counted to highlight the difference between expected and actual inventory levels.
While the facility of a count cannot be changed once it is assigned, it can be rescheduled. To reschedule a count, click on the due date chip below the name of the count and select a new date from the date-time picker.
While a count is assigned, reviewers can still track individual item progress but cannot accept or reject the count items while it is still assigned.
Each count item will show the following information while in the assigned status:
Quantity on Hand: The most current quantity on hand in the OMS will be shown for items that have not yet been counted. Once an item is counted, the quantity on hand for that item at the time of being counted will be displayed. This quantity on hand value will not change on a count item once it has been counted, ensuring accurate variance logs even if the count is accepted after inventory has continued to move in the facility.
Counted: Once an item has been counted, it will show the counted number on the item. This is the exact count of inventory physically counted.
User: The user who performed the count will be displayed on an item once the count is submitted. If a count is performed by multiple staff members, reviewers can track exactly which user performed each count.
More Details: Clicking on the vertical ellipses at the end of a count item reveals additional information and actions on a count.
Last Counted: The last time this product was counted at this facility.
Remove from Count: If an item has not been counted, it can be removed from a count if the inventory count is no longer required for that product. Once an item has been counted, it can only be rejected during the review stage.
While in the assigned status, items can still be added to a count, which is helpful in the event that an item needs to be added after a count has already been assigned.
Reviewers have the option to use the admin view to move a count to the review stage themselves. This option should be used in the event that a count is not moved to the review stage by the assigned facility.
To move a count to Pending Review status, click on the lock button at the bottom right of the page.

The Product Inventory View Page within HotWax Commerce offers users a comprehensive snapshot of a product's inventory information. This feature is crucial for retailers as it empowers them to make informed decisions regarding sales and overall inventory management for their products.
Step-by-Step Usage Instructions:
Within the Hamburger Menu of HotWax Commerce, find and select the Warehouse option from the list of menu choices.
Once in the Warehouse section, a submenu will appear. Click on Inventory from this submenu to proceed.
On the Find Product Inventory page, you'll find a list of available products. Click on the product name of the desired item to open its Product Inventory View Page.
Alternate Access Method:
Click on the PIM section, then select Products to access the Find Products Page.
Browse through the list of available products or search for the product name. Click on the name of the desired product to open its Product View Page.
On the Product View Page, locate and click on the View Inventory
Navigate to the Overview section on the Product Inventory View page to access essential product information, including product name, SKU, size, and color variants.
Sections within Overview
A. Order Queue: This section displays orders that currently lack allocated inventory. Orders in different queues, such as brokering queue, unfillable hold queue, pre-order queue, and backorder queue, are listed here. Explore further details about these queues .
B. Threshold: Retailers can establish a global threshold for products through the Threshold Management app. This quantity is subtracted from the overall Quantity on Hand (QOH) to prevent overselling on e-commerce platforms. Users can see the inventory that is subtracted from the overall QOH as the threshold.
C. Physical ATP: HotWax Commerce calculates Physical Available to Promise (ATP) by considering various factors, such as safety stock, threshold, reserved quantity, and orders in the queue. The excluded ATP comprises safety stock and reserved quantities, with adjustments made at the facility level.
Example: Consider a product blue shirt from Brand ABC with a QOH of 100 units. If 10 units are excluded ATP, 5 units are the threshold, and 5 units are in the brokering queue, the ATP can be calculated as follows:
ATP = QOH - (Excluded ATP + Threshold + Orders in brokering queue) ATP = 100 - (10 + 5 + 5) = 100 - 20 = 80
D. Online ATP: Online ATP is derived by subtracting the excluded facilities' ATP, i.e., facilities not participating in online fulfillment, from the total ATP. The excluded facilities' ATP can be different for different online facility groups. For instance, if the total ATP is 100 across 10 facilities and 5 facilities with a cumulative quantity of 60 are excluded for online selling on Shopify, the Shopify Online ATP can be calculated as: Shopify Online ATP = ATP - Excluded Facilities’ ATP = 100 - 60 = 40
The item inventory section allows users to get a detailed breakdown of the received inventory at each facility, along with the date and time of each transaction and where the inventory is located within the facility.
View Inventory Logs
The Inventory Logs feature within the item inventory section offers users the ability to access detailed logs of inventory transactions for the selected product across all facilities. Users can track inventory movements, monitor changes, and identify any discrepancies or trends promptly.
Step-by-Step Usage Instructions:
On the View Product inventory page, navigate to the item inventory section
Locate the Inventory Logs checkbox and check the box to activate the inventory logs feature.
Once activated, detailed logs of each inventory transaction for the selected product across all facilities will be displayed.
The Record Variance feature” allows users to manually document any discrepancies in inventory levels and manage adjustments effectively. This feature is crucial for maintaining accurate inventory records and ensuring transparency.
Step-by-Step Usage Instructions:
Within the View Products Inventory page, locate and click on the Record Variance function, available at the top of the page.
This will open a new form, select the relevant facility where the inventory adjustment is taking place from the dropdown menu.
Choose the specific location within the selected facility and enter the quantity of the inventory adjustment.
Learn about Brokering Runs.
As discussed, brokering runs serve as the highest level of organization in order routing, defining when and how frequently order routing takes place. Each brokering run has a specific frequency, such as every 5 minutes, hourly, daily, or at custom intervals based on business needs.
Multiple brokering runs allow retailers to set different frequencies for each batch of orders. For example, high-priority orders can be routed more frequently (every 5 minutes), so urgent orders receive immediate attention, while standard or less time-sensitive orders are routed at more moderate intervals (hourly).
Single run setup: For retailers with similar urgency across orders and a lower order volume, a single run at regular intervals (every hour) can manage all order types in one brokering cycle.
Everyday order routing: Within this single brokering run, multiple routing rules (order batches) can be created to address different delivery needs, such as same-day delivery orders, two-day delivery orders and standard delivery orders. We’ll understand in depth about in the next sections.
Multiple runs for different priorities: In the event where order fulfillment priorities vary significantly and the order volume is high, creating separate runs can optimize resources and allocation:
The frequency and configuration of each run are critical for optimizing brokering strategies, allowing retailers to meet diverse order priorities effectively.
Now, let’s understand how you can achieve your order routing and fulfillment goals with the HotWax Commerce’s Order Routing App:
Open the Order Routing App
Start by opening the Order Routing App. This will take you to the home page, where you can view all previously created brokering runs. If no brokering runs have been created yet, the page will appear blank.
Initiate a new run
Click on the New Run button to begin creating a new brokering run. You’ll be prompted to provide a name for this run, which will help identify it in the list of all existing brokering runs.
Name the run
Give the run a meaningful name that reflects its purpose. For example, if you’re creating a single brokering run for all orders you can name it “Everyday order routing” or if you are creating multiple brokering runs based on the order urgency, you can name them as “High priority orders” with the next run as “Medium priority orders”.
Add a description
After naming the run, we need to add a description to provide further context. Descriptions help in clarifying the intent behind each brokering run, making it easier for team members to understand its specific function.
Click on a specific Run to open its details and now navigate to the Description card and add details that best describes your run.
Schedule the brokering run with a predefined frequency or using cron expressions
Navigate to the Scheduler card, here you can set the frequency and runtime for your brokering run.
You can choose predefined intervals or use cron expressions to customize the schedule based on your business needs. Here are a few examples of valid cron expressions that you can use:
For our Everyday order routing brokering run we can directly choose the predefined "Hourly" frequency and save it.
You need to change the brokering run's status from Draft to Active to make it operational.
By default, new brokering runs are set to Draft. Simply select Active from the dropdown to activate it, or revert an active run back to Draft if adjustments are needed.
Ideally, activate the brokering run only once you've fully configured your routing, inventory rules, and other settings.
Understanding how to view, schedule, and manage brokering runs is important for optimizing your order routing strategies.
Now, let's understand about within a brokering run.
Learn about setting up pre-order jobs in HotWax Commerce to sync pre-orders with the eCommerce platform, ensuring accurate listing and seamless operations
Once Purchase Orders have successfully been uploaded to HotWax Commerce, the subsequent step involves seamlessly syncing the pre-orders with the e-commerce platform. Merchandisers can set up various jobs in HotWax Commerce to ensure the accurate listing of pre-orders on the e-commerce platform. Some of these jobs are internal to HotWax Commerce and facilitate the creation of jobs within the system.
All Pre-order jobs have a defined frequency of 15 minutes to ensure the smooth running of the process. However, should the merchandiser wish to modify the job frequency, they can do so by following these steps:
Navigate to the Job Manager> Pipeline Page.
Utilize the search bar at the top of the page to locate the specific job.
The desired job card will appear in the results, displaying all the job details, including the last run time, frequency, and other relevant job data.
Clicking on the job card reveals a detailed view, offering merchandisers various options to modify the job, such as altering the run time, adjusting the frequency, and adding custom parameters if required.
Once the changes are made, merchandisers can save them by clicking on the save changes button. This action ensures that all future runs of the job reflect the updated settings. Additionally, if there are no pre-orders, merchandisers can also cancel the job to reduce system load.
In HotWax Commerce, merchandisers have the option to schedule the Auto Refresh Pre-sell Catalog job, which automatically manages the addition or removal of pre-sell products from the HotWax Pre-order/Backorder category. This job checks for new products eligible for pre-order/backorder and adds them to the pre-order catalog based on specific eligibility criteria:
Status of PO items must be created or approved, ensuring canceled PO items are not considered for Pre-Order.
Promise date of a PO item must be in the future, guaranteeing that purchase order items will arrive in the future, not from an old PO.
Current inventory of the item must be 0, indicating it's out of stock and qualified for Pre-Order or backorder.
If the 'isNewProduct' field of a PO is marked as “yes”, it’s identified as a Pre-Order product; if marked “no”, it's categorized as a backorder product.
Products from purchase orders that don't meet these criteria won't be listed in HotWax Commerce's pre-order catalog. It's important to ensure that purchase order items adhere to these criteria for accurate listing.
Moreover, this job also manages the removal of pre-sell items from the pre-order/backorder category in HotWax Commerce under specific circumstances:
When all future inventory pre-orders are received.
When the Purchase Order status changes to “Canceled” or “Completed”.
Upon physical receipt of inventory at the fulfillment center.
When the Purchase Order arrival date (promised fulfillment date) has passed.
For more comprehensive details, read our
You can schedule the job by accessing the Job Manager App > Pre-order page and selecting the checkbox next to the Auto refresh pre-sell catalog job name.
To schedule the job, Merchandisers navigate to the Job Manager > Pre Orders page, where they can schedule the presell catalog sync by checking the box next to Sync variant details. This job facilitates updates to the Presell catalog on Shopify, working through these steps:
HotWax Commerce generates a GraphQL file encapsulating all pre-order-related changes, including promised delivery dates, product categories, and statuses. This file is placed in an SFTP location.
Shopify processes these GraphQL files in sequence from the SFTP location to execute the required updates. However, for multiple sequential GraphQL file uploads, Shopify doesn’t fetch the next file automatically. To initiate processing for the subsequent files, Merchandisers should schedule Process Upload jobs in HotWax Commerce through the following steps:
Navigate to Job Manager > Initial Load > Process uploads card.
Activate the File Upload Status job, which monitors file processing and potential errors via the Shopify webhook.
Schedule the Upload Pending Process
After confirming the activation of Process Upload jobs, Merchandisers can schedule the presell catalog sync job. To delve deeper into understanding how pre-orders are listed on Shopify, comprehensive insights are available in our
Upon listing all products on Shopify, it's crucial to appropriately tag them with HC: Pre-order or HC: Backorder. This tagging process is easily managed by enabling the checkbox for the Add pre-order tags and Add backorder tags jobs, running every 15 minutes. These jobs utilize the pre-order category in the meta fields to add the suitable tag to the parent product on Shopify.
The HotWax Commerce Pre-order PDP app employs tags and meta fields to modify the Add to Cart button and display the expected delivery date on Shopify PDP. Products labeled with HC: Pre-order tags will alter the Add to Cart button to Pre-Order, while those with HC: Backorder tags will display Backorder.
Likewise, it's essential to schedule the Remove pre-order tags and Remove backorder tags jobs to eliminate the HC: Pre-order and HC: Backorder tags when a product is removed from the pre-order catalog.
Update Pre-Order Category Item Arrival Date
The Sync Variant Details job ensure that if there is any change in the purchase order arrival date the promise dates of the product is also updated on Shopify. However, when there are changes in the arrival dates of the multiple items in the purchase orders, the promise dates need to be first updated in HotWax Commerce pre-sell category. These changes happen through Update Pre-Order Category Item Arrival Date job which creates a file and process all the updated date changes in HotWax Commerce category, after this the Sync Variant Details updates the changes on Shopify.
Ensuring accurate representation of pre-order information and changes in customer sales orders post their e-commerce purchase is crucial. While pre-orders are downloaded alongside regular orders, specific notes are included in these sales orders for easy identification of pre-orders. Here are the various jobs that can be scheduled in HotWax Commerce for managing sales orders with pre-order items:
Add Pre-order/Backorder Tags- These jobs assign pre-order/backorder tags to orders containing pre-selling items. This simplifies identification for the operations team. The job is scheduled by selecting the respective checkbox against the Add Pre-Order Tag or Add Backorder Tag.
Add Promise Date- Adding promise dates to sales orders, mirroring the dates provided to customers upon order placement. This job, when activated via checkbox, appends promise date notes to sales orders.
Update Promise Date- In cases where promise dates change due to shifts in the arrival date of purchase orders, updates to the promise dates in sales orders are necessary. The update promise date job update the promise date notes of the sales orders.
Adjust ATP on Early PO in Bulk– Merchandisers frequently handle multiple Purchase Orders for identical SKUs. Sometimes, they might upload a new Purchase Order with an earlier promised date, even if there's an existing Purchase Order for the same SKU in the system. In such cases, reallocating sales orders from the initial Purchase Order to the latest one with an earlier date becomes vital. This ensures that customers who placed pre-orders first are given priority, guaranteeing timely delivery. The task automatically adjusts Purchase Order ATP allocations and reallocates pre-orders accordingly. To schedule this, enable and set up the Adjust ATP on Early PO in Bulk job found in the More Jobs section.
Auto Sync Date to order- Merchants can change the promise dates in sales orders if there are any changes in the promise date due to arrival date changes in Purchase order through this job. This job can be scheduled by checking the box against the file name.
Email Customers- To efficiently manage customer expectations regarding changes in promised dates, activating the Email customers checkbox initiates a job that triggers automatic emails to customers. This action ensures customers are informed whenever there's a modification in the promised date.
Learn how HC automatically handles the release and brokering of Shopify Pre-Orders, with the option for manual release preferred by merchants managing both physical stores and eCommerce platforms.
HotWax Commerce automatically handles the release and brokering of Shopify Pre-Orders, ensuring fulfillment from the most suitable location without requiring manual intervention. However, for merchandisers seeking greater control over online Pre-Order inventory, manual release becomes preferable over automatic processing. This preference often emerges among merchants managing both physical stores and eCommerce platforms. They opt for manual release to prevent allocating all available inventory solely to online Pre-Orders, reserving a portion for their physical stores instead.
HotWax Commerce strategically organizes all pre-orders in a dedicated queue until their physical inventory is received. This approach ensures that brokering processes are not initiated for orders lacking available inventory. Once the pre-order inventory arrives, HotWax Commerce transfers all orders from the pre-order queue to the brokering queue. This allows the system's engine to efficiently match the most suitable inventory with specific orders for fulfillment. To accommodate diverse retailer preferences, HotWax Commerce offers two methods for automatically releasing Pre-Orders:
Daily Job: Merchandisers can schedule this job through the Job Manager App > Pre-Order Page by enabling the Run Daily checkbox in the auto-releasing card. This automated process releases pre-orders where the shipping date has arrived and inventory is available for release.
Immediate Release: This method doesn't require scheduling. Merchandisers can trigger instant release by clicking the release button associated with the Release Pre-orders job name. This action promptly releases all pre-orders in the queue, facilitating their allocation to the respective fulfillment locations.
Manual release grants merchants precise control over order releases, allowing merchandisers to release pre-orders either by product or by order.
When merchants opt to release Pre-Orders By Product, they gain control over available product inventory allocation. Merchants can determine the number of Pre-Orders they wish to release for online orders and how much inventory to reserve for their physical stores. For instance, if 100 units of inventory are received for 100 pre-orders, a retailer might choose to release 80 units for 80 pre-orders online and retain the remaining 20 units for in-store customers. The pending 20 pre-orders can be fulfilled using subsequent inventory from future purchase orders.
Here's the process for releasing pre-orders by products:
Navigate to the Product page in the Pre-Order App.
Search for the desired product by Product name or Product ID.
Merchandisers can view the badges displaying quantities of pre-orders, available stock, and orders in the brokering queue for that product.
Merchandisers can also cancel a specific quantity of pre-orders by clicking on the cancel button.
When merchants specifically aim to release a particular customer's Pre-Order, they have the option to release it By Order.
This method becomes valuable when a customer requests expedited delivery, and if the On-Order inventory has been received. Opting for the By Order release method allows the merchant to choose that specific order and release it earlier than its estimated ship date. This action caters to meeting the customer’s delivery expectations promptly. Instead of releasing all Pre-Orders together on the estimated ship date, a merchant can prioritize the fulfillment of a particular Pre-Order. Here are the steps to release pre-orders by orders:
Navigate to the Orders Page in the Pre-Order App.
Search for specific orders using order ID, product name, style name, SKU customer name, UPCA, or external ID from the search bar.
Merchandisers can utilize filters for orders, such as:
Order After Date: Lists all orders after the specified date.
Order Before Date: Lists all orders before the specified date.
Promised After Date: Lists orders with a promised date after a specific date.
Promise Before Date: Lists orders before a specific promise date.
Once orders are filtered, merchandisers can select multiple orders or use the options icon on individual orders to perform actions like:
Release: Initiate orders for brokering and fulfillment.
Release to a warehouse: Release the pre-order to a specified location for fulfillment.
Edit Promise date: Set a new promise date for these orders, which will be used for inventory allocation and order fulfillment.
Cancel: Cancel all selected orders with the cancel button available at the bottom right.
The comprehensive Order View Page within HotWax Commerce enhances user efficiency and facilitates streamlined order management. This page consolidates all essential information related to an order, providing users with a holistic view that encompasses key details such as billing and shipping information, order identification, payment terms, preferences, timelines, references, communications, and a detailed list of items. To access the order view page, simply click on the order ID on the find sales order page to view comprehensive details about the order.
HotWax Commerce offers the following features on the Order View Page:
The overview section contains essential information related to billing and order processing. Here's a summary of each element:
Bill To (To-Customer): Indicates the customer who will be billed for the order.
Bill From (Company, Channel, Product Store): Specifies the origin details, including the company, sales channel, and product store associated with the transaction.
Status: Reflects the current status of the order, providing insights into its progress or completion.
Order Date: Records the date when the order was placed or initiated.
This information provides a comprehensive overview of an order, facilitating effective management and customization of billing details.
The Order Identifications section displays key information related to Shopify orders. The four main components of this section are:
Shopify Order ID:
This is a unique identifier assigned by Shopify to each order. It serves as a reference point for tracking and managing orders within the Shopify platform. Additionally, users can conveniently view the order details directly on Shopify by clicking on the provided link associated with the Shopify order ID.
Shopify Order Name:
In the Payments Section, users can easily view the payment method and total payment value made by customers on the e-commerce platform. This data is then transmitted to the ERP system. Particularly for cash on delivery orders, this information is vital as store associates need to collect payment during fulfillment.
The timeline illustrates the progression of events from the initial order decision to the completion of the transaction, including the involvement of a broker as an intermediary. Here's a brief description of each term:
Order Date:
The date and time when the customer made a purchase.
Entry Date:
The date and time when the order information was officially recorded into HotWax Commerce.
For Example:
In the HotWax Commerce platform, the Reference Section offers a centralized hub for users to access critical information related to picklist status, packing details, shipment information, and returns details. This feature provides quick and easy access to essential data. Users can click on the relevant item such as return ID, picklist ID, etc. to access the order details. Users can see the following details in this section:
Click on the Picklist Status link to view the current status of picklists associated with orders.
Click on the Packing Details link to view information regarding the packing process for orders. This includes details such as items packed, and any special instructions.
Click on the Shipment Information link to access data related to order shipments. This may include tracking numbers, carrier information, and expected delivery dates.
The Communications feature in the HotWax Commerce platform acts as a central hub for users to interact with both the internal team and customers, providing updates on orders. With the capability to add notes and send personalized emails directly from this interface, users can efficiently communicate important updates or notifications to internal teams or customers. Whether it's informing customers about order changes, cancellations, or backorder notifications, or adding notes for the fulfillment team, this feature simplifies communication processes, minimizing misunderstandings and improving overall order management efficiency.
Click on the communication and select either email or notes to start the communication.
The bulk upload feature makes it easy to create multiple cycle counts at once using a CSV file. Instead of entering products one by one, you can upload a formatted file, and the system will generate the corresponding cycle counts automatically. This is especially useful when working with large product lists.
To begin, go to the Cycle Count app and select Bulk upload.
On this page, you can:
Download a sample CSV template
Use or create saved field mappings
Upload new CSV files
Review past uploads and track their status
Access to the bulk upload feature requires the COMMON_ADMIN or INV_COUNT_ADMIN permission.
Before uploading, download a sample CSV to ensure the format and data align with required fields. Using the sample file helps prevent mapping errors during the upload process.
Upload a CSV file
Click Upload and select a CSV file from your device.
Once the file is uploaded, previously disabled controls on the screen become active.
Map CSV fields
After uploading your CSV, map each column to the correct system field so values like SKU, facility, or date are interpreted correctly. If unsure, check the table below to avoid errors and create your cycle count accurately.
Submit the upload
After mapping successfully, click Submit to begin processing.
Below the Submit button, you’ll find the recently uploaded counts section. This displays all bulk uploads along with their processing status.
Each record includes:
Uploaded file name
System-generated uploaded cycle count ID
Status
Action menu (three dots), where users can view details or cancel uploads still in Pending status
Once processing is complete, the cycle counts from the bulk upload appear under the Assigned tab in the Cycle Count app. Store teams can then begin execution.
Effortlessly upload bulk inventory data, map fields, and identify errors for seamless integration, even with legacy systems lacking API integration.
The HotWax Commerce Import App enables bulk updates to inventory, especially when dealing with legacy systems that lack API-based integration. This app eliminates the need for manual editing of CSV formats. Merchandisers can efficiently upload CSV files, map CSV fields directly, and identify errors before finalizing the upload.
Access the Import App:
Locate the HotWax Commerce Import app in the app launchpad. Log in with your user credentials.
Navigating to Inventory Page:
Within the Import app, the default page opened is the Purchase Order page. Navigate to the Inventory page from the left menu.
Only users with Super or Admin user permissions can access the inventory page in the Inventory App.
Uploading CSV File with Saved Mappings:
Click on the upload button and select the preferred CSV file.
Mapping Fields and Identifying Errors:
Shopify Product SKU field is the default product identifier but users can choose the preferred product identifier from the options in the dropdown menu. HotWax Commerce supports the following product identifiers.
Saving Custom CSV Mappings:
Save custom CSV mappings directly within the Import App for future use by clicking on the New Mappings Button.
In the future, you can utilize the saved mappings within the Import App to expedite the process of mapping.
Once the inventory is updated you can verify whether the inventory is accurately reflected in HotWax Commerce.
Confirm the updated inventory by going to the Product page in your OMS instance.
Find the product SKU by utilizing the search bar. You can also search for products using the product name or HotWax Commerce ID.
Navigate to the Product Details page by clicking on the product.
Please ensure that all the products are synchronized in HotWax Commerce from e-commerce. If a product does not exist in HotWax Commerce, the corresponding records will not be processed.
Discover how sales orders are updated in HotWax Commerce OMS.
To perform the order allocation tasks, we first navigate to the View Sales Order page:
Go to the Hamburger Menu in the OMS > Order Management section > Sales Orders to open the Find Sales Order page.
Search for the order ID for which you want to update the order details.
Select the order ID to open the View Sales Order page.
Users can easily access and review the shipping details associated with orders. This includes shipping address, communication details, shipping method, estimated delivery date, and tracking details.
Here's how you can update shipping address for the order:
Updating Shipping Address:
Click on the Edit function available for the order.
Fill in the required shipping details that needs to be changed in the form provided.
Save the changes by clicking on the save button
Updating Shipping Method:
Within the order, locate the shipping method section.
Click on the Edit function next to the current shipping method.
Choose the desired shipping method from the provided list.
Save the changes.
Users only change the shipping method directly for orders in the brokering queue. If inventory has already been allocated to the order, users need to reject the item from the store, update the shipping method, and then broker the order again.
Orders can only be canceled in HotWax Commerce when they are in the created state. Additionally, it's important to note that the sales orders canceled on HotWax Commerce are not automatically updated on Shopify. Therefore, it is recommended for users to cancel orders directly on Shopify for seamless synchronization and accurate order status across platforms. Cancelling a sales order will automatically cancel all other sales order items in the order.
Cancellation Process:
Select the required order to open the Sales Order Detail page.
Click the Status dropdown located at the top left of the page.
Select the Cancel function to cancel the entire sales order.
Once the View Sales Order page is open, scroll down to locate the Item section. This section displays all items included in the selected order.
Within the Item section, locate and click on the Edit Items function. This action will enable editing options for the items within the order.
Identify the line item/s that need to be canceled due to inability to fulfill and click on the Delete function next to each respective item.
Refreshing sales order allows retailers to reimport a sales order from Shopify to HotWax Commerce. Refreshing is required if an order update in Shopify is not included in the sync order update job.
HotWax Commerce can update the following details from Shopify:
Adding items to an order
Removing items from an order
Changing item quantities
Changing shipping addresses
Verification at Shopify:
Log in to the Shopify admin portal.
Locate the specific order that requires updates.
Review the order details to verify any changes or make necessary updates, such as adding/removing items, adjusting quantities, or modifying customer and shipping information.
Once verified or updated, ensure to save the changes within Shopify.
Refresh Order in HotWax Commerce:
Return to the HotWax Commerce platform and access the order view page for the corresponding order.
Locate and click on the "Refresh Order" button available in the header section of the order view page.
After refreshing, verify that the order status and item status are updated accordingly. This may involve checking for any cancellations or changes in item availability.
Go back to the Sales Order Find Page and select "Approved" and "Canceled" statuses from the order status filter dropdown.
Splitting an order into separate shipments for fulfillment across multiple locations occurs when all items are not available at a single facility. The order splitting settings on the order view page is shown as per the product store settings. However, if the CSR team want to split a specific order, they can click on the checkbox against the allow splitting function.
CSR teams can manually input personalized messages on behalf of customers upon request. These gift messages can be added along with the order at the time of fulfillment by the store associates by clicking on the Add Buttion against the gift message
Any special instructions or handling requirements associated with the items in the group can be added by clicking on the Add button against Handling instruct. The handling instructions added here will be visible in the fulfillment app for store associates
Ship By specifies the date by which the items should be shipped to ensure timely delivery, while Ship After indicates the date after which the items need to be shipped. Both Ship By and Ship After details can only be added upon customers' requests.
Learn about the Pre-Order job in HotWax Commerce.
All Pre-order jobs have a defined frequency of 15 minutes by default which can be modified and adjusted at any point of time as per the requirement. The user may have various options to modify the job, such as altering the run time, adjusting the frequency, and adding custom parameters if required, or can also cancel the job to reduce system load. Users can follow the given steps to execute any changes in the existing jobs to update the runtime and the scheduled frequency of the job whenever required.
Runtime: Time at which a job is scheduled particularly. Scheduled Frequency: A time duration for repeated occurrence.
Go to the Pipeline and search for the Job, by job name or related keyword.
Click on the Job Card to refer to the job detailed view.
Select the runtime function dropdown to change the run time from the dropdown or make custom changes.
Or change the scheduled frequency by choosing it from the dropdown or make a custom requirement.
Job Name: Auto Refresh Pre-Sell Catalog
Job Enum Id: JOB_PREORDER_CAT_SYNC
Service Name: uploadPreorderCatalogToShopify
Flow: Catalog Update to Shopify
A product is eligible for pre-order only if:
PO ATP is greater than 0: This means there is incoming stock confirmed through a Purchase Order.
Current ATP is less than or equal to 0: This means that the current ATP of the product should be 0 only then the product will be eligible for Pre-order.
Retailers organize products into different catalogs for better segregation, including a dedicated catalog for pre-order items. The Auto Refresh Pre-Sell Catalog job adds or removes products from the pre-order catalog based on their eligibility criteria for pre-orders.
Note: This job is specifically for OMS and is used to maintain the pre-order catalog. However, there are separate jobs that sync the same products as pre-orders on Shopify
All jobs in this category synchronize changes and updates from HotWax to Shopify.
Note: HotWax and Shopify both maintain product details. The jobs listed in the product section below are used to sync product level changes and updates from HotWax to Shopify.
When a product becomes eligible for pre-order in OMS, it is responsible for syncing the updated product details to Shopify. Only after this synchronization can Shopify accept pre-orders or backorders for that product. The Sync Variant Details job is used to sync meta-fields (like promise date, etc) of pre-order/backorder-eligible products from HotWax to Shopify.
Other jobs, such as Add Promise Date and Update Sales Order Item Promise Date, must be scheduled in HotWax to ensure accurate synchronization of updated promise dates with Shopify. These jobs are discussed in detail later in this document.
This job is used to apply tags on products that are eligible for pre-order in HotWax product catalog, to products in Shopify. For example, if Product A is eligible for pre-order in HotWax, the Add Pre-Order Tags job is used to apply the pre-order tag in Shopify, ensuring integrity between both systems.
Internally, when this job is toggled on, HotWax makes a POST API call to Shopify and enables the Continue selling when out of stock toggle in Shopify. This ultimately allows the product to be available for pre-order in Shopify.
This job is used to remove pre-order tags on products in Shopify. For example, if Product A is now in-stock and considered as a normal product. the Remove Pre-Order Tags job is used to remove the pre-order tag in Shopify, ensuring integrity between both systems.
Internally,Remove Pre-Order Tags functions in a similar way to the Add Pre-Order Tags job only difference being that in the POST API call this job disables the Continue selling when out of stock toggle in Shopify.
This job is used to sync products that are eligible for back-order in HotWax with Shopify. For example, if Product A is eligible for back-order in HotWax, the Add Back Order Tags job is used to apply the back order tag in Shopify, ensuring integrity between both systems.
Internally, when this job is toggled on, HotWax makes a POST API call to Shopify and enables the Continue selling when out of stock toggle in Shopify. This ultimately allows the product to be available for back order in Shopify.
This job is used to remove back order tags on products in Shopify. For example, if Product A is now in-stock and considered as a normal product. the Remove Back Order Tags job is used to remove the pre-order tag in Shopify, ensuring integrity between both systems.
Internally,Remove Back Order Tags functions in a similar way to the Add Back Order Tags job only difference being that in the POST API call this job disables the Continue selling when out of stock toggle in Shopify.
Note: The jobs listed in the order section below are used to sync Order level changes and updates from HotWax to Shopify.
This job applies pre-order tags to orders. For example, if a customer places an order with three items—two pre-order products and one regular product—HotWax identifies orders that contain pre-order items and tags the entire order in Shopify.
Internally, when this job is toggled onn HotWax makes a post API call to Shopify and add tags on all orders which contains pre-order items.
This job applies back order tags to orders. For example, if a customer places an order with three items—two back order products and one regular product—HotWax identifies orders that contain back order items and tags the entire order in Shopify.
Internally, when this job is toggled onn HotWax makes a post API call to Shopify and add tags on all order in Shopify which containing back order items.
When an order is placed containing a pre-order or back order items, HotWax identifies it and add the promise date in Shopify as a note on Order Level. This job is used to apply promise date to orders in Shopify.
When the estimated promise date on a purchase order changes, it's important to inform customers about updates to their orders linked to that inventory. The "Update Promise Date" job updates the promise date of order note in Shopify.
Internally, through this job HotWax sends an post API call on Shopify and change the promise date on the of order note on Shopify. However, there are different jobs in HotWax which triggers notification to the customers.
Job Name: Release pre-orders and back orders
Job Enum ID: JOB_RLS_ORD_DTE
Service Name: checkPreOrderItemForRelease
After the promise date is passed, this job is used to push orders for brokering. HotWax maintains dedicated parking for pre-orders and backorders, ensuring they are managed separately. All such orders remain in this parking until they are ready for fulfillment. The "Run Daily" job runs once a day, checking the pre-order and backorder parking for orders with passed promise date and releasing them for brokering.
Job Name: Update Sales Order Item Promise Date
Job Enum ID: JOB_UL_PRMS_DTE
Service Name: pushPromiseDateChangedNotes
When a customer places a pre-order, they are given a promised delivery date based on the estimated arrival of the associated purchase order. If this estimated arrival date changes, the promised delivery date for existing orders must be updated accordingly. This adjustment is handled by the Update Sales Order Item Promise Date job.
Note: This job updates the promise date specifically in OMS. However, other jobs are responsible for syncing the updated promise date to external systems.
Custom Parameters
No required parameter for this job.
productStoreIds is the optional parameters for this job.
Learn about the Fulfillment jobs in HotWax Commerce.
Job Name : Ship Packed Orders
Job Enum ID: JOB_SHIP_ORD_PKD
Service Name : shipPackedOrders
Flow : Order Fulfillment in HotWax
The Ship Packed Orders job in HotWax's Fulfillment App updates order status from packed to shipped. Store associates mark an order as shipped by tapping the "Shipped" button. However, in some cases, failing to tap the button results in incomplete fulfillment.
In Shopify, a parent product may have multiple variants defined by the combination of different features—say, different combinations of sizes and colors. The user can decide to break these combinations into separate products in a manner as described below:
Parent Product: HC Shoe
External ID: Identifier for external system.
Subtotal: Displays the total cost of items or services before additional adjustments.
Total: The overall cost of the order, which can be manually adjusted for discounts, promotions, replacements, and taxes.
Shopify Order Number:
Shopify assigns a distinct numerical identifier to each order. It acts as another unique reference for orders, often used in communication and documentation.
Order Attributes:
Shopify retailers can capture additional crucial order details through metafields. Once customer IDs are verified, they are stored as order metafields in Shopify. When HotWax Commerce enters a retailer’s Shopify ecosystem, it becomes the source of truth for all order-related information. HotWax Commerce downloads order details along with customers’ IDs as order attributes and shares this information with the retailer's accounting system. All downloaded order attributes are visible under this section.
Users can also add Order Attributes by clicking the Add Order Attribute + button which will open up a new form. Add the attribute name, value and description and click on the Add button to save the order attribute. This function is vital if there are some issue in importing order attributes such as metafield being added after the order has been imported in HotWax Commerce.
First Brokered:
The first brokered refers to the initial timestamp when an item is allocated to a specific facility. This timestamp remains unchanged even if the item is subsequently rejected by the facility and redirected elsewhere. It serves as a fixed reference point for tracking the item's movement history within the system.
Completed Date:
The date and time when the order was fulfilled, and the goods or services were delivered or made available to the buyer.
Click on the Returns Details section to review information about product returns initiated by customers for this order and the status of the return.
Order Date
03-08-2024 06:07 PM
Entry Date
03-08-2024 06:13 PM
First Brokered
03-09-2024 01:00 AM
Completed Date
03-11-2024 03:16 PM

Ensure to save the changes.
Users can add custom parameters to the jobs and schedule them accordingly.
Users can also “Skip” or “Cancel” the jobs from the same job detailed card.


externalFacilityId
External ID of the facility to which the count will be assigned.
Find this in the Facilities app under the external mappings section.
estimatedCompletionDate
Due date by which the count should be completed.
Format: MM-DD-YYYY.
estimatedStartDate
Date the cycle count is allowed to begin.
Format: MM-DD-YYYY.
countImportName
Unique name used to identify the cycle count and differentiate multiple uploads.
Use a meaningful naming format such as Count-Jan-Store12 or CycleCount-W1. Avoid duplicates so tracking stays clean.
purposeType
Type of cycle count being created.
Choose based on the count type: HARD_COUNT for a full physical count; DIRECTED_COUNT for a targeted or partial inventory count.
idType
How the product will be identified in the system (for example, SKU, UPCA).
Check which identifier your system uses as the primary key.
idValue
The product value based on the idType selected.
Pending
The file is currently being processed.
Processed
The system successfully created the respective cycle counts.
Cancelled
The upload was cancelled before completion.
Error
The file encountered an error during import. Resolve it by reviewing the error description in the modal.
If you select SKU in idType, then idValue must contain product SKUs.
If you want to view inventory details for a specific facility, use the facility dropdown menu to select the desired facility.
You can click on the Inventory Item ID available in the records to view the complete breakdown of when and where the inventory is received.
After confirming all details are accurate, click the Save button to record the variance in the system.

High-Priority Orders: For orders requiring same-day, next-day, or two-day delivery, setting a frequency of the brokering run to every 5 minutes can quickly allocate inventory to this order batch and meet urgent fulfillment deadlines.
Medium-Priority Orders: For orders on standard deliveries, a separate brokering run with a 6-hour interval can balance routine order routing with the available resources.
Seasonal run adjustments: During peak seasons, like holidays, retailers can activate a dedicated high-frequency brokering run to handle increased order volumes. For example, a run set to every 5 minutes for all orders that can remain in draft mode on regular days but be activated to handle seasonal surges.
Run Every 15 Minutes Between 6 AM and 6 PM
*/15 6-18 * * *
Triggers the brokering run every 15 minutes from 6 AM to 6 PM.
Run Every 5 Minutes
*/5 * * * *
Triggers the brokering run every 5 minutes throughout the day.
Run Every Hour
0 * * * *
Triggers the brokering run every hour throughout the day.
Run Every Hour Between 8 AM and 2 PM
0 8-14 * * *
Triggers the brokering run at the top of every hour, between 8 AM and 2 PM.
Run Every Day at 7 AM
0 7 * * *





Triggers the brokering run every day at 7 AM.
Upload




Pieces field. Alternatively, to release all pre-ordered quantities, simply click on the badge to insert the total quantity at once.Finally, click on the release button at the bottom of the page to release the ordered quantities from the pre-order queue to the brokering queue for fulfillment.
Merchandisers can also select the Release to the Warehouse button to specify the location for brokering. This action bypasses the brokering queue and directly releases the order from the pre-order queue to the warehouse for fulfillment.
Loyalty Status: Filters orders based on loyalty status awarded to customers based on their purchase history.

The following fields need to be mapped in HotWax Commerce:
Shopify Product SKU
The unique product identifier used by Shopify.
Quantity
Represents the updated inventory count for the product.
Facility ID
Identifies the specific facility associated with the product.
UPCA
Universal Product Code is the unique barcode of the product
Click on the Review button to inspect and verify all mapped inventory updates.
This will open an Inventory review page where you can ensure data accuracy and completeness before finalizing.
Handling Missing Facilities:
Merchandisers sometimes make errors in their CSV files when creating them. For example, if the CSV file has "Time Square" as the facility name instead of "Times Square" it can cause an error when updating inventory. If any missing facilities or errors are detected during the process, click on Missing Facilities.
This will open up a new module where you can rectify the mistake by specifying the accurate facility.
Click on the Save icon to save and rectify the facility.
Finalizing Update:
Once you have verified all the items, proceed by clicking on the Upload icon.
This will open up a confirmation module; confirm inventory upload by clicking on the Upload Button.
You will get a success message indicating that the inventory has been updated successfully.
Item Inventory Verification:
View Inventory button to open the Product Inventory View page of that product.Here you will be able to verify the inventory changes under the Inventory Items section.
Shopify Product SKU
The Stock Keeping Unit number assigned to products
Product ERP ID
Unique identifier of the product in the ERP system
GTIN
Global Trade Item Number is an identifier for trade items
ISBN
International Standard Book Number (ISBN) is a numeric commercial book identifier
Manufacturer (Model) Number
Unique number issued by manufacturers to identify individual products
Shopify Product ID
Unique product identifier on Shopify
After deleting the unwanted items, ensure to click on the Save function to apply the changes to the order.
Change in Order Fulfillment Status
Review the refreshed order details to ensure that the updates from Shopify have been successfully synchronized with HotWax Commerce.
This job is generally scheduled to run at midnight and marks all the orders in the packed status as updated to shipped. Retailers generally assume that once the carrier has arrived, it is highly likely that all packed orders have been shipped.
No custom parameters for this job
Job Name: Order Fulfillment History
Job Enum ID: JOB_ORD_FLMNT_HST
Service Name: ftpImportFile
Flow: Order Fulfillment in HotWax
HotWax and Shopify both maintain order fulfillment statuses. A Moqui job in HotWax ensures system integrity by synchronizing order fulfillment history between the two platforms. This job ensures that any orders marked as fulfilled in Shopify are also updated as fulfilled in HotWax, maintaining consistency across systems.
How does this job work?
HotWax sends an API request to Shopify to provide all the orders fulfilled from the last job run until the current timestamp. In response to this request, Shopify provides a JSON file that is imported by the ‘Order Fulfillment History’ job in HotWax and uploaded to MDM_UPD_ORD_FMNT_HST in MDM. From there, the Process Bulk Import Files job runs, and the fulfilled status is marked.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
Job Name: Open BOPIS Order Notification
Job Enum ID: JOB_OPN_BOPIS_ORD_NT
Service Name: sendOpenBopisOrderNotification
Flow: Order Fulfillment from HotWax
This job is used for notifying store associates of the open BOPIS orders allocated to their store. Basically, when a BOPIS order is allocated to a store, it is generally expected that the BOPIS order must be catered to as soon as possible. So it is important to get notified for BOPIS orders when they are allocated to stores.
How are stores notified?
Basically, this job checks all the BOPIS orders placed between the timeframe of the last job run and the current timestamp. And sends push notifications on the BOPIS App for the respective stores.
It is important to note that if this job is not scheduled, stores will not be notified about BOPIS orders allocated to them.
Custom Parameters
There are no custom parameters for this job.
The recommended frequency for this job in 15 minutes.
Job Name: Ready to Pick BOPIS Order Notification
Job Enum ID: JOB_RP_BOPIS_ORD_NT
Service Name: sendOrderNotification
Flow: Order Fulfillment from HotWax
This job is used for notifying customers when their BOPIS order is ready for pickup. Basically, when a store associate fulfills a BOPIS order and clicks the 'READY FOR PICKUP` button, this job internally triggers marketing platforms (like Klaviyo) to automate the notification process.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has topicEnum Id as required Parameter.
Job Name: Open Shipping Order Notification
Job Enum ID: JOB_OPEN_SHIP_ORD_NT
Service Name: sendOrderNotification
Flow: Order Fulfillment from HotWax
This job is used for notifying store associates of the open shipping orders allocated to their store. Basically, when an order is allocated to a store, it is generally expected that the order must be catered as soon as possible. So it is important to get notified for orders when they are allocated to stores.
How Are Stores Notified? The Open Shipping Order Notification job fetches all those orders created in HotWax ‘topicEnum Id’ within the timeframe of the last job run to the current timestamp. It then sends a push notification to the relevant stores about these orders.
Custom Parameters
The recommended frequency for this job is 15 minutes. This job has topicEnum Id as required Parameter
Job name: Auto cancellations
Service: autoCancelOrderItems
Flow: Auto Cancellation From HotWax
HotWax Commerce facilitates retailers to set an auto cancellation date on orders that are unfulfilled. The Check Daily toggle on the job card enables the job, and also the operations team can set the days in which the order will get auto-cancelled.
How does cancellation flow work? Basically, this job checks for the orders that are in the unfillable parking, and the cancellation date is reached. This job simply changed their status to cancelled in HotWax.
Note: The cancelled orders will only be synced from HotWax to Shopify only if the Upload Canceled Order job is enabled.
Job Name: Bulk Send Packed Order Mail
Job Enum id: JOB_PACKED_MAIL_ODR
Service Name: bulkSendPackedOrderMail
Flow: Order Fulfillment Flow
This job is used to send email notifications to customers when their orders are in packed status. When an order item is marked as packed in the Fulfillment App, HotWax Commerce communicates the shipment status to the retailer’s marketing platform, notifying customers that their order has been shipped from the facility.
Customer Parameters
This has no required parameters.
frequency and emailType is the required parameters
Job Name: Send Packed BOPIS Order Reminder Notification
Job Enum id: JOB_PCK_ORD_RMDR
Service Name: pickReminderAtRegularInterval
Flow: Packed Order Notification from HotWax to Klaviyo
This job is for notifying customers to pick up their BOPIS order after a specified duration from when their order is packed. There can be a scenario when, after a ready-to-pickup email has been sent, the customer has not responded. In such cases, this job is used to trigger marketing platforms (like Klaviyo) to send a reminder email to customers.
How is the reminder notification sent?
When the order is marked “Ready for pick up,” it’s moved to packed status and shown in the Packed tab of the BOPIS app. When an order is in packed status for more than 7 days, a reminder pick-up email is sent to the customer. The email trigger request should be sent to Klaviyo every 7th, 14th, and 21st day.
Custom Parameters
This job has no required parameters.
The recommended frequency for this job is 15 minutes.
It has intervalDays, maxOccourrences, emailType as the optional parameters.
Job Name: Notification using communication events
Job Enum ID: JOB_SND_ML_COMM
Description The Notification Using Communication Events job enables retailers to communicate to internal users by the help of the communication event feature on the view order page. This job ensures that internal teams are promptly alerted to important events for that particular order, facilitating efficient communication within the organization. No custom parameters for this job
Job Name: Packed BOPIS Order Reminder Notification
Description
The Packed BOPIS Order Reminder Notification job sends a reminder notification to customers informing them that their Buy Online, Pick Up In Store (BOPIS) order has been packed and is ready for pickup. This reminder is sent every 7 days, up to 3 times, ensuring the customer is informed and reminded to collect their order.
Custom Parameters
intervalDays
Optional
Number of days between each reminder
7
maxOccurrences
Optional
Maximum number of occurrences of the reminder
3
emailType
Optional
Specific type of email template to use for a notification
Variants:
Black
7
7B
Black
8
8B
Tan
7
7T
Tan
8
8T
Parent Product: HC Shoe
Variants:
Black
7
Parent Product: HC Shoe (Tan)
Variants:
Here, the user has decided to divide the initial parent product into two, each for a separate color, which are further categorized into variants of different sizes. To successfully sync such edits made in Shopify into HotWax OMS without corrupting data (specifically product duplication), the user must follow the process detailed in this manual.
In the Job Manager App, go to the Products section.
Pause the following jobs (Learn more):
Import Products: imports new products from Shopify.
Sync Products: updates existing products from Shopify.
Make the required edits in Shopify to separate the variants.
Ensure the SKUs for the separated variants remain the same as before the edit.
Open the product page of the variant in HotWax Admin.
Scroll to the Shopify Shop Product section on the page.
Unlink the existing Shopify Link.
If the variants are linked to multiple Shopify shops, only unlink them from the specific shop where the edits were made. Keep the links to other shops intact.
Run the following jobs from the Products section of the Job Manager App
Sync Product Job: Run this job to update the old product. (Learn more)
Import Products Job: Run this job to create the separated variants as a new product.
Re-enable the Sync Product Job. (Learn more)
Restock Name
Retailers can give a detailed name to the restock such as SeasonEndSale Restock or use the default date-time restock naming.
UPCA
Universal Product Code is the unique barcode of the product.
Discover how HotWax Commerce OMS provides out-of-the-box pre-order reports to monitor and track pre-order operations, ensuring efficient management of all pre-orders.
HotWax Commerce OMS offers out of the box pre-order reports to help monitor and track your pre-order operations. Putting all of these reports together, retailers can ensure that they're efficiently managing all their pre-orders.
A merchandiser wants to determine which items should be available for Pre-Orders based on purchase orders and the queue of sales orders. They use a Pre-Order Management System to automatically list and delist pre-order products on eCommerce based on multiple rules.
Technical or operational challenges may prevent products from being available for pre-orders on eCommerce, or vice versa. So merchandisers want to spot-check on products that should be listed or delisted as pre-orders on eCommerce to avoid over-selling or underselling.
The Hourly ON and OFF Pre-Order Report helps merchandisers quickly identify products that are listed for accepting pre-orders and products that are recently delisted for taking Pre-Orders from eCommerce. With the help of these Shopify reports, merchandisers can quickly identify gaps and take action to fill the gaps.
User- Head of eCommerce, Merchandising Team
Glossary
Merchants with successful pre-order strategy implemented with the help of a Pre-Order Management System can get up to 10% of their revenues from Pre-Order sales. To measure the performance of their Pre-Order initiative, merchandisers like to know how many pre-orders are received as compared to the overall revenue.
Using the Daily Pre-Order Summary Report, merchants can get the contribution of pre-order revenue to the overall revenue and the number of pre-order units sold.
User- Head of eCommerce, Merchandising Team
Glossary
Merchandisers want to measure the best and least-performing Pre-Order products to guide their future strategies. For example, if a product does not perform well after its launch, merchandisers may want to discontinue the product. The Daily Pre-Order Product Performance report helps merchandisers analyze the performance of products on Pre-Order. The report also helps merchandisers make better decisions at the time of product assortment.
User- Head of eCommerce, Merchandising Team
Glossary
When inventory is received at a warehouse, an effective Pre-Order Management System enables merchandisers to allocate inventory for accepted customer Pre-Orders both manually and automatically. When merchandisers manually allocate inventory for Pre-Orders, they already know how much inventory is consumed by existing pre-orders. However, when the system automatically allocates the inventory, merchandisers have no idea how much inventory is available to promise, which orders have been allocated the inventory, and which ones haven’t. Therefore, merchandisers prefer a daily summary of all pre-orders for which inventory is allocated automatically. The Daily Released Pre-Order report gives a daily summary of all the pre-orders for which the Pre-Order Management System has automatically allocated the inventory.
User- Head of eCommerce, Merchandising Team
Glossary
The customer expects their pre-orders to be shipped by/on the promised date. Due to supply-chain constraints or any other reasons, expected inventory may occasionally be delayed. For all pre-orders, OMS integrates with merchants' Marketing Automation Platform to notify the customers of updated promised dates.
Merchants accept pre-orders on multiple items every day. So, inventory delays can impact many pre-orders. Therefore, merchandisers prefer a daily summary of these date changes, to verify if the updated promise dates are communicated to customers or not.
The Daily Promise Date Changed Report shows all date changes made for previously accepted Pre-Orders.
User- Head of eCommerce, Merchandising Team
Glossary
The Find Product page within HotWax Commerce serves as a centralized hub for managing products. This page offers a consolidated view of all the products with individual variant information, displaying product category, product name, product ID, and product features viz, size, colors, etc. It enables users to have a quick view of all existing products and carry out product management efficiently.
HotWax Commerce's Find Product page also empowers users to use multiple filter options to refine their product search. The prominent Pre-orders and Backorders filters help users to search out specific products, under these categories, enabling retailers to view the products currently on pre-order and backorder.
Step-by-Step Usage Instructions:
Log in to HotWax Commerce by entering your credentials on the login page.
Within the hamburger menu, find and select the PIM (Product Information Management) option. This will open a submenu with various product-related functionalities.
From the PIM submenu, choose the Product option. This action will direct you to the Find Product page.
The Search Bar on the Find Product page provides users quick access to get information regarding any product. It streamlines the search process about various identifiers such as Product ID, Product name, SKU, UPC, Parent product, or any other related keywords. For a search with any keywords, all related products and variants are listed alphabetically as per the parent product name.
Enables users to search products, simultaneously using single or “multiple filters'', and allows users to choose required options from the selected filter dropdowns to refine the search results. This feature is significant for looking up the required set of products to efficiently manage and monitor the specified products and their variants by “Category”, “Features”, “Tags”, and “Price”, or group search by Pre-orders and Backorders.
Generally, for a keyword search, all the related products appear and are displayed on the screen. To search for a specific product, users can either choose the options from available filters or enter a value set of product names and features or any other value together to excel the search. For example, if a product has different sizes and is available in multiple colors, and want to search “Checked Shirt, Size S, and Colour Black” users can put in the value in the search bar as “Check Shirt” and use Feature Filter to get the specific product.
For having a quick view of a certain set of products, users can filter out the products and run the export function to download the CSV into their system.
Enables users to search selected products and export CSV by specifying safety stock value and uploading it back using EXIM for bulk products. Safety Stock will be established at all the associated facilities for the entire set of selected products. Users are allowed to manually create CSV, set safety stocks, and upload using EXIM for bulk products. Read more about safety stock in our complete .
Enables users to search and create CSV of all displayed products. A threshold will be established for the entire set of selected products. Users can manually create CSV and upload using EXIM for bulk products.
The Product View page in HotWax Commerce helps users manage products more efficiently by showing all key details in one place, including product specifications and sales channels. To open it, search for the product on the Find Product page and click the Product ID.
Here is the list of details displayed on the Product View page:
Overview Section
The overview section contains essential information related to “product specifications”, “features”, and “identifications”. Here's a summary of each element:
This information provides a comprehensive overview facilitating effective management and customization of a product and also empowers users to add and delete any product specifications.
Retailers who operate in multiple countries use Shopify shops in Hotwax commerce to manage the same product catalogs in different countries. A master catalog holds all products, while associations are formed to sync these products across different country-specific catalogs. These associations are automated through a job in HotWax Commerce that creates associations between products in the master catalog and the product catalog of other countries by matching the SKU codes. Retailers can view the product association with the different shops in the Shopify Shop section, and add new product associations with Shopify Shop by following these steps:
Click on the Add button in the Shopify Shop section, which will open a new module
Select the Shop from the dropdown menu for which you want to create the association.
Add Shopify Product ID and Shopify Inventory ID
The Reindex button on the View Product page in OMS is used to refresh product data in the Find Product page. If you click on a parent product, it reindexes the parent along with all its variants. When used on a variant product, only that specific variant is reindexed. This is particularly useful when product information is missing or outdated (like product name or SKU updates) on the Find Product page.
Use the Pending review section in the Cycle Count app to review submitted counts before they are finalized. This page lists inventory counts completed by store associates that are waiting for admin review so you can check variances, validate accuracy, and take action.
COMMON_ADMIN: Grants access to view pending cycle counts, review submitted counts, accept or reject items, and close counts.
Use the search bar to find a specific count by name or ID.
Filter pending counts by inventory count type:
Hard count
Directed count
Filter by store or warehouse to see counts submitted at a specific location (for example, Brooklyn). Combine facility and type filters to refine results further.
Each item in the list represents one cycle count and displays the following details:
Count type: Indicates the type of inventory count submitted by the store team.
Count name: A user-assigned name that identifies the count.
Facility name: Specifies the facility where the inventory count was performed.
Created date: Shows when the count was initially created.
For example:
A Hard count named 03 December Count created on 3 Dec 2025 at Brooklyn appears as a row on this page.
Admins can click any count card to open the detailed review screen.
This page is used by admins to review the inventory counts submitted by store associates. It highlights mismatches between the counted quantity and system inventory, giving the admin full control to approve or reject each item.
At the top of the page, you will find key details about the count:
Count information
Count name: The name of the count (for example, 26 December Count).
Facility name: The facility where the inventory count was performed.
Start date: When the store was supposed to start the count.
Due date: The scheduled completion date.
Review progress
Shows the percentage of items reviewed.
Displays how many items have been reviewed out of the total.
Overall variance (filtered)
This metric shows the total variance across all filtered items in the current count. Variance means the difference between what was physically counted and what the system expected.
Example:
90 units of variance
Based on 10 results
This means that out of the items currently displayed (based on filters applied), the combined difference between counted and system quantities is 90 units across 10 items.
The section provides search and filtering options to refine the list of items.
Search bar
Allows searching for products by name or SKU.
Status filter Filter items by review status:
All
Open: Items that need review.
Accepted: Items approved.
The compliance filter helps reviewers identify items that fall within or outside the acceptable variance thresholds during a cycle count.
Filter options
Compliant: Shows items whose variance is within the defined threshold.
Uncompliant: Shows items whose variance exceeds the threshold.
Configure threshold: Allows admins to define the acceptable variance limit.
Configure threshold Admins can configure how much variance is allowed before an item is flagged as out of compliance.
Admin options
Select unit of measurement: Choose the basis for calculating variance.
Units: Compares the difference between counted and system quantities in absolute units.
Percent: Calculates variance as a percentage difference between counted and system quantities.
Cost: Flags variance based on the cost impact of the quantity difference.
How it works (example)
If the threshold is set to 10 units:
A product with a variance of 8 is compliant.
A product with a variance of 25 is uncompliant.
This allows admins to quickly focus on items with major mismatches instead of reviewing every minor deviation.
Sort by
Sort items alphabetically or by variance.
Item list section
The item list displays all items included in a count event, along with their relevant details and actions for review.
Item row details Each item row contains the following information:
Product details
Product image: Visual representation of the product.
SKU and name: SKU and the product name.
Count information
Counted quantity / System quantity: Shows the quantity counted versus the system-recorded quantity.
Variance: The difference between the counted and system quantity.
Actions
Accept: Approve the counted quantity.
Reject: Reject the count and send the item for recount.
Note: Bulk actions can be applied when multiple items are selected using the checkboxes.
At the top of the item list, you can perform bulk actions for all selected items:
Accept: Accepts the counted quantities of selected items.
Reject: Rejects selected items and sends them for recount.
Clicking these buttons will apply the chosen action to all selected rows simultaneously.
When you click on an item row, it expands to display additional details:
Count details
Count name: The name of the count.
Count performed by: The user who performed the count.
Total quantity counted: The total counted quantity for the item.
Items that have already been reviewed and accepted display an Applied status, indicating that the final counted quantity has been submitted to the system.
Once the admin has finished reviewing all items in the count, they can use the Close count button to finalize the cycle count. Closing a count means the admin has reviewed all variances and is ready to complete the process.
When the admin clicks Close count, the system opens a confirmation modal with two options:
Options when closing a count
Accept all outstanding variances and close
Automatically accepts all remaining items that were not manually accepted or rejected.
Useful when the admin is confident the remaining variances are correct.
Example: If three items are still open and the admin wants to approve them at once, selecting this option completes the review quickly.
Closing the cycle count ensures that the cycle count lifecycle is completed and that the inventory updates are accurately reflected in the system.
After closing the count
The count moves from the Pending review section to the Closed section.
The review is fully completed and no further changes can be made.
The system posts adjustments based on the accepted items.
Discover how Inventory job works in HotWax Commerce.
Job Name: Upload Inventory
Job Enum ID: JOB_UL_INV
Service Name: bulkResetShopifyInventoryLevel
Flow: Inventory Sync from HotWax to Shopify.
The Hard Sync job is used to synchronize the inventory of all the products from HotWax to Shopify once a day. This job fetches the inventory counts of all products in Shopify and compares them with the inventory counts of all products in HotWax Commerce. Then it prepares the delta file in GraphQL format for all the products where there is a difference in inventory counts in HotWax compared to Shopify. This delta file is then sent to Shopify, and Shopify updates the inventory counts by recording deltas.
Note: The ShopifyFacilityGroupId parameter allows retailers to push inventory of specific facilities included in that group.
Custom Parameters
This job has no required parameters.
It has facilityGroupId,shopifyFacilityGroupId,includeAll, useVaildATP as optional parameters.
To know more about inventory synchronization between HotWax and Shopify, refer to this .
Automated messages sent from eCommerce (Shopify) to OMS whenever an event occurs. They contain data about the event and are received in OMS, allowing real time communication between eCommerce and OMS.
Subscribe to Shopify eCommerce Webhooks from OMS for:
Job name: Read Reset Inventory File From SFTP
Job Enum id: JOB_IMP_INV
Service Name: ftpImportFile
Flow: Inventory Reset in HotWax from NetSuite
The Import Inventory Reset job is used for importing inventory reset files from SFTP locations uploaded by ERP systems (like NetSuite).
How is the reset file received?
NetSuite runs a scheduled script and generates the CSV format file of updated inventory on each location, then uploads this file to the SFTP location. Then, the Import Inventory Reset job is used to import this file from the SFTP location to HotWax and upload this on RESET_INVENTORY MDM. Further Process Bulk Imported Files jobs run to process data into HotWax.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It also has some optional parameters.
Job name: Import Item Receipt
Job Enum ID: JOB_ITM_RECEIPT
Service Name: ftpImportFile
The Import Item Receipt job is used for importing updates from NetSuite to HotWax on all the items that are completed in NetSuite.
When an order is brokered to a warehouse, HotWax relies on Warehouse Management Systems (like NetSuite) to get the fulfillment update. In cases when NetSuite is also used as a WMS, it uploads a JSON format file containing details of all the items that are fulfilled from the warehouse in an SFTP location.
How is the item receipt synced?
After NetSuite uploads a JSON file to the SFTP location, the Import Item Receipt job imports the JSON into HotWax and uploads it to the IMP_ITM_RECEIPT MDM. Further Process Bulk Import Files job runs, which finally marks the item as completed in HotWax.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It also has some optional parameters.
Job Name: Import Product Facility
Job Enum ID: JOB_IMP_PROD_FAC
Service Name: ftpImportCSVFile
Flow: Applying ATP rules in HotWax.
HotWax Commerce allows retailers to configure rules for inventory computation based on product tags and facility types or groups, reducing manual work. Based on these rules, the available-to-promise (ATP) of a product is calculated, which is then synchronized to Shopify or other sales channels.
A job in the ATP app generates a CSV file based on rules configured for calculating ATP and puts it in the SFTP location. **The Import Product Facility job is used to download this CSV from the SFTP location and upload it on the file system of HotWax Commerce. ** Further, the Process Bulk Import Files job runs and processes all the files in HotWax. And finally, all the rules configured from the ATP app by the retailer are created.
It is important to note that this job is responsible for applying ATP rules configured by retailers on ATP computation.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It also has some optional parameters.
Job Name: Bulk recent kit product inventory setup
Job Enum ID: BLK_RCNT_KIT_INV
Service Name: bulkKitProductInventorySetup
Flow: Kit Product Inventory Computation
The Bulk Recent Kit Product Inventory Setup job calculates the inventory of the kit products in HotWax by considering the lowest common denominator among its components at a given location.
Note: Retailers who don't use Shopify's Bundle App for kit inventory calculation rely on this job in HotWax to compute the inventory.
Custom Parameters
This job has no required parameters.
includeAll is the optional parameter of this job.
To know more about kit inventory calculation, refer to this .
Job Name : Import Inventory Transfer
Job Enum Id : JOB_INV_TRANS
Service Name: ftpImportFile
Flow: Importing Inventory Update from NetSuite to HotWax
Retailers with one warehouse for both B2C and B2B create two virtual locations in NetSuite: one for online orders (B2C) and one for wholesale (B2B). This helps manage inventory better. If one runs low on stock, they transfer inventory between them as needed.
In ERP systems (like NetSuite), retailers generally create inventory transfers, and these inventory transfers need to be synced from NetSuite to HotWax to maintain better inventory synchronization. Import Inventory Transfer job is used for importing the inventory transfers created in NetSuite to HotWax, and further inventory is adjusted in HotWax accordingly.
How are inventory transfers are synced ?
A scheduled script in NetSuite generates a CSV file of inventory transfers and uploads it to an SFTP location. The Import Inventory Transfer job in HotWax then fetches the file and uploads it to HotWax’s internal system. Finally, the Process Bulk Imported Files job runs to create records in HotWax.
To know more, refer to the inventory transfer .
Job name: Import Inbound Shipment
Job Enum ID : JOB_IMP_TO_SHPMNT
Service Name: ftpImportFile
Flow: Inventory Synchronization
This job is used to create inbound shipment in HotWax so that store associates can see an upcoming inbound shipment in their . In case of a warehouse to store TO or store to store TO is created in NetSuite, HotWax imports it as an inbound shipment for the receiving store through this job.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It also has some optional parameters.
Job Name: Schedule Restock
Job Enum ID: JOB_SCHEDULED_RSTK
Service Name: receiveAndUpdateInventoryToShopify
Flow: Schedule restock
Retailers often schedule new product launches and require inventory to be available for sale at specific future dates and times. For example, if a retailer plans to launch a product at 10 AM a month from now, the inventory must sync precisely at that moment.
The HotWax Commerce Import App simplifies this process by allowing retailers to schedule restocks via a CSV upload. Once uploaded, the Import App transfers the CSV to an SFTP location, and the Schedule Restock job imports it into HotWax database.
Custom Parameters
ShipmentId is the required for this job.
Job Name: Sync Inventory from Shopify
Job Enum Id : JOB_SYNC_INV_FRM_SHPY
Service Name: bulkInventorySyncFromShopify
Flow: Inventory Synchronization from Shopify
In cases where HotWax is not used as the source of truth for inventory availability—meaning retailers do not use HotWax for fulfillment and do not have an ERP system for inventory management—HotWax relies on Shopify for inventory updates. To ensure accurate inventory data, this job runs once a day to reset inventory updates for all products.
How Does This Job Work? HotWax sends an API request to Shopify to fetch the latest inventory data for all products. In response, Shopify provides a JSON file, which is then uploaded to HotWax’s internal file system. After that, the Process Bulk Imported Files job processes the JSON file, updates the inventory, and syncs the changes in HotWax.
This job is an alternative to Shopify Webhooks, but since Shopify Webhooks are reliable, it is recommended to schedule this job in HotWax.
Custom Parameters
This job does not have any required parameters
It has some optional parameters.
Job Name: Upload Recent Inventroy Changes
Job Enum Id: UL_RCNT_INV
Service Name: bulkRecentShopifyInventroyLevel
Flow: Inventory Synchronization
The Upload Recent Inventory Changes job is used to update Shopify with the latest inventory changes for products. It functions similarly to Hard Sync, but instead of syncing updated inventory for all products, it only uploads changes for products whose inventory has fluctuated.
Custom Parameters
This job does not have any required parameters.
It has some optional parameters.
To know more about uploading recent inventory changes refer to this .
The assigned counts section allows you to monitor cycle counts that have been assigned to facilities and are currently pending completion. This view supports tracking progress, identifying delays, and managing workload across locations.
Assigned counts remain in this stage until the responsible facility submits the count for review.
To access the Assigned view and manage assigned counts, users must have the following permission:
COMMON_ADMIN
Without this permission, users will not be able to view or interact with assigned cycle counts.
The Assigned view includes search and filtering options:
Filter assigned counts by their current status:
This helps quickly identify pending counts that require follow-up.
Filter counts based on type:
Narrow results to one or multiple facilities:
Search facilities by name.
Select multiple locations.
Each count in the list provides the following information:
Count name
Assigned facility
Type
Created date
This view provides a snapshot, allowing administrators to monitor the progress and deadlines across stores.
The assigned count detail page provides a view of a specific cycle count assigned to a store or facility.
At the top of the page, you will find a summary of the assigned count. This section is divided into two areas: count details (left) and counting activity (right).
Clicking on a count displays the information provided during count creation:
Count name: Name of the assigned count.
Assigned facility: The store or location to which the count is assigned.
Start date: The date and time when the count is scheduled to begin; update using the date picker.
Due date: The target completion date for the count; update using the date picker.
These fields define the timeline and location of the count and can be adjusted if scheduling changes occur.
This section shows system-generated timestamps reflecting real-time user activity at the assigned facility:
First item counted: Date and time when the first product in the assigned count was submitted.
Last item counted: Most recent date and time a user entered or updated a count.
These timestamps reflect actual system activity during product counting and help administrators assess whether the store has begun counting, whether work is ongoing or paused, and if follow-up is needed.
A search bar is available directly below the overview section to quickly find specific items within the assigned count.
Enter any portion of a product name or code.
Results instantly filter based on the entered text.
This is helpful when reviewing large product lists.
Use the Sort by dropdown to organize the product list:
Alphabetic: Sorts product names A to Z.
Variance: Sorts products based on the variance recorded between counted and system quantities; sort ascending or descending to spot items needing review.
The product list section displays all products included in the assigned count. For every product, the following information is shown:
Product image
Product name
Counted quantity (entered by the store user during the cycle count)
System quantity (the quantity recorded in the system at the time of assignment)
This view allows reviewers to quickly identify how complete an item’s count is.
To view the session details for an item, click the item in the list; the system opens the Count session detail panel for that specific item. The panel includes:
Session name
User name (who performed the count)
Quantity counted in that session
Session start date and time
This detail helps track who counted the item and when it was recorded, providing traceability during cycle count audits.
Inside the Count session detail panel, select the More options icon. This displays:
Product information
The last time the product was counted
The Closed page in the Cycle Count app lets you review every cycle count that has been completed. On this page you can search for counts, apply filters to narrow results, export filtered data, and drill into the details of each closed count.
View closed counts, open details, and export: COMMON_ADMIN.
Open the Cycle Count app. Use the navigation drawer on the left side of the screen.
Select Closed from the menu. The Closed Counts view displays all cycle counts that have been completed (previously known as “cycle counts history”).
The main pane shows a list of closed counts along with filters at the top. Each row corresponds to a completed cycle count and shows the count name, ID, facility, created date and closed date.
The list view is designed to help you quickly find and filter completed counts:
Search bar: Use the search box to find a cycle count by name or ID. When you enter text and press Enter, the list updates to show matching counts. You can clear the search using the × button in the field.
Facility filter: The Facility drop‑down shows All by default. Clicking the bubble opens a modal with a searchable list of facilities. You can select one or more facilities and confirm with the blue check button; the selected facility appears as a pill next to Facility and the list refreshes to show counts from that facility.
Search by name or ID: Click in the search bar, type the count name or part of the ID and press Enter. The list will narrow to items containing the search term.
Filter by facility: Click the All bubble in the Facility filter. Use the search field in the facility modal to find a store, select its checkbox and click the blue check icon to apply the filter. The facility name appears as a pill.
Filter by type: Click the current type (e.g., All types). Choose Hard count or Directed count
You can export the closed counts you are viewing (according to the current filters):
Apply any filters you want so that only the desired counts are visible.
Click the blue export button in the bottom right corner of the page. The button displays an arrow pointing down. A message appears saying “Requesting export…”.
The application prepares an export file containing the filtered cycle counts. Depending on your configuration, the file downloads automatically or is delivered through your configured export service. You can continue using the app while the export is processed.
Click any row in the closed counts list to open the Closed count details view. This page lets you examine item‑level variance and compliance.
At the top of the details page you’ll see several cards summarizing the count:
Count card: Shows the cycle count name, ID and facility. It also displays the due date if one was set.
Time card: Shows the timestamp when the first item was counted and when the last item was counted.
Progress and completion card: Displays a progress bar with “x out of y items complete.” This indicates how many items have been reviewed and accepted.
Overall variance (filtered): Shows the total variance units based on the items currently displayed.
Use the back arrow in the page header to return to the closed counts list.
Below the header, you’ll find filters to help locate specific products within the count:
Search product name: Enter all or part of a product’s name or SKU to filter the list.
Status filter: Choose from All, Accepted or Rejected to show products based on whether their counts were accepted or rejected during review.
Compliance filter: Options include All, Acceptable
The item list shows each product counted during the cycle count along with an image, SKU, counted quantity vs system quantity, and calculated variance.
Clicking a product row expands it to reveal count sessions. Each session row displays the counter’s name (user), counted quantity, the time the counting started and when it was last updated. These details help you trace who counted the item and when.
If there are discrepancies (variance ≠ 0), you can use the Status and Compliance filters to isolate non‑compliant items for review and acceptance or rejection.
Combine filters for targeted exports. For example, set the Type to Hard Count and choose a facility before exporting; the exported file will include only hard counts from that store.
Use the More Filters date ranges to retrieve counts completed within a specific window.
Within the details view, sorting by Variance quickly surfaces products with the highest discrepancies, allowing you to prioritize review.
The Overall variance card updates dynamically based on applied item‑level filters, providing an at‑a‑glance summary of variance for the items you’re examining.
By leveraging search, filters and exports, the Closed Counts page makes it straightforward to locate completed counts, review item‑level variances and compliance, and extract data for auditing or reporting.
The retailer, a prominent footwear company with over 200 stores across multiple countries, produces its own footwear and partners with global brands to offer a diverse range of products in both online and physical stores.
Previously, the retailer focused primarily on physical stores and fulfilled online orders from a single retail location, as they did not have any dedicated warehouses. With the implementation of HotWax Commerce, they have transitioned to using all their stores as fulfillment centers. This shift optimizes inventory management and enhances order fulfillment efficiency across their entire store network, benefiting both in-store and online orders.
Due date: Indicates the deadline for completing the count.
First item counted: Timestamp of when counting began.
Last item counted: Timestamp of when the last item was counted.
Rejected: Items rejected.Enter threshold value: Example: 10 units, 5%, or a cost value depending on the selected unit.
Save threshold: Click the blue check button to apply the threshold settings.
Timestamps: Time when counting started and when it was last updated.
More options
Last counted: Displays the last counted quantity for the item.
Edit count: Allows editing the counted quantity if adjustments are needed.
Remove count: Removes the current count for the item.
Reject all outstanding variances and close
Automatically rejects all remaining open variances.
Useful when the admin wants those items to be recounted or corrected later.
Example: If several items show unusual variances, the admin can reject all of them in one action.
All types, Hard count and Directed count. Selecting a type updates the list; for example, choosing Hard count shows only hard counts.More filters: Click More filters to open a modal with date‑range filters. You can specify Created before/after and Closed before/after dates using the calendar pickers, then click Apply to filter the list.
List columns: Each closed count row displays:
Count name and ID: e.g., CycleCountSample‑Nov4 (ID M1000204).
Facility: shown as a pill with the facility name.
Created date: date the count was created.
Closed date: date the count was completed.
Type label: for hard counts or directed counts, a small label (e.g., HARD COUNT) appears above the name.
Apply date filters: Choose More filters. In the modal, specify any combination of creation or closing dates and click Apply.
Clear filters: To remove a facility or type filter, click the small × on the pill. Clear date filters by reopening More filters and clearing the date fields.
RejectableConfigure thresholdAcceptableRejectableSort by: Use this drop-down to sort products Alphabetically or by Variance.
The retailer offers several shipping options, including:
Next-Day Delivery
Two-Day Delivery
Three-Day Delivery
Standard Shipping (Within 7 days)
The retailer aims to maintain a minimum stock level at each store before allocating orders. This ensures inventory availability at all locations, optimizing fulfillment efficiency and reducing the risk of stock shortages and order cancellations.
Since the retailer operates within a limited geographical area, proximity is not a major concern. Instead, order routing is based solely on stock availability to ensure efficient fulfillment and prevent inventory shortages.
If no store has sufficient inventory to fulfill an order, the order should be flagged and brokered again after a set time to check for inventory replenishment, ensuring the order can eventually be fulfilled.
The retailer requires regular brokering to ensure timely processing of both regular and rejected orders. For unfillable orders, the brokering process should occur within a predefined interval, allowing time for potential inventory replenishment.
The routing process for the retailer must filter locations based on Minimum Stock availability. Locations with 15 or more units of an item should be prioritized first.
If inventory is insufficient, the criteria need to be adjusted to include locations with 10 or more units, then 5 or more units, expanding the search while still focusing on locations with higher stock levels.
If no location has the minimum stock, any location with available inventory should be included to ensure that orders are fulfilled.
If no single location can fully meet the order requirements, partial fulfillment should be allowed. This approach optimizes inventory usage and improves order completion rates by combining stock from multiple locations.
Expedited Orders should be prioritized before standard orders when routing orders. Furthermore, if there are orders that are rejected once from any fulfillment location due to inventory unavailability, these orders should be prioritized before regular orders that are being routed for the first time.
We begin by creating a Regular Order Run. This run will manage all regular orders, excluding unfillable orders, which the retailer prefers to broker separately since the schedule of these run would be different. The regular run will consist of multiple routing rules, each configured based on different shipping methods and fulfillment priorities. The regular order runs are scheduled every 15 minutes for timely order processing and fulfillment.
Within the Regular Order Run, set up an Order Routing Rule to define which orders will be routed in this batch based on queues, shipping methods, and priority. The orders are fetched based on the following configurations:
The retailer applies multiple filters to ensure proper order routing:
Queues: Orders are filtered from the Brokering Queue to broker all orders that will be fulfilled for the first time.
Shipping Method Filter: Only orders using Standard Shipping are included.
Orders are sorted by Order Date, ensuring that the oldest orders are fulfilled first.
For inventory management, the retailer sets up five inventory rules to ensure orders are routed to stores based on stock availability.
Inventory Filter: Orders will be routed to stores that have 15 or more units of inventory available for the ordered items.
Inventory Sort: Orders are sorted by inventory balance, ensuring stores with the highest available stock are prioritized.
Action: If this rule is not met, the order is sent to the next inventory rule.
Inventory Filter: Stores must have at least 10 units of inventory available.
Inventory Sort: Orders are sorted based on inventory balance.
Action: Orders that do not meet this rule are sent to the next rule.
Inventory Filter: Stores must have at least 5 units of inventory available.
Inventory Sort: Orders are sorted by inventory balance.
Action: If the stock requirement is still not met, the order moves to the next rule.
Inventory Filter: No specific stock limit is required; any store with available inventory is considered.
Inventory Sort: Orders are sorted by inventory balance.
Action: Partial fulfillment is not allowed. If inventory is still unavailable, the order moves to the next rule.
Inventory Filter: No specific stock limit is required; any store with available inventory is considered.
Inventory Sort: Orders are sorted by inventory balance.
Action: Partial fulfillment is allowed so that available inventory can be allocated to the orders. If the orders remain unfulfilled, they can be sent to the unfillable queue.
This system aligns with the retailer’s Minimum Stock Availability and Order Fulfillment Priority requirements by ensuring orders are routed based on stock availability and fulfillment efficiency.
The second routing rule handles all orders with expedited shipping options, including Next-Day, Two-Day, and Three-Day Delivery. The orders are fetched based on the following configurations:
The retailer applies multiple filters to ensure proper order routing:
Queues: Orders are filtered from the Brokering Queue to broker all orders for the first time.
Shipping Method Filter: Only orders using Next-Day, Two-Day, and Three-Day Shipping are included.
Orders are sorted by Shipping Method (prioritizing Next-Day, Two-Day, and then Three-Day) and by Order Date.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
This routing rule manages rejected standard orders that were previously rejected due to stock unavailability. The orders are fetched based on the following configurations:
Order Filter:
Queue Filter: Orders are fetched from the Rejected Queue.
Shipping Method Filter: Only orders using Standard Shipping are included.
Order Sort: Orders are sorted by Order Date, ensuring that orders rejected earlier are processed first for potential fulfillment.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
This routing rule manages rejected expedited orders, including Next-Day, Two-Day, and Three-Day Shipping orders that were not fulfilled initially due to stock unavailability. The orders are fetched based on the following configurations:
Order Filter & Sort
Order Filter:
Queue Filter: Orders are fetched from the Rejected Queue.
Shipping Method Filter: Only orders with Next-Day, Two-Day, and Three-Day Shipping are included.
Order Sort: Orders are sorted by Shipping Method (Next-Day first, followed by Two-Day, and then Three-Day) and by Order Date to ensure expedited orders are prioritized appropriately.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
Since the client wants Rejected order routing first before the regular orders and wants to prioritize expedited orders, the routing Rules should be sequenced in the following manner:
Rejected Expedited Orders
Rejected Standard Orders
Expedited Orders
Standard Orders
Retailers need to create a separate run to handle orders when inventory is unavailable across all stores. This is created as a separate run since inventory replenishment can take time so checking for inventory in every 15 minutes is not required. Therefore, this run is scheduled to run in every 6 hours and once stock is available, the orders are re-brokered.
This routing rule manages unfillable expedited orders, including Next-Day, Two-Day, and Three-Day Shipping orders that were not allocated initially due to stock unavailability. The orders are fetched based on the following configurations:
Order Filter:
Queue Filter: Orders are fetched from the Unfillable Queue.
Shipping Method Filter: Only orders with Next-Day, Two-Day, and Three-Day Shipping are included.
Order Sort: Orders are sorted by Shipping Method (Next-Day first, followed by Two-Day, and then Three-Day) and by Order Date.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
This routing rule manages unfillable standard orders that were previously rejected due to stock unavailability. The orders are fetched based on the following configurations:
Order Filter:
Queue Filter: Orders are fetched from the Unfillable Queue.
Shipping Method Filter: Only orders using Standard Shipping are included.
Order Sort: Orders are sorted by Order Date, ensuring that orders rejected earlier are processed first for potential fulfillment.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
Since the client wants to prioritize expedited orders, the routing Rules should be sequenced in the following manner:
Unfillable Expedited Orders
Unfillable Standard Orders
Ensure all inventory rules are active. Move the order routing from "Draft" to "Active" to ensure it's live and processing orders.
Set a schedule for how frequently each routing run will execute. For regular orders, schedule the run every 15 minutes for timely order processing, while for unfillable orders, schedule the run every 6 hours.
This retailer utilizes HotWax Commerce’s advanced routing system to streamline order fulfillment. By leveraging Brokering Safety Stock, the retailer ensures orders are prioritized based on available inventory, optimizing fulfillment for both expedited (Next-Day, Two-Day, Three-Day) and standard shipping. Orders that cannot be fully or partially fulfilled are routed to a separate unfillable queue, with regular brokering runs every 15 minutes and unfillable runs every 6 hours, ensuring efficient handling and timely delivery across their retail network.
CreateProductsFromShopifyImport new product job is used for importing new products from Shopify to HotWax. For maintaining the system integrity, it is important to sync new products from Shopify.
If a new product created in Shopify and its not synced in HotWax Commerce (may be because job scheduled to run after 10 mins) and if an order is created for this new product in Shopify (before the job in run) and that order is now downloaded in HotWax, then a a placeholder for this new product will be created in HotWax. Once the job runs, the actual product will be imported and replace the placeholder.
How does HotWax import products?
HotWax makes an API call on Shopify to retrieve all the newly created products in Shopify between the time frame of the last job run and the current timestamp. In response to this request, Shopify provides a JSON file containing details of such products. Further, the Import New Products job imports this JSON into HotWax OMS and uploads it to the IMP_SHOPIFY_PROD MDM in HotWax. Finally, the Process Bulk Import Files job runs and processes the JSON file to create products in HotWax OMS.
It is important to note that the Import New Product job must not be scheduled while creating new products on Shopify, as it can import incomplete data and cause data corruption. So the recommendation is to pause this job and reschedule it only after all products are fully created.
Custom Parameters
frequency is the required parameter for this job.
It has some optional parameters.
To know more about product import refer to this document.
Job name: Import Product Updates
Job Enum ID: JOB_IMP_PROD_UPD
Service name: updateProductsFromShopify
Flow: Import product updates from Shopify to HotWax
When a retailer updates a product in Shopify, it is important for HotWax Commerce to sync these updates. The Import Product Updates job is used for importing updates on products from Shopify to HotWax.
How are product updates synced?
HotWax makes an API call on Shopify to retrieve all the products that are updated between the last job run time and the current timestamp by checking the updated_at field in Shopify. In response to this request, Shopify provides a JSON file that is imported into HotWax by the Import Product Update job. Further, the Process Bulk Imported Files job runs and processes the JSON to sync product updates in Shopify.
Custom Parameters
frequency is the required parameter for this job.
It has some optional parameters.
To know more about importing product updates refer to this document.
Automated messages sent from eCommerce (Shopify) to OMS whenever an event occurs. They contain data about the event and are received in OMS, allowing real time communication between eCommerce and OMS.
Subscribe to Shopify eCommerce Webhooks from OMS for:
Job Name:Product HS Code Identification
Job Enum ID: JOB_HS_IDENT
Service Name: ftpImportFile
Flow: Product Setup from NetSuite
The product HS code identification job imports Harmonized System (HS) codes from NetSuite to HotWax Commerce. The HS code is a standardized numerical system used to classify and identify products that are traded internationally.
An ERP system (like NetSuite) provides a CSV format file containing HS codes for all the products. Which is then imported by this job into HotWax OMS. This job is used in special scenarios when the retailer is shipping products internationally.
How are HS codes synced with HotWax?
Through a scheduled SuiteScript, NetSuite uploads a CSV file of HS codes for all the products to an SFTP location. From there, the Product HS code Identification' job imports that CSV into HotWax and uploads it on IMP_HS_IDENTMDM. Further, theProcess Bulk Imported Files` job processes the CSV to apply HS codes to products.
Custom Parameters
The recommended frequency for this job is 15 minutes.
It also has some optional parameters.
This job has configId and propertyResource as the required parameters.
Job Name: Import Kit Component
Job Enum ID: JOB_KIT_COMP
Service Name: ftpImportFile
Flow: Importing Kit Product Information from ERP to OMS
When a retailer chooses not to use Shopify’s Bundles App for Kit products. Generally in such cases, ERP systems (like NetSuite) are used to manage kit products. So, HotWax needs to import kit components from NetSuite.
Import Kit Component job is used for importing kit products from NetSuite to HotWax.
How are kit components synced?
When NetSuite manages the kit products, it uploads a CSV format file of kit product details to an SFTP location. From there, the Import Kit Component job imports the JSON in HotWax and uploads it on IMP_KIT_COMP MDM. Further, the Process Bulk Imported Files job processes the JSON to sync kit products in HotWax.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It also has some optional parameters.
To know more about kit products, refer to this document.
Job Name: Import Promo Codes
Job Enum ID: JOB_IMP_PRMO_CODE
Service Name: createUpdateProductPromo
This job is used to import promo codes from NetSuite to HotWax.
Promo codes are those codes applied by customers while shopping to get some discounts. If an order has a discount code applied to it, during order sync to NetSuite, HotWax OMS checks if the applied code is available in NetSuite. If the code is available, then the exact code is used, and the value of the discount is shared as the "Rate.".
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It also has some optional parameters.
To know more about promo code refer to this document.
Job Name: Product Identification
Job Enum ID: JOB_PROD_IDENT
Service Name: createUpdateProductErpId
Flow: Importing Product Details from ERP to OMS
This job is used to import product IDs from ERP systems like NetSuite into HotWax OMS. By fetching product IDs from NetSuite, it ensures proper integration and accurate product identification within HotWax OMS.
How is the NetSuite product ID mapped?
A scheduled script in NetSuite retrieves the “NetSuite Product ID” for all the products in a JSON format file and uploads it to an SFTP location. From their Product Identification job, imports that JSON in HotWax and uploads it on IMP_PROD_IDENT MDM. Further, the Process Bulk Imported Files job runs and processes the file to map the NetSuite product ID in HotWax OMS.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It also has some optional parameters.
Job Name: Activate Product on Shopify Job Enum ID: JOB_ACT_PROD_SHPFY Service Name: activateProductOnShopifyLocation Flow: Order Fulfillment Flow
Products in HotWax are mapped to their physical facilities, and the same applies to Shopify. When a product is mapped to a facility in HotWax OMS but not in Shopify. The Activates Product on Shopify job identifies these products by querying the HotWax database. It then activates them on Shopify, ensuring a one-to-one mapping between products and facilities in both systems.
Custom Parameters
This job has no custom parameters.
Job Name: Associate Product with sub catalog
Job Enum ID: JOB_ACT_PROD_SHPFY
Service name: activateProductsOnShopifyLocation
Flow: HotWax to Shopify
Retailers usually maintain a master catalog containing all their products. When selling some specific products in a particular country, they create a sub-catalog derived from the master catalog.
The Associate Product with Sub Catalog job maps specific products to their respective sub-catalogs, verifying accurate product linkage within the catalog.
How are products mapped?
ERP systems (like NetSuite) generally maintain the mapping of the product and catalog. A suite script from NetSuite generates a JSON format file containing details about product mapping with the catalog and uploads it to an SFTP location. Then the Associate Product with sub catalog job is used to import the JSON in HotWax and upload it on IMP_SHPFY_SHOP_PROD MDM. Further, the Process Bulk Import Files job processes the file in HotWax OMS.
Custom Parameters
Frequency is the required parameter for this job.
It has some optional parameters.
PRDS_READY_TO_PICKUP
From Date
The date from which a product is available for accepting pre-orders
THRU Date
The date from which a product is not available for accepting pre-orders
Units
The unit demand received for the item
Units released
The number of units which are released for the products
Auto released
Indicates if the order is released automatically or manually
Data for last 24 hours
Data summary for the last 24 hours
Product ID
The ID of product on Shopify
Style
The category of the product/item
SKU
The unique product code
Color
The color of the product
UPC
The unique product code
Size
The size of the product
Order Date
The date of the orders received
Total Revenue
The total revenue earned
Pre-Order Revenue
The part of pre-order revenue from earned revenue
Pre-Order Unit
The unit of pre-orders
Pre-Order %
Pre-Order revenue / Total revenue x 100
Style
The category of the product/item
SKU
The unique product code
Color
The color of the product
UPC
The unique product code
Size
The size of the product
Demand
The revenue demand received for the item
HC Order ID
The ID of order in HotWax Commerce
Shopify ID
The ID of order in Shopify
Style
The category of the product/item
UPC/SKU
The unique product code
Color
The color of the product
Size
The size of the product
Shopify Order Id
The ID of the order on Shopify
Purchase Order ID
The ID of the purchase order
From Promised Date
The previous promise date for the order
To Promised Date
The updated promise date for the order
Customer Name
The name of the customer
Customer Email
The email of the customer
Status (Created / In progress)
Variance (calculated difference between the counted quantity and the system quantity)
All
Displays all assigned counts
Created
Assigned but not yet started by the store
In progress
Store has started counting but has not yet submitted
All types
Displays all assigned counts
Hard count
Full inventory count
Directed count
Targeted or partial inventory count

8
8T
7B
Black
8
8B
Tan
7
7T
Tan
Filter out all existing products under the backorder category.
Include Parent Product
Helps users view parent products with respective variants.
Feature particulars specified for product variants like size, and color.
Product Identifications
Displays associated product ID and Inventory ID with eComm stores. When HotWax Commerce enters a retailer’s Shopify ecosystem, it becomes the source of truth for all product-related information, viz: ECom Product Id, Product SKU, UPCA, GTIN, ISBN.
Product Categories
Displays the parent product category for the variants.
Click on the Add button to save the product association
Filter Type
Description
Store Filter
Filter out store-specific products, every brand product store has a unique product catalog and if you'd like to view the product catalog of a specific brand, you can filter out the products using the Store filter
Category Filter
Filter products belonging to single or multiple categories, for example, “Men’s shoes”, “Kids' wear”, “accessories”, “apparel”, “Jewellery”, etc.
Feature Filter
Filter products by choosing product features like “color” “shades”, “sizes”, “donations”, etc.
Tags Filter
Filter products by choosing any tags available on them like ‘sale”, “discount”, “size range”, “men”, “women”, etc. For example, if a retailer wants to view shirts on discount, they can search for shirts using the search bar and Discount from Tags filter to get specific products in search results.
Exclude Tags Filter
It refines the search by excluding product tags. This will help users to streamline bulk product lookup, where the products having those tags will not be displayed during the search.
Pre-order Filter
Filter out all existing products under the pre-order category.
Specifications
Description
Product Type
Displays Product Type as “Finished Goods”, “Digital Goods”, “Accessories”, or others as specified.
Product Name
Universal name or title assigned to the Product.
Product SKU
Universal product identifier, that retailers assign to products to keep track of stock levels internally at ecom stores which acts as a unique identifier for HotWax Commerce and ERP.
Product Brand
Specifies the brand the product is associated with. Multiple Brands may have the same Product but have a unique SKU for each brand. Product Brand name determines the products to which it belongs when multiple brands are configured.
Tags
Product Tag identifications, added at e-commerce stores like “sale”, “discount”, “size range”, “men, women”, etc.
Shippable Dimensions
Product dimensions with ideal height, width, depth, and weight for shipping and ascertain the shipping box dimensions accordingly.


Backorder Filter
Product Features
Learn about the miscellaneous jobs in HotWax Commerce.
Job Name: Process bulk imported files
Job Enum id: JOB_PRC_PND_DML
Service Name: processPendingDataManagerJob
Flow: Processing Files in HotWax
As all the other jobs bring a file to HotWax and upload it into HotWax internal file system, there is a need for a job, which processes these uploaded files to create or update records in HotWax. The Process Bulk Imported Files job processes files which are in pending status in HotWax Commerce internal file system.
Custom Parameters
This job has no required parameters.
Recommended frequency for this job is every 5 mins.
It has some optional parameters.
Job Name: Process uploads to eCommerceJob Enum ID: JOB_UL_PRCS
This job is used in scenarios where multiple uploads to Shopify are queued, and it's crucial to ensure that these uploads are processed one at a time. This could be part of a larger system where inventory, product data, or other information needs to be synced with Shopify in an orderly and managed way, preventing conflicts and ensuring data integrity.
Job Name: Import Historical Shopify CustomerJob Enum ID: JOB_SHOP_CUST
Description
The Import Historical Shopify Customer job downloads historical customer data from Shopify and imports it into HotWax Commerce. This is crucial for integration with NetSuite, as NetSuite allows order creation only for customers that already exist in the system. By importing historical Shopify customers, this job ensures that all necessary customer records are available in HotWax Commerce, enabling seamless order transmission from HC to NetSuite alongside the customer data.
Custom Parameters
Job Name: Bulk Send Completed Order Mail
Job Enum ID: JOB_COMPLET_MAIL_ODR
Service Name: bulkSendCompletedOrderMail
Flow: HotWax to Klaviyo
The Send Broker Order Mail job facilitates the bulk sending of email notifications for brokered orders. This job ensures that customers receive timely updates on the status of their brokered orders, enhancing communication and order tracking.
Internally, This job fetches all those orders, and corresponding email addresses on orders for which inventory is allocated, form HotWax database and triggers mails to customer through marketing platform (like Klaviyo).
Job Name: Send Broker Order Mail
Job Enum ID: JOB_BROKER_MAIL_ODR
Service Name: bulkSendOrderBrokeredMail
Flow: HotWax to Klaviyo
The Send Completed Order Mail job enables the bulk sending of email notifications for completed orders, ensuring customers are promptly informed when their orders are fulfilled and ready for receipt.
Internally, this job fetches orders for which order status is marked as completed between the last job run and current timestamp, from HotWax Database, and also fetches the associated customer email ID’s on those orders. And then triggers email to customers through marketing platforms (like klaviyo)
Job Name: Packaged multi-stream ImportJob Enum ID: JOB_IMP_GN_JSON_LIST
Description This job is useful in scenarios where multiple pieces of JSON data need to be imported and processed by different services. For instance, in a data integration or ETL (Extract, Transform, Load) system, this function can be used to import and process batches of data from JSON files or API responses. It ensures that each data item is processed through the correct service and handles any errors encountered during the process.
Custom Parameters
Job Name: Multi-Stream ImportJob Enum ID: JOB_IMP_JSON_DATA
This job is used when there is a need to process a single JSON data object by invoking a specific service. For example, it can be used in scenarios where data needs to be imported from a JSON payload and processed by a particular service in an application. This function ensures that the data is correctly validated and passed to the service, and handles any errors that may occur during the process.
Custom Parameters
Job Name: Send packed shipment notification to customer
Job Enum ID: SHPMNT_PKD_NT
Service Name: bulkSendShipmentPackedNotification
Flow: HotWax to Klaviyo
This job is used in scenarios where notifications need to be sent for a large batch of shipments that have recently been packed. It is particularly useful for the process of informing customers or internal systems about the status of their shipments, ensuring timely communication and updates.
Internally, this job fetches all those shipments which are in packed status between the last job run and current time. And then through the shipment id, tracks the order and similarly the customer email address associated with the order. And triggers email to customer through marketing platforms (like klaviyo)
Learn how the sales orders are allocated efficiently in different scenarios.
To perform the order allocation tasks, we first navigate to the View Sales Order page:
Go to the Hamburger Menu in the OMS > Order Management section > Sales Orders to open the Find Sales Order page.
Select the order ID to open the View Sales Order page.
Select the line item and click Release function.
View the inventory and select any facility using the radio button.
Release the item to the selected facility.
Click the history function to view the changes.
The Reject Items feature within the HotWax Commerce platform serves as a crucial tool for managing orders efficiently and maintaining customer satisfaction. It allows users to reject specific items from sales orders, providing valid reasons such as stock unavailability, damages, mismatches, or inactive stores. By enabling users to address issues promptly and accurately, this feature contributes significantly to workflow efficiency and customer service quality.
Identify the item(s) you wish to reject and click on the corresponding line item.
Look for the Reject function and click on it to initiate the rejection process.
Choose the appropriate reason for rejection from the available options using radio buttons (e.g., Not in Stock, Damaged, Mismatch).
After selecting the rejection reason, save your changes to confirm the rejection.
Check the order item history by clicking on the radio button
Sometimes there are instances when customers may connect with CSR to receive the order urgently, in such cases CSR has the option to ship the order from the order details page without waiting for the fulfillment center to mark the order item shipped. Here's how users can mark the order items as shipped in the OMS:
Scenario 1: Marking Items as Shipped that is still Unassigned to a Facility
Locate the Order: Navigate to the desired order and open it to view details from the View Sales Order page.
Release Item to Facility: Select the line item, click Release, and choose the target facility for shipment.
Mark Items as Shipped: Scroll to the item section on the View Sales Order page and click Ship Items
Scenario 2: Marking Items as Shipped that are assigned to a different facility
Reject Line Item: Identify the line item on the View Order page, click Reject, choose No Variance as the reason, and confirm the rejection.
Release Item to Facility: Select the rejected item, click Release, and choose the necessary facility.
Mark Items as Shipped:
Scenario 3: Marking BOPIS Sales Order Items as Shipped
Modify Shipping Method: Scroll to the item section on the View Order page, click Edit, and modify the shipping method to Standard.
Reject Line Item: Reject the line item, choosing No Variance as the reason.
Release Item to Facility: Select the rejected item, click
Managing orders is a complex process, and sometimes, items fail to be fulfilled due to inventory unavailability across facilities. When this occurs, it's crucial to set an auto-cancel date to streamline operations and ensure resource allocation is optimized.
This feature allows users to easily modify or remove auto-cancel dates from orders that are marked unfillable due to failed brokering attempts. By providing this functionality, HotWax Commerce empowers users to maintain control over their orders, preventing unnecessary delays and potential customer dissatisfaction.
Update the Auto-cancel Date on a single order:
Choose the specific order you want to manage and click on it to enter the Sales Order View page.
In the Item section of the Sales Order View page, locate the auto-cancel date and click on the edit function next to it.
From the Calendar that appears, select the new date for the auto-cancelation.
After updating the date, click on the Save function to apply the changes.
Remove Auto-cancel Date from single order:
Choose the specific order you want to modify and enter the Sales Order View page.
In the Item section, locate the auto-cancel date and click on the edit function next to it.
Click on the delete icon next to the auto-cancel date to remove it from the order.
Confirm the changes by clicking on the Save function.
HotWax Commerce features various parking areas serving as virtual facilities for storing orders awaiting fulfillment. Users frequently need to transfer orders between these parking areas to ensure accurate inventory allocation. For instance, if there are unfulfillable orders and retailers are aware of when will inventory arrive, they may opt not to run brokering for such orders until that day. In such scenarios, these orders can be moved from the brokering queue to the unfulfillable hold queue. Here's how you can relocate items to different parking areas:
In the items section, click the Move Items to Parking function.
Choose the parking using the Radio button and Save.
Confirm the Ship From column to view the selected parking.
Refer to the table below for parking description and purpose.
Learn about Routings.
As discussed, routing, also known as routing rules, enable retailers to create specific order batches based on their business requirements, such as a same-day delivery batch, a next-day delivery batch, and a standard order batch. These routing rules help in efficiently looking up orders based on urgency and shipping promises.
Multiple routing rules within a single brokering run are useful when different order batches, like same-day, next-day and standard orders, need to be routed at the same interval.
If these order batches need routing at the same frequency but require different inventory allocation strategies, unique inventory rules can be applied to each batch. This way, even with a shared routing frequency (single brokering run), each order batch is managed according to its specific requirements. We’ll understand more about
groupBy
Optional
Specifies a grouping parameter for the job.
Not specified
additionalParameters
Optional
Additional parameters for job customization.
Not specified
fileNameRegex
Optional
Specifies a regular expression for filtering filenames.
Not specified
importpath
Optional
Specifies the SFTP location and path for importing the file into the system.
Not specified
scheduleNow
Optional
When importing files into the OMS, forces the system to pick the file out of sequence for immediate processing. Enabled by default when importing files from FTP, but can be disabled during high-volume syncs for system stability.
Not specified
createdByJobID
Optional
ID of the job that initiated this job.
Not specified
groupBy
Optional
Specifies a grouping parameter for the job.
Not Specified
additionalParameters
Optional
Additional parameters for job customization.
Not Specified
fileNameRegex
Optional
Specifies a regular expression for filtering filenames.
Not Specified
importPath
Optional
SFTP file location from where the file will be imported.
Not Specified
scheduleNow
Optional
When importing files into the OMS, forces the system to pick the file out of sequence for immediate processing. Enabled by default when importing files from FTP, but can be disabled during high-volume syncs for system stability.
Not Specified
createdByJobId
Optional
ID of the job that initiated this job.
Not Specified
groupBy
Optional
Specifies a grouping parameter for the job.
Not Specified
additionalParameters
Optional
Additional parameters for job customization.
Not Specified
fileNameRegex
Optional
Specifies a regular expression for filtering filenames.
Not Specified
importPath
Optional
SFTP file location from where the file will be imported.
Not Specified
scheduleNow
Optional
When importing files into the OMS, forces the system to pick the file out of sequence for immediate processing. Enabled by default when importing files from FTP, but can be disabled during high-volume syncs for system stability.
Not Specified
createdByJobId
Optional
ID of the job that initiated this job.
Not Specified
Parameter
Type
Description
Default Value
configId
Required
Identifies the configuration for Order Item Attribute records.
IMP_HIS_SHOP_CUST
propertyResource
Required
Specifies the property resource for configuration.
FTP_CONFIG
remoteFilename
Optional
Specifies the remote filename for processing.
Not specified
Parameter
Type
Description
Default Value
configId
Required
Identifies the configuration for import JSON list data.
IMP_JSON_LIST_DATA
propertyResource
Required
Specifies the property resource for configuration.
FTP_CONFIG
remoteFilename
Optional
Specifies the remote filename for processing.
Not Specified
Parameter
Type
Description
Default Value
configId
Required
Identifies the configuration for import JSON data.
IMP_JSON_DATA
propertyResource
Required
Specifies the property resource for configuration.
FTP_CONFIG
remoteFilename
Optional
Specifies the remote filename for processing.
Not Specified
Select Line Items: Choose the items to be marked as shipped in the popup window.
Enter Tracking Details: Select the carrier party from the dropdown and input the tracking number.
Confirm Shipment: Verify the details and confirm the shipment to mark the selected item(s) as shipped.
Ship ItemsReleaseMark Items as Shipped: Click Ship Items, select line item(s), input tracking details, and confirm the shipment.
Hold completed and canceled orders during initial setup.
To hold completed and canceled orders during the initial Order Management System (OMS) instance setup, for later reference during analysis in reporting.
Store Pickup Rejected queue
Hold rejected store pickup orders
To hold store pickup orders which are rejected from the store,
Facility Parking
Description
Purpose
Brokering
Holds new orders
To hold orders for in-stock items, until the next brokering run.
Pre-order
Holds pre-orders
To hold pre-ordered items until released from the HotWax Commerce Pre-order Management app upon inventory availability.
Backorder
Holds Backorders
To hold backordered items until released from the HotWax Commerce Pre-order Management app upon inventory availability.
Unfillable Hold Parking
Hold orders which are unfillable but expecting inventory
To hold unfillable items from further brokering and auto-cancellation.
General Operations Parking
This section explains how to create order batches in a brokering run using filters and sorting options to match business needs. We’ll demonstrate this by creating two routing rules: Same-day/Next-day orders and Standard orders within our previously created Everyday order routing brokering run.
Click the Create order batch button to create a new routing rule.
Name the routing rule and click Save to add it to the list of routing rules.
To add the next routing rule click on the New button next to the "Order batches" label and name your new routing rule.
Continuing our example, let's name our two routing rules as Same-day/Next-day orders and Standard orders.
For a routing to actively process orders, you’ll need to change its status from Draft to Active. Just click Draft to update it to Active, or, if needed, revert an active routing back to Draft by clicking on Active.
This step should be done only after setting up all routing rules.
To prioritize which the routing rule is applied first:
Click and drag the chip on the top right of the routing card.
The sequence number on the card will automatically update based on the card's position.
Continuing our example, we’ll position Same-day/Next-day orders before Standard orders so that the higher-priority order batch is routed first.
Creating an order batch is a two-step process:
The first step in setting up routing rules is to create a batch of orders using specific filters. This helps the brokering algorithm group and prioritize orders accurately for each routing rule, enabling more targeted and effective fulfillment strategies.
Here are the available filters to create order batches:
Origin facility group: This parameter allows retailers to filter orders based on the facility group from which they originated. For example, many times when walk-in customers cannot find their preferred items in store, store associates place the order on their behalf. These are known as Send Sale orders. In this scenario, the origin facility becomes the specific physical location. If a retailer wants all Send Sale orders from specific facilities to be routed differently, then they can apply this filter to create a batch of orders and proceed to create their routing.
Order priority: Not all orders carry the same level of urgency. In HotWax Commerce, orders can be assigned a priority level of high, medium, or low. By default, orders are set to "medium priority," but retailers can adjust the order priority in HotWax Commerce as needed. By filtering orders based on priority, the most critical ones (high-priority orders) are routed before less urgent ones.
Promise date: Pre-orders or backorders can be filtered based on their promise date. Retailers may choose to broker orders that have passed their promise date first for the timely fulfillment of overdue orders.
Queue: The parking location to pick orders from. HotWax Commerce has to park orders that are not yet brokered to a facility. Retailers can filter by queue type (Brokering Queue, Pre-order/Backorder Parking, Rejected Parking, or Unfillable Parking) to decide which orders should be brokered to available inventory.
All orders that are not pre-orders or backorders in HotWax Commerce and are waiting for the inventory are in the Brokering Queue. In most of the cases this will be the filter you will use to make your order batch.
Sales channel: Channel where the order was captured. Different sales channels (eCommerce or marketplaces) may require different routing strategies. Orders can be filtered by channel so that the right group of orders is picked for routing based on channel-specific fulfillment rules, reducing the risk of penalties or delays in fulfilling orders from marketplaces like Amazon.
Shipment method type: SLA promised to the customer. When customers choose specific , like expedited or same-day delivery, these orders must be prioritized differently. Retailers can use this filter to create a batch of orders based on the selected shipping method, so orders requiring fast shipping are processed first.
Exclude Tab: Exclude orders based on specific criteria while including all others. This feature is useful when retailers need to filter orders by omitting a specific filter instead of manually selecting all others. In case a retailer wants to create a batch of all online orders except those from Facebook Marketplace, instead of selecting all other retail channels, they can just exclude it.
Continuing with our example, let’s take a closer look at how to apply the right filters and sorting options for Same-day/Next day routing rule.
Applying filters to create order batches:
Open the Same-day/Next-day orders routing rule’s details, then navigate to the Filters option.
Filters help define which orders should be looked up to create a batch. For the “Same-day/Next-day” routing rule we will choose the “Queue” and "Shipment method type" filters.
From the “Queue” we will choose the “Brokering Queue” to include all orders that are waiting for the inventory allocation.
From the “Shipping Method” dropdown, we will choose “Same Day" and "Next Day” shipping methods to include only same-day and next-day shipping orders in our batch.
Since our objective is to prioritize orders with tight SLAs, we are not selecting additional filters like order priority, promise date, and sales channel.
Outcome? With these filters in place, the brokering algorithm will specifically look for orders in the Brokering Queue that need same-day or next-day delivery. This means that urgent orders are prioritized in your batch for quicker inventory allocation and fulfillment.
After filtering, the next step is choosing the Sorting criteria to prioritize the sequence in which individual orders within each batch are picked for inventory allocation. Sorting allows you to align order routing with your fulfillment goals, prioritizing high-priority orders first.
Available sorting options:
Order date: Sort by order date to prioritize older orders first, following a first-in, first-out (FIFO) approach.
Order priority: Orders can be sorted by priority levels, such as high, medium, low allowing retailers to prioritize orders based on their urgency.
Ship by
Ship after
Shipping method: Sorting by shipping method enables the brokering engine to prioritize orders based on the promised SLA. HotWax records the delivery days associated with each shipping method, Same-Day as 0, Next-Day as 1, Two-Day as 2, etc. For example, applying shipping method sorting for a Same-Day/Next-Day batch allows the brokering engine to pick same-day orders before next-day orders, so inventory is allocated first to the most urgent orders. Sorting orders by shipping method becomes unnecessary when all orders in the batch have the same shipping method.
Choosing sorting options to define order priority:
Navigate to the Sort option. Continuing our example, for the Same-day/Next-day order batch we will choose the "Shipping Method” sorting so that all same-day orders are sequenced first following by all the next day orders.
Finally, click on the Save icon in the right most corner to save your configured routing rule.
If you are choosing multiple sorting options, you can prioritize them into the desired sequence using drag and drop.
Now that you already know what filters and sorting options are available and what they mean, you can easily use them for your next routing rule.
Let’s see what should be the right filters and sorting options for our second routing rule Standard orders.
From the filters option, we will choose the "Queue" and "Shipment method type" filters.
From the “Queue” dropdown we will choose the “Brokering Queue” to include all shipping orders that are waiting for the inventory allocation.
Now, from the "Shipping Method" dropdown we will choose the “Standard” shipping method to include only standard shipping orders present in the Brokering Queue.
From the sorting option, even if we don’t choose any option all standard orders are sequenced based on their order date that is FIFO basis, so older orders are picked first for inventory allocation.
Finally, click on the Save icon in the right most corner to save your configured routing rule.
These examples help understand how retailers can use different filters and sorting options to create order batches and strategically fulfill orders, aligning each routing rule with specific business objectives.
When a routing is no longer needed in a brokering run you can Archive it:
Click on the Archive button at the bottom right of the routing card.
This action moves the routing to the archive, removing it from the brokering run flow.
Archived routings can be reactivated if needed and are accessible from the archive drawer at the bottom of the list.
Congrats! You now have a clear understanding of how to create brokering runs and set routing rules. The final step is choosing inventory rules to complete the order routing setup.
Filters
Look up orders and group them in a batch.
Sorting
Determine the sequence in which orders are picked up during routing.



This section contains use cases designed to help you understand how various scenarios can be handled in the HotWax Commerce Order Routing App. These use cases are written as if you are creating a brokering run for the first time, ensuring simplicity and clarity for new users.
However, if you already have an existing brokering run and want to maintain the same schedule, you don’t need to create a new run. Simply add the routing rules from these cases to the relevant existing runs. This way, you can enhance your current routing logic without altering your established workflows.
A retailer wants to ensure that all orders placed through various marketplaces are fulfilled exclusively from their warehouse. This scenario is common for businesses that prefer to manage marketplace orders separately due to specific logistical or contractual obligations.
Marketplace_sales_channel must be created in HotWax Commerce and mapped with the relevant .
A in HotWax Commerce with the Brokering_group subtype, which includes all warehouse locations.
To create a new brokering run for marketplace orders, begin by opening the Order Routing App. If you are managing multiple product stores, select the relevant store to ensure marketplace orders are routed correctly. Next, click on New Run and name the run something clear and specific, such as “Marketplace Order Routing,” to easily identify its purpose. Add a description like “Routing all marketplace orders through warehouse locations only” to provide clarity for your team. Finally, navigate to the Scheduler card and set the appropriate frequency for this routing run, ensuring marketplace orders are processed on time.
To set up routing rules for marketplace orders, first, select the previously created routing run for marketplace orders in the Order Routing App. This ensures the routing rule is linked to the correct run.
In the next step, apply the necessary configurations:
Order Filter: Use the Sales Channel filter to include only marketplace orders, ensuring orders from Shopify or other marketplaces are grouped and brokered separately from other channels.
Order Sort: Set the sorting criteria to Order Date. This ensures that older marketplace orders are prioritized for inventory allocation, following a first-in, first-out (FIFO) approach.
To create inventory rules for marketplace orders, first ensure that the appropriate routing rule for marketplace orders is selected, then click on Add Inventory Rule. Once the inventory rule is created, follow these steps:
Inventory Filter: Apply the Facility Group filter and select the group for warehouses only. This ensures that the inventory from warehouse locations is considered for the routing.
Inventory Sort: Sort the inventory by proximity to the customer’s delivery address. This helps minimize shipping costs by prioritizing inventory that is closer to the destination.
Actions: If inventory is unavailable, toggle on Partial Fulfillment to allow order splitting. For completely unavailable inventory, select Send Orders to Queue and assign them to the Unfillable Queue for further processing.
Retailers often prefer to fulfill eCommerce orders from their warehouse first, but when inventory is unavailable, the orders should be routed to retail stores for fulfillment. This helps ensure that orders are not delayed and inventory is optimized across all available locations.
To implement this scenario, you need to in HotWax Commerce. First, create a Warehouses facility group under the Brokering_Group subtype, which will include all your warehouse locations. Second, create a Stores facility group, also under the Brokering_Group subtype, to ensure that all retail store locations are available for routing when necessary. These facility groups ensure a clear separation of inventory between warehouses and retail stores.
To create a new brokering run for eCommerce orders, open the Order Routing App. If your system manages multiple product stores, be sure to select the relevant store from the bottom-left switcher to ensure the correct routing. Click on New Run, and give it a clear name such as "eCommerce Order Routing." This naming convention will help easily identify the run for future use. In the description field, add something like "Prioritizing warehouse fulfillment, with store fallback" to clarify the purpose of the run for the rest of your team. Finally, navigate to the Scheduler card to set the run's frequency. This ensures that eCommerce orders are processed in a timely manner.
To configure the routing rules for eCommerce orders, first, ensure that the eCommerce Order Routing run is selected.
Order Filter: Use the Sales Channel filter to select only eCommerce orders. This will group and broker orders specifically from your eCommerce channel, keeping them separate from orders placed through other sales channels.
Order Sort: Set the sorting criteria to Order Date. This ensures that older orders are processed first, following a first-in, first-out (FIFO) model for order fulfillment.
Now, create inventory rules to route orders through the appropriate facilities. First, make sure that the correct eCommerce Order Routing rule is selected, then click on Add Inventory Rule.
First Inventory Rule for Warehouses The first rule ensures that orders are fulfilled from warehouse locations:
Inventory Filter: Apply the Facility Group filter and select the group for Warehouses only, ensuring that orders are initially routed through the warehouse locations for fulfillment.
Inventory Sort: Sort by proximity to the customer’s delivery address to help minimize shipping costs, prioritizing fulfillment from warehouses closest to the destination.
Once the routing rules and inventory rules are set up, the next step is to activate the rules and schedule the run. First, change the status of the eCommerce Order Routing run from Draft to Active. This makes the run ready for live processing. After that, activate the inventory rules for both warehouses and stores, ensuring they are applied during the routing process. Finally, schedule the routing run by setting the frequency at which it should occur, ensuring that eCommerce orders are brokered and fulfilled without delays.
When orders is rejected from stores due to inventory unavailability, the order routing engine automatically re-routes the rejected orders to the next best location with available inventory. This ensures fulfillment while minimizing cancellations, and improving operational efficiency and customer satisfaction.
Start by creating a new brokering run for rejected orders in the Order Routing App. Click on New Run and name it something clear, such as “Rejected Orders Re-Routing.” Add a description like "Re-routing rejected orders to available locations" for better team understanding. Finally, navigate to the Scheduler card to set the frequency for this routing run, ensuring that rejected orders are handled in a timely manner.
Once the run is created, set up the routing rules for re-routing rejected orders.
Order Filter: Apply the Queue Filter in the order batch settings and select the Rejected Order Item queue. This ensures that only rejected orders are included in this batch.
Order Sort: Set the sorting criteria to Order Date, ensuring that the oldest rejected orders are reprocessed first, following a first-in, first-out (FIFO) method.
Now, create an inventory rule that routes orders to the best available location.
Inventory Filter: If you are checking the inventory at all locations, without any additional filters, you don't have to add inventory rule here.
Inventory Sort: Sort by proximity to the customer’s delivery address to minimize shipping costs.
Actions: If inventory is unavailable across all locations, select one of the following options:
Once the routing and inventory rules are configured, activate the Rejected Orders Re-Routing run by changing its status from Draft to Active. Then, schedule the routing runs to ensure timely re-routing of rejected orders at regular intervals.
Retailers may want to fulfill orders from locations closest to the customer to minimize delivery times and costs. By applying a proximity-based routing strategy, businesses can improve both operational efficiency and customer satisfaction.
To start, open the Order Routing App and create a new brokering run for proximity-based routing. Name the run something descriptive, such as "Proximity Order Routing." In the Scheduler card, set the appropriate frequency for the run to ensure timely processing of orders based on proximity.
Once the run is created, define the routing rules to prioritize fulfillment based on customer proximity.
Order Filter: Apply the Queue Filter to select the Brokering Queue. By default, orders from all queues will be included. If you need to focus on a specific queue, select accordingly.
Order Sort: Sort the orders by Order Date. This ensures that older orders are given priority in the routing process, following a first-in, first-out (FIFO) approach.
Now, configure the inventory rule to allocate stock based on proximity.
Inventory Filter: Apply the Proximity Filter with a specified distance (e.g., 50 miles). This ensures that orders are routed to locations within the defined proximity of the customer’s delivery address.
Inventory Sort: Sort the inventory by Proximity. This ensures that the nearest fulfillment locations are prioritized for order allocation.
Actions: If you want to split the order to allocate the inventory within 50 miles for the items available, turn on the toggle for partial rejection. In case of inventory unavailability, you can choose to send the order to the next rule if you want to broaden the search beyond 50 miles, select the option to send the order to the next inventory rule. Alternatively, if you want to limit fulfillment to locations within 50 miles and no inventory is available, send the order to the
Once the rules are set up, activate the proximity-based rules and routing run by changing the status from Draft to Active. Then, schedule the routing run at regular intervals to ensure efficient processing of orders based on proximity.
Retailers need to balance in-store inventory for walk-in customers while fulfilling online orders. To do this, they want to allocate online orders only to locations with sufficient stock, ensuring that in-store inventory is preserved. Using the Brokering Safety Stock feature allows retailers to set a minimum stock threshold for order allocation, protecting essential inventory for physical store customers.
Open the Order Routing App to begin creating a new brokering run. Name the run something like "Minimum Stock Order Routing" for clarity, and provide a description such as "Allocating online orders only to locations meeting minimum stock levels." Then, in the Scheduler card, set the appropriate frequency for the routing run to ensure the timely processing of orders.
Define the routing rules to ensure online orders are routed only to locations that meet the minimum stock levels for each item.
Order Filter: Apply the Brokering Queue filter to route orders from the appropriate queue.
Orde Sort: Sort orders by Order Date to prioritize older orders in the routing process, ensuring a first-in, first-out (FIFO) approach.
Set up inventory rules that ensure fulfillment is done only from locations that meet the required stock levels.
First Inventory Rule:
Inventory Filter: Apply the Brokering Safety Stock filter and define the minimum stock level required for inventory allocation. For example, if the Brokering Safety Stock is set to greater than 10, the inventory will only be allocated if the store has more than 10 units of that item available. This ensures that walk-in customers have access to sufficient stock._
Inventory Sort: Sort the inventory by Inventory Balance
Activate both inventory rules and the order routing batch. Ensure that the rules are in effect by changing the status of the batch from Draft to Active. Lastly, schedule the routing runs to occur at regular intervals, ensuring efficient and timely fulfillment of online orders while maintaining adequate stock levels for in-store customers.
Retailers who manage stores with varying rent agreements, especially those in malls where rent is tied to sales revenue, need to optimize order routing to avoid giving commissions to the malls. By prioritizing the stores that are not in malls, retailers can increase profitability.
Ensure that for stores with fixed rental agreements.
Fixed Rent Stores: Group stores with fixed or lower rent costs.
All Stores: Group all stores to use as a fallback for order fulfillment when necessary.
Open the Order Routing App and set up a new brokering run. Name the run something like "Fixed Rent Store Fulfillment" to indicate that this run prioritizes stores with fixed or lower rent costs. In the Scheduler card, set the appropriate frequency for routing to ensure orders are processed at regular intervals.
Define routing rules to prioritize cost-effective fulfillment locations.
Order Filter: Apply the Brokering Queue filter to route orders from the appropriate queue.
Order Sort: Sort orders by Order Date to prioritize older orders in the routing process.
Set up inventory rules to ensure fulfillment is prioritized based on store rent agreements.
First Inventory Rule:
Inventory Filter: Select the facility group created for stores with fixed or lower rent costs.
Inventory: Sort inventory by Inventory Balance to prioritize locations with sufficient stock levels in these low-rent stores.
Activate both inventory rules and the order routing batch. Ensure that the rules are active and schedule the brokering runs to execute at regular intervals, ensuring efficient and cost-effective fulfillment of online orders while managing rental costs.
Retailers need to balance the cost of shipping, which is influenced by both the distance and the number of shipments. The goal is to minimize shipping costs by considering when it's more cost-effective to ship from multiple locations versus a single distant location. This scenario is particularly relevant for retailers with stores and warehouses spread across a wide geographic area.
Open the Order Routing App and create a new brokering run. Name it "Proximity and Cost-Based Shipping" to reflect that the routing will balance shipping costs with distance and split shipments when necessary. Set up a regular schedule for the run to ensure continuous order processing.
Define routing rules to balance shipping costs and minimize the distance of fulfillment.
Order Filter: Apply the Brokering Queue filter to ensure that orders from the correct queue are routed.
Order Sort: Sort orders by Order Date to ensure older orders are fulfilled first.
Define a series of four inventory rules to balance shipping costs with proximity and partial allocation options.
First Inventory Rule:
Inventory Filter: Apply a Proximity Filter to limit the search to locations within 100 miles.
Inventory Sort: Sort the inventory based on Proximity to prioritize the nearest locations.
Activate all inventory rules and ensure that the order routing batch is active. Schedule the brokering runs to execute at regular intervals, ensuring a balance between shipping cost and distance while also handling split shipments when required.
Note: To further minimize the high cost of shipping due to order splitting, you can use the feature of HotWax Commerce.
Retailers often face scenarios where certain items in an order must be shipped together, while other items can be shipped separately. For example, if a customer orders a frame and lenses along with sunglasses, the frame and lenses must be shipped together, but the sunglasses can be shipped from a different location. In such cases, items like the frame and lenses are grouped to ensure they are always shipped together.
HotWax Commerce allows retailers to manage these scenarios by disabling the splitting of grouped items while keeping the option to split other items in the order. This ensures that grouped items, which are critical to be shipped together, are handled appropriately, while other non-grouped items can still be split for faster fulfillment.
Set up a brokering run in the Order Routing App and label it “Grouped and Split Shipments” to manage orders containing both grouped and non-grouped items.
Set up routing rules to manage the overall flow of orders.
Order Filter: Apply the Brokering Queue filter to prioritize orders correctly.
Order Sort: Sort by Order Date to process the oldest orders first.
Define three inventory rules that control how grouped and non-grouped items are allocated, with specific actions for each rule.
First Inventory Rule:
Inventory Filters: Since no specific inventory filters are needed for this scenario, no filters are applied.
Inventory Sort: Sort inventory based on Proximity to prioritize fulfillment from the closest locations.
Activate all inventory rules and ensure the brokering run is scheduled to process orders at regular intervals. This setup ensures that grouped items like kits are handled together while non-grouped items can be split for faster delivery, based on the retailer’s fulfillment strategy.
Learn about Inventory Rules.
As discussed, inventory rules help orchestrate the process of choosing the most suitable fulfillment locations for each order in a batch of orders based on defined criteria like proximity, stock levels, and strategic priorities. These rules act as sequential steps in the order routing, guiding the brokering engine through multiple checks to find the best fulfillment location.
Multiple inventory rules are required because a single rule may not allocate inventory to all orders in a batch. If the first rule does not allocate inventory to some orders, the brokering engine will proceed to the next rule in sequence. This multi-step process continues through each rule until all possible options are exhausted.
Using multiple inventory rules means that if primary locations lack the required inventory, secondary locations can be considered. This layered approach increases the likelihood of successful allocation by exploring various fulfillment options.
Actions: If inventory is unavailable at the warehouses, set the rule to send the order to the next inventory rule, allowing the system to route the order to available retail stores. If you want to allocate partially available inventory from the warehouse to the orders, turn on the toggle for Partial Fulfillment.
Second Inventory Rule for Stores The second rule is triggered when the warehouse is unable to fulfill the order:
Inventory Filter: Apply the Facility Group filter and select the group for Stores, allowing the system to route orders through retail store locations as a secondary option.
Sort Inventory: Sort by proximity to the customer’s delivery address, helping to minimize shipping costs by routing orders to the nearest store.
Actions: If the inventory is also unavailable in the stores, send the order to the Unfillable Queue for further processing, ensuring that orders that cannot be fulfilled are properly handled. Allow partial fulfillment by turning on the toggle to allow order splitting and ensure available items are fulfilled.
If you want to split the order to allocate the inventory for the items available, turn on the toggle for partial rejection.
If you have another inventory rule for further allocation, select send to Next Rule to attempt routing based on the next rule.
If no further rules exist, select send to Unfillable Queue to handle orders manually or through alternative processes.
Unfillable QueueAction: If no location can fulfill the entire order based on the first rule, select the option to Send to Next Rule.
Second Inventory Rule:
Inventory Filter: No specific filter is selected, as inventory can be allocated from any available location.
Inventory Sort: Sort the inventory by Inventory Balance to prioritize locations with the most available stock.
Action: If partial fulfillment is allowed, enable Allow Partial Fulfillment to split the order between multiple locations. If partial allocation is not an option, select Send to Unfillable Queue.
Send to Next Rule.Second Inventory Rule:
Inventory Filter: Select the facility group that includes all stores to broaden the search to any available location.
Inventory Sort: Sort inventory by Inventory Balance to prioritize locations with the most available stock.
Action: If partial fulfillment is allowed, enable Allow Partial Fulfillment to split the order between multiple locations. If partial allocation is not an option, select Send to Unfillable Queue.
Action: Disable partial allocation to ensure that the entire order is fulfilled from a single location within 100 miles. If no location can fulfill the order, send to the next rule.
Second Inventory Rule:
Inventory Filter: Apply the same Proximity Filter of 100 miles.
Inventory Sort: Sort the inventory based on Proximity.
Action: Enable partial allocation to allow the order to be split across multiple locations within the 100-mile proximity. If the order cannot be fully allocated, send it to the next rule.
Third Inventory Rule:
Inventory Filter: Remove the inventory filter to expand the search to distant locations without any proximity constraints.
Inventory Sort: Sort the inventory based on Proximity.
Action: Disable partial allocation to require the entire order to be fulfilled from a single, distant location. If no single distant location can fulfill the order, send it to the next rule.
Fourth Inventory Rule:
Inventory Filter: Allow all available locations to be included.
Inventory Sort: Sort the inventory based on Proximity.
Action: Enable partial allocation to allow the order to be split across all available locations. If the order still cannot be fulfilled, send it to the unfillable queue.
Partial Fulfillment and Split Grouped Items to ensure that the entire order, including grouped items, is fulfilled from a single location. If no location can fulfill the order, send it to the next rule.Second Inventory Rule:
Inventory Filters: No filters are applied here as well.
Inventory Sort: Continue sorting by Proximity to ensure the closest locations are prioritized.
Action: Enable Partial Fulfillment to allow non-grouped items to be split across multiple locations but keep Split Grouped Items disabled to ensure grouped items stay together. If unavailable, send the order to the next rule.
Third Inventory Rule:
Inventory Filters: Again, no filters need to be applied here.
Inventory Sort: Sort by Proximity again to prioritize fulfillment from nearby locations.
Action: Enable both Partial Fulfillment and Split Grouped Items to allow the entire order, including grouped items, to be split across multiple locations. If no fulfillment is possible, send the order to the unfillable queue.



For example, let’s continue with our example of Same-day/Next-day batch, assuming there are 1,500 orders:
Only 2 orders remain unfillable, moving to Unfillable Parking (configurable action) for rerouting as inventory becomes available.
Applying these inventory rules progressively increases the likelihood of fulfilling each order without delay by prioritizing the most optimal locations first and expanding options only when needed.
In the next sections, we will learn how to create these multiple inventory rules for different order batches.
Here’s how multiple inventory rules work within each routing rule:
Each rule is checked in sequence. If a rule does not allocate inventory to an order, the brokering engine attempts inventory allocation using the next rule.
If no inventory is allocated after all the rules are checked, an auto-cancellation date can be applied or the order may be moved to a different queue for reattempted routing later with a different strategy.
You can easily drag and drop inventory rules to reorder them. The order in which the rules are arranged is important, as the first inventory rule is always evaluated first, followed by the next one. This allows for flexibility in adjusting the sequence as per changing requirements.
In this section, we’ll demonstrate how to set up multiple inventory rules for two routing rules we created earlier: Same-day/Next-day orders and Standard orders.
Creating inventory rules is a three-step process:
The first step is to filter the available facilities to identify those capable of fulfilling an order, so the brokering algorithm considers only facilities that meet the specific criteria set by retailers for order fulfillment.
For example, a retailer may want to use both stores and warehouses for high-priority orders, such as same-day and next-day deliveries. While, for standard orders, they may prefer to rely only on warehouses, avoiding the use of stores. These preferences can be configured using inventory rules to address these types of cases effectively.
Now, if you are wondering how to achieve this configuration, here’s how:
Retailers can set up facility groups in HotWax’s Facility App. Creating facility groups is an important concept because it allows you to group different facilities. For example, in the scenario above, you could create facility groups where one group includes both stores and warehouses, while another includes only warehouses. This setup provides control over facility lookup based on order type and urgency. Here’s a user manual to understand more about the app and its use cases.
HotWax Commerce offers several inventory filters to fine-tune which facilities are eligible for allocation, including:
All items available anywhere: Only allocate a shipgroup if all the items are available. All items do not have to be available at the same location, only available at the same time. This is useful if an order should only be shipped if all of it can be shipped without cancellation.
Turn off the facility order limit check: Retailers can set fulfillment capacity in HotWax, allowing them to define the maximum number of orders a facility can fulfill in a day. Disabling the facility order limit filter gives retailers the flexibility to bypass the defined order limit for a facility, which is especially useful during peak times or high-demand periods. For example, if a retailer turns off this limit, orders can continue to be assigned to that facility even after its maximum capacity has been reached.
Shipment Threshold Value Check: Retailers can set a minimum shipment value to prevent order splitting for low-value allocations, ensuring efficient shipping. For example, if the threshold is $25, items will only be allocated if their value exceeds $25.
Brokering safety stock: Different from online ATP safety stock, brokering safety stock defines the minimum stock required for an order to be brokered to a facility. For example, if a retailer sets a brokering safety stock level of 10 units, only facilities with at least 10 units of the item in stock will be eligible to fulfill the order. This prevents over-allocation and maintains safety stock levels for unforeseen demand.
Facility Group: Custom grouping of locations. Grouping certain facilities allows retailers to simplify their decision-making. For example, as discussed above, there can be a dedicated facility group of only warehouses, one group can have both stores and warehouses or there can also be slow-moving or lower-demand facilities can be grouped together and allotted for non-urgent orders, while high-demand facilities are reserved for time-sensitive fulfillment.
Proximity: The distance between a fulfillment facility and the customer’s address. When a facility address is added in HotWax, its latitude and longitude are automatically saved. Similarly, HotWax saves the latitude and longitude for customer addresses as well. With both locations’ coordinates stored, the brokering engine can compare them to identify warehouses and stores within the defined proximity that have available inventory. For example, a retailer can set a 200-mile proximity limit for next-day delivery orders, so only inventory within 200 miles of the customer’s address is considered. This approach supports faster, cost-effective delivery while meeting SLA requirements.
Exclude Facility Group: Exclude a specific facility group from order allocation. Rather than selecting all the valid facility groups individually, retailers can simply exclude the one group they don’t want certain orders to be allocated to.
For example, if a retailer wants to allocate inventory for rejected orders only to warehouses and retail stores while excluding only outlet stores, they can apply the exclude filter to omit outlet stores instead of selecting both other groups.
Continuing our example, let's first create inventory rules for Same-day/Next-day orders routing.
Applying filters to look up facilities with inventory:
Start Creating the Inventory Rule, click the Add Inventory Rule button. Name the rule, such as “Check all warehouses in 100 miles,” to reflect its purpose of checking only the closest warehouses that can meet the same-day or next-day delivery SLA.
Click Save to save the rule name.
Configure filters, select the right filters to narrow down eligible facilities. For the “Same-day/Next-day orders” routing rule, we will choose “Facility Group” and “Proximity”.
Facility Group: Select “Warehouses” from the dropdown. This limits eligibility to only warehouses with available inventory. Why did we choose warehouse locations? Warehouses handle larger inventory volumes and can better support online order fulfillment compared to stores, which often focus on walk-in customers.
Proximity: Set the distance to 100 miles, so the rule includes only those warehouses within a 100-mile radius of the customer’s location.
This means that only nearby warehouses are considered, optimizing delivery speed and meeting SLA requirements.
If no warehouse within 100 miles has inventory available, the next inventory rule expands the search to include both stores and warehouses. This multi-step approach allows the brokering engine to consider optimal warehouse locations first before evaluating stores, maximizing efficiency.
Once the eligible facilities are filtered, the next step is to set up sorting criteria to prioritize these locations based on specific requirements. Sorting determines the sequence in which the brokering engine evaluates facilities. For example, if 10 facilities meet the filtering criteria, sorting enables the brokering engine to choose the most optimal one based on your fulfillment goals, such as faster delivery, balanced workload, or efficient inventory usage.
Here are the available sorting options:
Proximity: Retailers can sort inventory allocation based on the distance between the customer's shipping address and the facility. This sorting method prioritizes inventory located closer to the customer, helping reduce shipping times and costs, especially for expedited orders or those requiring same-day or next-day delivery.
Facility order limit: To maintain a balanced workload at facilities, they can also be sorted based on the remaining fulfillment capacity.
Inventory balance: Orders can be routed to facilities with the highest available stock of the ordered item, prioritizing locations with excess inventory. This strategy promotes efficient stock rotation, reduces the risk of overstocking, and helps prevent stockouts at key locations.
Custom sequence: Allows full manual override to the sequence at which facilities are attempted. Retailers can set a custom sequence of facilities, defining a specific order in which locations should be considered for order routing. For example, if a retailer wants to prioritize fulfillment from underperforming stores with lower foot traffic, they can create a custom sequence that favors those stores, helping to balance inventory across all locations. Custom sequences can also be useful for managing seasonal inventory or routing orders to specific regions.
Choosing sorting options to select the most optimal facility:
Navigate to the sort option. Continuing our example, for the “Check all warehouses in 100 miles” inventory rule, we’ll use the "Proximity" sorting option.
This sorting option will arrange eligible facilities within the 100-mile range by their distance from the customer, so the closest warehouse is chosen for fulfillment. This approach supports meeting same-day or next-day delivery requirements by minimizing transit time.
After applying filters and sorting, the final step is to define the actions to take if some orders in a batch do not receive inventory.
Once filters and sorting have been defined, the brokering engine identifies the optimal facility to allocate inventory for orders. Multiple inventory rules are created so that if the first rule fails to allocate inventory to some orders, the next rule can be tried. In this scenario, specifying the action “move items to next rule” allows the brokering engine to check the next rule for unavailable items.
There may also be cases where, when the brokering engine tries to allocate inventory to an order, inventory for some items is available while for others it is not, or if available, it may be at different locations. In such cases, we can specify actions to allow or disallow partial allocation. This action serves as one of the final attempts to allocate inventory to orders, ideally included in the last inventory rule.
After-action logic helps manage orders accurately, whether through partial fulfillment or rerouting at a later time, by moving unfillable orders to a different queue.
Here are the available actions:
Partially available
Allow partial allocation: Allow an order to be split and allocated partially if some items are available at a location. For example, a same-day/next-day batch may allow partial allocation in the final inventory rule, while standard orders may prohibit partial allocation across all rules. While partial allocation enables some items to be fulfilled immediately, it can increase shipping costs. To mitigate this, retailers can enable the Brokering Shipment Threshold in HotWax, which only allows order splitting if the order’s value exceeds a minimum threshold. Learn more about Brokering Shipment Threshold and how to implement it.
Partially allocate grouped items: Allow orders containing kits or gift items to be split and allocated partially if some items are available. If you want to allow splitting for other items but wish to prevent splitting for grouped items, you can configure this by toggling ON partial allocation and toggling OFF partial allocation for grouped items.
Unavailable items
Move items to queue: Transfer unallocated order items to the selected queue for further processing. When inventory couldn’t be allocated to an order but further allocation attempts should not be made, the order can be moved to a specific queue. This allows for holding such unfillable orders until the appropriate action can be taken. For example, unfillable orders can be moved to the Unfillable Parking, where they can later be rerouted through a different routing strategy. Ideally, this should be part of your final inventory rule.
Next rule: Automatically move unallocated order items to the next inventory rule in the sequence. When using multiple rules, this is the default action, allowing the brokering engine to attempt inventory allocation through each rule in sequence.
Auto cancel days: Specify the number of days to automatically cancel orders that could not be allocated. Based on inventory availability, retailers may want to set an auto-cancel date for orders to prevent them from staying in the fulfillment pipeline for too long. Ideally, this should be part of the final inventory rule.
Clear auto cancel days: This option is helpful when an auto-cancel date has been applied to an order, but incoming inventory is expected to fulfill it. For example, if unfillable items were moved to an Unfillable Parkingwith an auto-cancel date, and inventory is now expected to arrive, clearing the auto-cancellation date during routing can prevent automatic cancellation. This allows the brokering engine to reroute the order once inventory arrives, maximizing fulfillment opportunities. It's also important to note that applying or clearing an auto-cancel date will apply to all unfillable orders. If there’s an exception and you want to perform an action for a single order only, you should do so directly in HotWax OMS. You can move the specific order to a new queue, like Unfillable Hold Parking, and then remove its auto-cancel date.
Deciding actions to choose the most optimal facility:
In Actions, navigate to the partially available card. Continuing our example, for the “Check all warehouses in 100 miles” inventory rule, we’ll keep the Partial fulfillment as disabled because we want to try allocating inventory to orders using multiple rules without splitting an order. We can allow splitting in our final inventory rule.
Navigate to unavailable items card. Here we will set the action as “Move unavailable items” to the “Next Rule.” This means that the brokering engine will now try to allocate inventory using the next configured inventory rule in our sequence. We don’t want to apply an auto cancel date yet or move unfillable items to a separate queue. We can do this in our final rule.
Great! With your first inventory rule in place, creating additional inventory rules will expand the facility lookup and optimize inventory allocation for same-day and next-day orders.
The following examples provide a brief overview of potential inventory rules, which may vary depending on a business’s unique priorities and requirements.
To add more inventory rules, follow these steps:
Click on the Add Inventory Rule button and give the new rule a distinct name, such as “Check all locations in 100 miles,” to reflect its purpose of checking both the stores and warehouses that can meet the same-day or next-day delivery SLA.
For the second inventory rule, we will expand facility lookup with the "Proximity" Filter:
Click on the Add Inventory Rule button and give the new rule a distinct name, such as “Check all locations in 100 miles".
Filter: We will use the "Proximity" filter, setting the distance to 100 miles. This rule expands the facility lookup to include all facilities (both stores and warehouses) within a 100-mile radius of the customer’s location.
Sorting: Under sorting, we will choose proximity so that the closest facility with the available inventory is selected.
Action: For any items in this batch that remain unfillable, we will set the action as “Move unavailable items” to the “Next Rule.”
For the third inventory rule, we will further expand facility Lookup with "Proximity" Filter:
Click on the Add Inventory Rule button and give the new rule a distinct name, such as “Check all locations in 250 miles".
Filter: We will use the Proximity filter, setting the distance to 250 miles. This rule expands the facility lookup to include all facilities (both stores and warehouses) within a 250-mile radius of the customer’s location.
Sorting: Again, we will use the Proximity option to choose the closest facility with available inventory.
Action: For any items in this batch that remain unfillable, we will set the action as “Move unavailable items” to the “Next Rule.”
For the fourth inventory rule, we will further expand facility lookup without any distance limitation:
Click on the Add Inventory Rule button and give the new rule a distinct name, such as “Check all locations".
Filter: We will not apply any filter, allowing the brokering engine to consider all facilities, regardless of distance. This rule allows every facility (store or warehouse) to be considered for fulfilling unallocated orders.
Sorting: We will sort facilities by "Proximity", so the closest location is selected.
Action: For any items in this batch that still remain unfillable, we will set the action as “Move unavailable items” to the “Next Rule.”
For the final fifth inventory rule, we will again include all facilities but also enable order splitting to allow partial fulfillment across different facilities.
Click on the Add Inventory Rule button and give the new rule a distinct name, such as “Check all locations, allow splitting".
Filter: We will not apply any filter, allowing the brokering engine to consider all facilities, regardless of distance.
Sorting: We will sort facilities by "Proximity", so the closest location is selected.
Action: We will toggle ON “Partial allocation” to enable partial allocation across multiple facilities if inventory is spread out. For items in this batch that still remain unfillable after we have applied multiple rules, we will set the final action as “Move unavailable items” to the “Queue,” and select Unfillable Parking from the dropdown. We will also apply a "7 days auto-cancel date" for these unfillable orders.
Once you've configured each rule, change its status from Draft to Active to make it operational. To do this, click on Draft and select Active, or revert an active rule back to Draft if any adjustments are required.
Once all rules are active, and your routing is fully configured, set the Brokering Run to Active so that orders can be processed as scheduled.
For standard orders with a longer SLA (7 days or more), inventory rules can be configured differently to prioritize fulfillment from warehouse locations, reserving in-store stock for higher-priority, faster-shipping orders. Here’s how to create inventory rules for “Standard orders” routing:
Navigate to the Brokering Run details page, choose the Standard orders routing, and follow the steps below to add inventory rules.
Click on the Add Inventory Rule button and give the new rule a distinct name, such as “Check all warehouses in 250 miles,” to reflect its purpose of checking only warehouse locations in the defined proximity.
For the first inventory rule, we will prioritize warehouse locations with most inventory.
Filter: We will choose “Warehouses” in the “Facility group”, excluding stores to maintain inventory levels for faster-shipping orders. We will also use the Proximity filter, setting the distance to 250 miles. This rule expands the facility lookup to include all warehouses within a 250-mile radius of the customer’s location, allowing us to reduce shipping costs if a nearby warehouse is available.
Sorting: We will choose “Inventory balance” to route orders to warehouses with the highest available inventory. Proximity sorting isn’t prioritized here, as the goal is to maximize inventory balance within 250 miles.
Action: For any items that remain unfillable, we will set the action to “Move unavailable items” to the “Next Rule.”
For the second inventory rule, we will prioritize warehouse locations with most inventory.
Click on the Add Inventory Rule button and give the new rule a distinct name, such as “Check all warehouses in 500 miles".
Filter: We will use the Facility Group filter and continue to restrict the facility lookup to Warehouses only but we will now expand the distance to 500 miles using the Proximity filter.
Sorting: We will again choose “Inventory balance” sorting to select the optimal warehouse in 500 miles with the available inventory.
Action: If any items still remain unfillable, we will set the action to “Move unavailable items” to the “Next Rule.”
For the final third inventory rule, we will look up all warehouse locations.
Click on the Add Inventory Rule button and give the new rule a distinct name, such as “Check all warehouses".
Filter: We will continue to restrict the facility lookup to Warehouses only using the Facility Group filter. However, this time we will not use the Proximity filter, allowing all warehouse locations to be considered.
Sorting: We will again choose “Inventory balance” sorting to select the optimal warehouse with available stock.
Action: For items in this batch that still remain unfillable after we have applied multiple inventory rules, we will set the final action as “Move unavailable items” to the “Queue,” and select Unfillable Parking from the dropdown. We will also apply a 7 days auto-cancel date for these unfillable orders.
This is how in a single brokering run, you can set up multiple routings with unique inventory rules based on each order batch specific needs.
What did we do differently for standard orders?
For Standard orders, we focused only on "Warehouse" locations, prioritized "Inventory balance" over “Proximity" and "Disabled partial allocation" across all inventory rules.
By leveraging HotWax Commerce, Order Routing Appretailers can create highly customized and efficient order routing strategies that optimize inventory usage, reduce shipping times and costs, and align their fulfillment process with their unique business needs.
In the following sections, we’ll cover a range of business use cases that the HotWax Commerce Order Routing App can help achieve, highlighting its adaptability to various inventory and order fulfillment needs.
Learn about the Orders jobs in HotWax Commerce.
Job Name: Import Orders
Job enum ID: JOB_IMP_ORD
Service Name: createOrdersFromShopify
Flow: Order Import from Shopify to OMS
The Import Orders job is used for downloading orders from Shopify into HotWax. It retrieves all orders created in Shopify from the time the job last ran up to the current time.
When the Import Order job runs for the first time, it defaults to downloading orders created in the last 15 minutes. This time frame can be adjusted using the "frequency" parameter.
How are orders downloaded?
HotWax sends an API request to Shopify, which returns the order details in JSON format. The JSON file is then uploaded to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads a JSON file and creates order records in HotWax Commerce.
To prevent errors with large files, HotWax limits the download to 100 orders per API call, though Shopify allows downloading up to 250 orders.
Note: To find the Uploaded file, login to HotWax Commerce OMS, then navigate to Hamburger Menu>EXIM Page > Shopify Jobs tab > Shopify Order MDM.
Custom parameters:
Recommended frequency for the Import Order job is 15 minutes.
The required parameters for this job is “frequency”.
It has some more optional parameters.
To know more about Order Download, refer to this document.
Job name: Approve orders
Job Enum ID: JOB_APR_ORD
Service Name: approvePendingShopifyOrders
Flow : Order Approval
The Approve Orders job changes the status of orders from 'Created' to 'Approved,' making them eligible for brokering. Orders must be verified and approved before fulfillment to prevent invalid or fraudulent orders. The Approved Orders job runs every 30 minutes and approves all the orders placed between the last job ran up and the current timestamp.
How are orders approved?
This job checks the payment preference for each order in the 'Created' state. If the payment preference is either 'Authorised' or 'Settled,' then the job changes the order status from ‘Created' to 'Approved’.
Custom Parameter:
The recommended frequency for this job is every 30 minutes.
The 'orderId' is an optional parameter. When provided, it will approve the specified order. By default, the job approves all orders in the created state.
HotWax Commerce offers an additional job, Approved Sales Orders, designed for scenarios where retailers require custom order approval.
To know more about Order Approval refer to this document.
Job Name: Import Order Updates from Shopify
Job Enum Id: JOB_IMP_ORD_UPD
Service Name: updateOrdersFromShopify
Flow: Order Update From Shopify to OMS
The Update Orders job is used for importing updates of orders from Shopify to HotWax, such as adding new items, modifying quantities, or cancelling items within an order.
When CSRs or customers modify orders in Shopify, the Import Order Updates from Shopify job ensures those changes are accurately synced to HotWax. It identifies and updates any orders that have been modified after being downloaded in HotWax. The job retrieves updates for all orders placed between the last job run and the current time.
How are orders updated in HotWax ?
HotWax sends an API request to Shopify, which returns the order update details in JSON format. The JSON file is then uploaded to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads a JSON file and creates order records in HotWax Commerce.
Note: To find the Uploaded file, login to HotWax Commerce OMS, then navigate to Hamburger Menu>EXIM Page > Shopify Jobs tab > Shopify Order MDM.
Custom parameters
The required parameters for this job is “frequency”.
Recommended frequency for this job is every hour (i.e 60 min)
It has bufferTime as the optional parameter.
To know more about order updates, refer to this document.
Job Name: Import Cancelled Orders
Job Enum ID: JOB_IMP_ORD_CNCL
Service Name: updateShopifyOrderStatus
Flow: Shopify to HotWax
The 'Import Cancelled Orders Job` is used for syncing cancelled orders from Shopify to HotWax. This job retrieves all Shopify orders cancelled between the last job run and the current time.
When an order is cancelled on Shopify, it can be imported into HotWax Commerce via the Update Orders Job, Shopify webhooks, or the Import Cancelled Orders Job, which ensures accurate processing when other methods are unreliable.
To sync cancelled orders, it is recommended to schedule both the Update Order and Cancelled Order jobs. The Cancelled Order job handles missed orders but will be deprecated in the near future.
This job specifically checks the cancelled_at field for orders on Shopify and compares it with the job’s last run time. If the cancelled_at time is later than the job's last run time, the job downloads all canceled orders in batches of 100 to avoid exceeding Shopify's API limit.
How is cancellation synced?
HotWax sends an API request to Shopify, which returns the cancelled order details in JSON format. The JSON file is then uploaded to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads a JSON file and creates order records in HotWax Commerce.
Custom parameters
The required parameters for this job is “frequency”.
Recommended frequency for this job is every 30 min.
It has bufferTime as the optional parameter.
To know more about Order Cancellation refer to this document.
Job Name: Import Cancelled Items
Job Enum ID: JOB_IMP_ITM_CNCL
Service Name: cancelOrderItemsFromShopify
Flow : Shopify to HotWax
The Import Cancelled Items job is used to accurately synchronize item cancellations from Shopify to HotWax. When a customer cancels an item from an order, only that specific item is canceled, not the entire order.
While the Update Orders Job can import canceled items, the Import Canceled Items job acts as a backup to guarantee that cancellations are properly synced. This job retrieves updates for orders placed between the last run and the current time, reflecting any cancellations made in Shopify.
How Items are Cancelled in HotWax ?
HotWax sends an API request to retrieve order information, and in response, Shopify provides a JSON format file containing details of orders. The job checks the 'updated at' field in the order JSON and compares the timestamp with the job’s last run time. All orders updated after the last run are imported into HotWax Commerce in batches of 100 to prevent exceeding Shopify’s API limits.
After import, HotWax filters out the orders with canceled items and marks those items as canceled. The order status in HotWax Commerce is not changed; only the status of the canceled items is updated.
Custom Parameters
The required parameters for this job is “frequency”.
The recommended frequency for this job is Hourly (i.e 60 min).
bufferTime and createByJobId are optional parameters for this job.
To know more about item cancellations, refer to this document.
Job Name: Import Order Returns
Enum Id: JOB_IMP_RTN
Service Name: createReturnsFromShopify
Flow: Shopify to HotWax
The Import Order Returns job imports returns from Shopify to HotWax after they are completed and marked as "Refund" or "Returned" in Shopify, maintaining the order history.
Another method for importing returns is subscribing to Shopify webhooks via the Job Manager App, but this approach is not recommended due to the unreliability of Shopify webhooks.
Although Shopify allows fetching 250 returns per API call, to avoid issues with large files, HotWax will download up to 100 returns per API call.
How are returns imported?
HotWax sends an API request to Shopify, which returns the order return details in JSON format. The JSON file is then uploaded to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads a JSON file and creates order records in HotWax Commerce.
Note: To find the Uploaded file, login to HotWax Commerce OMS, then navigate to Hamburger Menu>EXIM Page > Shopify Jobs tab > Shopify Order Return.
Custom Parameters
The required parameters for this job is “frequency”.
The recommended frequency for this job is 6 hours.
financialStatus ,bufferTime ,limit , createdByJobId are the optional parameters.
To know more about return import refer to this document
Automated messages sent from eCommerce (Shopify) to OMS whenever an event occurs. They contain data about the event and are received in OMS, allowing real time communication between eCommerce and OMS.
Subscribe to Shopify eCommerce Webhooks from OMS for:
***
Job Name: Cancelled Orders
Job Enum ID: JOB_UL_CNCLD_ORD
Service Name: bulkCancelOrdersOnShopify
Flow: Upload Cancelled HotWax to Shopify
In usual scenarios, orders are cancelled in Shopify and then synced to HotWax. However, in special cases, like when a CSR cancels an order on behalf of a customer from the view order page in HotWax, this process works differently. In such cases, this job is used to upload cancelled orders from HotWax back to Shopify. It retrieves all orders cancelled between the job's last run time and the current time.
How Cancelled Orders are Uploaded ? HotWax sends a post API request to Shopify with data of all orders that are cancelled in OMS in JSON format, then the orders are marked as cancelled in Shopify.
Custom Parameters
This job has no required parameters.
orderId and cancelledDate are two optional parameters.
Job Name: Part Identification
Job Enum ID: JOB_PARTY_IDENT
Service Name: ftpImportFile
Flow: Order Approval Flow
The party identification job is used for importing new customers created in NetSuite to HotWax.
HotWax ensures that the Netsuite Customer ID must be mapped to the HotWax Customer ID for every order for smooth integration. Basically, when an order is placed for which the customer ID is not created in NetSuite, NetSuite will generate a “NetSuite Customer ID." Netsuite also generates a file in CSV format with newly created customer data and uploads that CSV in the SFTP location; from there, HotWax will import that CSV through the Party Identification job and map customers against all the NetSuite Customer IDs.
How are customer IDs mapped? The HotWax Commerce integration platform first queries the HotWax database to fetch orders that lack a “NetSuite Customer ID.” It then uploads a CSV file of these orders to an SFTP location.
Next, a SuiteScript in NetSuite runs at scheduled intervals, retrieves the CSV file, and generates a JSON file containing the “NetSuite Customer ID” for all the orders in the CSV and uploads it to an SFTP location. The JSON file is then uploaded to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads a JSON file to process in HotWax Commerce.
Custom Parameters
The recommended frequency for this job is 15 minutes
It also has some optional parameters.
This job has configId and propertyResource as the required parameters.
To know more about this, refer to this document.
Job Name: Complete Order Item from Shopify
Job Enum ID: IMP_COMPL_ORD_ITM
Service name: completeOrderItemsFromShopify
Flow: Shopify to HotWax
This job imports completed order items from Shopify for cases where retailers do not use HotWax Commerce for managing Available to Promise (ATP) inventory. In this case, ATP is managed on Shopify. In this case, order fulfillment information is not available with HotWax, and so it relies on Shopify to get the status of an order item. It fetches orders completed between the last run time and the current timestamp.
How completed order items are imported ?
HotWax sends an API request to Shopify, which returns the order fulfillment item details in JSON format. The JSON file is then uploaded to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads a JSON file and creates order records in HotWax Commerce.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has no required parameters.
It has some optional parameters
Job Name: Approve Sales Orders
Job Enum ID: JOB_APR_SALES_ORD
Service Name: Import Approve Sales Order
Flow: Order Approval
This job changes the order's status from 'Created' to 'Approved' based on certain conditions. It is used in custom order approval processes.
For example, if the retailers want to ensure that payment must be captured before the order is approved, this job will ensure that only those orders are approved for which payment is captured by applying this condition on the Order Approval Flow.
Some jobs, like party identification and order identificationare those required jobs that need to be run before this job ensures custom conditions are matched.
How are orders approved?
This job queries the HotWax Commerce database to fetch orders in the created state and filters out the orders that pass the checks defined by the retailer. The filtered orders’ are then changed to the ‘Approved’ status.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
Job Name: Create Exchange Order
Job Enum ID: JOB_CRT_SALES_ORD
Service Name: ftpImportFile
Flow: Importing Exchanges from HotWax to Shopify
This job is used for importing exchanges in HotWax from Shopify. Basically, when an exchange is created in Shopify, it has to be synced with HotWax to maintain system integrity. This job imports all the exchanges from Shopify created between the last job run and the current timestamp.
How are exchanges imported?
Shopify provides a feed of all the returns and exchanges in JSON format, which is then fetched and transformed by the HotWax Commerce integration platform. Further HotWax Commerce integration platform uploads transformed JSON to an SFTP location. From that SFTP location, the Create Exchange Order job brings the JSON and uploads it to the internal file system in HotWax.
Basically, when an exchange is created on an order in Shopify. This job takes those orders and creates the same exchanges for the corresponding orders in HotWax to maintain the system's integrity.
Custom parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
To know more about exchange, refer to this document.
Job name: Create Return Order
Job Enum ID: JOB_CRT_RETURN
Service name: ftpImportFile
Flow: Return Creation from Shopify to HotWax
This job is used for importing returns from Shopify to HotWax. This imports all returns that are created in Shopify between the last job run and the current timestamp.
Shopify uploads a feed in JSON format of both returns and exchanges to an SFTP location; from there, the HotWax Commerce integration platform transforms this feed, and then returns are created in HotWax by the Create Return Order job.
How are returns synced from Shopify to HotWax?
Shopify uploads a JSON file with returns and exchanges to an SFTP location. The HotWax Commerce integration platform processes this file and uploads a transformed feed of returns to the SFTP location. The Create Return Order job then imports this JSON into the IMP_CRT_RTN_ORD MDM in HotWax from the SFTP location. Finally, the Process Bulk Import Files job processes the data, creating the returns in HotWax.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
To know more about returns, refer to this document.
Job Name: Import Last Day Orders from Shopify
Job Enum ID: JOB_IMP_MISS_ORD
Service Name: importLastDayMissingOrders
Flow: Missed Orders from Shopify to HotWax
This job is used for importing all the last-day orders from Shopify to HotWax. Although HotWax has an Import Orders job to import orders from Shopify on a scheduled frequency, this job serves as a backup and makes sure that if any order is missed by the import orders job, it will also be imported into HotWax.
How are last-day orders imported?
HotWax gives an API call to Shopify for importing all the last day's orders from Shopify. In response to this request, Shopify provides an order data feed containing data of all the last day's orders in JSON format. Import Last Orders from Shopify job imports this JSON file and uploads it to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads a JSON file and creates order records in HotWax Commerce.
Note: To find the Uploaded file, login to HotWax Commerce OMS, then navigate to Hamburger Menu>EXIM Page > Shopify Jobs tab > Shopify Order MDM.
Custom Parameters
This job has no required parameters.
It has some optional parameters.
To know more about Order Download refer to this document.
Job Name: Order Item Attribute
Job Enum ID: JOB_ORDER_ITM_ATTR
Service Name: ftpImportFile
Flow: Import Item Attribute from NetSuite to HotWax
This job is used for importing order item attributes from NetSuite to HotWax. Order item attributes are basically used to provide some additional details on the order of every item in an order.
NetSuite provides order line item details in a JSON format file. This JSON file is uploaded by NetSuite to an SFTP location; from there, HotWax imports these attributes.
How are attributes imported?
Order Item Attribute job fetches the JSON file from the specified SFTP location at defined intervals and imports this JSON file and uploads it to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads a JSON file and creates order records in HotWax Commerce.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
Job Name: Import Order Item Rejected
Job Enum ID: JOB_ORDER_ITM_RJCT
Service Name: ftpImportFile
Flow: Import Rejected Order Item from NetSuite to HotWax
This job is used for importing rejected items in orders from NetSuite to HotWax from the last job run until the current timestamp.
When NetSuite is used as a Warehouse Management System (WMS), it rejects an order in case that order cannot be fulfilled from the warehouse. These orders need to be rebroken in search of another location to get fulfilled. NetSuite marks all such order items as rejected and uploads a JSON feed containing data of all the rejected items to an SFTP location.
How are rejected items synced from NetSuite to HotWax?
NetSuite uploads a CSV-format feed of all the rejected items to an SFTP location. From there, the Import Order Item Rejected job fetches this CSV file and uploads it to the internal file system of HotWax Commerce for further processing. The Process Bulk Import Files job then reads the CSV file and creates order records in the HotWax database.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
Job Name: Import transfer Orders
Job Enum ID: JOB_ORDER_ITM_TO
Service Name: ftpImportFile
Flow: Import Transfer Order from NetSuite to HotWax
This job imports transfer orders from ERP systems (e.g., NetSuite) into HotWax. Transfer and purchase orders are created in ERP systems, and HotWax, as an order management system, imports them to maintain accurate inventory records.
How are transfer orders synced?
For every transfer order created in an ERP system (like NetSuite), there is a script that runs on a scheduled frequency and uploads all the transfer orders created in ERP to an SFTP location. From there, the Import Transfer Order job runs and imports the feed of transfer orders from the SFTP location and uploads it onto the HotWax Commerce internal file system. From there, the Process Bulk Import job runs, and hence transfer orders are synced from NetSuite to HotWax.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
To know more about importing transfer orders refer to this document.
Job Name: Order Identification
Job Enum ID: JOB_ORDER_IDENT
Service Name: ftpFileImport
Flow: Order Approval (NetSuite to HotWax Order Sync)
This job is used for importing NetSuite order IDs for orders that exist in HotWax. The NetSuite order ID is required for every order to maintain the system's integrity and sometimes in custom order approval flow.
This job runs at a defined frequency and fetches all the records created between the last job run and the current timestamp.
How are NetSuite orders ID mapped in HotWax?
The HotWax Commerce integration platform queries the HotWax database and fetches all the records for which the NetSuite order ID is Null but the NetSuite customer ID exists. And creates a CSV for all such records and uploads it to an SFTP location. Further, a suite script from NetSuite fetches all these orders and provides NetSuite order IDs for all these orders and uploads a JSON feed on the SFTP location. Then the HotWax Commerce Order Identification job imports this JSON from SFTP to IMP_ORDER_IDENTMDM. Next, the Process Bulk Import File job maps all the NetSuite order IDs to the corresponding order IDs in HotWax.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
To know more about order ID sync, refer to this document.
Job Name: Import Shopify Order Metafield
Job Enum ID: IMP_ORD_META_FIELD
Service Name: importShopifyOrderMetafield
Flow: Order information Import Shopify to HotWax
Order metafields are basically some additional information of an order. The Import Order Metafield job is used for importing order metafields from Shopify to HotWax. Basically, when an order is imported into HotWax, if it has some metafields, HotWax imports those metafields separately through this job
Custom Parameters
nameSpace is the required parameter for this job.
It has some optional parameters.
Job Name: Approve Transfer Order
Job Enum ID: JOB_APR_TO
Service Name: BulkApproveTransferOrders
Flow: Transfer Order Approval Flow
This job is used for auto-approving transfer orders in HotWax. Basically, the Imports Transfer Order job checks the status of imported transfer orders from NetSuite to HotWax. The Approve Transfer Order job works on an essential step to approve transfer orders in HotWax.
Custom parameters:
This job has no required parameters.
It has bufferTime and orderId as the optional parameters.
Job Name: Import order attribute
Job EnumID: JOB_ORDER_ITM_ATTR
Service Name: ftpImportFile
Flow: Importing Order Information from Shopify to HotWax
This job is used for importing order attributes into HotWax. Order attributes are basically some additional information on an order that is essential to be attached with the order.
For example, if an order is to be gift wrapped, this information is essential for the person who will pack the order. Such information will be imported as an order attribute.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
Job Name: Order Item Fulfillment
Job Enum ID: JOB_ODR_ITM_FLFLMNT
Service Name: ftpImportFile
Flow: Import Fulfillment update from HotWax to NetSuite.
This job is used for syncing the fulfillment status of orders from NetSuite to HotWax. Basically, when an order is allocated to a warehouse and in cases when NetSuite is used as a warehouse management system (WMS), fulfillment updates on such an order will be taken from NetSuite.
HotWax requires the fulfillment update for various reasons, such as to update status on eCommerce and ultimately to maintain the integrity between HotWax and NetSuite.
How is fulfillment status synced?
NetSuite runs a SuiteScript to provide details of items that are fulfilled in the warehouse. And uploads a JSON file of such details on the SFTP location Order Item Fulfillment; the job imports the JSON to HotWax and uploads it on IMP_ODR_ITM_FLFLMNT MDM. Finally, the Process Bulk Import Files job processes the file, and hence, fulfillments are synced from Netsuite to HotWax.
Custom Parameters
The recommended frequency for this job is 15 minutes.
This job has configId and propertyResource as the required parameters.
It has some optional parameters.
Job Name: Import Customers from Shopify Job Enum ID: JOB_IMP_CSTMR
Description The Import Customer job imports customer data from Shopify into HotWax Commerce. This job ensures that customer information, including contact details and order history, is accurately synced between the two platforms, supporting smooth order processing and customer management in HotWax Commerce.
Custom Parameters
frequency
Required
Defines the default duration of the last syncing of the shipment status.
15
bufferTime
Optional
Specifies the buffer time (in minutes) for scheduling job.
Not Specified
limit
Optional
Additional parameters for job customization.
Filters
Look up eligible facilities with inventory that can fulfill an order.
Sorting
Determine which eligible facility should be prioritized to allocate an order.
Actions
Define fallback actions for orders that cannot be fully allocated to a single facility. The actions also help configure the final steps if all previous rules don’t allocate inventory to orders.




Not Specified
