Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Discover how HotWax Commerce integrates with Retail Pro Prism POS to enhance your retail operations.
In today's fast-paced retail world, making things easy for both shoppers and store owners is key. HotWax Commerce, an Omnichannel Order Management System, integrates with Retail Pro Prism POS to make sure retailers have the tools they need for effective omnichannel retailing strategies. This integration makes it possible for stores to offer a seamless shopping experience, blending in-store and online activities effortlessly.
HotWax Commerce is a cloud-based OMS that empowers retailers to sell more and deliver fast. It helps retailers to implement omnichannel strategies like Same-Day Buy Online Pick Up In Store (BOPIS), Buy Online Return In Store (BORIS), Ship From Store, and Pre-Orders.
Retail Pro Prism POS is a retail management software that offers intuitive POS functionalities including pricing and promotion management, replenishment and inventory management, customer and employee management, and store operations.
A key aspect of this integration is the strategic decision to utilize Retail Pro Prism as an intermediary for data transfer. Leveraging Retail Pro Prism’s pre-built connections, we optimize the integration process and ensure a seamless flow of information.
Our client had a statutory requirement to submit sales and tax data to the government system. Retail Pro Prism doesn't inherently come with a pre-existing integration with government systems. However, our client, for whom we implemented HotWax Commerce, already had a pre-built connection with the government system, allowing transfer of daily sales and tax collected data to the government. In a strategic move, we decided not to duplicate efforts and, instead, use Retail Pro Prism's pre-built integrations to push data to government systems. So we push online orders to Retail pro from HotWax Commerce.
Typically, online orders that are fulfilled in HotWax Commerce are pushed directly to the ERP system for accounting purposes. However, our client already had a pre-built integration in place with their ERP system. Recognizing this established connection, our approach was to avoid redundant efforts and refrain from building a new integration with the ERP system. So this is one more reason that in our integration approach we push online orders to Retail Pro and Retail Pro sends this data to the ERP system for accounting purposes along with sending it to the government systems for tax reporting.
Similarly, the usual practice involves daily synchronization of inventory data from ERP systems to HotWax Commerce. In our approach, Retail Pro serves as the intermediary system, utilizing its pre-existing integration with ERP. All inventory received against purchase orders is managed within Retail Pro, making it the go-to source for inventory information. Consequently, the daily inventory file is synchronized from Retail Pro.
In this document we will delve into the intricacies of integrating HotWax Commerce with Retail Pro Prism and understand the data flow between these systems.
Discover how HotWax Commerce initiates invoicing for completed orders from a single location through a streamlined technical workflow.
To initiate the process of invoicing completed orders from a single location, HotWax Commerce employs a streamlined technical workflow.
A configurable job in HotWax Commerce is designed to generate a feed of all completed orders, placing it in a designated SFTP location. Orders are included in the completed orders feed only when all items within them are fulfilled. Retailers have the flexibility to adjust the frequency of this job based on their specific needs.
Following the feed preparation, a sophisticated job in the HotWax Commerce integration platform takes the generated feed and transforms it into a JSON format acceptable by Retail Pro's "Order to Invoice" API. This transformed file is then deposited into a separate folder within the SFTP location. This transformation process is orchestrated to occur a few minutes after the initial job that prepares the feed of completed orders.
Subsequently, another job in the HotWax Commerce integration platform retrieves the newly transformed file and invokes the "Order to Invoice" API for each order. This crucial step triggers the creation of invoices in Retail Pro for each corresponding order. The responses from these API calls are logged within the HotWax Commerce integration platform and stored in the SFTP location. This API invocation is timed to occur a few minutes after the completion of the transformation job.
A subsequent job is dedicated to sending a report of any failures encountered during the "Order to Invoice" API calls. This report is dispatched via email, providing prompt notification of any issues. The job responsible for sending this report is scheduled to run five minutes after the API calls have been made.
Importantly, the invoicing of order items in Retail Pro is not just a financial transaction; it also ensures that inventory is accurately deducted at the specific location where the order is fulfilled. This synchronization step guarantees that inventory levels in both HotWax Commerce and Retail Pro remain aligned, contributing to a comprehensive and coherent order management system.
This straightforward technical workflow ensures the smooth and efficient processing of invoicing completed orders from a single location in HotWax Commerce, providing both clarity and precision in the order synchronization process.
Discover how HotWax Commerce manages invoicing from multiple locations and inventory transfers, ensuring accurate records in Retail Pro.
In the context of invoicing from multiple locations, all items are invoiced from the location where the last item is fulfilled, aligning with Retail Pro's constraint of allowing invoicing from a single location. The technical workflow for synchronizing orders closely mirrors the process of invoicing from a single location.
The order invoicing workflow initiates with the creation of a feed of completed orders, which includes only those orders where all items have been fulfilled. The subsequent transformation of this feed into JSON format, tailored for the Order to Invoice API, ensures that all items are invoiced from the location of the last item fulfillment. The steps, including feed preparation, transformation, API calls for invoicing, failure reporting, and inventory synchronization, closely parallel the technical workflow for invoicing from a single location.
The inventory transfer workflow is a pivotal process aimed at addressing challenges introduced by single-location invoicing, effectively mitigating inventory discrepancies in Retail Pro. This specialized solution ensures accurate inventory records by strategically transferring inventory between fulfillment locations.
Initiating the process, a dedicated job in the HotWax Commerce Integration Platform reads the "Complete Order" feed from the SFTP location and seamlessly transforms it into a structured JSON file tailored to meet the specifications of Retail Pro's "Manual Slip" API.
Following the transformation, the JSON file contains detailed inventory records specifying the quantity to be moved within the Retail Pro system. The subsequent step involves the calling of the "Manual Slip" API in Retail Pro, creating inventory transfer records and ensuring the necessary inventory adjustments within Retail Pro's system to effectively resolve discrepancies introduced during the invoicing process.
To maintain transparency and expedite issue resolution, the HotWax Commerce Integration Platform generates a detailed report of any failures encountered during the "Manual Slip" API calls. This proactive reporting mechanism ensures swift identification and resolution of any issues, enhancing the overall efficiency of the inventory transfer workflow.
Learn how HC handles Send Sale Orders through feed generation, data transformation, & Retail Pro's Manual Slip API, ensuring accurate inventory transfers.
Initiated by a specific job in HotWax Commerce, a feed is generated exclusively for completed orders originating from the POS channel. This distinct feed differs from the one created for eCommerce orders.
A subsequent job in the HotWax Commerce Integration Platform takes the data from the completed orders feed and transforms it into a structured JSON format. This format is aligned with the requirements of the Manual Slip API in Retail Pro.
The transformed JSON file, containing details about the completed Send Sale orders, is put in a designated SFTP location. Following this, the Manual Slip API in Retail Pro is invoked for each order, effectively creating inventory transfer records.The responses generated by the Manual Slip API calls are systematically stored in the SFTP location. This step ensures that any feedback or acknowledgment from Retail Pro is captured for further analysis or auditing.
Learn how HC manages returns from Retail Pro POS, ensuring accurate inventory updates, while also reflecting in-store returns swiftly and accurately.
In the event of returns at a retail location managed by Retail Pro POS, a seamless process is established to ensure accurate inventory updates in HotWax Commerce. When a return occurs, Retail Pro triggers the "Update Inventory" API of HotWax Commerce. This API call promptly increases the inventory count for the specific product in the location where the return has taken place. This instantaneous adjustment guarantees that HotWax Commerce maintains precise and up-to-date inventory records, offering a swift and accurate reflection of in-store returns.
Discover how Retail Pro Prism POS synchronizes inventory with HotWax Commerce for accurate records.
In the daily operations of Retail Pro, numerous transactions occur, ranging from receiving purchase orders and processing returns to completing physical store sales. Each of these transactions directly impacts the inventory numbers in Retail Pro. To address this dynamic environment, we've implemented two approaches to synchronize inventory data from Retail Pro to HotWax Commerce.
The first approach involves real-time adjustments for immediate accuracy. Whenever a sale happens in physical stores, inventory numbers are dynamically adjusted in HotWax Commerce specifically for the location where the sale occurred. This real-time adjustment not only ensures the accuracy of inventory records in HotWax Commerce but also facilitates the precise transfer of inventory information downstream, particularly to eCommerce platforms.
The second approach introduces a daily early morning synchronization process. Scheduled to occur daily, this synchronization process resets inventory numbers in HotWax Commerce, aligning them with the current state in Retail Pro. This comprehensive synchronization covers the entire inventory and accommodates transactions such as receiving purchase orders, transfer orders, and returns.
The combination of these two approaches is crucial for maintaining consistency. While real-time adjustments handle immediate changes in inventory occurring due to in-store sales, the daily synchronization addresses a broader scope, ensuring that inventory numbers in both Retail Pro and HotWax Commerce remain in sync. This comprehensive strategy prevents discrepancies and provides a robust solution for managing inventory synchronization effectively
When a sale takes place in Retail POS, the smooth integration between HotWax Commerce and Retail Pro Prism POS comes into action. This integration is streamlined through the real-time triggering of the "UpdateInventory" API in HotWax Commerce by Retail Pro Prism POS. This swift mechanism promptly reduces the inventory in HotWax Commerce for the specific product and location where the sale occurred. This instantaneous adjustment ensures that HotWax Commerce keeps its inventory records accurate and current, providing a fast and precise overview of in-store sales. The real-time nature of this adjustment guarantees that HotWax Commerce maintains up-to-the-moment inventory records, delivering a responsive and precise reflection of in-store sales.
To address a wider array of inventory transactions, such as purchase orders, transfers, and returns, this approach employs the "Daily Reset Inventory" method. Executed each morning, this scheduled synchronization comprehensively updates the entire inventory in HotWax Commerce. Acting as a corrective measure, it aligns inventory numbers in both Retail Pro Prism POS and HotWax Commerce for consistency.
In a usual setup, ERP systems share a file at frequent time intervals comprising all active products with their inventory numbers on SFTP location and a job in HotWax Commerce reads the file and updates inventory in HotWax Commerce.
Discover the technical workflow for syncing inventory in HotWax Commerce with Retail Pro.
RetailPro sends the Reset Inventory File, including both active and inactive products, to HotWax Commerce, landing in a designated SFTP folder. Every midnight at 1:00 am, a job of HotWax Commerce integration platform compiles a list of active products, defining items available for online sales. This file is securely stored on the HC Integration Platform server. Half an hour later, the HC Integration Platform processes both files, creating a new Reset Inventory File that exclusively focuses on active products, substantially reducing its size from 300 MB to 80-100 KB and puts it in another folder on SFTP location . Another job in HotWax Commerce reads this new file from this new SFTP folder and updates the inventory records, ensuring they match RetailPro's data accurately.
While HotWax Commerce's integration platform is actively engaged in filtering the inventory file and resetting inventory in HotWax Commerce, it simultaneously creates an "inventory variance file." This file is a result of identifying items in HotWax Commerce that have been shipped but not appropriately marked in Retail Pro, leading to a discrepancy in inventory counts. A job in the HotWax Commerce Integration Platform executes a SQL query, specifically targeting items shipped in HotWax Commerce but not acknowledged in Retail Pro and creates inventory variance file . The resulting inventory variance file is then placed in the designated SFTP location.
Another job in HotWax Commerce reads this inventory variance file, strategically scheduled to run an hour after the job updating inventory records based on the Reset Inventory file from Retail Pro. This timing ensures that the variance is recorded accurately by correcting the inventory numbers in HotWax Commerce that were initially influenced by the erroneous data sent from Retail Pro.
Discover the order synchronization process between HotWax Commerce and Retail Pro, ensuring seamless order fulfillment and accurate invoicing.
Orders initiated in eCommerce are initially downloaded into HotWax Commerce. Once approved, these orders are brokered to designated fulfillment locations, specifically stores in this context. Store associates handle the fulfillment process, marking orders as completed using HotWax Commerce's Store Fulfillment suite. The order status is then synchronized with the eCommerce platform, providing customers with timely updates on their orders.
For invoicing, completed orders from HotWax Commerce need to be pushed to Retail Pro. However, Retail Pro has a constraint: it only allows invoicing of an order from a single location. To adhere to this limitation, partial fulfillment orders are not sent to Retail Pro for invoicing. Only orders that are entirely fulfilled are forwarded to Retail Pro.
In scenarios where an order is fulfilled entirely from a single location, the completed order details are pushed to Retail Pro. Retail Pro then takes charge of invoicing and subsequently updates government systems for tax reporting and ERP for accounting purposes.
The challenge arises for orders that involve fulfillment from multiple locations. In this unique approach, when the last item in an order is fulfilled in HotWax Commerce, all the order items are sent for invoicing to Retail Pro. The unique aspect of this approach lies in invoicing all items from the location where the last item is fulfilled, working around Retail Pro's limitation.
However, this method introduces a challenge: it results in an inventory discrepancy in Retail Pro because not all items are actually fulfilled from the location where the last item is picked. To address this, a specialized solution is implemented. After invoicing from the last fulfillment location, inventory adjustments are made to transfer inventory from all the locations where the remaining items were actually fulfilled to the location of the last fulfillment. This corrective measure ensures accurate inventory records in Retail Pro.
By adopting this tailored approach, the Order Synchronization process effectively navigates the complexities of multiple-location fulfillment, providing a solution that ensures both accurate invoicing in Retail Pro and precise inventory management across various locations in HotWax Commerce.
This guide shows you how to integrate HotWax Commerce with Iterable, a popular marketing automation platform for Shopify. This integration automates email notifications to improve your customers' experience.
HotWax Commerce handles order processing and fulfillment, while Iterable takes care of sending personalized email notifications. You can configure email flows within HotWax Commerce to trigger based on specific events, like an order being ready for pickup.
Follow the steps below to integrate with Iterable and start sending automated pickup notifications:
To share any kind of information between these systems, they need to make a connection with each with the help of private access keys. An API key acts like a secure password, allowing authorized communication between HotWax Commerce and Iterable. Follow these steps to create one:
Log in to Iterable with your existing credentials.
Navigate to Your Project: Remember, API keys are project-specific. Ensure you're in the correct project for your HotWax connection.
Find API Keys: Look for the Integrations
section in the main menu and hover over it. Select API Keys
from the dropdown.
Create a New Key: Click on New API Key
when the page opens.
Give it a Name: Choose a descriptive name to easily identify its purpose (e.g. "HotWax Commerce Integration").
Select Key Type: Choose "Server-side" as this key will be used by HotWax Commerce to share details. You can find more details about key types:link to Iterable API Keys documentation.
Generate the Key: Click on Create API Key
. A pop-up will appear displaying the generated key. Important: This key will only be displayed once.
Copy and Secure the Key: Carefully copy the entire API key and store it securely in a password manager or other encrypted location. Never share it publicly.
Remember: Treat the API key like a password. Avoid sharing it and keep it confidential for secure communication between HotWax Commerce and Iterable.
Configure HotWax Commerce with Your Iterable API Key
Once you have your API key from Iterable, follow these steps to integrate it with HotWax Commerce:
Log in to HotWax Commerce: Access your HotWax Commerce platform at https://{instanceName}.io/webtools/control/EntityImport
.
Import Configuration:
In the Complete XML document
section, paste the following XML snippet.
Important: Replace YOUR_ITERABLE_API_KEY
with your actual API key from Iterable in the publicKey
field.
XML Configuration
The XML information contains the following details:
Setting up product store email settings in HotWax Commerce allows you to define which email information triggers automated messages for specific marketing automation platforms. For example, you can configure settings to send "Ready for Pickup" email data in the format of Iterable
for a particular product store. Follow these steps to Add Product Store Setting:
Visit https://{instanceName}.io/webtools/control/EntityImport
to access the Entity Import interface.
In the Complete XML document
section, add the following XML information:
The XML information contains the following details
Ready for Pickup
EmailWithin Iterable, customized email templates are employed for Ready to Pickup
notifications, where the content varies for each order. When a Ready to Pickup
email needs to be dispatched, HotWax Commerce generates order-specific data and transfers it to Iterable. To enable this process, HotWax Commerce develops and updates individualized data templates for each order, facilitating accurate and personalized email notifications sent through Iterable.
This configuration data is sent for
To create the Ready for Pickup
email data template in HotWax Commerce, the provided XML data file needs to be imported via the following link- https://{instanceName}.io/webtools/control/EntityImport
Here's the XML structure that generates the Ready for Pickup
email data template in HotWax Commerce:
To use this template with Iterable, insert your workflow ID within the electronic text. To generate WorkFlow Id read this document here.
Ready to Pickup
Emails with IterableHere's how to set up a workflow in Iterable to automatically send personalized "Ready to Pickup" emails to your customers when an order is ready for collection in HotWax Commerce.
Log in to Iterable: Access your Iterable account with your login credentials.
Design Your Email Template:
Navigate to "Content" and click the "Templates" tab. Here, you can create a new template or use an existing one that aligns with "Ready to Pickup" notifications. (Guide for creating templates: [link])
Build the Workflow:
Go to "Messaging" and click the "Journeys" tab.
Click "New Journey" to create a workflow from scratch. You can also learn more about creating workflows here.
Name your workflow "Ready to Pickup" and set the Entry Source to "API call" with unlimited entries.
Configure Email Action:
Add an action step to your workflow that involves sending an email.
Select the appropriate email template you created in step 2.
By following these steps, you'll create an automated workflow in Iterable that triggers "Ready to Pickup" emails based on HotWax Commerce events. Save the workflow Id to use it in HotWax data, which help you send the ready for pickup email.
In HotWax Commerce, when orders are packed and ready for pickup, Iterable triggers an email to customers containing their specific details. Retailers need to run service or can create a new job which should be regularly scheduled on service sendReadyToPickupItemNotification
to trigger the workflow. This step is essential for the effective initiation of the email communication process.
Access the Service List: Go to HotWax Commerce Service List
through this link- https://<instanceName>.io/webtools/control/ServiceList
Locate sendReadyToPickupItemNotification
Service: Find the service named sendReadyToPickupItemNotification
within the Service List interface. Click on the sendReadyToPickupItemNotification
service to access its details.
Run the Service: Look for the Run Service
button available against the service name and click on it. Finally, click on Submit
to execute the service.
To ensure accurate email dispatch for this service, two essential parameters must be provided:
Discover how Hotwax Commerce integrates with EasyPost, providing businesses of all sizes with a streamlined shipping solution.
Hotwax Commerce integrates with EasyPost to empower businesses, ranging from small enterprises to large corporations, with a streamlined shipping solution. This integration enables users to leverage the full capabilities of EasyPost, including rate shopping across a diverse range of carriers and real-time package tracking.
Authentication and identification to the EasyPost API are accomplished by utilizing an API Key in every request. This API Key serves as your Basic Auth username, and no password is required. The authentication process ensures secure communication with the EasyPost API, and it is imperative to note the following details:
Authentication Type: EasyPost employs API Key-based authentication for requests. Each request must include the API Key as the Basic Auth username. The absence of a valid API Key or the use of an incorrect key will result in authentication failure.
Security Protocol: EasyPost mandates that all communication with the API is secured using TLS v1.2. Transport Layer Security (TLS) ensures the confidentiality and integrity of data exchanged between Hotwax Commerce and EasyPost, providing a secure environment for API interactions.
HTTP Restrictions: Requests made over HTTP are not supported. It is crucial to utilize HTTPS for all communication with the EasyPost API. Any attempt to make requests over HTTP will result in failure.
By adhering to these authentication specifications, Hotwax Commerce ensures the secure and authenticated exchange of data with EasyPost. The API Key serves as the access credential, and the implementation of TLS v1.2 guarantees the confidentiality and integrity of the information transmitted during the integration process. Please refer to the following example to understand how to include the API Key in your requests:
Replace YOUR_API_KEY
with the actual API Key provided by EasyPost for your integration. This authentication mechanism ensures a seamless and secure connection between Hotwax Commerce and the EasyPost API for shipping label generation.
HotWax integrates with EasyPost using three key APIs, each serving a distinct purpose in the shipping label generation process.
Create Shipment API shares all detailed shipment information with EasyPost, including package dimensions, weight, origin, and destination. In return, the API offers competitive rates from multiple carriers. For added flexibility, users can specify preferred carriers and their corresponding credentials. The API also generates custom shipping labels with adjustable size and format options.
In case of international shipping:
Fulfilling international orders requires accurate customs information for generating shipping labels and obtaining customs documents. While HotWax stores product details, it lacks the essential HS Tariff number and Custom Signer information for customs purposes.
HotWax integrates with your ERP system, automatically fetching HS Tariff numbers for products during order fulfillment. This daily synchronization ensures readily available HS codes whenever new products are added. HotWax stores these retrieved HS Tariff numbers alongside existing Good identifications for each product.
Alongside, HS tariff number of the product, EasyPost also requires a custom_signer value during shipment creation to validate the request. HotWax retrieves the designated custom signer value assigned by retailer stored in system properties in OMS.
Once both HS Tariff numbers and custom signer information are available, HotWax constructs a streamlined create shipment API request to EasyPost and generate shipping label.
POST
EasyPost
consistently structures its responses, maintaining a common format. Unique details specified in each request are appended to this structure, ensuring dynamic adaptability while preserving a standardized response format.
The Buy a Shipment API is employed to share the rate ID of a specific shipment with EasyPost. This API facilitates the retrieval of a shipping label corresponding to the provided rate ID.
POST
EasyPost
consistently structures its responses, maintaining a common format. Unique details specified in each request are appended to this structure, ensuring dynamic adaptability while preserving a standardized response format.
In this response, HotWax relies on two vital fields: tracking_code
provides the tracking information for the shipment, while label_url
allows users to generate the shipping label in their desired format for printing.
The Refund a Shipment API is employed to void the shipping label generated for a specific shipment. This is useful in cases where a shipment needs to be canceled or rerouted.
POST
EasyPost
consistently structures its responses, maintaining a common format. Unique details specified in each request are appended to this structure, ensuring dynamic adaptability while preserving a standardized response format.
In this response, HotWax relies on a key field, specifically refund_status
. Based on the response, HotWax confirms whether the label is void or not.
These three APIs form the core of the integration, allowing HotWax to seamlessly create shipments, obtain rates, purchase shipping labels, and refund shipments as needed using EasyPost's extensive carrier network. Refer to the respective API documentation for detailed information on request and response parameters.
Bad Request (HTTP 400)
Description: The request was malformed or missing required parameters.
Handling: Check your request parameters and ensure they comply with the API documentation.
Unauthorized (HTTP 401)
Description: The request lacks proper authentication credentials or the provided credentials are invalid.
Handling: Double-check your API key or authentication credentials.
Not Found (HTTP 404)
Description: The requested resource could not be found.
Handling: Review the API endpoint to ensure it is correct.
Server Error (HTTP 5xx)
Description: The server encountered an internal error.
Handling: Report the issue to the API provider. Retry the request later.
Learn how challenges in inventory sync between HotWax Commerce and Retail Pro Prism POS could overcome for accurate inventory management.
While developing this integration, several challenges surfaced, necessitating additional logic that is uncommon in typical inventory reset syncs. Here are the challenges and their solutions:
In a usual setup, ERP systems share a file comprising all active products for inventory synchronization with HotWax Commerce. However, the client's Retail Pro version was able to share a file containing all products ever created in Retail Pro, not just the active ones. This led to an inflated file size, causing prolonged processing times in HotWax Commerce.
To address this, we implemented additional logic to filter the file against products created in HotWax from the eCommerce platform. The refined file now only contains inventory by facility for online-published products, significantly reducing file size from 300MB to 70-80KB. HotWax Commerce reads this new file and updates the inventory records, ensuring they match RetailPro's data accurately.
HotWax Commerce sends orders to Retail Pro for invoicing, but only fully fulfilled orders are pushed. We will discuss in the Order section on why partially fulfilled orders are excluded. Because partially fulfilled orders are excluded, when Retail Pro sends the morning inventory reset file, it does not account for these scenarios.This discrepancy inflates the inventory count in HotWax Commerce, requiring a meticulous solution.
To address this, the HotWax Commerce integration platform identifies partially fulfilled orders, calculates the inventory deductions not communicated to Retail Pro, and generates an inventory variance file. This file is loaded in HotWax Commerce after the main reset inventory file, correcting inventory numbers without compromising accuracy. Timing is critical, ensuring that the variance file is processed after the main reset inventory file to avoid inaccuracies.
Inventory snapshot in Retail Pro Prism POS and HotWax Commerce at 8:00 AM, showing initial counts for SKUs A, B, and C in New York and Nashville.
Inventory snapshot at Retail Pro:
SKU/Location | New York | Nashville |
---|
Inventory snapshot at HotWax Commerce:
SKU/Location | New York | Nashville |
---|
Customer Order imported in HotWax Commerce from eCommerce at 8:30 AM. Representation of the customer order captured in HotWax Commerce at 8:30 AM, specifying quantities for SKUs A, B, and C.
Customer Order:
SKU | Quantity |
---|
Order is fulfilled for SKU A and B in Hotwax Commerce from NY at 9:00 AM. Inventory snapshot after order fulfillment in Retail Pro and HotWax Commerce:
Inventory snapshot at Retail Pro:
SKU/Location | New York | Nashville |
---|
Inventorty snapshot at HotWax Commerce:
Updated inventory snapshot in HotWax Commerce after the fulfillment of the customer order, reflecting adjusted counts for SKUs A, B, and C.
SKU/Location | New York | Nashville |
---|
Retail Pro is unaware of the partial fulfillment in HC, sends an Inventory Reset file the next morning at 7:00 AM. The file includes counts of 10 for SKU A and SKU B across both New York and Nashville, not accounting for the partial fulfillment. This table represents the inventory file including new inventory for SKU C at each location.
Inventory Reset file from Retail Pro:
SKU/Location | New York | Nashville |
---|
When this file is read by HotWax Commerce, inventory counts of SKU A and B and C are reset. Reset for SKU C is correct; however, SKU of A & B to 10 at NY is incorrect. Ideally SKU of A and B at NY should be 8.
Inventory snapshot at HotWax Commerce:
SKU/Location | New York | Nashville |
---|
Now as per the discussed solution, Inventory variance file is generated by HotWax Commerce integration platform, this table represents the inventory variance file:
Inventory Variance file from HotWax Commerce:
SKU/Location | New York | Nashville |
---|
Finalized and accurate inventory counts in HotWax Commerce after processing both the main reset inventory file and the inventory variance file.
Inventory snapshot at HotWax Commerce:
SKU/Location | New York | Nashville |
---|
This detailed example provides a step-by-step explanation of the inventory synchronization process and the corrective measures taken to ensure accuracy.
The integration of HotWax Commerce and Klaviyo streamlines the automated notification process for Shopify retailers. Klaviyo, a marketing automation platform among Shopify retailers, integrates with HotWax Commerce. This collaboration empowers retailers to manage e-commerce operations and utilize Klaviyo for automated, personalized notifications.
HotWax Commerce takes the lead in order processing and fulfillment, ensuring effective customer communication through Klaviyo emails. Retailers can configure various flows within HotWax Commerce to notify customers about order updates, such as changes in delivery dates or methods. Notably, the platform provides out-of-the-box Ready to Pickup
email triggers, enabling retailers to inform customers when their orders are ready for pickup. These email flows are customizable to meet specific retailer preferences. This user guide focuses on setting up Ready to Pickup
emails through Klaviyo, showcasing the flexibility to tailor email flows according to individual client requirements.
Follow the steps provided in this guide to integrate with Klaviyo, enabling automated email notifications and improving the pickup experience for your customers:
The API key is a secure passkey that validates and authorizes interactions between HotWax Commerce and Klaviyo. Follow these steps to generate API Key from Klaviyo:
Login to your Klaviyo account with your Klaviyo User Credentials.
Navigate to API Keys:
From the bottom left corner, click on Account
Go to Settings
> Account
> API Keys
.
Create a Private Key:
Click on Private Keys
and select Create Private Keys
.
Customize API Key:
Provide a name for the API key to distinguish it.
Ensure full access to required API scopes by checking all applicable boxes for the following scopes:
Type of Scope | Description |
---|
Generate the API Key:
Click on the Create
button to generate your customized API key.
Copy and Store the Key:
Once created, securely copy and store the API key in a safe location. Avoid sharing it publicly.
After generating API keys in Klaviyo, it's crucial to integrate them into HotWax Commerce. This step ensures a secure and efficient connection between the platforms, facilitating streamlined communication and data exchange.
Set up API Key in HotWax Commerce:
Access the HotWax Commerce platform and navigate to: https://{instanceName}.io/webtools/control/EntityImport
In the Complete XML document
section, add the below given XML information, replacing privateket
in publicKey=Klaviyo-API-Key privateKey
with the private key generated in Klaviyo:
The XML information contains the following details:
You can verify the newly added entity here- `https://{instanceName}.io/webtools/control/FindGeneric?entityName=SystemMessageRemote``.
Setting up Product Store email settings in HotWax Commerce is crucial as it automates tailored communication, like the Ready for Pickup
email for that product store. Follow these steps to Add Product Store Setting:
Visit https://{instanceName}.io/webtools/control/EntityImport
to access the Entity Import interface.
In the Complete XML document
section, add the following XML information:
The XML information contains the following details
Within Klaviyo, customized email templates are employed for Ready to Pickup
notifications, where the content varies for each order. When a Ready to Pickup
email needs to be dispatched, HotWax Commerce generates order-specific data and transfers it to Klaviyo. To enable this process, HotWax Commerce develops and updates individualized data templates for each order, facilitating accurate and personalized email notifications sent through Klaviyo.
This configuration data is sent for
To create the Ready for Pickup
email template in HotWax Commerce, the provided XML data file needs to be imported via the following link- https://{instanceName}.io/webtools/control/EntityImport
Here's the XML structure that generates the Ready for Pickup
email template in HotWax Commerce:
In HotWax Commerce, when orders are packed and ready for pickup, Klaviyo triggers an email to customers containing their specific details. However, it's important to note that Klaviyo does not have a ready-to-pickup email event that can be triggered for action by default. Retailers need to run service named createKlaviyoEvent
once before setting up the email flow in Klaviyo to ensure that this event is created in Klaviyo. This step is essential for the effective initiation of the email communication process.
Access the Service List: Go to HotWax Commerce Service List
through this link- https://<instanceName>.io/webtools/control/ServiceList
Locate createKlaviyoEvent
Service: Find the service named createKlaviyoEvent
within the Service List interface. Click on the createKlaviyoEvent
service to access its details.
Run the Service: Look for the Run Service
button available against the service name and click on it. Finally, click on Submit
to execute the service.
To ensure accurate email dispatch for this service, two essential parameters must be provided:
Once you have configured the necessary settings and templates in HotWax Commerce, the next step is to create a corresponding flow and template email in Klaviyo to trigger the Ready for Pickup
email of the retailer’s choice with the specific details for the customer. This feature focuses on Klaviyo's response when a specific trigger, such as the Ready for Pickup
event in HotWax Commerce, occurs. It manages the generation and dispatch of tailored Ready for Pickup
emails to customers via Klaviyo, initiated by specific actions, like clicking the Ready to Pick Up
button within HotWax Commerce.
Follow these steps to create the email flow in Klaviyo:
Log in to Klaviyo: Access your Klaviyo account using your credentials.
Navigate to Flows: Once logged in, locate and click on the Flows
tab within the Klaviyo dashboard. This section is where you manage automated workflows.
Create a New Flow: Click on the create flow
button. For the ready-to-pick-up flow, create a new one from scratch.
Choose the Create from Scratch
option to begin a new flow.
Name the flow something like Ready for Pickup
and click on Create Flow
.
Set Trigger Event: Choose the trigger event that will initiate the flow, specifically the Ready for Pickup
event associated with actions like clicking the Ready to Pick Up
button in HotWax Commerce.
If this trigger isn’t available, ensure that the event has been properly set up or run the necessary service in HotWax Commerce.
Configure Action: Add an action step to the flow that involves sending an email. Look for the action that corresponds to sending emails.
Choose Email Template: Select an existing email template that aligns with the Ready for Pickup
scenario. Alternatively, create a new email template specifically tailored for these notifications.
If creating a new template, consider elements like subject line, body content, and any dynamic data placeholders for customer-specific details. Here's an HTML template for the Ready to Pickup Notifications that you can use for your product store.
Customize Email Settings: Adjust the email settings, including the sender information, subject line, and the dynamic content that should be populated based on specific customer order details.
Ensure placeholders for dynamic data (such as customer names and order details) are correctly configured to pull the relevant information.
Test the Flow: Before activating the flow, utilize Klaviyo's testing tools to simulate the trigger event and ensure that the email is sent as expected.
Verify that the dynamic data populates correctly in the test emails, ensuring the personalized touch for each recipient.
Activate the Flow: Once satisfied with the configuration and testing, activate the flow to make it live.
Klaviyo will now automatically trigger the `Ready for Pickup`` email based on the defined conditions whenever the corresponding event occurs in HotWax Commerce.
Attribute | Description |
---|---|
Attribute | Description |
---|---|
Key | Description |
---|---|
Parameters | Value |
---|---|
API Parameter | HotWax Field | Description |
---|
In response, Easy Post
shares three types of rates, and in our integration, we're utilizing the rates found in the rate
attribute for rate shopping. For further details about the rates, you can refer to documentation provided by Easy Post.
Field in EasyPost | Field in HotWax |
---|
Attribute | Description |
---|
Attribute | Description |
---|
Key | Description |
---|
Parameters | Value |
---|
SystemMessageRemote Description
Identifies the third-party system for actions.
Send ServiceName
The service name triggering the action.
Send Url
URL of the third-party system (Iterable in this case).
Shared Secret
Private API key for HotWax Commerce to interact with Iterable.
System Message Remote ID
Identification of the third-party system in HotWax Commerce.
productStoreId
Enter the ID of the product store for which emails will be dispatched.
emailType
Specify the type of email (e.g., "PRDS_READY_TO_PICKUP" for "Ready for Pickup").
subject
Define the subject line for the email (Ready For Pickup Email
).
systemMessageRemoteId
Use the Iterable remote ID created in the previous setup step.
templateContentId
Input the ID of the "Ready for Pickup" template content in this instance.
first_name
Customer's first name
last_name
Customer's last name
to_name
Name of the facility for origin
address1
Address line 1
address2
Address line 2
city
City
state_name
State name
country_name
Country name
order_name
Name of the order
order_item
List of shipment items
image_url
URL of the product image
product_name
Description of the ordered product
quantity
Quantity of the ordered item
subtotal
Total amount of items in the shipment
grand_total
Grand total amount for the shipment
shipmentId
The unique identification of the shipment in HotWax
emailTypeId
Specify the type of email (e.g., "PRDS_READY_TO_PICKUP" for "Ready for Pickup").
shipment.to_address.name | destinationAddressToName | Recipient name |
shipment.to_address.street1 | destinationAddressLine1 | Recipient address line 1 |
shipment.to_address.street2 | destinationAddressLine2 (optional) | Recipient address line 2 (optional) |
shipment.to_address.city | destinationAddressCity | Recipient city |
shipment.to_address.state | destinationAddressStateCode | Recipient state code |
shipment.to_address.zip | destinationAddressPostalCode | Recipient ZIP code |
shipment.to_address.country | destinationAddressCountryCode | Recipient country code |
shipment.to_address.phone | shipToPhone | Recipient phone number |
shipment.to_address.email | shipToEmail | Recipient email address |
shipment.from_address.name | originAddressToName | Sender name |
shipment.from_address.street1 | originAddressLine1 | Sender address line 1 |
shipment.from_address.street2 | originAddressLine2 (optional) | Sender address line 2 (optional) |
shipment.from_address.city | originAddressCity | Sender city |
shipment.from_address.state | originAddressStateOrProvinceCode | Sender state or province code |
shipment.from_address.zip | originAddressPostalCode | Sender ZIP code |
shipment.from_address.country | originAddressCountryCode | Sender country code |
shipment.from_address.phone | shipFromPhone | Sender phone number |
shipment.from_address.email | shipFromEmail | Sender email address |
shipment.customs_info.* (if isInternationalShipment) | (Varies) | Customs information for international shipments (see sub-fields) |
shipment.customs_info.contents_explanation | (not specified) | Contents explanation (optional) |
shipment.customs_info.contents_type | (not specified) | Contents type |
shipment.customs_info.customs_certify | (not specified) | Customs certification flag |
shipment.customs_info.customs_signer | customs_signer | Customs signer name |
shipment.customs_info.eel_pfc | (not specified) | Export Enforcement Line of Business Product Classification (optional) |
shipment.customs_info.non_delivery_option | (not specified) | Non-delivery option |
shipment.customs_info.restriction_comments | (not specified) | Restriction comments (optional) |
shipment.customs_info.restriction_type | (not specified) | Restriction type |
shipment.customs_info.declaration | (not specified) | Customs declaration (optional) |
shipment.customs_info.customs_items.* | shipmentPackageItems.* | List of customs items (see sub-fields) |
shipment.customs_info.customs_items[].description | shipmentPackageItem.itemDescription | Item description |
shipment.customs_info.customs_items[].hs_tariff_number | shipmentPackageItem.hsCode | HS tariff number |
shipment.customs_info.customs_items[].origin_country | originAddressCountryCode | Item origin country (same as sender country) |
shipment.customs_info.customs_items[].quantity | shipmentPackageItem.packedQuantity | Item quantity |
shipment.customs_info.customs_items[].value | shipmentPackageItem.value | Item value |
shipment.customs_info.customs_items[].weight | shipmentPackageItem.productWeight | Item weight |
shipment.customs_info.customs_items[].code | shipmentPackageItem.productId | Item code |
shipment.customs_info.customs_items[].manufacturer | (not specified) | Item manufacturer (optional) |
shipment.customs_info.customs_items[].currency | currencyUomId | Item currency |
shipment.customs_info.customs_items[].eccn | (not specified) | Export Control Classification Number (optional) |
shipment.customs_info.customs_items[].printed_commodity_identifier | (not specified) | Printed commodity identifier (optional) |
shipment.parcel.length | length | Parcel length |
shipment.parcel.width | width | Parcel width |
shipment.parcel.height | height | Parcel height |
shipment.parcel.weight | weight |
shipment.options.print_custom_1 | orderName | Custom print data 1 |
shipment.options.print_custom_1_code | (not specified) | Custom print data 1 code |
shipment.options.label_format | (not specified) | Label format |
shipment.options.label_size | (not specified) | Label size |
shipment.carrier_accounts | (not specified) | List of carrier accounts (optional) |
shipment.carrier_accounts[] | facilityAttribute.attrName.carrierAccounts | Individual carrier account |
|
|
A | 10 | 10 |
B | 10 | 10 |
C | 0 | 0 |
A | 10 | 10 |
B | 10 | 10 |
C | 0 | 0 |
A | 2 |
B | 2 |
C | 2 |
A | 10 | 10 |
B | 10 | 10 |
C | 0 | 0 |
A | 8 | 10 |
B | 8 | 10 |
C | 0 | 0 |
A | 10 | 10 |
B | 10 | 10 |
C | 5 | 5 |
A | 10 | 10 |
B | 10 | 10 |
C | 5 | 5 |
A | -2 | 0 |
B | -2 | 0 |
C | 0 | 0 |
A | 8 | 10 |
B | 8 | 10 |
C | 5 | 5 |
Accounts | Access to account-level information and settings. |
Campaigns | Manage and create marketing campaigns. |
Catalogs | Access and manage product catalogs. |
Coupon Codes | Manage coupon codes and their configurations. |
Coupons | Create and handle coupon details. |
Data Privacy | Permissions related to data privacy and compliance. |
Events | Track and manage events related to customer interactions. |
Flows | Manage automated flows and their configurations. |
Images | Access and handle images within the platform. |
List | Manage and organize contact lists. |
Metrics | Retrieve and analyze performance metrics and data. |
Profiles | Access and manage customer profiles and their details. |
Push Tokens | Handle push notification tokens for mobile marketing. |
Segments | Create, manage, and utilize segments of contacts. |
Subscriptions | Manage subscription preferences and details. |
Tags | Handle and categorize contacts with tags. |
Templates | Access and manage email and campaign templates. |
Webhooks | Set up and manage webhooks for real-time data exchange. |
SystemMessageRemote Description | Identifies the third-party system for actions. |
Send ServiceName | The service name triggering the action. |
Send Url | URL of the third-party system (Klaviyo in this case). |
Shared Secret | Private API key for HotWax Commerce to interact with Klaviyo. |
System Message Remote ID | Identification of the third-party system in HotWax Commerce. |
productStoreId | Enter the name of the product store for which emails will be dispatched. |
emailType | Specify the type of email (e.g., "PRDS_READY_TO_PICKUP" for "Ready for Pickup"). |
subject | Define the subject line for the email ("Ready For Pickup Email"). |
systemMessageRemoteId | Use the Klaviyo remote ID created in the previous setup step. |
templateContentId | Input the ID of the "Ready for Pickup" template content in this instance. |
first_name | Customer's first name |
last_name | Customer's last name |
to_name | Name of the facility for origin |
address1 | Address line 1 |
address2 | Address line 2 |
city | City |
state_name | State name |
country_name | Country name |
order_name | Name of the order |
order_item | List of shipment items |
image_url | URL of the product image |
product_name | Description of the ordered product |
quantity | Quantity of the ordered item |
subtotal | Total amount of items in the shipment |
grand_total | Grand total amount for the shipment |
productStoreId | Enter the name of the product store for which emails will be dispatched. |
emailType | Specify the type of email (e.g., "PRDS_READY_TO_PICKUP" for "Ready for Pickup"). |
Discover how HC manages "Send Sale Orders" in Retail Pro, ensuring items are delivered to customers' shipping addresses despite initial unavailability.
Send sale orders are instances where store associates capture orders in Retail Pro, despite the unavailability of the item at the store. These orders are taken to prevent the loss of a sale, with the commitment to deliver the item to the customer at their shipping address. Associates typically check inventory availability at other stores or warehouses before capturing the order.
Associates create Send Sale orders in Retail Pro and generate invoices for these orders. Even if the inventory is not available, Retail Pro allows the sale, resulting in negative inventory for the respective product. For example, if two blue t-shirts are out of stock and a Send Sale order for them is invoiced in the New York store, the inventory count for Blue T-shirts will be -2 in the New York location in the Retail Pro system.
Send Sale orders need to be brought into HotWax Commerce for order routing and fulfillment. HotWax Commerce brokers these orders based on pre-configured rules that consider inventory availability and the proximity of the store to the customer's shipping address. There are two approaches to bring Send Sale orders into HotWax Commerce. One is Retail Pro pushing Send Sale orders to HotWax Commerce using HotWax Commerce's API. The other involves downloading Send Sale orders from the eCommerce platform.
HotWax Commerce adopts the approach of downloading Send Sale orders from the eCommerce platform. This decision is driven by leveraging the existing integration between eCommerce and HotWax Commerce, saving time and resources compared to building a new integration with Retail Pro. Once a Send Sale order is brokered and fulfilled by another store using the Store Fulfillment suite in HotWax Commerce, the order is marked as completed.
Distinguishing itself from regular eCommerce orders, the processing of Send Sale orders deviates from the typical flow. To prevent double invoicing, these orders, already invoiced during the sale in Retail Pro, are deliberately kept separate. Identified by a sales channel designation of POS, in contrast to eCom for eCommerce orders, Send Sale orders are intentionally excluded in the feed of completed orders. This strategic exclusion is implemented by incorporating checks based on the sales channel, ensuring that these uniquely treated orders are excluded from the invoicing process.
As the original store where the sale occurred has negative inventory due to Send Sale orders, adjustments are made to correct the inventory. Inventory is transferred from the location where the item was fulfilled to the location where it was invoiced. This transfer is accomplished by calling the Manual Slip API.