Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The Order Lifecycle BPM illustrates how HotWax Commerce orchestrates the journey of an order from creation to approval, routing, and fulfillment, ensuring accuracy at every stage.
Customers place their online orders on eCommerce platforms. The order lifecycle in HotWax Commerce starts when these orders are downloaded from eCommerce to HotWax Commerce.
In HotWax Commerce there’s a dedicated Import Orders
job that downloads new orders from eCommerce in bulk so that they can be further processed. These downloaded orders are automatically assigned a "Created" status.
Why is order approval necessary?
Only orders with approved status are eligible for fulfillment in HotWax Commerce and orders without approval remain in the "Created" status.
Order approval process:
In HotWax Commerce, open orders can be automatically approved by the scheduled job Approve Orders
. This job validates orders based on the predefined criteria for order approval, which may include out-of-the-box or custom criteria set by retailers. If an order satisfies the criteria set for auto-approval, its status is automatically updated to "Approved".
For example, some of our customers use the Riskified App to check for fraudulent payments. If the payments are found to be non-fraudulent, orders can be auto-approved.
If an order fails to pass the approval, it remains in the “Created” status. Once these orders have satisfied the validation criteria, retailers have two options to approve them:
In the next scheduled run, the order approval job again picks orders that previously failed the approval to re-validate them, automatically marking them as "Approved" upon successful validation.
Alternatively, Customer Service Representatives (CSRs) have the option to manually update the order status from "Created" to "Approved" to bypass the waiting period for the next job run.
HotWax Commerce supports the processing of various types of orders, including standard orders, BOPIS (Buy Online, Pick Up In Store) orders, Pre-Orders, and Backorders. Here’s a brief explanation of each type:
Standard orders: Standard shipping orders placed online for home delivery.
BOPIS orders: Orders placed online with the intention of picking up the items in-store.
Pre-Orders: Orders placed for products that are not yet available for delivery and will be available on a future promised date.
Backorders: Orders placed for products that are currently out-of-stock, with delivery scheduled for a future promised date.
Each order has its distinct fulfillment process, making it essential to recognize and handle them accordingly for efficient processing. Now, let's explore how HotWax Commerce processes different order types:
All the approved standard orders are sent to the Brokering Queue
which serves as a waiting area for orders awaiting processing. Orders in the brokering queue are analyzed and picked in the brokering run.
What are brokering runs:
Brokering runs are scheduled by retailers to execute at specified intervals, allowing for effective and timely order routing. Retailers need to set a frequency and run time for brokering. For example, setting the frequency of a run to "Daily" and the runtime to "7 am" will execute the brokering run every morning at 7 am.
In the brokering run, the order routing engine
looks for the best fulfillment location to fulfill orders from.
Learn more about order brokering and routing
A fulfillment location can primarily be a store or a warehouse location. Let’s understand what happens when the order routing engine allocates an order to a store and warehouse:
If an order has been routed to a store location, it can be fulfilled using the HotWax Commerce Store Fulfillment App.
After all the order items in the order are shipped, the order status is updated from “Approved” to "Completed" in HotWax Commerce. A Completed Orders
job in HotWax Commerce also updates tracking details and marks orders as “Fulfilled” in eCommerce.
In the event store associates do not find the inventory to fulfill an order, for reasons such as items being out of stock or damaged, a store manager has the authority to reject that order.
Rejected orders are then automatically sent to the Rejected Queue
. A dedicated brokering run is performed to check the orders in the Rejected Queue
and reallocate inventory to them.
When an order includes multiple items and inventory for one of them is unavailable for fulfillment, retailers have two options for handling the situation:
Partial rejection: Retailers can choose to partially reject the order by rejecting only the unavailable item. In this scenario, the order will be split, and the store will ship the available items while the unavailable item will be rebrokered.
Full rejection: Alternatively, retailers who prefer not to split the order, can reject all items in the order if any one item is unavailable for fulfillment. This ensures that the entire order is rejected, prompting the entire order to be rebrokered.
Learn more about Store Fulfillment
If an order has been routed to a warehouse location, it can be fulfilled using external systems like NetSuite or a Warehouse Management System (WMS).
For orders fulfilled by an external system, HotWax Commerce receives the fulfillment status from the external system and marks the order as “Completed”. Once the order status is updated from “Approved” to “Completed”, HotWax Commerce sends the tracking details (if they are provided by the external system) to eCommerce and marks the orders “Fulfilled” in eCommerce.
In the event, that a fulfillment location cannot fulfill an order that has been allocated to them and the fulfillment is rejected in the external system, a scheduled job in HotWax Commerce imports rejected orders and automatically moves them to the Rejected Queue
. A dedicated brokering run is performed to check the orders in the Rejected Queue
and reallocate inventory to them.
When inventory is unavailable for orders at any location, the order routing engine moves them from the Brokering Queue
to the Unfillable Parking
. A dedicated brokering run is performed to check the orders in the Unfillable Parking
and allocate inventory to them.
Assigning auto-cancel date
A scheduled job in HotWax Commerce assigns an auto-cancellation date on orders present in the Unfillable Parking
. Retailers have the option to configure the timeframe after which unfillable orders are automatically canceled, the default period is set to 7 days.
Auto-cancellation of unfillable orders
A scheduled job checks if the auto-cancellation date for unfillable orders has been reached and automatically cancels them once the date is reached. The order status is then automatically updated from “Approved” to “Canceled” in HotWax Commerce.
Retailers with prior knowledge of future inventory through their purchase orders can move these unfillable orders in bulk from Unfillable Parking
to the Unfillable Hold Parking
using a CSV file. This action prevents these orders from being automatically canceled and allows them to be fulfilled in the future.
When the inventory arrives, retailers can schedule a brokering run that looks at the orders present in the Unfillable Hold Parking
and allocates inventory for them.
When customers place a BOPIS order on eCommerce, it is downloaded in HotWax Commerce alongside standard orders by the Import Orders
job.
HotWax Commerce provides an Integration App that can be installed on Shopify. When a customer places a BOPIS order, the app adds a custom tag on line items to specify that it is a BOPIS order.
HotWax Commerce then checks the custom tag on orders. If the tag is present on an order, it is automatically sent to the customer's preferred pickup location without brokering. This is because the fulfillment location is pre-selected for BOPIS orders by customers.
Store associates can view BOPIS orders in their BOPIS Fulfillment App and begin preparing the order for customer pick-up.
Once the order is prepared, customer receives an email informing them that their order is ready for pickup. After an order has been picked up by the customer, the order status is updated from “Approved” to “Completed” in HotWax Commerce. A Completed Orders
job in HotWax Commerce also marks orders as "Fulfilled" in eCommerce.
In the event store associates cannot find the inventory to fulfill a pick-up order, for reasons such as items being out of stock or damaged, a store manager has the authority to reject that order. All the rejected BOPIS orders are then automatically sent to the BOPIS Rejected Queue
.
In this scenario, an email is automatically sent to the customer for alternative fulfillment options such as pickup from another store or home delivery. Retailers can configure these options based on their order fulfillment strategy.
Learn more about BOPIS Fulfillment
Pre-Orders placed on eCommerce are downloaded in HotWax Commerce alongside standard orders by the Import Orders
job.
When a customer places a Pre-Order, HotWax Commerce Integration App adds a pre-order tag on line items to specify that it is a Pre-Order item.
HotWax Commerce checks if an order has a pre-order tag applied and automatically moves it to the Pre-Order Parking
. This dedicated queue holds all pre-orders until their physical inventory is received. This ensures that the brokering process is not initiated for Pre-Orders that currently lack inventory but have inventory scheduled to arrive on a future date.
Once the pre-order inventory arrives and the promise date is reached, a dedicated Auto Releasing
Pre-Order job in HotWax Commerce automatically releases all orders from the Pre-Order Parking
to the Brokering Queue
.This enables inventory to be allocated to them for fulfillment.
In the event, retailers want control over releasing and fulfilling their Pre-Orders, they can leverage the HotWax Commerce Pre-Order Management App to manually release Pre-Orders from the Pre-Order Parking
to the Brokering Queue
.
Learn more about Pre-Orders Management
Similar to Pre-Orders, Backorders are processed in the same manner in HotWax Commerce. The distinction lies in the fact that orders with a backorder tag are automatically moved to the Backorder Parking
in HotWax Commerce. The releasing and brokering process for Backorders is the same as for Pre-Orders.
For Pre-Orders and Backorders, once they are moved in the Brokering Queue
, HotWax Commerce treats them as standard orders and allocates inventory for them by assigning the optimal fulfillment location.
For various reasons, customers may decide to cancel their online orders or request CSRs for cancellations. The cancellation can either be made on the eCommerce platform and then updated in HotWax Commerce or cancellations can be made in HotWax Commerce and then updated in the eCommerce platform.
Given that online orders are initiated by customers on eCommerce platforms, HotWax Commerce recommends that cancellations should ideally be made on the eCommerce platform as well.
Now, let's explore what happens when orders are canceled on the eCommerce platform:
A dedicated job Canceled Items
in HotWax Commerce downloads order cancellations from the eCommerce platform.
For orders in the "Created" status:
These are orders for which fulfillment has not yet commenced in HotWax Commerce. Once all canceled orders are downloaded from eCommerce, HotWax Commerce processes the file to verify the order IDs of the canceled orders and updates their status from "Created" to "Canceled".
For orders in the "Approved" status:
These are orders for which fulfillment has commenced in HotWax Commerce but they are not yet shipped. Once all canceled orders are downloaded, HotWax Commerce processes the file to verify the order IDs of the canceled orders and updates their status from “Approved” to “Canceled”.
If an approved order has been allocated to the store, HotWax Commerce also automatically rejects it in the Store Fulfillment App.
Orders canceled in HotWax Commerce:
Similar to order cancellations initiated on the eCommerce platform, in HotWax Commerce, orders can be canceled whether they are in the "Created" or "Approved" status, provided that the order has not yet been shipped. When an order is canceled, its status is updated from "Created" to "Canceled" or from "Approved" to "Canceled," depending on the current stage of the order.
When orders are downloaded from eCommerce into HotWax Commerce in a “Completed” or “Canceled” status, they are automatically placed in the General Ops Parking
.
So, which orders move to the General Ops Parking
?
Historical orders: These are orders that were already marked as “Completed” or “Canceled” in eCommerce before being downloaded into HotWax Commerce during the implementation phase. For example, a retailer might request that all orders from the last two months also be imported during implementation, even though they have already been fulfilled or canceled. Storing these historical orders separately allows for easy access in case of customer inquiries or returns, without them entering the fulfillment workflow.
Newly canceled orders: Any orders that are canceled in eCommerce before being downloaded into HotWax Commerce are automatically moved to the General Ops Parking
in a “Canceled” status, ensuring that they are not processed further.
Completed digital product orders: Orders for digital products, such as digital gift cards, are downloaded as “Completed” and are also placed to the General Ops Parking
since they require no further processing.
This ensures that only open and actionable orders are processed for fulfillment, while orders that no longer require any operational steps are kept for record-keeping.
In the previous sections, we discussed various stages of the order lifecycle, primarily focusing on online orders. HotWax Commerce also manages sales made through physical retail locations via POS systems. These in-store purchases, which involve real-time fulfillment, are also downloaded into HotWax Commerce and are automatically assigned a "Completed" status. This ensures that the inventory is updated instantly and provides a unified view of both online and in-store sales.
The comprehensive process outlined in the Order Lifecycle Business Process Model demonstrates how HotWax Commerce ensures that every order, regardless of its type, is efficiently managed and accurately fulfilled, providing retailers with the control and flexibility needed in an omnichannel environment.
Welcome to the Business Process Models (BPM) designed to provide insights into the inner workings of HotWax Commerce.
Order Lifecycle BPM: The model outlines the end-to-end flow of an order, from its creation to fulfillment. Learn about the different stages and transitions that an order undergoes as it progresses towards completion.
Store Fulfillment Lifecycle BPM: The model outlines the journey of fulfilling orders allocated to stores, and the status changes they undergo throughout the process. Learn about how orders are processed and fulfilled within the store network.
Warehouse Lifecycle BPM: The model outlines the journey of fulfilling orders allocated to warehouses, and the status changes they undergo throughout the process. Learn about how HotWax Commerce stays updated on orders fulfilled within the warehouse network.
Inventory Lifecycle BPM: The model outlines the process of synchronizing inventory data from various systems, calculating Available-to-Promise (ATP), and the changes inventory undergoes. Learn about the events that trigger increases or decreases in inventory.
Transfer Order Lifecycle BPM: The model outlines the process of inventory movement involving three types of transfer orders, from warehouses to stores, between stores, or from stores to warehouses.
Gift Card Orders Lifecycle BPM: The model outlines the lifecycle of both digital and physical gift card orders. Learn about the steps in creating, activating, and fulfilling gift card orders in HotWax Commerce.
Returns Lifecycle BPM:The model outlines the journey of web and in-store returns creation and completion, and the interactions between different systems involved in the return process. Learn about how web and in-store returns are managed in HotWax Commerce.
Exchanges Lifecycle BPM: The model outlines the journey of web and in-store exchange creation and completion, and the interactions between different systems involved in the exchange process. Learn about how web and in-store exchanges are processed in HotWax Commerce.
By understanding the different events that trigger actions and the resulting outcomes, you'll gain a comprehensive understanding of our operations. Stay tuned as we continue to update and expand upon these models to offer even greater insights into our operations.
Before we delve into the specifics of each business process model, let's familiarize ourselves with the notations used in our BPM flow charts.
The Store Fulfillment Lifecycle BPM illustrates how HotWax Commerce Store Fulfillment App enables store associates to Pick, Pack & Ship online orders received at stores.
HotWax Commerce, being as an Order Management System, finds the best location to fulfill an online order from. When approved orders are brokered and allocated to a store location, they are automatically reflected in HotWax Commerce Store Fulfillment App.
An order will have multiple fulfillments in case it has been split. Each fulfillment will have its independent lifecycle. For example, consider an order containing two items: one item is backordered while the other is in stock. Once the in-stock item is fulfilled, it will follow its lifecycle, and when the backordered item is fulfilled later, it will have its own separate lifecycle.
Items that have been successfully allocated to stores have fulfillment status "Reserved" in HotWax Commerce.
By default items are arranged in a "First In, First Out" sequence, ensuring that the ones ordered earlier are prioritized. Store managers can filter them based on the shipping method (such as same-day, next-day, or standard) or customer loyalty status.
For example, if store managers wish to prioritize items with tight SLAs, they can filter out those that have a same-day shipping method to initiate batch processing for them.
When store managers determine items they wish to fulfill first, they generate a picklist for them and subsequently, assign a picker so that they can start picking items.
Once the picklist has been generated, the fulfillment status is updated from "Reserved" to "Picking" in HotWax Commerce.
While pickers scan and pick items, HotWax Commerce rate shops to determine the most cost-effective shipping method offered by the carrier that also meets the SLA, then proceeds to book the shipment.
For example, when a customer opts for 2-day delivery, rate shopping compares shipping methods offered by carriers capable of meeting the specified timeframe. Let's say FedEx provides both Air and Ground Shipping options. In this scenario, HotWax Commerce evaluates these shipping methods, and if both Air and Ground Shipping can deliver the order item within two days, Ground Shipping is automatically booked, as it achieves the same delivery timeframe at a lower cost.
After booking the shipment, HotWax Commerce fetches advance shipping labels in bulk with tracking codes from the carrier, thereby reducing packing time.
It's crucial to note that shipping labels are valid only when an item requires a single package. In the event where an order has multiple items and the packing team uses more than one box for packing, the pre-generated shipping label will not be applicable, as it has been auto-generated for a single package.
When a picker is unable to find the item that is listed in their picklist, store managers have the authority to reject that specific item. In this scenario, its fulfillment status "Picking" is automatically removed in HotWax Commerce.
Learn more about Rejections and their reasons
Now, when the items have been picked and brought to the packing station, they can be quickly packed since the shipment has already been booked and shipping labels have been pre-generated.
If an order contains multiple items and one box isn’t sufficient to fit all of them, the packing team can add more boxes. In this scenario, the pre-generated shipping label will not serve the purpose, as it has been generated by default for a single package. While packing, the packing teams can regenerate shipping labels as needed.
Once items have been packed, the packing team places them at the designated location in the store from where the carrier will collect them.
The fulfillment status for packed items is updated from "Picking" to "Packed" in HotWax Commerce.
If the packing team discovers that they have mispacked an item, they have to unpack it. The fulfillment status is then updated from "Packed" to "Picking" in HotWax Commerce.
Once the item has been correctly repacked, the fulfillment status in HotWax Commerce is updated to "Packed" once again.
Finally, the fulfillment team hands over the packed items to the shipping carrier.
The Ship Packed Orders
Job in HotWax Commerce checks if packed items have tracking codes assigned and automatically ships them. Fulfillment teams can also manually ship items once the carrier collects them.
Once an item is shipped, its fulfillment status is updated from "Packed" to "Shipped" in HotWax Commerce.
In the event of a partial shipment, the fulfillment status of the shipped items will be updated to "Shipped", while the order itself will remain in the "Approved" status until all items have been shipped.
When all items of an order are "Shipped", the order status is updated from "Approved" to "Completed" in HotWax Commerce.
Inventory management business process helps omnichannel retailers accurately track inventory changes and ensure that product availability aligns with customer demand across all sales channels.
The inventory management business process involves transferring inventory between locations, receiving new stock, performing regular cycle counts, and addressing unexpected inventory variances.
Inventory transfers: Retailers move inventory between locations using transfer orders. This process helps balance stock levels across different stores and warehouses, optimizing product availability where it is needed most.
Receiving new inventory: Retailers receive new inventory at their locations with respect to purchase orders and transfer orders. This step is vital for maintaining stock levels and ensuring that products are available for both in-store and online sales.
Cycle counting: Periodic cycle counting at stores involves regularly performing inventory counting of products to ensure accuracy in stock records. This practice helps identify and correct discrepancies in inventory levels.
Handling inventory variances: On a day-to-day basis, retailers encounter inventory variances due to factors such as theft, damage, or administrative errors. Identifying and resolving these variances is crucial for maintaining accurate inventory records.
Accurate inventory management is essential for preventing overselling and underselling on eCommerce platforms, when store inventory is also used for online orders. Keeping up-to-date record of inventory changes ensures that the inventory available for online sale matches the actual stock in stores.
Both transfer orders and purchase orders are created in ERP systems, like NetSuite. Whenever any new transfer orders or purchase orders are created, they are imported into HotWax Commerce and automatically reflected in the Receiving App for in-store receiving.
When there is a need to replenish inventory at retail stores, merchandising teams request transfers and warehouse managers create a warehouse-to-store transfer order in their ERP system. As items in the transfer orders are fulfilled from the warehouse, HotWax Commerce imports them and automatically creates inbound shipments for the corresponding items.
When the store associates verify the inbound shipments and receive them, inventory counts for the corresponding items are automatically increased in HotWax Commerce.
Many ERP systems, including NetSuite, let you create multiple outbound shipments for a transfer order, and each shipment can have multiple packages. In NetSuite, an outbound shipment is called item fulfillment.
Inbound shipments are created in HotWax Commerce with respect to each outbound shipment in the ERP or WMS. Inbound shipments in HotWax Commerce must be received in one go; partial receipt of shipments is not possible. This means that when an inbound shipment comprises multiple packages, all packages must be received together.
If a package is missing or delayed, associates cannot skip that package and receive another. The entire inbound shipment must still be received in one go.
Many retailers want to track each package and receive them independently.
One way to track this in HotWax Commerce is by creating multiple inbound shipments with respect to each package in the outbound shipment of the ERP/WMS. However, NetSuite does not track which items are in which package for each item fulfillment, meaning it is not possible to identify which package contains which items. Therefore, it is not possible to create inbound shipments with respect to packages in outbound shipments in the case of NetSuite.
If an ERP/WMS other than NetSuite tracks which items are in which package, those details can be used to create an inbound shipment for each package in HotWax Commerce. This way, each package can be tracked and received independently.
In the case of NetSuite ERP, we recommend creating one package for each shipment/item fulfillment. In the event where retailers need to ship three packages, they should create three shipments/item fulfillments, with each shipment having one package. This way, retailers can track and receive each package independently. If tracking individual packages is not a priority for retailers, multiple packages can be received as one shipment in HotWax Commerce.
Learn more about transfer orders
Often, mispicks or unexpected variations occur. When store associates identify items that were not expected to arrive, they can easily add the specific SKU to the shipment directly from the app. This ensures accurate record-keeping and helps maintain correct inventory levels. For example, if a shipment is supposed to contain 50 units of SKU101 but the shipment arrives with an additional 10 units of the SKU77, this extra SKU with items can be recorded in the app to update the inventory accurately.
There can be scenarios where the items in a shipment are more or fewer than expected. In such cases, HotWax Commerce lets store associates adjust the quantities accordingly:
Over-receiving: If a shipment contains more items than ordered, store associates can receive the extra items, ensuring that inventory records reflect the actual stock on hand. For example, if a shipment was expected to contain 100 units but arrives with 110 units, the extra 10 units can be received and recorded.
Under-receiving: If a shipment contains fewer items than ordered, the app allows the receiving of only the items that arrived. For example, if a shipment was expected to contain 100 units but arrives with only 90 units, the app will record the received 90 units, and the missing 10 units can be addressed separately.
Learn more about additional scenarios supported in the Receiving App
In most scenarios, purchase orders are received at the warehouse location, and stock is transferred to stores using transfer orders. However, in cases where stores independently raise purchase orders without a warehouse intermediary, HotWax Commerce supports direct receiving at the store level.
Receiving in Parts: Purchase orders can be received in multiple parts or batches, allowing for flexibility in inventory receiving. For example, a purchase order for 200 units might arrive in two batches of 100 units each. Store associates can receive each batch as it arrives.
Inbound Shipments: Once a purchase order has been received, an inbound shipment is created in HotWax Commerce, and inventory counts for the received items are automatically updated.
All other features, such as receiving extra items or handling discrepancies, are also offered during the purchase order receiving process, just as they are with inbound shipments. The primary difference is that when you are receiving a purchase order instead of a shipment, you can receive it in parts, unlike shipments which must be received in one go.
Retailers that aim for 98% to 99% inventory accuracy, regularly perform cycle counts at their locations to maintain up to date inventory records. Cycle counting is a critical inventory management business process for these retailers and should be performed weekly or monthly, depending on the specific needs of the store.
Cycle counts are ideally conducted either before the store opens or after closing hours when inventory movement is minimal.
Operation teams schedule cycle counts at stores. Store associates scan and count the physical inventory of a product present in the store and upload the count in HotWax Commerce Cycle Count App. Upon uploading the counts, the operation teams review them. They may request recounts if any discrepancies are suspected or approve the counts if they're deemed accurate.
Upon approval, inventory adjustments are made in HotWax Commerce, reflecting the updated stock levels. This ensures that inventory records remain accurate and aligned with the actual stock on hand.
The app includes a feature that displays systemic inventory, enabling store associates to compare counted inventory with systemic inventory as a reference. While this feature serves as a useful reference point, it can be easily disabled to ensure unbiased and accurate counting.
Cycle counts should be performed after receiving the inventory reset from the ERP to ensure alignment with the most current inventory data.
Examples of inventory adjustments:
Increase in inventory: If a store counts 120 units of an item but the systemic inventory shows 100 units, the discrepancy is recorded, and the inventory is adjusted to reflect the 120 units.
Decrease in inventory: Conversely, if a store counts 80 units of an item but the systemic inventory shows 100 units, the inventory is adjusted to reflect the 80 units, ensuring accuracy.
Learn more about Cycle Count
By following these practices and using HotWax Commerce's intuitive apps, retailers can maintain high levels of inventory accuracy and streamline their inventory management processes.
The Warehouse Fulfillment Lifecycle BPM illustrates the process of fulfilling an order allocated to a warehouse, followed by synchronizing fulfillment updates to HotWax Commerce.
HotWax Commerce, being as an Order Management System, finds the best location to fulfill an online order from. In the event where an approved order is brokered and allocated to warehouse fulfillment location, HotWax Commerce synchronizes allocation details with the Warehouse Management System (WMS) or ERP systems like NetSuite. Once the order is fulfilled, HotWax Commerce then also synchronizes the fulfillment updates from the WMS or ERP systems.
Items that have been successfully allocated to warehouses have fulfillment status "Reserved" in HotWax Commerce. A scheduled job in HotWax Commerce then synchronizes the allocation details of orders with the ERP or WMS leveraged to fulfill warehouse orders.
Most of our customers use NetSuite ERP to fulfill orders from their warehouses. In this scenario, the order is already present in NetSuite with a status of "Pending Fulfillment" because HotWax Commerce synchronizes orders to NetSuite as soon as they are "Created" in HotWax Commerce.
For orders allocated to warehouses, a scheduled job in HotWax Commerce generates a feed containing order line items with their respective fulfillment locations and synchronizes it with NetSuite. Once NetSuite’s script reads and consumes this feed, the fulfillment location details is updated on the order item.
Learn more about order synchronization from HotWax Commerce to NetSuite
When the warehouse fulfillment team begins the fulfillment process for an order item, an item fulfillment record is automatically generated in NetSuite. Upon picking, packing, and shipping the item, multiple actions take place in NetSuite:
The item fulfillment record is marked as "Shipped".
The initial order status "Pending Fulfillment" is updated to "Pending Billing".
Finally, once the invoice is auto generated, the order status is updated from “Pending Billing” to “Billed”. This marks the completion of the order lifecycle in NetSuite.
In the event where a fulfillment team is unable to find an order item to be fulfilled, they reject that specific order. A scheduled job in HotWax Commerce imports the rejected order item feed from NetSuite. Subsequently, all rejected orders are moved to the rejected queue in HotWax Commerce so that they can be rebrokered and allocated to a new fulfillment location.
A scheduled job in HotWax Commerce synchronizes all the fulfilled order item details from NetSuite and multiple actions take place:
The fulfillment status of the order item is updated from “Reserved” to “Shipped”.
In the event of a partial shipment, the fulfillment status of the shipped items will be updated to "Shipped", while the order itself will remain in the "Approved" status until all items have been shipped.
When the fulfillment status of all items in an order is marked as “Shipped”, the order status is updated from "Approved" to "Completed" in HotWax Commerce.
Once the order is marked as “Completed” in HotWax Commerce, a scheduled job in HotWax Commerce sends the tracking details to eCommerce and marks the orders “Fulfilled”.
If a retailer uses another WMS or ERP to fulfill warehouse orders:
HotWax Commerce will synchronize allocation details with the ERP or WMS in place.
HotWax Commerce will also synchronize fulfillment updates from the ERP or WMS to mark order "Completed" in HotWax Commerce and "Fulfilled" in eCommerce.
The Gift Card Orders Lifecycle BPM illustrates the process of fulfilling digital as well as physical gift card orders placed by customers on eCommerce.
Gift cards are stored-value cards that carry a value determined at the time of the card's purchase. They are often given as gifts or rewards and are redeemable for products up to the value stored on the card.
To explain the Gift Card Orders Lifecycle BPM, we've opted NetSuite as the ERP system, Shopify for eCommerce, and HotWax Commerce for the OMS because most of our customers use this tech stack.
What is the role of NetSuite?
NetSuite serves as an ERP system and oftentimes also as an fulfillment solution in warehouse locations.
HotWax Commerce being an Order Management System downloads all orders, including gift cards orders from Shopify. Let’s first understand how are physical and digital gift cards different from each other:
Physical Gift Cards:
Physical gift cards are tangible cards that customers can buy online or in-store. These cards come with a unique serial number that customers can use to redeem the value stored in the card. Let’s see what happens when customers place online orders for physical gift cards:
Preparation and processing: These cards are assigned a unique serial number and predefined value loaded onto them when they are processed and prepared for shipping.
Activation: After processing, gift cards are activated in Shopify so that when customers receive their physical gift card, they can use the gift card serial number to redeem their purchase.
Digital Gift Cards:
Digital gift cards, also known as e-gift cards, are virtual equivalents of physical gift cards. Customers receive them via email or text message along with a unique serial number that they can use to redeem the value stored in the card.
Preparation and processing: Customers instantly receive digital cards upon purchase via email and therefore they are immediately fulfilled.
Activation: Digital gift cards are auto-activated in Shopify.
As discussed in the Order Lifecycle BPM, a dedicated Import Orders job in HotWax Commerce downloads new orders from eCommerce platforms like Shopify. HotWax Commerce downloads physical gift card orders from Shopify in the same way like any other order item.
The process of synchronizing physical gift card orders from HotWax Commerce to NetSuite remains straightforward like any other order item. A dedicated job in HotWax Commerce prepares and exports a feed of orders marked as "Created" to NetSuite.
NetSuite's SuiteScript then consumes this order data and generates orders in the "Pending Fulfillment" status.
HotWax Commerce ensures confirmation of successful order item synchronization with NetSuite. To achieve this, a dedicated job in HotWax Commerce downloads NetSuite's internal IDs, while another job downloads NetSuite's item line IDs. This process triggers multiple actions in HotWax Commerce and NetSuite:
A scheduled job in HotWax Commerce also creates customer deposit records in “Undeposited” status in NetSuite.
A scheduled job in HotWax Commerce updates the order status from "Created" to "Approved".
As discussed in Order Lifecycle BPM, only orders with approved status are eligible to be brokered in HotWax Commerce and orders without approval remain in the "Created" status.
Approved physical gift card order items are brokered in HotWax Commerce, upon allocation, HotWax Commerce begins syncing them to systems that are responsible for fulfillment of those gift card items.
Now that physical gift card orders have been approved, they are automatically sent to the Brokering Queue
which serves as a waiting area for orders awaiting processing. Just like regular order items in this queue, gift card items are also analyzed and picked in the brokering run and subsequently the order routing engine allocates them to optimal fulfillment location.
In the event where a gift card order is allocated to a warehouse fulfillment location, HotWax Commerce synchronizes allocation details to NetSuite.
When a gift card is allocated to stores for fulfillment, they automatically show up in the HotWax Commerce Fulfillment App
.
A dedicated job in HotWax Commerce synchronizes gift card items with their respective fulfillment locations to NetSuite.
NetSuite’s SuiteScript consumes this feed and updates fulfillment location on corresponding gift card orders.
When the warehouse fulfillment team begins the fulfillment of a gift card, an item fulfillment record is created in NetSuite. As soon as the item is picked, packed and shipped multiple actions take place in NetSuite:
The item fulfillment record is marked as “Shipped”.
The initial order status is updated from “Pending Fulfillment” to “Pending Billing”.
Finally, once the invoice is auto generated, the order status is updated from “Pending Billing” to “Billed”.
NetSuite’s script generates a feed containing gift card items, their assigned serial numbers, and values corresponding to the gift card orders.
A scheduled job in HotWax Commerce Integration Platform reads this feed, runs transformation and generates a JSON file with the relevant data required for the gift card activation, including, gift card items, their assigned serial numbers, corresponding values in NetSuite.
Finally, once the JSON is prepared, HotWax Commerce Integration Platform initiates the gift card activation process in the eCommerce platform. Because most of our customers are using Shopify as their eCommerce platform, in this scenario HotWax Commerce Integration Platform calls Shopify API to activate the gift card.
NetSuite's script exports item fulfillment records marked as "Shipped". A scheduled job in HotWax Commerce consumes this feed, and following actions take place:
The fulfillment status of the corresponding gift card order item in HotWax Commerce is updated to "Shipped".
The order status is automatically updated from "Approved" to "Completed" in HotWax Commerce.
Let's take a look at how physical gift card orders are fulfilled from stores.
When physical gift cards are allocated to a store, they automatically appear in the HotWax Commerce Fulfillment App
. The store’s fulfillment team uses the app to prepare these gift card orders for shipment.
Once a gift card item is successful picked, the fulfillment status changes to "Picked".
After packing, the status updates to "Packed".
As part of the process, store associates assign a unique serial number to each gift card and load the corresponding value onto it.
Finally, when the item is marked as shipped in the Fulfillment App
, the fulfillment status is then updated to "Shipped".
HotWax Commerce Fulfillment App
also enables store associates to activate gift cards directly. During fulfillment, when a unique serial number is applied and the value is loaded onto the card, HotWax Commerce runs a scheduled job to sync these codes with Shopify, where the gift cards are activated.
This activation step ensures that the gift card is fully functional and customers can use the unique serial number they received in their email to redeem the value stored in the gift card.
When all items of an order are marked “Shipped” in the Fulfillment App
, the order status is automatically updated from “Approved” to “Completed” in HotWax Commerce.
In HotWax Commerce, a scheduled job prepares and exports a feed containing gift card items marked as “Shipped”. NetSuite’s script consumes these records and multiple actions take place:
The item fulfillment record is created and marked as “Shipped”.
The initial order status is updated from “Pending Fulfillment” to “Pending Billing”.
Finally, once the invoice is auto generated, the order status is updated from “Pending Billing” to “Billed”.
This marks the completion of physical gift card orders in NetSuite.
Once a gift card order reaches the "Completed" status in HotWax Commerce, a scheduled job in HotWax Commerce sends the tracking details to Shopify and marks the gift card orders as “Fulfilled”.
This process remains consistent regardless of whether the gift card order fulfillment is performed in NetSuite or the Fulfillment App
.
This marks the completion of the physical gift card order lifecycle.
When walk-in customers purchase a physical gift card from the store, it is treated as a regular POS order in HotWax Commerce. HotWax Commerce syncs those orders with NetSuite in the POS sales synchronization to NetSuite.
When customers order a digital gift card on Shopify, after the order is created, Shopify immediately auto fulfills the order, assigns a serial number to digital gift card, loads the value to activate the gift card and consequently, when HotWax Commerce downloads that order from Shopify, it is automatically marked as “Completed”.
Digital gift cards are auto-activated and customers can directly redeem them by entering a unique serial number provided with the card.
Digital gift cards are already in the “Completed” status in HotWax Commerce. HotWax Commerce also synchronizes them with NetSuite so that customer deposits can be created against them and invoices can be generated.
A scheduled job in HotWax Commerce Integration Platform generates a feed gift card orders that are in “Completed” status and do not have a NetSuite order item line IDs. This helps make sure that only relevant orders are synchronized to NetSuite and regular orders that are “Completed” in HotWax Commerce are not synchronized again to NetSuite.
NetSuite’s script reads this feed and creates gift card orders in the “Pending Fulfillment” status.
A dedicated job in HotWax Commerce downloads NetSuite's internal IDs, while another job downloads NetSuite's item line IDs.
Once NetSuite order ID and item line IDs are synced to HotWax Commerce, a scheduled job in HotWax Commerce creates customer deposits for corresponding gift card orders in the “Undeposited” status in NetSuite.
By default non inventory items like digital gift cards are configured to be not eligible for fulfillment in NetSuite. Therefore digital gift cards are automatically fulfilled in NetSuite and their status updated from “Pending Fulfillment” to “Pending Billing”.
Subsequently, invoice is auto generated in NetSuite in the status “Paid”, and the customer deposit status is automatically updated from “Not Deposited” to “Fully Applied”.
This marks the completion of the digital gift card order lifecycle.
It's crucial to note that both physical and digital gift cards, once activated on Shopify or Shopify POS, can be redeemed by customers either online or in-store.
The Inventory Lifecycle BPM illustrates how HotWax Commerce calculates the online ATP of a product to maintain accurate sellable inventory on eCommerce platforms
The inventory count of a product is regularly updated due to various factors such as customer purchases made both in-store and online, as well as the receipt of new inventory. These transactions are recorded across different systems. In the Inventory Lifecycle BPM, we've provided detailed insights into how these operational inventory transactions impact the sellable inventory count, that is, Online ATP
of a product.
Before delving into the specifics of Inventory Lifecycle BPM, it's crucial to understand HotWax Commerce's role in maintaining inventory levels and calculating inventory availability. HotWax Commerce serves as the master of inventory availability. Now, what exactly does this mean, and how does HotWax Commerce compute it? Let's see:
In HotWax Commerce, you'll come across three inventory-related terms: Quantity On Hand (QOH), Available To Promise (ATP), and Online ATP
QOH: Represents the total physical quantity of a product available at stores or warehouses. HotWax Commerce receives daily inventory feeds from the ERP system and real-time inventory updates from the Point of Sale (POS) system to maintain up-to-date inventory data. Additionally, in cases where an ERP system isn't in use, HotWax Commerce also receives inventory feeds from Warehouse Management Systems (WMS) and POS systems.
ATP: Represents the physical quantity of a product at stores or warehouses after deducting the reserved inventory, that is, inventory that has been allocated to online orders from the QOH.
Online ATP: Represents the unified inventory pool of actual sellable inventory count that is published on eCommerce platforms and can be promised to customers.
To calculate Online ATP
, HotWax Commerce deducts inventory that is not available for sale from the ATP. This includes items such as safety stock, threshold quantities, orders in the brokering queue, and inventory from locations that are not participating in online selling.
Safety stock: Inventory set aside at each store specifically for walk-in customers.
Threshold: Inventory buffer established at a company level to prevent inventory discrepancies and overselling on eCommerce platforms.
Orders in the brokering queue: eCommerce orders awaiting inventory allocation.
Non participating facilities' ATP: Inventory at fulfillment locations that have online selling disabled in HotWax Commerce.
HotWax Commerce integrates with ERP, POS, and WMS, to create a unified pool of inventory. After synchronizing inventory totals from all systems, HotWax Commerce calculates the Online ATP
for eCommerce by subtracting any inventory set aside as safety stock, thresholds, orders in the brokering queue, and inventory at non participating facilities from the physical ATP. This makes HotWax Commerce the ultimate authority on inventory availability and prevents overcommitting on eCommerce platforms.
Now, let’s understand the breakdown of inventory transactions involved throughout the inventory lifecycle and their recording across various systems:
ERP systems often serve as the central hub for inventory management within a company. When retailers want to procure new inventory from vendors, they create purchase orders and in the event where they want to transfer inventory between their locations, they create transfer orders. Both purchase orders and transfer orders are created in the ERP systems like NetSuite.
When new purchase orders are received in warehouses, inventory receipts are directly recorded in the ERP system. A scheduled job in HotWax Commerce performs a daily synchronization of inventory data from the ERP.
In the event inventory for a product is reduced in warehouses for any reason, including incidents of damage, theft, and write-offs or increased due to receipts from returns, is also automatically included when HotWax Commerce performs the daily inventory reset from the ERP. This ensures that a product’s actual physical inventory is accurately reflected as QOH in HotWax Commerce.
When inventory is reset in HotWax Commerce, Online ATP
is recomputed for all products to ensure inventory availability is being calculated on the latest stock levels.
Most of our customers opt for a daily inventory sync, meaning HotWax Commerce performs inventory sync from the ERP once every day. Retailers seeking more real-time inventory updates from their ERP system have the flexibility to adjust the sync frequency.
Stores often face challenges when using ERP systems like NetSuite for inventory management, as these systems can be complex for the store environment and lead to resistance from store associates. HotWax Commerce offers a user-friendly Store Inventory Management Suite that includes an Inventory Receiving App
, which allows store associates to record inventory receipts, and a Cycle Counting App
, which facilitates periodic cycle counting and logs any variances that may occur.
HotWax Commerce synchronizes purchase orders and transfer orders created in the ERP system so that store associates can receive inventory arriving at their stores.
Many retailers receive purchase orders at their warehouse locations and then make distribution plans for sending inventory to other stores through transfer orders. However, for those retailers who exclusively operate through store locations, purchase orders are received directly at the stores.
When new purchase orders are created in the ERP, a scheduled job in HotWax Commerce imports them and they are automatically reflected at the destination store location for inventory receiving.
Auto increase QOH & ATP: When the inventory physically arrives at the store, store associates receive items using the Inventory Receiving App. As and when new items are received in the app, QOH and ATP for those products are automatically increased in HotWax Commerce.
When a product’s QOH and ATP is updated in HotWax Commerce, its Online ATP
is recomputed to ensure sellable inventory for eCommerce is calculated on the latest stock levels.
Learn more about purchase orders
When new transfer orders are created in the ERP, a scheduled job in HotWax Commerce reads them and automatically creates new inbound shipments at the destination store location for inventory receiving.
Auto increase QOH & ATP: When the shipment physically arrives at the store, store associates receive items using the Inventory Receiving App. As and when new items are received in the app, QOH and ATP for those products are automatically increased in HotWax Commerce.
When a product’s QOH and ATP is updated in HotWax Commerce, its Online ATP
is recomputed to ensure sellable inventory for eCommerce is calculated on the latest stock levels.
Transfer orders can be categorized into three types: store to store, warehouse to store, and store to warehouse. To explore each type, refer to the Transfer Order Lifecycle BPM. In the Inventory Lifecycle BPM, we have taken warehouse to store to explain the concept.
Learn more about transfer orders
Maintaining accurate inventory levels in a retail environment is challenging, especially for omnichannel retailers. Discrepancies between physical stock and system records can arise from factors such as theft, damage, or human error during transactions. To address these inconsistencies, stores conduct periodic cycle counts. This helps reconcile actual inventory with system records, ensuring accuracy across all platforms.
HotWax Commerce offers a Cycle Count App
designed to make the process simple and efficient for operations teams as well as store associates.
Operations teams can schedule cycle counts at specific stores, assigning them to the store associates for execution. Once assigned, store associates are notified and can begin the counting process using the app, scanning products and recording the quantities they find.
These periodic checks help clear inventory discrepancies in real time, so store records reflect accurate quantities.
After completing the cycle count, store associates submit their results, which are then reviewed by operations managers. Once the cycle counting results are approved, HotWax Commerce automatically adjusts the QOH and ATP.
It’s also crucial to account for these variances in the ERP and keep inventory up-to-date for stores. Before understanding how HotWax Commerce pushes inventory variances to the ERP, let's first see how inventory adjustments resulting from cycle counting are accounted for in HotWax Commerce:
Auto increase QOH & ATP: When results show that the physical count exceeds the systemic inventory, the QOH and ATP are increased.
Auto decrease QOH & ATP: When results show that the actual physical count is less than what the system shows, the QOH and ATP are reduced accordingly.
When inventory adjustments resulting from cycle counting are recorded in HotWax Commerce, the online ATP for the product is recalculated. This ensures that the sellable inventory available for eCommerce is accurately calculated based on the latest stock levels.
Inventory variances are also pushed to the ERP system. Let’s see how:
HotWax Commerce generates an inventory variance feed and synchronizes it with the ERP platform. Once this feed is consumed by the ERP, inventory levels are automatically updated.
For example, in case of NetSuite as the ERP, HotWax Commerce generates the inventory variance feed, after that HotWax Commerce integration platform transforms this feed and synchronizes it to NetSuite. Once NetSuite’s script consumes this feed, inventory levels of the affected products are automatically updated.
Learn more about inventory variance synchronization
Similarly, in the event where inventory is managed in another third party system, HotWax Commerce inventory variance feed can be used to update inventory in other ERP or WMS.
When new sales happen in physical retail locations, they are directly recorded in the POS system, which also tracks inventory reductions resulting from these transactions.
Auto decrease QOH & ATP: A scheduled job in HotWax Commerce synchronizes in-store sales recorded in the POS system and automatically reduces QOH and ATP for products in HotWax Commerce.
When a product’s QOH and ATP is updated in HotWax Commerce, its Online ATP
is recomputed to ensure sellable inventory for eCommerce is calculated on the latest stock levels.
Online orders are captured on the eCommerce platform, a scheduled job in HotWax Commerce downloads these orders so that inventory can be allocated for them.
How does HotWax Commerce reduce inventory promised to online sales?
Online orders are sent to the brokering queue for inventory allocation. As orders are waiting in the brokering queue, HotWax Commerce deducts promised inventory from the Online ATP
. The reason being, even if the fulfillment location is not yet decided, the captured order has been promised inventory and so it’s crucial to reduce the sellable inventory, that is, Online ATP
to prevent overselling on eCommerce platforms.
Auto decrease ATP: After the order is allocated to the most suitable store or warehouse, HotWax Commerce automatically reduces ATP at the chosen fulfillment location.
Once the online orders are fulfilled, HotWax Commerce also automatically reduces the QOH of products. HotWax Commerce already has fulfillment updates for the orders fulfilled using the Fulfillment App
. While, for orders fulfilled from warehouses, HotWax Commerce receives fulfillment updates from WMS or ERP and subsequently reduces the QOH for those products.
This step ensures that the count for physical available inventory is accurately reflected at that specific location.
In the event where a store cannot fulfill an online order allocated to them, HotWax Commerce checks the rejection reasons for the rejected orders and automatically updates ATP and Online ATP.
Learn more about rejection handling and its impact on inventory.
When rejections happen in a warehouse, inventory is automatically updated during the daily reset.
All the inventory transactions happening across various systems and scenarios discussed above primarily explains how HotWax Commerce, being the master of inventory availability, consistently recalculates and updates the Online ATP
.
Other factors that impact the Online ATP
calculation in HotWax Commerce include updating safety stock, adjusting product thresholds, and reconfiguring fulfillment locations participating in online selling.
For example, let's consider a scenario where the initial ATP for a product is 100. The safety stock for a product is set at 5 for four locations, the global threshold is 10, and one of the fulfillment locations, the Brooklyn store, is not participating in online selling and has an inventory count of 50 for that product.
In this scenario, the Online ATP
would be calculated as follows:
100 - (5 * 4) - 10 - 50 = 20
Now, if the safety stock is updated to 2 for four locations, the global threshold to 5, and the Brooklyn store with 50 inventory is made available for online selling, then HotWax Commerce will recalculate online ATP and the updated online ATP would be:
100 - (2 * 4) - 5 = 87
Whenever there's a change in a product's inventory, HotWax Commerce recalculates the online ATP in real-time. Now, let's see how this calculated online ATP is pushed to eCommerce platforms.
HotWax Commerce has a ready integration with Shopify eCommerce, here’s how sellable inventory is pushed to Shopify:
A scheduled job in HotWax Commerce checks the inventory records of HotWax Commerce's products and identifies products that have undergone inventory changes since the last inventory synchronization to Shopify.
HotWax Commerce then retrieves information from Shopify about products that have undergone changes in HotWax Commerce. The inventory counts for these products in Shopify are then compared with the inventory counts that HotWax Commerce. After comparing inventory changes, a scheduled job in HotWax Commerce records the difference and generates an inventory feed for the affected products. This feed is then pushed to Shopify, which reads it and updates to either add or deduct inventory based on the changes.
Learn more about Inventory Synchronization
Similarly, in the event where a retailer has another eCommerce platform, HotWax Commerce can generate a sellable inventory feed with additional development efforts. HotWax Commerce will then calculate sellable inventory, retrieve the products inventory counts from that eCommerce platform, and synchronize the latest inventory difference.
HotWax Commerce, being an Order Management System, forwards the responsibility of managing returns to specialized Return Management Systems. This means that most of the process in the return lifecycle will be handled by a third-party Return Management System (RMS).
Many of our customers use Loop as their RMS to process web returns. When it comes to in-store returns, some of our customers use Shopify POS, while others opt for the Loop POS App.
When Loop processes web returns and the Loop POS App handles in-store returns, HotWax Commerce simply downloads returns for reconciliation purposes. While, when Shopify POS is used to process in-store returns, HotWax Commerce is responsible for syncing returns to ERP systems like NetSuite to ensure accurate ledger posting.
Now, let's delve into how the lifecycle of web and in-store returns is managed with these systems in play:
The Transfer Orders Lifecycle BPM illustrates the internal movement of inventory in omnichannel landscape facilitated by warehouses to stores, between stores, or stores to warehouses transfer orders.
Transfer orders are created in the ERP system, they serve various purposes, including:
Warehouse to Store: When there is a need to replenish inventory at retail stores from the central warehouse or distribution center, transfer orders can be initiated to move the required items from the warehouse to the stores.
Between Stores: In cases where one store has excess inventory that another store requires, transfer orders can be used to transfer inventory directly between stores, optimizing stock levels across the retail network.
Store to Warehouse: Sometimes, stores might need to return excess or unsold inventory back to the warehouse for consolidation or redistribution. Transfer orders facilitate this movement from the stores back to the warehouse.
To explain the Transfer Order Lifecycle BPM, we've opted NetSuite as the ERP system, Shopify for eCommerce, and HotWax Commerce for the OMS because most of our customers use this tech stack.
Warehouse managers create transfer orders in NetSuite, specifying the source location as warehouse and the destination location as store. These transfer orders are automatically assigned a “Pending Fulfillment” status.
Fulfillment teams start preparing the transfer order items for dispatch from the warehouse. Once they pick, pack and ship the transfer order items, item fulfillment records are automatically generated in NetSuite with the status “Shipped”.
As soon as the item fulfillment records are marked as “Shipped”, inventory counts for the items shipped are reduced in NetSuite and the transfer order status is updated from “Pending Fulfillment” to “Pending Receipt”.
A scheduled script in NetSuite exports the feed of item fulfillment records in “Shipped” status. A scheduled job in HotWax Commerce reads this feed and creates inbound shipments at the destination facility.
HotWax Commerce provides an Inventory Receiving App
for store associates to easily receive any new inventory arriving at stores.
Inbound shipments that have been created are automatically reflected in the Inventory Receiving App
, allowing store associates to receive them in store.
For example, if a transfer order specifies the Central Warehouse as the source and the Brooklyn Store as the destination, the items from this transfer order will be automatically reflected in the Inventory Receiving App
at the Brooklyn Store.
Store associates scan the transfer order items and start receiving inventory. Upon receiving shipments, item receipt records are generated in HotWax Commerce and subsequently, the inventory counts for the items received in the store are increased.
It’s crucial to note that inventory counts for the items shipped from the warehouse are reduced in HotWax Commerce on performing daily inventory sync with NetSuite.
A scheduled job in HotWax Commerce generates an item receipt feed containing the latest transfer order items that have been received in the store so that this update can be synchronized to NetSuite.
A scheduled SuiteScript in NetSuite reads the item receipt feed and two actions take place:
Item receipt records are created in NetSuite and subsequently, inventory count at the store for the corresponding items are increased.
The transfer order status is updated from “Pending Receipt” to “Received”.
Similar to warehouse to store transfer orders, store to store transfer orders are also created in NetSuite, specifying the source location as store and the destination location also as a store. These transfer orders are automatically assigned a “Pending Fulfillment” status.
A scheduled SuiteScript in NetSuite exports transfer orders that have a Pending Fulfillment status and the source location as the store. After that, a scheduled job in HotWax Commerce reads the transfer orders feed and downloads transfer orders in HotWax Commerce with a default “Created” status.
These transfer orders are synchronized to HotWax Commerce so that they can be fulfilled from stores. HotWax Commerce provides a dedicated Store Fulfillment App
for store associates to fulfill transfer order items from stores.
A scheduled job in HotWax Commerce identifies transfer orders that have a “Created” status and automatically marks them “Approved”.
What happens when transfer orders are approved?
Upon approval, HotWax Commerce reduces the Available to Promise inventory for the transfer order items that will be fulfilled from the store.
Approved transfer orders are automatically reflected in the Store Fulfillment App
.
Store associates pick the transfer order items they want to fulfill from their store. After picking the items, store associates pack them and proceed to create fulfillments for each item.
Once the fulfillment has been created, store associates fetch shipping labels from the carrier and the corresponding tracking codes.
After all items are shipped, transfer orders status is automatically updated from “Approved” to “Completed” in HotWax Commerce.
Once transfer order items are fulfilled from the store, the QOH for the corresponding items is automatically reduced in HotWax Commerce.
A scheduled job in HotWax Commerce generates a fulfilled transfer order items feed containing the latest transfer order items that have been fulfilled from the store so that this update can be synchronized to NetSuite.
A scheduled SuiteScript in NetSuite reads the fulfilled transfer order items feed and two actions take place:
Item fulfilled records are created in NetSuite and marked “Shipped”. Subsequently, inventory count at the store for the corresponding items are reduced.
The transfer order status is updated from “Pending Fulfillment” to “Pending Receipt”. This step concludes the store to warehouse transfer orders flow.
As discussed in warehouse to store
transfer orders lifecycle, for store to store transfer orders, the receiving process in stores remains consistent. A scheduled SuiteScript in NetSuite exports the feed of item fulfillment records in “Shipped” status. After that, a scheduled job in HotWax Commerce reads this feed and creates inbound shipments at the destination facility.
Inbound shipments that have been created are automatically reflected in the Inventory Receiving App
, allowing store associates to receive them in store.
For example, if a transfer order specifies the Times Square Store as the source and the Brooklyn Store as the destination, the items from this transfer order will be automatically reflected in the Inventory Receiving App
at the Brooklyn Store.
Store associates scan the transfer order items and start receiving inventory. Upon receiving shipments, item receipt records are generated in HotWax Commerce and subsequently, the inventory counts for the items received in the store are increased.
A scheduled job in HotWax Commerce generates an item receipt feed containing the latest transfer order items that have been received in the store so that this update can be synchronized to NetSuite.
A scheduled SuiteScript in NetSuite reads the item receipt feed and two actions take place:
Item receipt records are created in NetSuite and subsequently, inventory count at the store for the corresponding items are increased.
The transfer order status is updated from “Pending Receipt” to “Received”. This step concludes the store to store transfer orders flow.
Even when store managers want to transfer inventory to warehouses, the transfer order will be created in NetSuite, specifying the source location as a store and the destination location as a warehouse.
Once created, these transfer orders are automatically assigned a “Pending Fulfillment” status.
Similar to the store to store
transfer order lifecycle we discussed above, (2) importing transfer orders into HotWax Commerce, approving them, fulfilling them using the Store Fulfillment App
and (3) ultimately synchronizing item fulfillment records with NetSuite remains the same.
Finally, warehouse managers manually initiate the receiving process in NetSuite for the store transferred inventory upon its arrival at the warehouse.
After the receiving process is completed, the transfer order status is automatically updated from “Pending Receipt” to “Received”, indicating that all transfer order items have been successfully received at the warehouse. Additionally, the inventory count for the newly received inventory is updated in NetSuite.
It’s crucial to note that inventory counts for the items received in the warehouse are increased in HotWax Commerce on performing daily inventory sync with NetSuite.
The In-Store Returns Lifecycle BPM illustrates how in-store returns are managed between RMS, POS, ERP, and HotWax Commerce.
Customers who live near a brick-and-mortar store or those who prefer to get instant refunds opt for returning their purchases directly in-store.
To explain the POS Returns lifecycle, we've taken Loop POS App as the RMS, Shopify POS as POS, and NetSuite as the ERP system, while HotWax Commerce serves as the OMS.
Customers visit their preferred store to return their purchases. Upon arrival, they provide order details to the store associate, who then looks up the order using either the order number or the customer's name.
Store associates use the Loop POS App to search the customer's order. Once identified, they start processing the order return.
Store associates choose the item being returned, designate the restock location to facilitate inventory replenishment, and also specify the reason for the return. Upon completion of these steps, the order is ready to be returned.
Store associates complete the return process by initiating the refunds to customers. Once refunds are processed from the Loop POS App, the return status is marked as "Processed".
Once the return process is completed in the Loop POS Returns App, multiple actions take place in Shopify and NetSuite, let’s understand them in detail:
Loop creates a return under the order in Shopify POS.
For a return under order, Loop marks the returned item as “Returned”, updates the payment status as “Refunded” and restocks the returned inventory in Shopify POS.
Loop creates a cash refund record in NetSuite and also adds the associated cash sale ID in the memo so that the original order can be easily looked up. When cash refund records are created, inventory is automatically restocked in NetSuite.
It's crucial to understand that in-store returns are instantaneous because the return request and receipt happen simultaneously. This is the reason why these in-store returns are initially processed and completed in Loop and subsequently sent to other systems like Shopify POS, NetSuite, and HotWax Commerce, unlike web returns.
A scheduled job in HotWax Commerce downloads the return data from Shopify POS. These returns are downloaded in “Completed” status and the payment in “Refunded” status in HotWax Commerce.
HotWax Commerce also restocks the returned inventory because of the visibility into the specific location where the inventory is received.
These POS returns are not synchronized to NetSuite again because this part has already been handled by Loop.
To ensure data integrity, HotWax Commerce provides an auditing tool OReSA that automatically compares in-store return totals of the POS system with the ERP.
In case any inconsistencies are found, the returns audit dashboard provides a gap analysis report that highlights the monetary gaps in both systems.
The Web Return Lifecycle BPM illustrates how returns are managed between RMS, eCommerce, ERP, and HotWax Commerce.
HotWax Commerce simply downloads completed returns for auditing purposes, ensuring reconciliation of returns in both Shopify and NetSuite. To explain the return lifecycle, we've taken Loop as the RMS, Shopify as eCommerce platform, and NetSuite as the ERP system, while HotWax Commerce serves as the OMS.
Loop lets customers directly initiate returns against their web orders. When customers complete initiating the return process, a Return Merchandise Authorization (RMA) is created in Loop in the "Open" status.
Loop updates the order details in Shopify by creating a return under order, reflecting that a return has been requested by the customer.
Many retailers use third-party integration apps like Novamodule to synchronize returns from Loop to NetSuite.
Loop generates the RMA in the "Pending Receipt" status in NetSuite using a third-party integration app. This gives the warehouse teams a heads-up that an order item will be coming back.
Customers print the shipping label provided by loop and prepare the return package to ship their return items back to the retailer so that they can receive a refund.
When the return package reaches the warehouse, the warehouse teams initiate receiving of the return item against the RMA and the following actions take place:
Item receipt records are created in NetSuite against the RMA, and the returned inventory is restocked.
The status of RMA is updated from "Pending Receipt" to "Pending Refund".
Now that the customer has shipped the return item back, its item receipt has been processed against the RMA in NetSuite, refunds should be processed to the customer.
Item receipt records created in NetSuite are synchronized to Loop using a third-party integration app. Consequently, return receipt records are generated in Loop. This means that refunds can now be initiated to customers.
Processing refunds to the customers marks the completion of returns. During this process, multiple actions take place in Loop, NetSuite, and Shopify. Let’s understand them:
Return receipt records trigger the creation of refund records in Loop. Once refund records are created, Loop creates a credit memo in “Open” status using a third party integration app. Creating credit memo marks the completion of RMA in NetSuite, with its status updating from “Pending Refund” to “Refunded”.
Loop also creates a customer refund record to reflect that the customer has received the refund against the credit memo and then the status of the credit memo is updated from “Open” to “Fully Applied”.
The creation of refund records in Loop also marks the completion of RMA in Loop, with its status updating from "Open" to "Closed".
Return receipt records in Loop triggers the refund process on Shopify and refunds are then issued to the customer. This marks the completion of return in Shopify, with the creation of payment records in "Refunded" status and the return under order marked as “Returned”.
Refunds issued from Shopify are received by the customer. This concludes the refund process.
When the return process is completed on Shopify, a scheduled job in HotWax Commerce downloads the return data. These returns are downloaded in "Completed" status and the payment in "Refunded" status in HotWax Commerce.
HotWax Commerce does not automatically increase the inventory count of the returned item after downloading the return order from Shopify. This is because HotWax Commerce lacks visibility into the specific location where the inventory is received. Instead, inventory is updated only when new item receipt records are synchronized to HotWax Commerce from NetSuite.
A scheduled job in HotWax Commerce performs a daily sync of inventory data from NetSuite, this ensures that inventory updates from any new receipts that are received in warehouses from returns or purchase orders are accurately synchronized in HotWax Commerce.
HotWax Commerce also performs regular inventory synchronization to Shopify by comparing the inventory totals between HotWax Commerce and Shopify. Following the comparison, HotWax Commerce updates Shopify with any differences in inventory numbers, ensuring that any changes in inventory in HotWax Commerce, such as increases resulting from returns, are accurately reflected on Shopify.
To ensure data integrity, HotWax Commerce provides an auditing tool OReSA that automatically compares returns totals of the eCommerce platform with the ERP.
In case any inconsistencies are found, the returns audit dashboard provides a gap analysis report that highlights the monetary gaps in both systems.
Learn how to configure BOPIS when setting up HotWax Commerce
BOPIS, or Buy Online, Pick Up In-Store, is a feature offered by HotWax Commerce that increases conversions on PDP by showing real-time inventory availability to customers for immediate pickup at their preferred stores so that they pick up their orders on the same day.
This document gives a sequential walkthrough of how to enable your facilities for BOPIS and ensure that the pickup facilities are available on Shopify PDP.
To facilitate BOPIS operations, retailers need to set up and configure facilities for store pickups where customers can collect their purchases by ordering online.
Log in to Launchpad with your user credential.
Navigate to the Facilities
App in the Launchpad.
The default tab that opens when you access the Facilities
app is the Facilities
tab with a list of all existing facilities.
Click on the +
button at the bottom right corner to create a new facility.
Select the type of facility, whether the facility is a Warehouse or Store.
Add the name of the facility, internal IDs, and external IDs of the facility on the Create Facility
page.
Click on the Create Facility
button.
Add the facility address, city, and the Zip code.
Select country and state from the dropdown.
Add the contact number and further add latitude and longitude
details (to ensure the exact geolocation of the facility).
HotWax Commerce App uses "storeLookup" API to display the distance of stores from a customer's current location. The API relies on the latitude and longitude coordinates of facilities to determine their proximity to the customer. Make sure that latitude and longitudes are added for both new and existing facilities.
Facilities can have products from multiple brands which are configured as product stores in HotWax Commerce. If the retailer has multiple brands, retailers have to specify that the facility is containing the product of which brand. This function enables users to link/delink a facility to one or multiple product stores.
Click the Add
function under Product Store.
Select the store/s from the dropdown menu
Click the Save
icon to save the changes.
The Facility groups are used to define the scope and functionality of the facility for omnichannel order management. If a retailer wants to configure the fulfillment settings of facilities in bulk, they can add facilities to the group. Pickup
is a default facilities group type to ensure that facilities are available to the customer on Shopify PDP as a pickup option. Only facilities that are added to this group will be available to the customer on Shopify PDP. Turning the toggle on
when creating facilities or from the facility details page for allow pickup
adds the facility to this facility group.
Facilities have the option to choose whether or not to participate in selling their inventory online. If a facility is capable of fulfilling orders and wants its inventory to be sold online, it has to be included in the Online facility
group. Retailers can also turn the toggle on from 'sell online card' to add the facility to Online facility
group. Similarly, if the facility supports HotWax Commerce Fulfillment app, then turn the toggle on of Use Native Fulfillment App
or add the facility to OMS Fulfillment group
.
For a product to be available for pickup at Shopify PDP, it must have inventory at the retail store (facility). HotWax Commerce offers automated and manual bulk Inventory upload through CSV. Additionally HotWax commerce gets inventory feed from ERP, WMS, or POS systems, to update the inventory in its system. The external system places the order on the SFTP location HotWax commerce processes these files and updates the inventory in its system.
When the inventory is received, a product’s QOH and ATP is updated in HotWax Commerce. HotWax Commerce calculates Physical Available to Promise (ATP) of a facility by considering various factors, such as safety stock, threshold, reserved quantity, and orders in the queue.
ATP = QOH - (Reserved quantities + Safety stock + Threshold + Orders in brokering queue)
For each store that allows BOPIS, HotWax Commerce uses the checkInventory API to check the available to promise (ATP) inventory for the desired product. Display all the facilities with non-zero inventory numbers on the product detail page (PDP) for customers to select and place a BOPIS order.
Retailers can configure Shopify BOPIS scripts from the Shopify Shop page in HotWax Commerce, enabling PDP changes on Shopify. Retailers who install the HotWax Commerce Integration App gain access to PDP customization functionality as a default feature. By installing the default JavaScript (JS) and Cascading Style Sheets (CSS) scripts from the Shopify Shop page into HotWax Commerce, retailers can effortlessly start offering BOPIS to their customers.
Login to HotWax Commerce.
Open the Hamburger menu and navigate to Shopify Shop Menu.
Click the Shop Id and go down to the Shopify Script section.
Click Add button and select BOPIS JS from the dropdown menu and press Add
.
Ensure the BOPIS JS
file is added successfully and is reflecting with its version.
Go to the Shopify Tag id column and click Add function.
Ensure the Shopify Tag id is added and reflected.
Now again click the Add
button and select the BOPIS CSS
from dropdown menu
Ensure that the BOPIS CSS
is also added below. (Since the BOPIS CSS is already associated with BOPIS JS, adding Shopify Tag for BOPIS css is not required.)
This ensures seamless integration and reflects the modifications on the Shopify storefront instantly. Users can verify the pickup button at Shopify PDP and confirm that both the scripts are added successfully.
Once you have set up a facility for BOPIS, you can verify the BOPIS availability through the following steps:
Login to Launchpad.
Navigate to the Facilities
App in the Launchpad.
Click on the Group
and select Pickup
group type.
Click on Facilities
to view all the facilities which support Pickup.
Note down any facility.
Login to HotWax Commerce and navigate to the Find Inventory
page using the hamburger menu.
Use Facility
filter to view all the products and its inventory available on the selected facility. (Ensure that the selected facility is the same as selected from the Facility app, associated with the pickup group type.).
Search for the selected product on Shopify and navigate to the product display page.
Ensure the Pickup
button is available for the product. Click on Pickup
button to view the facilities available for pickup.
HotWax Commerce is a cloud-based Omnichannel Order Management System that provides retailers with the best return on their inventory by facilitating omnichannel solutions such as Same-Day Buy Online Pick-Up In Store (BOPIS), Buy Online Return In Store, Ship From Store, and Pre-Orders to increase conversion rates and profitability. Here’s how HotWax Commerce fits into your tech ecosystem:
HotWax Commerce integrates with multiple systems present in your tech stack, like eCommerce, ERP, WMS, and POS, creates a single sellable inventory count, syncs inventory in real time across sales channels, and efficiently routes online orders to the best fulfillment locations.
Order and inventory management are at the heart of omnichannel retailing. Let’s see an overview of how HotWax Commerce supports these operations:
HotWax Commerce downloads orders and returns from sales channels like eCommerce and POS.
eCommerce Orders
HotWax Commerce manages key processes such as downloading online orders, routing them to optimal fulfillment locations, and ensuring timely fulfillment.
HotWax Commerce handles various types of eCommerce orders, including standard orders, BOPIS (Buy Online, Pick Up In Store) orders, Pre-Orders, and Backorders. Here’s a brief explanation of each type:
Standard orders: Standard shipping orders placed online for home delivery. Orders that satisfy the criteria set for auto-approval are approved. The order routing engine then brokers these orders and allocates them to optimal fulfillment locations based on the predefined routing configurations. For orders allocated to a store, HotWax Commerce provides a dedicated Fulfillment App
to help stores easily fulfill online orders. Learn more about the store fulfillment lifecycle.
For orders allocated to a warehouse, HotWax Commerce syncs the fulfillment details with the WMS or ERP systems like NetSuite when leveraged for warehouse fulfillment. Learn more about the warehouse fulfillment lifecycle.
BOPIS orders: Orders placed online with the intention of picking up the items in-store. HotWax Commerce Integration App
adds a custom tag on order line items to specify that it is a BOPIS order. HotWax Commerce then checks the custom tag on orders. If the tag is present on an order, it is automatically sent to the customer's preferred pickup location without brokering since the fulfillment location is pre-selected for BOPIS orders by customers. For BOPIS orders, HotWax Commerce provides a dedicated BOPIS Fulfillment App
to help stores quickly prepare the order for customer pick-up.
Pre-Orders: Orders placed for new launch products that are not yet available for delivery and will be available on a future promised date.
Backorders: Orders placed for products that are currently out-of-stock, with delivery scheduled for a future promised date. HotWax Commerce Integration App
adds a custom tag on order line items to specify that it is a Pre-Order or a Backorder. HotWax Commerce then checks the custom tag on orders. If the tag is present on an order, a dedicated parking holds all pre-orders/backorders until their physical inventory is received, and HotWax Commerce automatically releases and brokers them once the inventory arrives just like standard orders. For Pre-Orders and Backorders, HotWax Commerce also provides a dedicated Pre-Order Management App to help merchandisers manually release them for fulfillment based on their order fulfillment strategies. Learn more about the order lifecycle in HotWax Commerce
HotWax also syncs eCommerce order data to ERP systems, ensuring accurate accounting and posting.
Once orders are fulfilled, HotWax Commerce synchronizes fulfillment updates with the eCommerce platform.
POS Sales
HotWax Commerce downloads POS sales to provide a unified view of both online and in-store sales. HotWax also syncs this data to ERP systems, ensuring accurate accounting and posting.
Returns
Both eCommerce and POS returns are downloaded in HotWax Commerce for reconciliation purposes. HotWax also syncs this data to ERP systems, ensuring accurate accounting and posting.
Learn more about the return lifecycle in HotWax Commerce
HotWax Commerce becomes the ultimate authority on inventory availability and prevents overselling and underselling on eCommerce platforms. Let’s see how:
The inventory count of a product is regularly updated due to various factors such as customer purchases made both in-store and online, as well as the receipt of new inventory. These transactions are recorded across different systems.
HotWax Commerce integrates with ERP, POS, and WMS, to create a unified pool of inventory. HotWax Commerce receives daily inventory feeds from the ERP system and real-time inventory updates from the POS system to maintain up-to-date inventory data. Additionally, in cases where an ERP system isn't in use, HotWax Commerce also receives inventory feeds from WMS and POS systems.
After synchronizing inventory totals from all systems, HotWax Commerce calculates the Online ATP for eCommerce by deducting any inventory set aside as safety stock, thresholds, orders in the brokering queue, and inventory at non-participating facilities from the physical ATP.
Learn more about the inventory lifecycle in HotWax Commerce
HotWax Commerce provides a dedicated Receiving App
to receive transfer orders and purchase orders at store locations. Any new inventory received in stores is automatically included in the sellable inventory in HotWax Commerce, helping to prevent underselling and ensuring that eCommerce platforms always reflect up-to-date inventory counts.
HotWax Commerce provides a dedicated Cycle Counting App
to record inventory adjustments in stores. Store associates periodically perform cycle counting at stores for inventory reconciliation. The app lets store associates record variances due to discrepancies between the system's inventory records and the actual physical counts.
While cycle counting in stores follows a periodic schedule and requires approval, stores often encounter sudden inventory discrepancies in various scenarios. The app also lets them record unexpected inventory variances, for example, if store associates identify a damaged unit at their location, they can directly record a variance of the damaged inventory.
Inventory variances recorded in stores are automatically accounted for in the sellable inventory in HotWax Commerce, helping to prevent overselling and ensuring eCommerce platforms always reflect up-to-date inventory counts.
HotWax Commerce BI Reports & Analytics (BIRA) delivers detailed reports and dashboards on products, orders, and inventory. Each dashboard combines multiple reports to provide a comprehensive overview, enabling key personnel to understand and manage all business aspects effectively. These tools offer clear insights into performance metrics, trends, and resource allocation, facilitating data-driven decision-making.
HotWax Commerce Omnichannel Retail Sales Auditing tool (OReSA) automatically reconciles sales, returns, as well as appeasements from OMS, eCommerce, POS, and bookkeeping systems like ERP. This helps financial teams close financial periods within minutes instead of the typical hours or days.
OReSA also offers automated sales audit reports that provide insights into discovered data discrepancies so that finance teams can quickly rectify them.
Order fulfillment is a critical business process for retailers, orchestrating the journey from order allocation to making it ready for shipping, ensuring timely delivery to the customers' doorstep.
Approved orders are eligible for brokering in HotWax Commerce. The order routing engine brokers orders and looks for the best fulfillment location to allocate them.
Once an order item is allocated, a fulfillment request is sent to the assigned fulfillment location. If this location happens to be a warehouse, the allocation details are synced to the WMS or ERP systems, such as NetSuite, used for warehouse fulfillment.
If an order item is allocated to a store, they are automatically reflected in the HotWax Commerce Store Fulfillment App.
HotWax Commerce provides a Store Fulfillment Suite comprising user-friendly apps such as the Store Fulfillment App and Picking App to quickly and accurately fulfill orders. These apps are specifically designed to facilitate easy adoption and minimize the learning curve for store personnel.
This scenario usually happens when a customer requests expedited delivery. Because the order routing engine selects a batch of orders based on the configurable routing rules set up by retailers, there's a possibility that this specific order item may be processed later. In such cases, CSRs have the option to bypass the scheduled brokering cycle and manually release items to a fulfillment location, usually the nearest store to the customer's location. HotWax Commerce then sends the fulfillment request to the chosen store location, and the order item is reflected in the Store Fulfillment App, accelerating the order fulfillment process.
Following automatic brokering or manual release to a store, CSRs also have an option to include specific handling instructions for order items. In scenarios where expedited shipping is requested by the customer, CSRs can write a message in the handling instructions. These details are then visible in the Store Fulfillment App, enabling store associates to prioritize the fulfillment of these orders in-store accordingly.
The Store Fulfillment App displays orders in a "First In, First Out" (FIFO) sequence, prioritizing orders based on their placement. The app also offers the flexibility to filter orders according to various criterias, including shipping method (such as same-day, next-day, or standard) and customer loyalty status. This feature enables store managers to efficiently manage and fulfill orders based on preferred criteria, ensuring alignment with brand's fulfillment strategies.
For example, some customers may have a loyalty status of "Gold Member," indicating that they are part of a premium loyalty program with exclusive benefits such as priority order processing, or dedicated customer support. By filtering orders based on loyalty status, Store Fulfillment App can help prioritize orders from Gold Members, ensuring exceptional service and fostering customer loyalty.
Once store managers determine the batch of orders they wish to fulfill first, they generate a picklist for them. Subsequently, they assign a picker to the picklist so that they can start picking the order items listed in their assigned picklist and begin the fulfillment process.
Store managers can also prioritize picking of an individual order item by directly initiating picking and assigning a picker for it.
HotWax Commerce provides two options using which pickers can start the picking process:
Direct Printing: Picklists can be directly printed from the Store Fulfillment App.
QR Code Generation: Store managers can generate QR codes for picklists from the Store Fulfillment App. The assigned picker can then scan this QR code using their mobile device and view their picklist directly in the Picking App.
HotWax Commerce recommends using the Picking mobile app for efficient order fulfillment because it allows pickers to:
Sort order items in the picklist based on preferred criteria, including Product Name, Bin ID, or Location Sequence ID.
Scan barcodes for accurate item verification.
View enlarged product images for easier identification.
These features maximize picker efficiency and minimize errors during the picking process.
Learn more about Picking App
Store managers can replace an assigned picker with a new one for various reasons, such as unexpected absences or scheduling conflicts. This ensures that operations continue smoothly and customer orders are fulfilled promptly through quick reassignment.
As pickers pick order items, HotWax Commerce rate shops to determine the most cost-effective shipping method offered by the carrier that also meets the SLA. Once the shipping method has been selected, HotWax Commerce fetches shipping labels in bulk with tracking codes from the carrier in advance to reduce the packing time.
Learn more about Picking
When a picker is unable to find the order item listed in their picklist in the store, store managers have the authority to reject the fulfillment of that specific order item.
In case a picker finds difficulty looking up an order item, they can confirm if further search efforts are needed by checking the total available inventory directly from the app.
When a store is temporarily unavailable for fulfillment due to reasons such as stock unavailability, technical issues, operational challenges, or safety concerns, store managers can reject all pending order items. This helps prevent potential delays or issues with unfulfilled orders until the store is able to resume normal operations.
HotWax Commerce Store Fulfillment App offers out of the box rejection reasons for store associates to choose from when they cannot fulfill items in an order and also enables store managers to introduce new ones.
They can also configure whether any rejection, predefined or new, should impact inventory levels directly from the app. This flexibility allows managers to decide if specific rejections will impact the store’s stock levels or simply record the rejection without impacting inventory.
Let’s see how the out of the box rejection reasons offered by HotWax Commerce impact inventory:
Learn more about Rejections
The order routing engine reroutes order items rejected at a store to the next best available fulfillment locations, ensuring minimal disruption to the fulfillment process and maintaining timely delivery for customers.
Once the order items have been picked, they can be quickly packed as HotWax Commerce books the shipment in advance with the shipping carrier and pre-generates shipping labels.
Store associates can add additional boxes or select the most suitable size for order items, directly from the app.
In the event the packaging team discovers a mispacked order, the app offers an option to unpack it and then begin repacking.
Store associates have the flexibility to search for and prioritize specific orders for packing.
Learn more about Packing
Customers often request CSRs to cancel their orders. If the order hasn't been shipped yet, it can be canceled. If HotWax Commerce has already allocated the order to a store, store associates may have already picked or packed the order. In this scenario, the order is canceled in HotWax Commerce and automatically rejected from the Store Fulfillment App, preventing any further actions on the canceled order.
After the order items are packed, the carrier collects them from the store. This marks completion of the fulfillment process in HotWax Commerce.
Once an order has been Completed in HotWax Commerce, this data is also synced with the eCommerce platform along with the tracking number. This ensures customers stay informed about their order progress.
Store managers have the flexibility to set maximum order limits for their store based on their store’s fulfillment capacity. For example, if a store operates with limited staff, balancing in-store customer service and online order fulfillment can be challenging. In such scenarios, managers can predefine the number of orders they intend to fulfill in a day. The following day, the store becomes eligible for fulfillment again.
In specific circumstances, store managers may opt to stop order fulfillment entirely. For example, during a store-wide inventory audit or promotional events in-store, it may be impractical to fulfill orders from that store location. In such cases, managers have the ability to directly disable order fulfillment by setting the order limit to 0.
In specific circumstances, store managers may need to temporarily remove their store's inventory from online selling. This could be due to various reasons such as low stock levels, prioritizing in-store customer sales, or other internal considerations. In such cases, store managers have the option to directly disable online selling for their store. This flexibility allows managers to focus on fulfilling in-store demand while conserving inventory. Additionally, they can easily re-enable online selling in the future when the situation aligns with their business needs.
Learn more about additional scenarios supported in Store Fulfillment App
The In-Store Returns Lifecycle BPM illustrates how in-store returns are managed between POS as RMS, ERP, and HotWax Commerce.
Some of our Shopify customers use the Shopify POS App to accept in-store returns. The app lets them check all of their store's orders in a single view, whether they were placed online or in person, review its details, and perform a refund or exchange.
Customers visit their preferred store to return their purchases. Upon arrival, they provide order details to the store associate.
Store associates search the customer's order ID and once identified, they start processing the in-store return.
Store associates choose the item being returned, designate the restock location to facilitate inventory replenishment, and also specify the reason for the return. Finally, store associates complete the return process by processing the refunds to customers.
Once the refund process is completed in the Shopify POS, multiple actions take place:
Returned inventory is restocked at the designated store location.
A return under the order is created in Shopify POS with the returned item marked as “Returned”, and the payment status is updated as “Refunded”.
It's crucial to understand that in-store returns are instantaneous because the return request and receipt happen simultaneously, unlike web returns. Once these in-store returns are completed in Shopify POS, they are synchronized to HotWax Commerce and subsequently to NetSuite.
A scheduled job in HotWax Commerce downloads the return data from Shopify POS. These returns are downloaded in “Completed” status and the payment in “Refunded” status in HotWax Commerce.
HotWax Commerce also restocks the returned inventory because of the visibility into the specific location where the inventory is received.
A scheduled job in HotWax Commerce synchronizes POS returns to NetSuite. This triggers multiple actions:
A cash refund record is generated against the original cash sale.
The returned inventory is automatically restocked.
The link to the cash refund record is added to the original cash sale.
Rejection Reason | ATP Inventory Change | QOH Inventory Change | Selling Impact |
---|---|---|---|
NOT IN STOCK
Set to 0
Set to 0
Prevents new orders until product is back in stock
MISMATCH
Decrease by rejected quantity
Decrease by rejected quantity
Product still available but not in specific size or color
DAMAGE
Decrease by rejected quantity
Unchanged
Product remains in stock but cannot be sold due to damage
WORN DISPLAY
Decrease by rejected quantity
Unchanged
Product remains in stock but cannot be sold due to being worn
Learn how to configure Store Fulfillment when setting up HotWax Commerce
HotWax Commerce's intelligent Order Routing and efficient Store Fulfillment feature optimizes order processing for retailers. They can prioritize fulfillment based on proximity and inventory availability to ensure swift, cost-effective same-day, next-day delivery from the nearest retail fulfillment centers.
This document gives a sequential walkthrough of how to enable your facilities for store fulfillment and ensure orders are brokered according to your preference
To facilitate Store Fulfillment operations retailers need to set up and configure facilities for store pickups where retailers can route orders for fulfillment
Login to Launchpad with your user credential
Navigate to the Facilities App
in the Launchpad.
The default tab that opens when you access the Facilities App
is the facilitie
s tab with a list of all existing facilities
Click on the +
button at the bottom right corner to create a new facility.
Select the type of facility, whether the facility is a Warehouse or Store.
Add the name of the facility, internal IDs, and external IDs of the facility on the Create Facility
page
Click on the Create Facility
button.
Add the facility address, city, and the Zip code. Make sure to add the correct Zip codes as HotWax Commerce uses Zip Codes to identify the stores in proximity to the customers.
Select country and state from the dropdown.
Add the contact number and further add latitude and longitude details (Contact number and address are necessary for shipping label generation)
Facilities can have products from multiple brands which are configured as product stores in HotWax Commerce. If the retailer has multiple brands, retailers have to specify that the facility contains the product of which brand. This function enables users to link/delink a facility to one or multiple product stores.
Click the Add
function under Product Store.
Select the store/s from the dropdown menu
Click the Save
icon to save the changes.
Facilities have the option to choose whether or not to participate in selling their inventory online. If a facility is capable of fulfilling orders and wants its inventory to be sold online, it has to be included in the Facility Group with the CHANNEL_FAC_GRP
subtype. Retailers can create different facility groups for different sales channels under the CHANNEL_FAC_GRP
subtype and add the respective facilities to that group.
Retailers need to turn the toggle on for the ‘Generate Shipping Label' in the facility details
page to ensure that the shipping label is generated from the store.
For a product to be available for store fulfillment, it must have inventory at the retail store (facility). HotWax Commerce offers automated and manual bulk inventory upload through CSV. HotWax Commerce gets inventory feed from ERP, WMS, or POS systems or manual uploads, to update the inventory in its system. The external system places the order on the SFTP location, HotWax Commerce processes these files, and updates the inventory in its system.
When the inventory is received, a product’s QOH and Online ATP are updated in HotWax Commerce. HotWax Commerce calculates the Physical Available to Promise (ATP) of a facility by considering various factors, such as safety stock, threshold, reserved quantity, and orders in the queue.
Online ATP = QOH - (Reserved quantities + Safety stock + Threshold + Orders in brokering queue + Exluded facilities' ATP)
Once you have set a facility for store fulfillment, you can verify that the orders are being brokered to that facility through the following steps:
Import the orders from Shopify through Import Orders
job
Navigate to the Facilities App
in the Launchpad.
Turn off the fulfillment from the Warehouse for the time being.
Wait for the brokering run, or go to the Order Routing
App, click on the brokering run, and click on the Run now
for brokering.
Login to HotWax Commerce and navigate to the sales order
page using the hamburger menu.
Verify that the orders are brokered to the store based on the preferred inventory rules.
Navigate to the Fulfillment App
, and select the facility where the order is brokered, from the settings page. Verify that the order is visible in the Fulfillment App
.
Fulfill the order to verify that the shipping label is being generated from the store. If not, check our troubleshooting doc for the Shipping Label error.
The In-Store Exchanges Lifecycle BPM illustrates how in-store exchanges are managed between RMS, eCommerce, ERP, and HotWax Commerce.
The process of returning an item mirrors the steps previously discussed in the In-Store Returns Lifecycle Business Process Model. More specifically, customers visiting the store location, store associates looking up the customer’s order in the Loop POS App, and initiating the return process remains the same.
Often, customers opt to purchase alternative products by returning an item, especially when there are size-related concerns. In this scenario, while processing in-store return, store associates add new items that are being purchased as replacements for the returned item and complete the return process.
Once new exchange items are added, store associates initiate refunds against the returned item and then the return status is marked as "Processed".
Once the return process is completed in the Loop POS Returns App, multiple actions take place in Shopify and NetSuite, let’s understand them in detail:
Loop creates a return under the order in Shopify POS and marks the returned item as “Returned”, restocks the returned inventory and updates the payment status as “Refunded”. In case of exchanges, Loop also creates a new “Fulfilled” order in Shopify POS.
Loop creates a cash refund record in NetSuite and also adds the associated cash sale ID in the memo so that the original order can be easily looked up. When cash refund records are created, returned inventory is automatically restocked in NetSuite.
This process again mirrors the steps discussed in the In-Store Return Lifecycle. The only additional step performed is creating a new exchange order.
As discussed earlier, for exchanges, Loop creates a new exchange order in Shopify POS. Exchange orders that are created in Shopify POS are downloaded in HotWax Commerce just like regular POS sales. A scheduled job downloads exchanges from Shopify POS in the "Completed” status and also reduces the inventory for the item sold as part of the exchange process.
A scheduled job in HotWax Commerce synchronizes exchanges in the form of new POS sales to NetSuite and cash sale records are created in the “Deposited” status. Once cash sale records are created, the inventory for the exchange item is automatically reduced in NetSuite.
Exchanges involve customers purchasing a new item as a replacement for a returned one. Our customers use Loop as their RMS to process the returned item and create a new exchange order on eCommerce platform.
For both web returns and in-store exchanges, HotWax Commerce being an OMS takes the responsibility of downloading and processing new exchange orders from eCommerce as well as synchronizing them with ERP systems such as NetSuite.
We are currently in the process of designing the workflow for in-store exchanges when Shopify POS is used. In the meantime, let's delve into how the lifecycle of web and in-store exchanges is managed with these systems in play:
Welcome to the Business Processes guide, designed to provide a detailed understanding of our key operational workflows, including order fulfillment, inventory management, and order routing.
This section delves into key stages involved in order fulfillment, including order allocation, picking, packing, and shipping. Learn about how each step is designed to maintain efficiency and accuracy in fulfilling customer orders.
Here, we outline the strategies and practices used to manage inventory across the network. Learn about how inventory levels are monitored, updated, and synchronized with real-time data to ensure optimal stock availability and accurate fulfillment.
Order Routing (Upcoming): This part of the guide explains the mechanisms behind routing orders to the most optimal fulfillment locations. Learn about how HotWax Commerce utilizes intelligent logics and real-time data to route orders to warehouses or stores, ensuring timely and cost-effective deliveries.
By exploring these processes, you will gain valuable insights into how HotWax Commerce supports streamlined omnichannel journeys, enabling you to deliver a cohesive and consistent customer experience across all sales channels.
The Web Exchange Lifecycle BPM illustrates how exchanges are processed between RMS, eCommerce, ERP, and HotWax Commerce.
In the context of returns, an exchange refers to a transaction in which a customer returns a purchased item and, instead of receiving a refund or store credit, opts to swap the returned item for a different product. This lets the customer exchange the initially purchased item for another one.
To explain the exchange lifecycle, we've taken Loop as the RMS, Shopify as the eCommerce platform, and NetSuite as the ERP system, while HotWax Commerce serves as the OMS.
When customers complete their exchange process, a Return Merchandise Authorization (RMA) is created in Loop in the “Open” status against the return item.
Loop updates the order details in Shopify by creating a return under order, reflecting that a return has been requested by the customer.
Loop also generates an RMA in the “Pending Receipt” status in NetSuite using a third-party integration app like Novamodule. This gives the warehouse teams a heads-up that an order item will be coming back.
To receive the requested new order item in exchange, customers must return the original order.
Customers print the shipping label provided by Loop and prepare the return package to ship their items back to the retailer so that they can receive the new item they requested.
When the return package reaches the warehouse, the warehouse teams initiate receiving of the return item against the RMA and the following actions take place:
Item receipt records are created in NetSuite against the RMA, and the returned inventory is restocked.
The status of RMA is updated from “Pending Receipt” to “Pending Refund”.
Item receipt records created in NetSuite are synchronized to Loop using a third-party integration app. Consequently, return receipt records are generated in Loop.
When item receipt records are generated in Loop, multiple actions take place in NetSuite and Shopify, let’s understand them in detail:
Creating refund records is essential to mark the completion of the return process and closing RMA in NetSuite.
Return receipt records trigger the creation of refund records in Loop.
Customers receive their refund amount when they return an item. In the event where they are returning an item in exchange for another, refunds will not be issued to them because that amount is used as payment for the exchanged product.
Once refund records are created, Loop creates a credit memo in "Open" status of $0 in NetSuite using a third party integration app. This marks the completion of RMA in NetSuite, with its status updating from “Pending Refund” to “Refunded”. Loop also creates a customer refund record against the credit memo and then the status of the credit memo is updated from “Open” to “Fully Applied”.
The creation of refund records in Loop also marks the completion of RMA in Loop, with its status updating from “Open” to “Closed”.
Return receipt records in Loop trigger marking the original order as “Returned” in Shopify and creating a new order in the “Unfulfilled” status. Loop also applies a 100% Loop discount on the new order and links the original order in the extended fields.
Exchange orders are basically new web orders that require fulfillment, so HotWax Commerce processes them similar to how regular web orders are fulfilled.
A dedicated Import Orders
job in HotWax Commerce downloads web orders from Shopify. These downloaded orders are automatically assigned a "Created" status in HotWax Commerce, including exchange orders.
An important aspect to note is that for an exchange order, Loop saves details of the original order in the extended fields in Shopify. Therefore, when downloading exchange orders from Shopify, HotWax Commerce also retrieves these details of the original order and saves them in the communication event.
HotWax Commerce synchronizes all web orders to NetSuite in the “Created” status and similarly, exchange orders in the “Created” status are also synchronized to NetSuite. When NetSuite imports them, they are automatically assigned a “Pending Fulfillment” status and the details of the original order are saved in the memo.
When an item from the original order 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 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 new item receipt records are synchronized to HotWax Commerce from NetSuite.
A scheduled job in HotWax Commerce performs a daily sync of inventory data from NetSuite which means new receipts from returns are automatically synchronized to HotWax Commerce. HotWax Commerce also performs regular inventory synchronization to Shopify which means that any changes in inventory in HotWax Commerce, such as increases resulting from returns, are also synchronized to Shopify.
Upon downloading an exchange order from Shopify, HotWax Commerce automatically reduces inventory from the online sellable count once the exchange item enters the brokering queue. Subsequently, it decreases the quantity on hand once the exchange item is fulfilled, just like HotWax Commerce updates inventory for other web orders.
HotWax Commerce also sends fulfillment updates to NetSuite which updates inventory levels in NetSuite, and provides regular inventory updates to Shopify which also keeps inventory up-to-date in Shopify.
The are used to define the scope and functionality of the facility for omnichannel order management.
Fulfillment capacity is defined on the basis of the number of orders a facility will be able to fulfill in a day. It is set up considering various resources such as facility size, staff, and footfall. Users can set up the maximum order limit that can be allocated to that facility through the Online Order Fulfillment
card. Read our to learn how to configure online fulfillment for a capacity.
To include a facility in brokering, it must be added to a facility group with the Brokering Group subtype. This ensures that when the facility group is included in the brokering run, all facilities in that group are available for brokering. For guidance on setting up and configuring brokering rules according to your preferences, refer to our .
In HotWax Commerce, the ability to add shipping carriers to facilities is essential for order fulfillment. Once a shipment gateway is set, adding carriers to facilities enables rate shopping and shipping label generation specifically for those carriers associated with the selected facility. This feature enhances workflow efficiency by allowing the HotWax Commerce Store Fulfillment App to intelligently select the most cost-effective shipping carrier for each order. Read our to learn how to add shipping carriers to facilities.
For each store that allows online fulfillment, HotWax Commerce calculates the Online ATP that is available to sell and synchronize the inventory with Shopify through
As discussed in , Loop lets customers directly initiate returns against their web orders. If customers want to buy another product by returning an item, the Loop customer portal lets them submit an exchange request.
Learn more about how
Learn more about
Inventory synchronization process remains the same for the returned item that we discussed in the .
Web exchanges with Loop
In-store exchanges with Loop