Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Migrate a Shopify shop from the legacy product sync to the current product sync.
Use the New product sync upgrade assistant when a Shopify connection shows Upgrade to new product sync or Disable old product sync. The assistant verifies that the current sync is available, deactivates the legacy pipeline, and prepares the shop for the current setup flow.
Review the HotWax Commerce release and per-shop job status.
Check each required system message type, job, Data Manager configuration, and data document.
Select Refresh checks after the technical team adds a missing artifact.
Continue only when every required artifact is available.
Use Copy details to share missing artifact IDs with the technical team.
Review the legacy system message types, service jobs, and unfinished system messages.
Deactivate active legacy message types.
Finish active legacy service jobs.
Cancel unfinished legacy system messages.
When 50 or more unfinished messages appear, avoid canceling them in bulk from the page. The app warns that this can create many API requests and timeouts. Ask the technical team to process the messages in the background.
Configure the per-shop sync job when the assistant shows Configure.
Enable any paused shared jobs.
Select Go to new product sync setup.
Review Teardown activity and retry any failed step.
Select Next after all legacy artifacts are inactive or terminal.
Create users and manage their access from the Company App.
Use the Company App to manage user accounts and the access they receive through Security Groups.
User access has two parts:
A Security Group assigns permissions to its members.
App Permissions shows which Security Groups and users can access each application capability.
Review both areas when a user lacks access to a page or action.
Create the Product Store that holds brand-level configuration in HotWax Commerce.
A Product Store represents a brand or storefront in HotWax Commerce. Create the Product Store before you configure its Shopify connection, facilities, inventory, and order workflows.
Collect the following information:
Brand or storefront name
Product Store ID
Default currency
Use this guide when a bulk employee import fails or rejects records. For the import procedure, see .
Check the import file for:
Missing required columns
Duplicate username or external ID
Invalid email format
Operating countries
Parent company name when this is the first Product Store
The Product Store ID can contain up to 20 characters. Use a stable ID because later configuration and integration records refer to it.
Open the Company App.
Go to Product Store.
Click Create new product store.
If this is the first Product Store, enter the parent Company name.
Enter the Product Store Name.
Review the generated ID and update it when needed.
Select the default Currency.
When the operating-country list is empty, click Add next to Operating countries and select each country.
Choose one of these paths:
Click Manage configurations to create the Product Store and continue into guided setup.
Click Preview guided setup to review the setup stages before creating the Product Store.
After creation, Company opens the guided setup for the new Product Store.
Use Complete Product Store guided setup to connect Shopify, prepare products and facilities, configure inventory and orders, and review readiness.
To stop and return later, open the Product Store details page and click Resume setup.
Unknown Security Group IDs
Invalid username or password values
Open the failed Data Manager log.
Download or review the error records.
Correct only the rejected rows.
Upload the corrected file.
Confirm the successful and failed record counts.
These Troubleshooting document contains the common issues user may face when creating or managing user
Use Company to trace access from the user to a Security Group and then to the required App Permission.
Open the Company App.
Go to Users.
Find the affected user.
Confirm that login shows an active status.
Confirm that the user is active.
Open the user's clearance section.
Review the assigned Security Groups.
Identify the group expected to grant the missing access.
Add the approved group when missing.
Go to Users > App Permissions.
Open the affected application.
Select the permission for the missing page or action.
Confirm that the expected Security Group appears under group access.
Use the live App Permissions catalog instead of a copied list of permission IDs.
Fulfillment and pickup applications can also require facility association.
Return to the user.
Review the assigned facilities.
Add the facility where the user needs to work.
Save the user.
Ask the user to sign out.
Ask the user to sign in again.
Open the exact page or repeat the exact action.
Record the missing page or action when access still fails.
Contact support with the user ID, Security Group, App Permission, facility, and exact action. Keep the user's password out of the support request.
Use the current Job Manager File History workflow to audit processed files.
Use Job Manager to audit files processed through Data Manager.
Open MDM > File history.
Search for the file, configuration, or log identifier.
Filter by status, priority, error state, or configuration.
Open the file.
Review the timeline, original data, and errors.
Read and for the complete workflow.
Use the current Job Manager Manual Uploads workflow for operator file submissions.
Use Job Manager for operator file submissions.
Open MDM > Manual uploads.
Find the required configuration.
The HotWax Commerce Import App is designed specifically for merchandisers to manage purchase order inventory and regular inventory imports from external systems into HotWax Commerce using CSV files. Since inventory management at the enterprise level is a critical function, access to the Import App is restricted to users responsible for these tasks. Therefore, only users with "IMPORT_APP_VIEW" permissions can access the app. Additional permissions are required to manage specific processes within the Import App, ensuring that only authorized personnel can execute sensitive tasks.
Below is a list of all the actions available in the Import App, along with the specific permissions needed to perform them.
Investigate a missing, pending, or failed Data Manager import.
Start in Job Manager with the exact file or log identifier.
Open MDM > File history.
Search for the file, configuration, or log identifier.
Copy selected settings from one Product Store to another.
Clone settings when a target Product Store should use approved configuration from an existing source Product Store.
Cloning overwrites the selected categories on the target Product Store. The clone page provides no undo action.
Open the Company App.
Go to Product Store.
Discover how to schedule error emails for Master Data Management (MDM) processes in HotWax Commerce for efficient error handling and resolution.
Steps:
1. Enable Postfix Service:
Postfix is a Sendmail-compatible mail transport agent that ensures secure, fast, and easy email configuration.
The technical team can enable the Postfix service on your server and provide you with instance-specific Postfix details.
2. Configure Postfix Relay Host:
Manage Security Groups and review application access in Company.
Security Groups bundle permissions for a role. App Permissions provides an application-centered view of those permissions and the users who receive access.
Open the Company App.
Go to Users > Security Groups.
Choose a safe investigation path for Data Manager configuration and file-processing issues.
Use the guide that matches the failure:
Capture the configuration identifier, file or log identifier, current status, first error, and timestamps before you change a service, path, or execution mode.
To access the logs for import and export jobs, navigate to the MDM (Master Data Management) > EXIM (Export-Import) page from the Hamburger menu. Here, under the Shopify section, various MDM pages display the processes between Shopify and HotWax Commerce. These pages include:
Shopify GraphQL job: Records all GraphQL files uploaded from Hotwax Commerce to Shopify for API calls like adding pre-order catalogs or tags.
Shopify Order MDM: Contains files generated from Shopify for importing orders into Hotwax Commerce.
Shopify Order Return:
Select the prepared file.
Select Start Import.
Open File history to monitor processing.
Read Upload a file manually for the complete workflow.
Use Data Manager configuration only when an administrator needs to change the underlying service, execution mode, or file contract.
Shopify Product MDM: Includes all product import files generated from Shopify.
Shopify Inventory Sync MDM: Lists files for inventory changes from Hotwax Commerce to Shopify.
Shopify Cancel Order Import MDM: Displays details of all canceled orders from Shopify to Hotwax Commerce.
Shopify Fulfilled Item MDM: Provides information on all fulfilled items feeds generated from Hotwax Commerce to mark items as fulfilled in Shopify.
Confirm that the user appears under users with access.
Review its status and timeline.
Compare Original with Errors.
If the file does not appear, confirm that the source system submitted it to the expected configuration.
Queued files depend on the bulk-file processing service job.
Open Catalog in Job Manager.
Search for the bulk imported file processing job used by the instance.
Confirm its pause state and schedule.
Open Run history.
Review the latest run, parameters, and linked data logs.
Download the original file from File Details and compare it with the format required by the configuration.
When middleware transforms the file, review the transformation flow with the integration owner. Do not change the Data Manager service to compensate for an unconfirmed source-format problem.
An import can finish without creating records when the submitted file contains no data rows.
Open the file detail.
Review Original.
Confirm that data rows exist after the header.
Check the source export when the file is empty.
Submit a corrected file only after the source produces the expected records.
Clone store settings.Select the Source Product Store.
Select the Target Product Store.
Select the categories to copy:
Order configurations
Brokering rules
Fulfillment settings
Inventory settings
Product configurations
Order edit permissions
Review the overwrite warning.
Click Clone settings.
Confirm the action.
Open the target Product Store and verify each copied category.
Choose different source and target Product Stores.
Confirm these points:
The source settings are approved for the target brand or storefront.
Integration-specific identifiers are valid for the target.
The target values can be replaced.
A tester is available to validate the affected order and inventory workflows.
Select the group.
Review:
User access
Permissions
Authorizations
Use the group details page when you need to understand or change one role.
Go to Security Groups.
Click the create button.
Enter the group name, ID, and description.
Save the group.
Open the new group.
Add the permissions approved for the role.
Add users only after the permission list is reviewed.
Use a stable ID. The group name and description can explain the business role.
Open the group.
Review current users and permissions.
Edit the group name or description when needed.
Add or remove the intended permissions.
Save the changes.
Test with a user assigned to the group.
Removing a permission affects every user who receives it through that group. Check whether another Security Group still grants the same permission before concluding that access was removed.
Use App Permissions when you start with an application or capability instead of a role.
Go to Users > App Permissions.
Select an application.
Select a permission.
Review:
Security Groups with access
Assignment history
Users with access
Open the relevant Security Group to make an approved change.
The catalog reflects the permissions available in the current OMS environment. Use it instead of a copied static permission list.
Confirm that the user belongs to the expected Security Group.
Confirm that the group contains the required permission.
Ask the user to sign out and sign in again when access remains unchanged.
Open the exact page or action being tested.
See Troubleshoot application access when the task remains unavailable.
Postfix uses the relay host configuration directive to send emails to external domains.
Configure the relay host directive with the hostname or IP address of the remote SMTP server or service.
Upon enabling Postfix, note the received IP address of the server. Once the Postfix service is enabled, you will get the relay hostname and Port name.
3. Add Configurations in General Settings:
Access the general settings page in HotWax Commerce.
Add the following configurations:
a. SMTP Relay Host Configuration Details.
b. Enable Notifications.
4. Configure Email Template:
Navigate to the DM\_ERROR\_FILE table in the EmailTemplateSetting entity in HotWax Commerce's web tools.
Set the default email address from which users will receive emails in the From Address field (e.g., notnaked@noreply.com).
Configure the email template to be used for communicating error files effectively.
5. Import XML File for System Properties:
Import the following XML file to configure system properties:
Ensure the email addresses specified are accurate and designated for receiving error files.
Conclusion: Following these steps will enable you to schedule MDM error emails effectively in HotWax Commerce. By promptly identifying and addressing errors, you can maintain the integrity and efficiency of your system's data management processes.
<SystemProperty description="Configuration to send the error file to FTP/Email" systemPropertyId="error.file.sendTo.config" systemPropertyValue="EMAIL" systemResourceId="datamanager"/>
<SystemProperty description="**List of email addresses to which data manager error files would be sent.**" systemPropertyId="error.file.sendTo.email.addresses" systemPropertyValue="**email ID from which the emails will be sent from**" systemResourceId="datamanager"/>1
Inventory tab
MDM_IMP_INVENTORY_VIEW
Enables users to upload CSV files containing inventory data received from external systems.
2
Schedule Restock tab
-
Allows users to schedule inventory restocking based on the imported data.
3
Purchase Order tab
-
Provides the ability to upload CSV files to import purchase orders into the system.
4
Saved Mappings tab
-
Enables users to view previously saved mappings that link CSV file data to system fields.
5
Review Inventory CSV page
-
Allows users to review imported inventory CSV files and correct any issues or discrepancies.
6
Go to OMS
COMMERCEUSER_VIEW
Allows users to access HotWax OMS directly from the Import Tab.
7
Update Product Identification Setting
COMMON_ADMIN
Allows users to change product identifiers settings.
Serial No.
Action
Permission
Description
Configure backend master data management imports and understand queue behavior.
Data Manager configuration defines how files enter and leave the HotWax Commerce Order Management System. Use these administration pages to maintain import services, execution modes, templates, and queue behavior.
Use Job Manager for daily operations:
Open the Order Management System.
Open the main menu.
Select Settings.
Select Data Manager Configurations.
The exact administration menu depends on the connected Order Management System version and your permissions.
A Data Manager configuration represents one import or export contract. Separate configurations can use different:
Import or export services
File formats
Execution modes
Templates
For example, order imports, fulfillment updates, and inventory resets can each use a different service and data contract.
Most configurations use a generic HotWax Commerce service after middleware transforms the source data. A native integration can use a service designed for that system’s original payload.
Use Sync only when the service owner has confirmed that the file size and operation are safe. Large synchronous imports can consume resources needed by other work.
Queued imports enter File History in a pending state. The configured bulk-file processing job finds pending files and starts processing them.
When one poller run is already processing the queue, a later scheduled run can stop without starting another processor. Check the run result and active file before treating this behavior as an error.
Use to check the queue and processing job from Job Manager.
Before you change a configuration:
Record its current service, execution mode, and template.
Confirm every source that uses the configuration.
Test the change with approved non-production data.
Monitor the resulting file in Job Manager.
See and for the available backend fields and examples.
Map Shopify locations and values to their HotWax Commerce equivalents.
Mappings translate Shopify locations and order or product values into HotWax Commerce records. Review mappings before starting inventory, product, or order synchronization.
Open the Company App.
Go to Shopify.
Select a connection.
Open Inventory locations.
Select Run facility audit.
Review every active Shopify location.
Map each location to the matching HotWax facility.
Save the changes.
Run the audit again and resolve remaining gaps.
Map multiple physical stores to one facility only when the approved inventory design requires it.
This page maps physical Shopify locations to HotWax facilities. Do not map a Shopify aggregate location to a physical facility. Keep the approved aggregate target unassigned, then use to map it to an inventory channel.
Open the connection.
Select Shipping methods.
Review the Shopify shipping option.
Select the HotWax shipment method and carrier.
Unmapped shipping methods can prevent imported orders from receiving the intended fulfillment method.
Open Payment methods.
Review the Shopify payment name.
Select the matching HotWax payment method.
Add a mapping when no current row exists.
Use a payment method approved by the finance and integration teams.
Open Sales channels.
Review each Shopify order source.
Select the matching HotWax sales channel.
Save the mapping.
Sales-channel mappings determine how imported orders are categorized.
Open Product types.
Review the Shopify product type.
Select the matching HotWax product type.
Save the mapping.
Review new Shopify product types after catalog changes and map any uncategorized values.
Return to the Shopify connection and review the mapping summaries.
Before activation, confirm:
Active physical inventory locations are mapped
Aggregate locations are intentionally unassigned or mapped to an inventory channel
Shipping methods used by live orders are mapped
Payment methods used by live orders are mapped
Starter mappings accelerate setup, but they must still be reviewed against the implementation design.
Bulk employee creation is a Data Manager import.
Use the current sample file from the target environment instead of an older local copy.
Open Data Manager in the OMS.
Find the employee import configuration.
Download its sample file.
Populate the required fields.
Upload the file.
Review the Data Manager log.
If the import menu lacks the employee import, search Data Manager configurations for IMP_EMPLOYEE.
Open the Company App.
Go to Users.
Search for an imported employee.
Confirm the name, employee ID, email, and status.
A successful file upload proves only that Data Manager received the file. Confirm the Data Manager counts and review a selection of imported users.
If the import does not complete or a record is rejected, use the .
Review and update Product Store fields and application settings.
The Product Store details page is the canonical reference for brand-level settings. It separates direct Product Store fields from application settings used by order, inventory, routing, fulfillment, and customer workflows.
Change only settings included in the implementation plan. A Product Store setting can affect imported orders and active store operations.
Open the Company App.
Go to Product Store.
Create a person or facility login and complete its initial access setup.
Create an individual user for a named employee. Create a facility login only when a shared location-specific login is part of the approved operating model.
Open the Company App.
Go to Users.
Click the create button.
Repeat for each active Shopify value.
Select Save All.
Save the changes.
Shopify order sources are mapped to sales channels
Product types used by the current catalog are mapped
Confirm Security Group, Product Store, and facility access.

Notification behavior
Restore the previous configuration when the test does not produce the expected contract.
Queued
Waits in the shared queue and processes in queue order
Async
Processes in the background when resources are available without waiting for the shared queue
Sync
Processes immediately in the submitting request
Turn on Facility login only when creating a facility account.
Enter the user's first and last name.
Enter the Employee ID when one is available.
Enter the email address used for password recovery.
Enter the phone number when required.
Click Create User.
Company opens the user confirmation page after the account is created.
Use quick setup when the user's access follows an established role:
Continue to Quick setup.
Select the applicable Security Group.
Select the Product Stores the user can access.
Select the facilities associated with the user.
Review the setup summary.
Finish setup.
Use manual setup when the role requires individual review:
Open the new user's details.
Add the approved Security Groups.
Add Product Store access.
Add facilities.
Configure picker access or other user-specific options when required.
Review the account before sharing sign-in instructions.
Never assign a broad administrator group only to make a missing page appear. Use Manage Security Groups and App Permissions to identify the required access.
Select the Product Store you need to change.
Confirm the Product Store name and ID.
Locate the setting in its configuration group.
Change the field or toggle.
Wait for the success message and confirm the displayed value.
Click Resume setup when the Product Store still has guided setup work.
The first part of the page contains these groups:
Store identity and defaults
Store name, company, pay-to party, locale, and timezone
Order import and checkout
Order prefix, currency, sales channel, comments, and decimal quantity
Approval, payment, and accounting
Treat Deprecated storefront fields as read-only unless a current implementation explicitly depends on them.
The second part of the page contains settings used by HotWax applications:
Order import and approval settings
Billing information, approval without payment check, and payment capture tag
Returns and cancellation settings
Return deadline, returns facility, and idle-order rejection
Inventory and preorder settings
Confirm the Product Store at the top of the page.
Record the current value.
Locate the relevant configuration group.
Change only the intended field.
For a text or number field, press Enter or leave the field. A toggle applies the change immediately.
Wait for the success message and confirm the displayed value.
Validate the affected workflow before applying the same change to another Product Store.
Use Clone Product Store settings when the same approved configuration must be copied to another Product Store.

If you're creating a new Import configuration to import data from an SFTP location
Click the Add button
Enter configuration details
If you're editing an existing import or export configuration
Use the search bar to find the configuration by name or ID.
Click the Edit icon at the end of the search result.
You may need to view a data manager configuration to either manually import data or to audit data that has been imported either by another user or scheduled SFTP file import job.
Click the open link icon beside the service name on the Data Manager Configuration search page.
This opens the for the selected service.
Once a file is done processing, its status will change to Finished.
If processing finished with error records, download the error records for review. These are usually in JSON or CSV format, with error reasons attached to each record.
Click the Log button to view detailed logs related to the service.
Use the log to identify any specific failure or irregularity.
Monitor Shopify batch Order Sync, run targeted requests, and review import history.
Use the Order Sync dashboard to monitor scheduled Shopify order batches, review imports, run approved requests, and investigate failures.
Open the Company App.
Go to Shopify.
Select a connection.
Open Order Sync.
If the page shows Order Sync needs setup during a standard single-shop launch, begin with of the canonical guide and continue through Chapter 10.
The summary shows:
Shopify instance and Product Store
Last completed batch
Next batch sync
Orders processed
Click Run now only for an approved unscheduled batch. Investigate a paused job or incomplete mappings before running another batch.
The progress card connects two stages:
Shopify order batch request
HotWax order import
Open the System Message for request details. Open the Data Manager log for imported record counts and errors.
A completed Shopify request can produce zero actionable changes. In that case, no Data Manager import is required.
The following flow shows when a Shopify request ends by itself and when it continues into a HotWax import.
Use the monitor to review:
The job that queues Shopify order requests
Job status and schedule
Key order dates
Pipeline activity
When the latest refresh fails, the page can continue to show the last successfully loaded data. Treat the warning as a stale-data condition and retry before concluding that a new run completed.
Use a custom request only for a defined recovery or validation task.
Open the custom request area.
Search for the Shopify orders.
Select the intended orders.
Review the selection.
Choose the replay option.
Enter the approved start time.
Review the scope.
Submit the request.
Use the smallest time window that contains the affected orders.
Click the history action in Track sync progress.
Filter by Outcome.
Choose Newest first or Oldest first.
History can show a request with no Data Manager import when Shopify returned no actionable order changes.
Confirm the Shopify request outcome.
Review the related System Message.
Review each Data Manager log and its successful and failed record counts.
Correct source data in Shopify when the error identifies an order-data problem.
Confirm the latest request time, current job state, and resulting import instead of inferring current success from old history.
Configure an individual user as a picker and verify facility assignment.
A picker must be visible for assignment in the fulfillment workflow and associated with the facility where the work occurs.
Open the Company App.
Go to Users.
Open the user or create a new user.
Turn on Show as a picker.
Click Add Facilities.
Select every facility where the picker can receive work.
Save the user.
The assignment dialog lists only pickers associated with that facility.
Open the .
Open an order or select orders in bulk.
Start the picker-assignment action.
Search by the picker name, HotWax ID, or external ID.
Bulk picker creation is a Data Manager import, not a native Company task.
Open Data Manager in the OMS.
Find the Picker import configuration.
Download its current sample file.
Populate and validate the file.
Use the sample file from the target environment because required columns can change with the import configuration.
Find a user and maintain login, contact, role, store, and facility access.
Open the Company App.
Go to Users.
Search by user name or ID.
Pending batch requests
Failed Data Manager runs
Follow the new request through the progress card.
Set Requested after or Requested before when needed.
Expand a run.
Review the Shopify request status and HotWax import status.
Click View MDM log to inspect import counts and errors.
Use a specific-order or bounded-time request to retry the affected scope.
Contact support when the request fails before an actionable error or import log is available.
Confirm that the picker appears.
Review the import log.
Verify an imported picker in Company and the Fulfillment App.
Order approval, capture behavior, gift cards, and store credit
Inventory and product behavior
Reservation, inventory checks, search behavior, and product identifier
Digital, tax, and returns
Digital items, tax display, return receipt, and unpaid-order cancellation
Customer and suggestion behavior
Suggestion lists and digital product upload
Order statuses and customer messages
Approved, declined, and canceled statuses and authorization messages
Auto order retries
Card retry behavior and retry limits
Deprecated storefront fields
Legacy stylesheet and header assets
Physical pre-order inventory, pre-order group, release routing group, and product-type exclusions
Brokering and routing settings
Preselected facility tag and order-item pickup, shipping facility, and shipment method
Fulfillment operations settings
Fulfillment notifications, scan requirements, partial rejection, and receiving scan
Store pickup and BOPIS settings
Partial rejection, package, shipping-order visibility, printing, and tracking
Customer self-service settings
Cancellation, delivery address/method changes, pickup changes, and reroute method
Shipping and carrier settings
Rate shopping
Product identity and scanning settings
Product and barcode identification preferences
Rejection and exception settings
Quantity-on-hand effect, cycle count creation, and collateral rejection

Import Path
SFTP Folder path for imported files.
Export Content ID
Template identifier used while exporting data.
Export Service
Service that handles outgoing data.
Export Path
SFTP Destination folder for exported files.
File Name Pattern
Identify and match only relevant files during processing using REGEX expressions
Multi-threading
Y/N flag to enable multi-threading on all files imported in this config (default N)
Execution Mode
Select from Sync, Async or Queued to set how the OMS prioritizes the processing of this configuration. (default Queued)
Notify on Failure
Y/N flag to disable notifications on file import error (default Y)
Config ID
Unique identifier for the configuration.
Description
Short explanation of what the configuration handles.
Import Service
Execution mode should always be set to Queued
Multi-threading should be disabled on all configs unless explicitly instructed by HotWax Support. Incorrect use of multi-threading can cause to system overload and downtime. If you've decided multi-threading is your poison, make sure that the configuration is set to execute in queued mode or else your almost certain to cause a system overload.
Service name that handles incoming data.
Filter by Security Groups or Status.
Select the user.
Use the login status to stop or restore access.
Open the user.
Find the login status.
Click Block User Login or Unblock User Login.
Confirm the action.
A login can also become blocked after repeated failed sign-in attempts.
Open the user.
Click Reset Password.
Choose the available administrator or email reset option.
Confirm the action.
Confirm the user's email address before sending a password-reset message.
Use Force logout to end all active sessions after device loss, a security concern, or an access change.
Open the user's login details.
Click Force logout.
Confirm the action.
The action is disabled when the user has no active session.
Open the contact section.
Click Edit.
Update the email, phone number, or external ID.
Save the changes.
The email address is used for password recovery. An external ID can connect the user with another employee system.
Use the clearance area to manage:
Security Groups
Product Stores
Access history
Add or remove only approved values. Open a Product Store from the user's access list when you need to confirm the store.
Turn on Show as a picker when picklists can be assigned to the user. Then add every facility where the user can pick orders.
See Create pickers for verification.
Open the user's facility section.
Click Add Facilities.
Select the facilities.
Save the changes.
A user must be associated with the facility before some fulfillment roles appear at that location.
Favorites preselect frequently used Product Stores and Shopify shops in HotWax Commerce applications.
Open the user's favorites.
Select the Product Store and Shopify shop.
Save the changes.
Confirm the selected shop before running a job. A job started for the wrong shop can affect the wrong integration scope.
Use the Maarg Search Admin page to manage Solr configsets, collections, schema fields, and indexes in HotWax Commerce.
Solr stores searchable product, order, inventory, and other application data in collections. The Maarg Search Admin page lets system administrators prepare those collections and run the index services that load data into them.
Use this page only when setting up Solr, applying a planned schema change, or repairing an index. Deleting a collection permanently removes its indexed documents and cannot be undone from this page.
Sign in to Maarg with system administrator access.
Open the hamburger menu.
Go to Settings > Search Admin. The Admin page opens by default.
Confirm that the displayed Instance Name is the instance you intend to manage before running an action.
If the page is not available in the menu, ask a HotWax Commerce administrator to verify your Search Admin access.
The Solr Configuration section identifies the connection used by this Maarg instance:
Solr Host: The Solr service connected to the current Maarg instance.
Instance Name: The HotWax Commerce instance whose instance-specific collections you are managing.
Solr Version: The Solr version used to locate compatible configuration and schema definitions.
When Maarg cannot reach Solr, the page displays Solr is not available and disables configset, collection, and index actions. Record the connection error and the three configuration values, then contact the HotWax Commerce technical team. Do not continue with index setup until the connection is restored.
A configset supplies the Solr configuration used to create a collection. The Configset Operations table shows every configset deployed with the application and how many active collections use it.
Click Upload on one row to upload or overwrite that configset in Solr.
Click Upload All Configsets during initial setup or a planned upgrade to upload all deployed configsets. This action overwrites configsets that already exist.
Click Delete only when the configset is no longer needed and no collection uses it. Solr rejects deletion when an active collection still uses the configset.
Uploading a configset does not create a collection or index application data. Complete the collection and index operations that follow.
A collection stores indexed documents. The Collection Operations table shows the live state of each collection declared by the application:
Status: Whether the collection is active or missing.
Documents: The number of indexed documents.
Index Size: The storage used by the index.
App Fields: The number of application fields from the deployed schema that are present in Solr.
Use the row actions as follows:
If the collection is missing, upload its configset and then click Create Collection.
During initial setup, click Create All Collections to create every missing collection declared by the application. Existing collections are skipped.
For an active collection, click View Fields to compare the deployed schema with the live Solr schema.
Click View Fields for a collection to open its Field Comparison section. Use the summary and tables to interpret the result:
Missing from Solr: Fields declared by the deployed application schema that are not present in the live collection. Use Add Missing Fields from the collection row to apply them.
Additional in Solr: Live fields that are not declared by the deployed application schema. These are informational and are not removed by Add Missing Fields.
All Schema Fields: The deployed definitions for regular fields, dynamic fields, and copy-field rules, including their source document type and field settings.
After adding fields, reopen View Fields and confirm that Missing from Solr is 0.
The Index Operations table is generated from the deployed schema. Each row identifies a Collection, Doc Type, and Index Service, so the available rows can differ by HotWax Commerce implementation and version.
Confirm that Solr is available and the target collection is active.
Locate the document type you want to index.
Click Run Index.
Review the service parameters in the dialog. Use the narrowest supported parameters when repairing a specific record or subset.
Verify the Solr Host, Instance Name, and Solr Version.
Click Upload All Configsets.
Click Create All Collections
Upload the changed configset, if the release includes a configset change.
Open View Fields for each affected collection.
Click Add Missing Fields when the comparison reports missing fields.
Confirm that Solr is available and the collection status is Active.
Use View Fields to check for a schema mismatch.
Add missing fields, if present.
Investigate configuration identifiers and SFTP paths without exposing connection secrets.
A scheduled file import can fail when the service-job parameter points to the wrong Data Manager configuration or when the configured secure file transfer protocol (SFTP) path does not contain the expected file.
Open Run history in Job Manager.
Find the failed import job.
Expand Parameters and Errors.
Record the configuration identifier used by the run.
Open Settings > Data Manager Configurations in the Order Management System.
Find the configuration and compare its identifier.
Correct the job parameter only when the failed run used the wrong configuration.
See .
Open the Data Manager configuration.
Record the configured import path.
Ask an authorized integration administrator to confirm that the expected file exists at that path.
Compare file name, path, archive behavior, and timestamps.
Do not copy passwords, private keys, or connection secrets into issues, chat, documentation, or screenshots.
Run the import through its normal source or schedule.
Open File history in Job Manager.
Find the resulting file.
Review its status, timeline, and errors.
Do not upload a production file as a configuration test unless the service owner has approved the data and outcome.
Update the path only when the source and configuration owners confirm the correct location.
Unique Key: The field that uniquely identifies each indexed document.
If fields defined by the application are missing in Solr, click Add Missing Fields. This adds missing field definitions and copy-field rules; it does not delete extra fields or index documents.
Start the service and wait for it to finish.
Confirm that the collection's Documents count and the related application search results reflect the expected data.
Open View Fields for each collection and add any missing fields.
Run the required index service for each document type.
Verify document counts and application searches.
Confirm that no required fields remain missing and verify the affected search.
Verify the indexed document count and repeat the user-facing search.
Create collection first
The index service cannot run because the target collection does not exist.
Upload the configset, create the collection, and then run the index.
Missing from Solr is greater than 0
The live collection does not contain every field declared by the application schema.
Click Add Missing Fields, then repeat the comparison.
A configset cannot be deleted
The configset is unavailable or an active collection still uses it.
Check the Collections count and remove the dependency only as part of an approved decommissioning plan.
An index finishes but search results are still missing
The service may have indexed a different scope, or the source record may not meet that index service's criteria.
Check the parameters used, verify the source record, and rerun with the correct narrow scope.
Solr is not available
Maarg cannot reach the configured Solr service.
Record the displayed connection error and configuration values, then contact the HotWax Commerce technical team.
Upload configset first
The collection cannot be created because its configset is not present in Solr.
Delete permanently removes the collection, all of its indexed documents, and its Solr metadata. Do not use it for routine reindexing. Delete a collection only as part of an approved recovery or decommissioning plan.
Optional parameters and defaults are defined by each index service. Leaving optional fields blank can run a bulk index. Review the dialog before starting the service, especially on a production instance.
Upload the matching configset, then create the collection.
Maintain an already connected Shopify shop in Company.
Use this page after a Shopify shop is connected to HotWax Commerce. It covers reviewing and maintaining an existing connection, not initial setup.
For a new connection, follow Set up HotWax Commerce with Shopify.
Open the Company App.
Go to Shopify.
Search for the shop when needed.
Filter the list by connection status.
Select a connection.
The connection page groups configuration into three areas.
Product Sync and Inventory sync appear with the products and inventory workflow when available for the connection.
Open the connection.
Select Instance details.
Review the shop name, Shopify domain, and timezone.
Review the refund-upload setting.
The Shopify domain identifies the remote shop. Confirm it before changing another connection setting.
Open the connection.
Select Product Store.
Confirm the Product Store that owns the Shopify shop.
Change it only when the implementation owner approves the downstream catalog, inventory, and order impact.
A Shopify shop can be linked to only one Product Store.
Use the credentials page only when the implementation team provides a current Shopify credential change.
Open API credentials.
Confirm the Shopify shop.
Enter the approved credential values.
Save the change.
Keep credentials out of tickets, screenshots, and documentation.
Open Access scopes.
Under Connection access, confirm the OMS-side access level required by the integration.
For inventory publication, confirm SHOP_RW_ACCESS. Do not use SHOP_READ_WRITE_ACCESS; it has the same description but does not satisfy the current service gate.
Use these references to operate an existing connection:
Exclude the development-only Debug area from operator workflows.
Save only the intended changes.
Save the link.
Return to the connection page and confirm the Product Store.
Verify the connection before starting a synchronization task.
Under Granted OAuth scopes, refresh the scopes granted to the app in Shopify.
Compare the available scopes with the approved integration profile. Inventory publication requires write_inventory.
Resolve a missing connection-access value in HotWax Commerce and a missing OAuth scope through the approved Shopify connection flow before you retry the affected task.
Configuration
Instance details, Product Store, API credentials, and access scopes
Products & Inventory
Inventory locations, product types, Product Sync, and Inventory sync
Orders & Fulfillment
Order Sync, shipping methods, payment methods, and sales channels
Monitor and operate Shopify product sync in the Company App.
Use the Product sync dashboard in the Company App to monitor scheduled imports, review the current pipeline, run targeted sync requests, and troubleshoot failed products.
This guide covers day-to-day product sync operations after setup. To connect a new shop, use Chapter 4 of Set up HotWax Commerce with Shopify. To move a shop from the legacy pipeline, use Upgrade Shopify product sync.
Open the Company App from the HotWax Commerce Launchpad.
Select Shopify from the menu.
Select the Shopify connection that you want to monitor.
Select the active Product sync card.
The card summarizes records processed in the last completed import, unsynced Shopify events, and the latest pipeline status. If the connection shows Setup new product sync, complete the . If it shows Upgrade to new product sync or Disable old product sync, follow the .
The dashboard brings the current run, scheduled jobs, pipeline health, and custom requests into one view.
The Summary card shows:
The last completed sync and its relative time
The number of updates processed in the last sync
The next scheduled sync or a Paused status
The number of unsynced Shopify updates
Select the lightning action to run the recurring sync job now. The app asks for confirmation because stopping an active job run is unavailable.
Open the overflow menu to select Reschedule, Pause, or Resume. Select the Next sync time row to review the job schedule, run the job, change its schedule, and view its audit history.
Select Un-synced updates to review Shopify products waiting to be imported. Select one or more products, then select Sync selected products to import them on demand.
The Track sync progress card follows the latest run through the complete pipeline:
Select an available stage to open its details.
The System Message modal shows:
The system message ID and current status
Why the run is waiting and which job performs the next step
The next scheduled time for that job, when available
A Send now, Poll now
Use the message ID when sharing a specific run with the technical team. If a message remains Produced, check the listed Send update request schedule or use Send now. If it remains Sent, check when Import completed requests runs or use Poll now. A missing bulk operation ID means that Shopify hasn't accepted the request yet. Open Error Text when the message reaches an error state.
The Bulk Operation modal shows the Shopify bulk operation ID and its current status. It also shows the status reported for the current sync run, or Pending when the app hasn't received one yet.
Use the bulk operation ID to identify the request in Shopify or when escalating a run that remains active for an unusual amount of time. If the system message is still Produced and no bulk operation ID exists, investigate the send stage instead of Shopify processing. After Shopify completes the operation, investigate Import completed requests when the HotWax import doesn't begin.
The Data Manager Log modal loads the import log and shows:
Log ID and status
Total record count
Successful record count
Failed record count
Use the log ID when sharing an import with the technical team. Compare the total, successful, and failed counts to determine whether the whole file failed or only particular products need correction. When failed records are present, continue to Parsed error details or download the failed-record file from sync history.
Select the history icon on the card to open .
The Product sync jobs card shows the jobs and webhook that move requests through the pipeline:
Queue update requests creates product sync requests on the shop's schedule.
Send update request sends produced requests to Shopify.
Import completed requests checks completed operations and starts the HotWax import.
Select Queue update requests, Send update request, or Import completed requests to open the service-job modal. Each modal shows the following information and controls:
Use the refresh action to reload the job details. When you change Active or Schedule, use the save action. Closing or refreshing with unsaved changes displays a discard confirmation.
The most useful checks depend on the job:
Queue update requests is the shop-specific job. In Parameters, verify shopId, productStoreIds, and shopifyProductIdentifier when available. These values confirm which Shopify shop, HotWax product store, and internal name mapping the job uses. Check its active state, schedule, and recent output when Shopify changes aren't creating product sync requests.
Send update request sends produced system messages to Shopify. Check its active state, next run, and recent output when the current system message remains
A pause icon means that the corresponding job is paused. Resume paused jobs that the scheduled pipeline requires.
The Pipeline card shows pending update requests, the current Shopify request, update files waiting for import, and error records from the last 24 hours. A growing count usually points to a paused job, a request still waiting to finish, or import errors that need review.
Recently synced product updates lists products processed by recent sync runs. Use the search field to find a product by internal name. Each product card can show:
Product title, variant title, SKU, Shopify ID, and sync time
A link to the product in Shopify
A summary of changed fields
A Changes section with field-level values
An empty change list means field-level details are unavailable. The product may still have synced successfully.
Use the Custom request card when you need a result before the next scheduled run.
Select Sync specific products.
Search by SKU, product name, or Shopify ID.
Select the products to import.
Select Sync selected products
Use this option after correcting one or more products in Shopify or when a small set of updates needs immediate processing.
Select Replay sync from a certain time.
Set Sync updates from to the start of the period that must be processed again.
Select Start replay sync.
Replay changes the last-sync time so that Shopify updates from the selected time are imported again. Use the narrowest practical time range to avoid processing unrelated updates.
Select Re-sync entire catalog.
Review the current Shopify product and variant counts.
Select Start full catalog re-sync.
This request imports every product that currently exists in Shopify. It can take a long time for a large catalog.
Parsed error details shows failed objects from recent Data Manager logs. Each card includes the product title or handle, Shopify product ID, and the parsed error message.
Search by product ID, name, or handle.
Select View details to review the full error record.
Correct the source data or configuration that caused the error.
Select Retry
Use the refresh action to reload the error list after another import finishes. When a failed record lacks a Shopify product ID, direct retry is unavailable. Use the error details to locate the source product or ask the technical team for help.
Select the history icon in Track sync progress to open Product sync history.
Use these filters to find a run:
System message status: Produced, Sent, Received, Consumed, Confirmed, or Error
Sort
Expand a run to review the system message, Shopify bulk operation, and HotWax bulk import.
Select Message text or Error details to inspect the system message.
Select View query to inspect the Shopify query when available.
Select the total record count to download the raw Shopify import file when available.
A Produced message is waiting for the send job. A missing Shopify bulk operation ID can be normal until Shopify accepts the request. A skipped HotWax import can be normal when Shopify returns no updates.
Contact the technical team when required artifacts are missing, a pipeline job continues to fail, or the same product fails again after you correct its source data.
The linked product store
CancelThe Shopify bulk operation ID, or Pending until Shopify accepts the request
Message Text, which contains the request payload, and Error Text when the system message has an error
Bulk operations finish webhook, when supported, notifies HotWax when Shopify finishes a bulk operation.
ProducedImport completed requests checks Shopify operations and starts the HotWax Data Manager import. Check its active state, next run, and recent output when Shopify has completed an operation but the HotWax import hasn't started, or when update files remain waiting for processing.
Newest firstOldest firstCreated after and Created before: limit results to a date and time range
Select the failed record count to download the failed-record file when available.
System message
Message ID, status, age, error text, and the next available action
Shopify bulk operation
Bulk operation ID, duration, object count, and Shopify status
HotWax bulk import
Job identity
Display name, internal job name, and service name
Use the internal names when the technical team needs to find the same job in Service Jobs or logs.
Run now
Starts one immediate execution without changing the schedule
Product sync could not load
Select Retry. If the page still fails, confirm that the Shopify connection has a system message remote.
Shopify write access required
Reconnect the shop with read-and-write access before starting the sync.
Update Shopify access scope
Bulk operations finish webhook doesn't open a details modal. Its row shows Active or Inactive, and selecting the row immediately subscribes or unsubscribes the Shopify webhook. Don't select it only to inspect its status.
A full catalog re-sync leaves products in HotWax Commerce after Shopify deletes them. Use the product deletion process for deleted Shopify products.
Data Manager log ID, record count, failed record count, duration, and import status
Use it after correcting a temporary problem or when the pipeline is waiting for this job. Avoid repeated runs while an earlier execution is active.
Active
Whether the service job is active or paused
Check this first when the dashboard shows a pause icon or records remain in one pipeline stage.
Last run
Time and outcome of the latest execution
Confirms whether the job has run since the affected request entered the pipeline.
Instance of product
The HotWax application product that owns the service job
Useful to the technical team when verifying that the job belongs to the expected installed component. This isn't the Shopify catalog's product store.
Schedule
Quartz cron expression, readable schedule, next run time, and common schedule options
Use the readable schedule and next run time for routine checks. Change the cron expression only when the operating schedule must change.
Parameters
Configured job parameters and service parameter definitions or defaults
Use these values to verify which shop and configuration a job processes. Parameter names and availability depend on the job.
Recent runs
The last five executions, including status, start and completion times, duration, user, available counts, and output message
Use the output and status to distinguish a job that hasn't run from one that ran but found no work or returned an error.
Edit history
The last recorded field changes, previous and new values, user, and timestamp
Use this when a job becomes paused or its schedule changes without an intentional update. The section can show Unavailable when the audit API isn't exposed.
Replace the deprecated access scope with SHOP_RW_ACCESS.
Produced remains unchanged
Review Send update request. Resume the job or use its Run now action.
Shopify bulk operation remains active
Check Current Shopify request status, the finish webhook, and the import/poll job before starting another request.
Pending update requests keep growing
Check the schedules and pause states for all product sync jobs.
Update files to process keep growing
Review Import completed requests and recent Data Manager logs.
A run finishes with failed records
Download the failed-record file, correct the source issue, and retry the affected products.
No recent changes appear
Check the selected product store, search by internal name, and review the same period in Product sync history.






HotWax Commerce’s Fulfillment App can be accessed by users with FULFILLMENT_APP_VIEW permission. However, actions like rejecting orders or marking items as shipped need specific permissions.
Below is a list of all the actions available in the Fulfillment App, along with the specific permissions needed to perform them.
Manage All Fulfillment Operations
1
Open orders view
-
Permission to view the "Open Orders" page, displaying orders that are in an unprocessed state.
2
Reject all (Open Orders)
COMMON_ADMIN
Allows users to reject all orders that are in the open state, removing them from processing workflows.
3
Print Picklist
-
Enables the printing of a Picklist that can be used to assign pickers to orders in bulk, streamlining the picking process.
4
Order actions Chip > Pick order
-
Allows users to assign a picker to a specific individual order, initiating the fulfillment process for that order.
5
Picker visibility
FULFILLMENT_VIEW_ALL_PICKERS
Controls whether users can see all pickers across all facilities or only those from their current facility when assigning pickers to orders.
6
Recycle order
COMMON_ADMIN or STOREFULFILLMENT_ADMIN
Enables the recycling of an order, which allows it to be re-entered into the fulfillment queue and assigned to a different picker or facility.
7
Order actions Chip > View Order details
-
Routes the user to the detailed view of an individual order, where further actions can be taken or details can be reviewed.
8
View item QOH (Open Orders)
-
Displays the Quantity on Hand (QOH) for items in the order, helping users assess available stock for fulfillment.
1
In Progress view
-
Permission to view the "In Progress" orders page, where orders in various stages of processing are listed.
1
Completed view
-
Permission to view the "Completed" orders page, displaying orders that have been fully processed and are awaiting shipment.
1
Transfer Orders View tab
APP_TRANSFER_ORDERS_VIEW, ORD_TRANSFER_ORDER_VIEW, or ORD_TRANSFER_ORDER_ADMIN
Grants access to the "Transfer Orders" tab, allowing users to view and manage inventory transfer orders between facilities or stores.
1
EXIM view
-
Permission to view the "EXIM" page, providing visibility into export/import data and actions.
1
Rejection reasons view
STOREFULFILLMENT_ADMIN
Grants access to the "Rejection Reasons" tab, where users can view and manage reasons for order rejections within the system.
1
Carrier View
CARRIER_SETUP_VIEW
Grants access to the "Carrier & Shipment Methods" tab, where users can view and manage carriers and their associated shipping methods.
1
Order online fulfillment
COMMON_ADMIN
Allows users to configure the order fulfillment capacity of their facility, ensuring the system accurately reflects the facility's capabilities.
1
Orders detail page > Ship now (Completed orders)
COMMON_ADMIN
Allows users to ship a packed order, provided all shipment and package information is complete. The button will be enabled when tracking information is either provided or force ship permission is granted.
2
Reject all (In Progress)
COMMON_ADMIN
Allows users to reject all orders that are in the "In Progress" state, stopping further processing.
3
Pack orders
-
Provides the ability to pack all listed orders. Users are asked to confirm additional information before completing the packing process.
4
Order actions Chip > View details (In Progress)
-
Routes the user to the detailed view of an order currently in progress, where further actions can be taken or details can be reviewed.
5
Ready to pack
-
Allows users to select a box or container for an item during the packing process.
6
Report an issue
-
Provides the option for users to report issues encountered during the fulfillment process.
7
View item QOH (In Progress)
-
Displays the Quantity on Hand (QOH) for items in the order, helping users assess stock availability for completion.
8
Pack Order
-
Opens a popover for users to pack individual orders. Additional confirmation may be required to ensure all information is accurate before completing the packing.
9
Shipping label error
-
Alerts users to errors related to shipping labels, allowing them to address issues before proceeding with order fulfillment.
2
Ship
COMMON_ADMIN
Enables the user to ship all listed orders. Once an order is shipped, it cannot be unpacked or edited. The "Ship" button will be enabled if the order has at least one packed shipment and all required information is present, including tracking details if needed.
3
Order actions Chip > View details (Completed)
-
Routes the user to the detailed view of an order that has been completed, where final actions can be reviewed.
4
View item QOH (Completed)
-
Displays the Quantity on Hand (QOH) for items in completed orders, helping users confirm stock used in fulfillment.
5
Ship now
COMMON_ADMIN
Enables the user to ship packed orders once all shipment information is complete, including tracking information if applicable. If tracking is missing, users with the "force ship" permission can still proceed.
6
Regenerate Shipping Label
-
Allows users to regenerate the shipping label for a completed order if necessary, ensuring proper labeling for shipment.
7
Print Customer Letter
-
Enables users to print the packing slip or customer letter associated with the order, ensuring documentation is provided with the shipment.
8
Unpack orders
COMMON_ADMIN or SF_UNLOCK_ORDER
Provides users with the ability to unpack orders and send them back to the "In Progress" state if necessary. This action is only enabled when all required shipment and package information has been provided.
2
Transfer order detail tab
ORD_TRANSFER_ORDER_VIEW or ORD_TRANSFER_ORDER_ADMIN
Provides permission to view detailed information on transfer orders, allowing users to review the status, contents, and actions for each order.
3
Scan item input
-
Allows users to manually enter the SKU of an item for scanning during the order transfer process.
4
Scan item button (Barcode)
-
Enables the barcode scanner functionality for quickly scanning items during transfer order processing.
5
Open > Pick all
-
Allows users to pick all items in a transfer order when the "Pick All" button is enabled and no shipment ID has been assigned.
6
Completed > Regenerate shipping label
-
Provides the ability to regenerate shipping labels for transfer orders that have been completed.
7
Create shipment
ORD_TRANSFER_ORDER_CREATE or ORD_TRANSFER_ORDER_ADMIN
Enables users to create a shipment for a transfer order, preparing it for dispatch to the receiving facility.
2
EXPORT Packed orders
-
Allows users to export data for orders that have been packed but not yet shipped, facilitating external tracking and reporting.
3
IMPORT Shipped orders
-
Enables users to import shipped order data from an external system based on tracking codes, ensuring accurate record-keeping within the platform.
2
Variance type selection
-
Allows users to select a specific rejection reason from a predefined list when processing rejected orders.
3
Ellipsis button > Remove reason
-
Provides the ability to remove a rejection reason from the system, ensuring the list of reasons remains relevant and accurate.
4
Add new Rejection reason
-
Opens a modal for users to create a new rejection reason, allowing customization of rejection types within the system.
2
Create new Carrier
CARRIER_SETUP_VIEW
Provides users with the ability to create a new carrier and configure its shipping methods, helping to ensure accurate shipping options are available in the system.
3
Create carrier > Setup methods > Setup methods page
CARRIER_SETUP_VIEW
Allows users to set up and configure shipping methods for carriers that have been created, ensuring all necessary options are available for order fulfillment.
4
Carrier details view
CARRIER_SETUP_VIEW
Provides access to view the details of a specific carrier, including shipping methods and associated configurations.
2
Sell inventory online
COMMON_ADMIN
Controls whether the store's inventory is made available for online sales, allowing users to manage online inventory visibility.
3
Update Product Identifier setting
COMMON_ADMIN
Allows users to choose a product identifier to view products using their preferred identification method, facilitating easier product management.
4
Generate shipping label toggle
-
Enables users to toggle the option to print supplementary documents, such as a shipping label, with the shipment for better package identification.
5
Generate packing slip toggle
-
Provides the ability to toggle the option to print a packing slip alongside the shipment, ensuring proper documentation is included with orders.
6
Go To OMS
COMMERCEUSER_VIEW
Allows user to access OMS directly from the Fulfillment App
7
View Fulfillment App
FULFILLMENT_APP_VIEW
Allows user to view Fulfillment App
8
Manage All Fulfillment Operations
STOREFULFILLMENT_ADMIN
Allows user to manage all the operations in Store Fulfillment for Online Orders
9
Force scan
COMMON_ADMIN
Controls the requirement for users to scan item barcodes during the packing process to ensure accuracy.
10
Partial rejections
COMMON_ADMIN
Allows individual items within an order to be rejected without affecting other items in the same order.
11
Collateral rejections
COMMON_ADMIN
Automatically rejects all other orders for an item when that item is rejected, helping to manage stock inconsistencies.
12
Affect QOH on rejection
COMMON_ADMIN
Determines whether the Quantity on Hand (QOH) is adjusted along with Available to Promise when an item is rejected.
13
Barcode Identifier
COMMON_ADMIN
Allows users to select the preferred barcode identifier (e.g., SKU, UPC) used for scanning items within the app.
2
Orders detail page > View Details
-
Enables users to view the order details along with customer detailed information and the selected shipping carrier details
3
Orders detail page > Unpack (Completed orders)
COMMON_ADMIN or SF_UNLOCK_ORDER
Provides the ability to unpack a completed order and send it back to the "In Progress" state. This action is only enabled when all required shipment and package information is present.
4
Edit shipment method
ORDER_SHIPMENT_METHOD_UPDATE
Allows users to update the carrier or shipping method for an order from the order details page.
5
Generate Tracking Code modal > Edit carrier or method
ORDER_SHIPMENT_METHOD_UPDATE
Allows users to change the carrier or shipment method while generating a tracking code for orders that require manual label handling.








Monitor and reconcile inventory published from HotWax Commerce to Shopify.
Use the Inventory sync dashboard in the Company App to monitor inventory published from HotWax Commerce to Shopify. The dashboard separates physical-location quantity on hand from aggregate-channel available-to-promise inventory, so you can investigate the correct path before changing a schedule or running a reset.
This guide covers outbound inventory updates after a Shopify connection is set up. It does not import starting inventory from Shopify. For the one-time inbound quantity-on-hand seed, follow Chapter 8 of Set up HotWax Commerce with Shopify.
HotWax Commerce can publish inventory to Shopify in two ways:
Quantity on hand (QOH) is the physical count at a location. Available-to-promise (ATP) is the quantity available for new orders after HotWax Commerce applies reservations and sourcing rules. Do not use a physical QOH reset to repair an aggregate ATP target, or an aggregate ATP reset to repair a physical-location target.
See for the rules that determine which facilities contribute to a channel.
Open the Company App from the HotWax Commerce Launchpad.
Select Shopify from the menu.
Select the Shopify connection that you want to monitor.
Select Inventory sync
Before you rely on the dashboard, open Access scopes on the connection and confirm both write gates:
Under Connection access, confirm SHOP_RW_ACCESS. Do not select SHOP_READ_WRITE_ACCESS; it has the same description but does not satisfy the current service gate.
Under Granted OAuth scopes, refresh the Shopify scopes and confirm write_inventory for the approved connection profile.
Resolve either missing gate through the approved Shopify connection flow before you publish or reset inventory.
Start with the queue and job-health cards. They answer two different questions: what is waiting, and what should move it.
As of August 24, 2026, the screenshots and event-pipeline terminology in this guide preview the unreleased feat/inventory-event-pipeline-view UI at commit 672694b. This commit is not on Company main or in a tagged release, and the preview still reports package version 2.2.1. Do not use the version label alone to identify this UI. Until a deployed release contains it, follow the older Company and Job Manager surfaces described in the release boundary below.
The screenshots use fictional demo data; their shop, channel, location, event, batch, and job identifiers do not describe a live retailer. In the overview, Needs attention reflects the intentionally paused manual discard job; assess automatic pipeline health from the individual job rows.
The Aggregate event queue card shows:
Aggregate events pending batching: Calculated adjustments that are not assigned to a System Message
Batches pending delivery: System Messages that are waiting to send, retrying, or in an error state
Next batch send: The next active publisher schedule
The pending-event count represents inventory event-detail rows. One receipt, reservation, or configuration change can create rows for multiple channels or Shopify inventory items, so do not interpret this number as a count of business events or products.
Next batch send is the earliest active channel-publisher run that the dashboard can find. It does not confirm that every channel has a publisher, that the produced-message sender is active, or that Shopify has received a batch.
Select an event or batch row to open inventory event history.
Shared sync jobs contains schedules that serve the connection or every Shopify inventory channel on the OMS. Each channel card contains the two schedules that belong only to that channel. Both surfaces show a configured job as Active or Paused, and show Not configured when the required job is missing.
The jobs displayed depend on the installed Company and Shopify connector releases. Process effective-dated inventory changes and Purge old inventory events are connector-seeded jobs. If either is missing, treat it as a deployment gap. Do not copy a job definition from another instance.
Inspect every shared and channel-owned row before you use the Shared sync jobs rollup as a health verdict. The rollup includes the jobs inside channel cards, even though it is displayed on the shared card. A manual recovery job can be intentionally paused and have no schedule while the automatic publication pipeline remains healthy.
Select a configured job from its shared or channel row to review its internal name, service, active state, schedule, parameters, recent runs, and edit history. A row can summarize multiple matching jobs and open only one of them. Use Job Manager to check for duplicate or overlapping schedules before you activate or reschedule a job. Select Run now only after you confirm the job scope and verify that an earlier run is not active.
A job's next-run line can show a countdown and timestamp. If the cached next-run timestamp is older than a more recent run, Company shows the cron cadence instead of reporting a false overdue state. Next run not yet recalculated means that the schedule exists but the cache has no dependable next timestamp. No active schedule means that Company found no unpaused matching job with a cached next-execution timestamp; inspect the job's paused state and cron expression before you conclude that it is unscheduled.
A completed run means that the job has an end time and did not report an error. It does not prove that Shopify now matches HotWax Commerce. After a reset or recovery run, compare representative item quantities at the affected Shopify target.
If the dashboard offers Set up, the app creates the missing job in a paused state. Open the new job and verify its parameters and schedule. Activate only jobs approved for scheduled execution. Keep Discard unbatched events paused and unscheduled.
Some Company versions allow supported job parameters to be edited in the job modal. Keep inventoryChannelId unchanged for a channel publisher or reset job because that value defines which channel the job belongs to.
The channel-card job placement and the four-stage event pipeline are an unreleased preview at 672694b. Older released deployments can show the channel jobs in a single Inventory sync jobs card and provide separate All events and Grouped by batch history views. Use Job Manager and the controls visible in that deployed Company build when the newer surfaces are absent. Replace this commit boundary with the released Company version after the feature ships.
Keep the publish_PendingShopifyInventoryAdjustments template paused. Each inventory channel needs its own cloned publisher job. Before you activate a clone, confirm:
inventoryChannelId identifies the intended channel.
maxChangeCount is 100, unless the implementation plan specifies another tested batch size.
staleSendingMinutes is 60
A newly created clone is paused. Activate it only after its channel, parameters, and schedule are correct; do not activate the template itself.
When the sender's systemMessageTypeIds value is blank, that job sends all supported System Message types. It is a shared sender, not an inventory-only sender. Do not change or replace a shared sender as an inventory recovery action.
Some Company versions can show the sender as both Active and Set up: an active shared sender exists, but a dedicated inventory sender does not. A dedicated inventory sender is created paused and should use:
A five-minute schedule
systemMessageTypeIds set to ShopifyInventoryAdjustment
mode set to sync
Review the shared delivery design with the deployment owner before activating a dedicated sender, so the same messages are not targeted by unintended schedules.
App-created reset jobs start paused. Use these defaults to audit a newly created job; preserve an approved deployment-specific schedule when it intentionally differs.
The physical QOH reset runs hourly by default. Its parameters must include systemMessageTypeId=ResetInventoryQoh, the selected shop's systemMessageRemoteId, and runAsBatch=true. Together, these values define its Shopify connection scope.
Each aggregate ATP reset runs every four hours by default. Its protected inventoryChannelId must identify exactly one inventory channel.
Do not copy a physical reset between connections or an aggregate reset between channels by changing only the job name. Verify the scope parameters first.
Discard unbatched events is one OMS-wide manual recovery job that acts on one selected channel per run. Keep it paused and without a schedule. Never activate or schedule it.
When obsolete unbatched events must be removed:
Open the discard job and select the intended inventoryChannelId.
Enter and review the reason.
Select Save.
After the modal closes, reopen the job and verify the stored channel and reason.
The lower dashboard sections show:
Recent full physical-location QOH reset runs
Recent full aggregate ATP reset runs
Aggregate event batches, their delivery states, publish reasons, and summed change entries
Each run card shows its run identifier, start time, parameters, scope, result, and whether the job reported an error. Select View all runs to search one job's history by run, service, user, parameters, result, and status.
The job modal previews only the five most recent runs and ten edit-history records. Use View all runs when the required execution is not in that preview.
The job-run page loads at most the 500 most recent runs. When it reaches that limit, it displays a warning rather than presenting the results as complete history.
An aggregate inventory channel maps one channel facility group to one Shopify location. Eligible inventory from the facilities in the group contributes to that target after the channel's brokering, safety-stock, threshold, and demand rules are applied.
Feeding this channel counts effective facility-group members by facility type. Delivered in 24h counts cached ledger-detail rows that were created in the last 24 hours and currently have a sent System Message. It is not a count of deliveries, units, products, or batches; an older row delivered today is excluded. Treat this value as a recent operational signal rather than a complete throughput total.
Before you begin:
Create and review the channel facility group in Sourcing > Channels.
Confirm the facilities that belong to the group.
Create or select a Shopify location intended only for aggregate inventory.
Follow these steps:
Open the Inventory sync dashboard.
Select Set up channel.
Select a facility group. The app lists only groups of type CHANNEL_FAC_GROUP and shows their store, warehouse, configuration, and other facility counts.
The location list excludes locations that already back a physical HotWax facility or another active inventory channel. A location mapped to the _NA_ placeholder can appear as Suggested because it is not assigned to a physical facility. Use _NA_ only for an intentionally unassigned aggregate target, not as the mapping for a real store or warehouse.
After the channel is created, the app attempts to create its aggregate reset and event-publisher jobs and the connection's physical reset job. These jobs are created paused.
Select a channel from the Inventory channels section to manage it.
The Shopify shop and facility group are fixed because they define the channel's identity. You can update the description and choose another eligible aggregate location. Open Reset aggregate ATP on the channel card to review or change that channel's full-reset schedule.
Select the channel.
Select the new Shopify aggregate location.
Confirm that no other active inventory channel uses the new target. The edit dialog does not exclude every target claimed by another channel.
Review the warning.
The Company warning states that inventory placed by the channel should be cleared from the old target. Saving the edit records the new target, while the connector performs the inventory clearing. Verify both Shopify locations after the save and reset. If the old target remains stocked, do not reuse it; record the channel and location identifiers and escalate the failed clear. Incremental events alone do not seed the complete quantity at the new location.
Open the channel's publisher and aggregate reset jobs in Company or Job Manager and record their internal job names.
Pause the aggregate reset job and save the change. Keep the channel publisher and produced-message sender active so they can deliver the clearing adjustment created by expiration.
Verify that the aggregate reset has no active run and that the publisher is not currently running.
Review event history for the channel. Resolve pre-existing Waiting
Expiration is intended to stop aggregation into the target and clear the inventory that the channel placed there. Verify the Shopify target after expiration. HotWax Commerce retains the mapping so historical events remain attributable to the expired channel.
Expiration removes the channel from the active channel rows, but the Company page does not show it pausing or deleting the channel's publisher and reset jobs. If the clearing adjustment does not appear or the Shopify target is not zero, keep the location out of use, record the channel and location identifiers, and escalate before pausing the publisher or assigning the location elsewhere. If the installed connector uses a different approved decommission path, follow that release-specific runbook instead.
The dashboard contains three controls with different scopes. Review the scope and recovery action before changing one.
When you enable Inventory channel event updates, restart every OMS node so that Moqui registers the real-time feed. When you switch it to manual, new real-time events can continue for up to 15 minutes while the cached feed configuration expires.
Event sources determine which OMS changes create aggregate inventory events. The supported sources cover:
Shipment receipts
Point-of-sale item issuances
Physical inventory changes and external inventory resets
Reservation creation and release
If a source displays Not loaded on this OMS, the connector's seed data is missing. The toggle cannot create the missing source. Record the source name and ask the deployment owner to load the matching connector seed data.
Open inventory event history from an aggregate queue row or select Event history in the batch section.
The page presents one Inventory event pipeline in the order that the publisher acts. Use search and the available filters to decide which groups, batches, and rows remain visible by:
Event type and source record
Resolved product name or SKU, when available
Shopify inventory item identifier
Shopify location
The Status filter applies to the inventory-event ledger lifecycle. It does not filter System Message delivery states such as Produced, Sending, Error, or Sent.
The shown badge counts matching ledger rows. When one event matches inside a waiting group or batch, that card continues to show the complete publisher boundary, including its full event count and summed change entries. Do not interpret those totals as a subtotal of only the matching rows.
The ledger's remote identity is the Shopify inventory item. The page also tries to resolve the OMS product and originating business record, such as an order, receipt, cycle count, reset, reservation, or point-of-sale movement. Treat an unresolved enrichment as missing context, not as proof that the source record does not exist.
The following flow separates the inventory-event ledger lifecycle from System Message delivery and recovery.
Within the ledger, lifecycle and delivery are separate state machines:
Open an event to review its source record, resolved originating artifact, actor or note when available, product and SKU, Shopify inventory item, channel, effective Shopify location, publish reason, batch delivery, and ATP calculation. The raw ledger reference remains available when the human-readable source does not contain it.
Waiting to batch puts the oldest group first. By default, a publisher group is scoped to one channel, Shopify inventory item, and event type.
In preview commit 672694b, the page applies the first nonblank groupByFields value that it finds among the cached channel publishers to every waiting channel. The displayed grouping matches actual publication only when the channel publishers use the same grouping fields. Compare groupByFields on every affected channel publisher in Company or Job Manager before you rely on the cards for a mixed-channel audit.
For each group, verify:
Publishes under: The Shopify inventory-adjustment reason. An unmapped event type or a group containing mixed event types falls back to correction; resolve an unexpected fallback before it freezes into a System Message.
Change entries Shopify will receive: Events for the same Shopify inventory item and effective location are summed into the delta that Shopify receives.
Outcome warnings: A zero sum settles as No change
If the page warns that batches can mix event types, the publisher's grouping configuration omits event type. Such a mixed batch must use correction because no more specific Shopify reason describes every event in it.
The history page is an operational monitor, not a permanent archive. It initially loads a recent set plus all pending and unresolved rows, then adds new updates; it is neither a fixed 500-record report nor complete history. The UI labels the settled stage as a five-day tail, but the client does not enforce an age cutoff or remove already cached rows when the backend purge runs. Older settled rows can remain visible until the app cache is cleared, normally at logout or an identity change. Use backend records when an investigation requires a complete or authoritative time window.
Find the batch under In flight and failed.
Select Events on the failed batch.
Record the System Message identifier, target, status, and delivery errors.
The app resends the same frozen payload and idempotency key. Review the resulting Shopify and System Message states before another retry. Repeated retries without correcting the cause still create noise and delay recovery.
The batch dialog fetches up to 50 delivery errors and can retain that cached set after the dialog or page is reopened. Use backend System Message error records to inspect the newest attempt, more than 50 errors, or older error history.
Select Message text when the technical team needs the stored System Message payload. If the dialog says that the payload is still loading, refresh or reopen it before treating the displayed content as exact. Keep credentials and customer data out of screenshots and tickets.
Open the row under Quarantined.
Record its source record, product, inventory item, effective Shopify location, and ATP calculation.
Correct the invalid source data or configuration that produced the terminal result.
Use the approved business workflow to record a new inventory event; the quarantined row itself is never batched again.
Confirm that the Shopify location maps to the intended HotWax facility.
Confirm that Real-time inventory push for this shop is enabled.
Review Reset physical location QOH, including its active state, schedule, parameters, and latest run.
Confirm that the inventory channel maps the intended facility group to the intended Shopify target.
Review the channel's facility membership and sourcing rules.
Confirm that Inventory channel event updates and the relevant event source are active.
Check the oldest waiting group and the publisher row inside the channel card.
Filter history to Waiting and the affected channel.
Find the oldest group in Waiting to batch and record its age.
Review Publish and send event batches on the channel card, including its active state, next run, and recent runs.
Find the batch under In flight and failed and record its System Message identifier.
Select Events to review its delivery errors and contributing events, and use Message text when the stored payload is required.
Check the inventory-batch sender when it is displayed, or the deployed System Message sender in Job Manager.
Open the quarantined event and record its source, product, target, delta, and calculation.
Correct the source row or configuration; the terminal ledger row will not retry.
Record a new event through the approved business workflow.
Run a full aggregate ATP reset when the affected target may remain out of sync.
Identify the missing business event, such as receipt, reservation, point-of-sale issuance, or configuration change.
Find the matching event source.
Distinguish off from Not loaded on this OMS.
Contact the technical team with the Shopify connection, inventory channel, target location, event type, source record, Shopify inventory item, System Message identifier, job-run identifier, timestamps, and the first recorded error when the same discrepancy returns after reconciliation.
Products & InventoryOldest unbatched event: The earliest calculated adjustment still waiting for a batch
The schedule belongs to this channel and does not overlap an unintended publisher.
Select Run now once.
Run a full aggregate ATP reset for that channel.
Review every facility count. A facility with an uncommon type can still contribute inventory and appears in other.
Select Next.
Select the Shopify aggregate location.
Select Create channel.
Save the change.
Run a full aggregate ATP reset for the channel.
Search event history by the old Shopify location. A waiting entry displays Drains the location the channel left; a settled row displays Channel has left this location; event detail displays Retarget drain. An in-flight entry shows the old location without a retarget badge.
Confirm that the old target is cleared and the new target contains the current channel ATP.
Select the channel.
Select Expire under Stop using this channel.
Review the target and channel.
Select Expire channel.
Track the clearing adjustment, whether it is still in Waiting to batch or already assigned to a batch, until its System Message reaches a successful delivery state. After expiration, the channel is no longer available in the Inventory channel filter; search its label, old Shopify location, event type, source record, or inventory item instead. Then verify that the Shopify target is zero.
Find the recorded publisher in Job Manager, pause it, and confirm that both the publisher and aggregate reset jobs remain paused.
Product-facility and product-store facility configuration changes
Facility-group membership changes
Inventory-channel configuration changes
Batch identifier
Ledger status
Inventory channel
Target warnings: Drains the location the channel left means that the change applies to the former Shopify location recorded on the event, not the channel's current target.
Contributing events: The source records and ATP calculations that produced the summed entry.
Correct the connection, access, or data problem that caused the failure.
Select Resend once.
Refresh the batch and confirm its new delivery state. Do not use an unchanged error list as proof that no new attempt occurred.
Run a full aggregate ATP reset for the affected channel when the correction or outage could have left Shopify out of sync.
Verify the new event or reset and compare the Shopify target with current channel ATP.
Run the physical QOH reset only after you confirm its connection scope.
Check pending batches and the produced-message sender when it is displayed.
Open failed batches and record their System Message errors.
Run the channel's full aggregate ATP reset when events were skipped or the target moved.
Use Set up when the publisher is not configured.
Activate and schedule a newly created publisher after you verify its inventoryChannelId.
Confirm Shopify write access and the target location.
Correct the cause, then resend the batch once.
Verify the new event or reset against Shopify.
Run full aggregate ATP resets for affected channels because missed changes are not replayed.
Physical-location inventory
A Shopify location mapped to one HotWax facility
Real-time inventory push for this shop
Reset physical location QOH
Aggregate-channel inventory
One Shopify location that represents a group of facilities
Inventory channel event updates and its event sources
Reset aggregate ATP for the affected channel
Publish and send event batches
A channel card
One inventory channel
Batches calculated aggregate adjustments for delivery
Real-time inventory push for this shop
The selected Shopify connection
Physical inventory changes for that shop are skipped. No backlog is created.
Run Reset physical location QOH.
Waiting to batch
Pending events grouped from the publisher configuration loaded by the page
Review the oldest group, publish reason, summed changes, and target location.
In flight and failed
Produced System Messages that Shopify has not confirmed, including Produced, Sending, and Error
Waiting
The adjustment is calculated but has no System Message
Check the channel card's publisher and its next run.
Batched
The ledger row is assigned to a System Message
When the page displays Inventory data could not be loaded from the OMS, the counts are unavailable, not confirmed zero. Retry the load before you conclude that nothing is pending.
Run now does not save draft parameters. If you select it before Save, the job runs with its previously stored channel and reason. Reopen and verify the saved values before every discard run.
If the channel is created but one or more jobs fail, do not create the channel again. Return to the dashboard and use Set up for each missing job. Run a full aggregate ATP reset before you rely on incremental events for the new channel.
Changes made while the shop-specific push or an individual event source is off do not create a backlog and will not replay later. Reconcile affected targets with the correct full reset before you rely on real-time updates again.
In preview commit 672694b, the Sort control does not reorder the pipeline sections. Waiting to batch remains oldest first, while batches and other event rows retain their operational order. Use the displayed timestamps when sequence matters.
Reset aggregate ATP
A channel card
One inventory channel
Replaces the target location quantity with the channel's current ATP
Process effective-dated inventory changes
Shared sync jobs
OMS-wide
Processes inventory changes that become effective at a later time
Reset physical location QOH
Shared sync jobs
One Shopify connection
Reconciles every mapped physical Shopify location with HotWax QOH
Send produced inventory batches (all Shopify connections)
Shared sync jobs
OMS-wide, when available
Sends produced Shopify inventory-adjustment System Messages
Discard unbatched events (manual, per channel)
Shared sync jobs
One selected channel, manual only, when available
Cancels pending events that must not be sent
Purge old inventory events (all Shopify connections)
Shared sync jobs
OMS-wide, when available
Removes old ledger details according to the connector retention policy
Inventory channel event updates
Every Shopify connection on the OMS
The aggregate event feed changes from real-time push to manual processing.
Reconcile aggregate ATP, enable the feed, then restart every OMS node.
An individual Event source
One class of aggregate inventory change across the OMS
That class of event is not recorded. No backlog is created.
Turn the source on, then run full aggregate ATP resets for affected channels.
Diagnose delivery and resend only after correcting the cause.
Quarantined
Terminal ledger failures that are never automatically batched again
Fix the source rows and record a new event.
Settled in the last five days
Events delivered to Shopify or closed as no change
Use this UI-labelled five-day tail for recent confirmation, not long-term audit history.
Find that batch in In flight and failed or the settled tail and review its delivery state.
No change
The grouped change nets to zero and requires no Shopify mutation
Open the event and review its ATP calculation.
Quarantined
A terminal calculation or grouping result cannot be published
Fix the source data and record a new inventory event; do not wait for an automatic retry.





Instead of creating facilities individually through the Facilities App, retailers can upload a CSV file for all facilities.
To import a Facilities CSV, go to the EXIM page under the Imports tab in the Warehouse section and click on Facility MDM. Similarly, to export facilities for any specific reason, retailers can navigate to the Export tab in the Facilities MDM within the Warehouse section.
When importing facilities, some fields need to be filled mandatorily, while others can be filled for further reference. Here is the list of mandatory fields:
Instead of creating each user individually through the User App, retailers can upload a CSV for all the Users.
To import an Employee CSV, go to the EXIM page under the Imports tab and click on Employee MDM.
When importing Employee data, some fields need to be filled mandatorily, while others can be filled for further reference. Here is the list of mandatory fields:
HotWax Commerce provides two convenient options for managing the facility calendar: through the Facilities App or via the Calendar MDM. Retailers can import a generic calendar based on the store's operating hours. Later, it can be linked to the facility using the Import Store Calendar Assoc under the Imports tab in the MDM section.
To import a Calendar CSV, go to the EXIM page under the Imports tab in the MDM section and click on Calendar MDM. When importing a calendar, some fields need to be filled mandatorily. Here is the list:
In HotWax Commerce, retailers can set the operating hours of a facility in two ways:
From the Operating Hours setting in the Settings page of the Facilities App.
From the Import Calendar Assoc in MDM.
The Import Calendar Assoc is used to set the operating hours of a particular facility. Retailers can find this under the Imports tab in the MDM section.
When importing the CSV, some fields need to be filled mandatorily. Here is the list:
This import in HotWax allows retailers to update inventory based on the identification type used in external systems. By importing a CSV file into HotWax, inventory adjustments are marked.
This import records based on the given delta and updates both (Available to Promise) and QOH (Quantity on Hand). The MDM feature can set inventory to 0 but cannot make it negative.
Example: When an Inventory Reset file is provided by an external system (e.g., NetSuite), and Product A's inventory is updated to 5 while HotWax currently shows 10, a variance of (+5) will be logged, increasing the total inventory to 15. Similarly, if the file specifies a variance of -5, the system's inventory will adjust to 5. When importing Inventory Adjustments, some fields need to be filled mandatorily, while others can be filled for further reference. Here is the list of mandatory fields:
This import is used by retailers to schedule restocking for a product at future scheduled date and time, making the inventory available in HotWax Commerce and on Shopify at their preferred times.
When scheduling a restock, certain mandatory fields should be filled. These fields are listed below:
When NetSuite (or any third-party system) is used as a Warehouse Management System (WMS), it reserves inventory for orders that need to be fulfilled. To sync inventory with HotWax Commerce OMS based on the sellable inventory in NetSuite (or any third-party system of records for inventory), the Reset Inventory by ATP method is used. This process updates HotWax OMS by comparing the quantity in the import file with the system's current ATP. The difference (delta in ATP) is applied to both ATP and QOH (Quantity on Hand) in HotWax OMS.
Example:
For Product A at a store:
Initial QOH: 10 units
Initial ATP: 5 units
File’s Quantity: 4 units
After resetting:
ATP: 4 units (adjusted by the delta of -1).
QOH: 9 units (adjusted by the delta of -1).
This method ensures accurate syncing of sellable inventory while accounting for reserved stock in NetSuite.
The Reset file contains the following fields:
The Reset Inventory by QOH method is used when you want to sync the physical inventory from a third-party system, such as NetSuite, to HotWax Commerce OMS without considering inventory reservations. This ensures that the QOH (Quantity on Hand) in HotWax matches the physical inventory recorded in the external system. When the reset file is imported, the OMS compares the QOH value in the file with its systemic QOH. The difference (delta in QOH) is then applied to both QOH and ATP (Available to Promise), ignoring any reservations.
Example:
For Product A at a store:
Initial QOH: 10 units
Initial ATP: 5 units
File’s Quantity: 4 units
After resetting:
QOH: 4 units (adjusted by a delta of -6).
ATP: -1 unit (adjusted by the same delta of -6).
This method ensures a direct update of physical inventory levels in HotWax OMS.
When the “RESET INVENTORY BY QOH” file is uploaded it has some fields which are listed below:
The Reset Inventory by ATP & QOH method is used when you want to update both QOH (Quantity on Hand) and ATP (Available to Promise) in HotWax Commerce OMS, while maintaining the difference between them. This method accounts for reservations, safety stock, and network thresholds configured in HotWax OMS when recalculating ATP.
Example:
For Product A
Initial QOH: 15 units
Initial ATP: 10 units
Difference (QOH - ATP): 5 units
File’s Quantity: 20 units
After resetting:
New QOH: 20 units (updated to match the file).
New ATP: 15 units (adjusted to retain the difference of 5 units).
This approach ensures accurate updates to inventory levels while respecting the system's inventory policies and calculations.
When the “RESET INVENTORY BY ATP & QOH” file is uploaded it has some fields which are listed below:
If the admin team wants to export orders based on multiple filters or criteria, they can navigate to their OMS instance. The default page that opens is the “Find Order Page”. From there, they can apply filters and then export the CSV file of orders.
When exporting the CSV it gives some major fields which are listed here :
This is used to export inventory details such as Product Id, Facility Id, ATP, Minimum Stock from HotWax. To export an Inventory CSV file, go to the EXIM page, navigate to the Exports tab in the Warehouse section, and click on Import Inventory Config MDM.
When exporting CSV fields are in this way:
Inbound shipments are used to receive inventory at a facility or warehouse. Majorly inbound shipments are created in the ERP and synced to HotWax Commerce via API, they can also be manually imported using MDM. To import a Shipment CSV file, go to the EXIM page, navigate to the Imports tab in the Warehouse section, and click on Shipment.
In situations where retailers want to verify or edit their upcoming shipments, they can do so by exporting the Shipment CSV from the Warehouse section under the Exports tab. When importing shipment some fields need to be filled mandatorily, while others can be filled for further references. Here is the list of mandatory fields:
Retailers can manually apply safety stock at products per location by importing a CSV. To import a Safety Stock CSV file, go to the EXIM page, navigate to the Imports tab in the Warehouse section, and click on Safety Stock MDM.
When importing safety stock some fields need to be filled mandatorily, while others can be filled for further references. Here is the list of mandatory fields:
While most Purchase Orders are created in ERP and synced with OMS through automated jobs, in some cases, when a retailer intends to upload or download a PO manually, they can do this using EXIM. To import a Purchase Order CSV file, go to the EXIM page, navigate to the Imports tab in the Procurement section, and click on Purchase Order MDM.
Similarly, users can export the CSV of Purchase Order in the Procurement section under the Exports tab.
When importing Purchase Order some fields need to be mandatorily filled, while others can be filled for further references. Here is the list of mandatory fields:
PO ATP (Purchase Order Available to Promise) refers to the pre-sellable inventory from a purchase order promised for delivery by a vendor and available for pre-orders.
Retailers may need to update PO ATP when they want to adjust the pre-sellable inventory on a purchase order after it's already been uploaded and do not want to make their entire upcoming inventory available for pre-orders on eCommerce. To import a PO ATP CSV, go to the EXIM page > Imports tab > Procurement section > PO ATP. Allowing retailers to adjust promised inventory as needed.
Similarly, users can export the CSV of PO ATP from the EXIM page in the Procurement section under the Exports tab. When importing PO ATP, some fields need to be filled mandatorily, while others can be filled for further reference. Here is the list of mandatory fields:
Instead of updating ERP codes individually through the ViewProduct page, retailers can upload a CSV file for multiple products at once.
To import a Product ERP Code CSV, go to the EXIM page under the Imports tab in the PIM section and click on Create and Update Product ERP Code.
When importing product ERP codes, certain fields must be filled in mandatorily. Below is the list of required fields:
1
facility-id
Unique identifier for the facility.
2
external-id
External identifier for the facility.
3
facility-name
The name of the facility.
1
party-id
Unique identifier for the party (individual or organization).
2
external-id
1
calendar-id
A unique identifier for the calendar used to manage facility schedules.
2
1
store-id
Unique identifier for the store.
2
calendar-id
1
facilityId
Unique identifier for the facility.
2
externalFacilityId
1
Shopify Product SKU
Unique ID for a Product in Shopify.
2
Restock Quantity
1
productId
Unique identifier for the product.
2
idValue
1
productId
Unique identifier for the product.
2
idValue
1
productId
Unique identifier for the product.
2
idValue
1
orderId
Unique identifier for the order.
2
orderName
1
product-id
Unique identifier for each product.
2
internal-name
1
shipment-id
Unique identifier for the shipment.
2
external-shipment-id
1
facility-id
Unique identifier for the facility within the system.
2
facility-external-id
1
external-id
A unique identifier for the record in an external system or database.
2
product-store-id
1
po-id
The unique identifier for the Purchase Order (PO) within the system.
2
po-external-id
1
productId
HC Unique identifier for the product.
2
id-type
productId,id-type id-value,good-identification-type,good-identification-value
100182,UPCA, 69684750301, ERP_ID,31-1350productId,id-type id-value,good-identification-type,good-identification-value
100182,UPCA, 69684750301, ERP_ID,31-13514
address-line-1
Primary address line of the facility.
5
address-line-2
Secondary address line of the facility, if applicable.
6
city
The city where the facility is located.
7
zip-code
Zip or postal code of the facility's location.
8
state
State or province of the facility's location.
9
country
Country where the facility is located.
10
latitude
Latitude coordinate of the facility's location.
11
longitude
Longitude coordinate of the facility's location.
12
phone-number
Phone number for contacting the facility.
13
Contact email address for the facility.
External system reference ID for integration purposes.
3
first-name
First name of the party.
4
last-name
Last name of the party.
5
enabled
Indicates if the account is active (true/false).
6
relationship-status
Current status of the party’s relationship (e.g., active, inactive).
7
user-login-id
Login ID for the user.
8
password
Password for user authentication.
9
party-classifications
Classifications assigned to the party (e.g., customer, supplier).
10
party-identifications
Identifications or IDs associated with the party.
11
relationships
Relationships linked to the party (e.g., parent-child relationships).
description
A brief description of the calendar or its purpose.
3
monday-start
The start time for operations on Monday.
4
monday-capacity
The maximum capacity or limit for operations on Monday.
5
tuesday-start
The start time for operations on Tuesday.
6
tuesday-capacity
The maximum capacity or limit for operations on Tuesday.
7
wednesday-start
The start time for operations on Wednesday.
8
wednesday-capacity
The maximum capacity or limit for operations on Wednesday.
9
thursday-start
The start time for operations on Thursday.
10
thursday-capacity
The maximum capacity or limit for operations on Thursday.
11
friday-start
The start time for operations on Friday.
12
friday-capacity
The maximum capacity or limit for operations on Friday.
13
saturday-start
The start time for operations on Saturday.
14
saturday-capacity
The maximum capacity or limit for operations on Saturday.
15
sunday-start
The start time for operations on Sunday.
16
sunday-capacity
The maximum capacity or limit for operations on Sunday.
Unique identifier for the calendar associated with the store.
3
from-date
Start date for the calendar's validity period. Users can use MM-DD-YYYY, DD-MM-YYYY, or the standardized yyyy-MM-dd HH:mm:ss format based on their requirements.
4
thru-date
End date for the calendar's validity period. Users can use MM-DD-YYYY, DD-MM-YYYY, or the standardized yyyy-MM-dd HH:mm:ss format based on their requirements.
Identifier used for the facility in external systems.
3
idType
Type of identifier being referenced (e.g., product).
4
idValue
Specific value of the referenced identifier.
5
availableDelta
Change in the available quantity for the facility.
6
locationSeqId
Sequence ID of the location within the facility.
7
varianceReasonId
Identifier for the reason behind a variance in inventory or data.
8
comments
Additional remarks or notes related to the record.
The quantity of items restocked.
3
Schedule
Allows selecting the time.
4
Facility ID
Unique ID for a facility where restock is scheduled.
5
Product Store
The name of the Product Store.
6
Shopify Store
Name of the Shopify Store on which the inventory will change.
7
Restock Name
Name for the restock.
Value corresponding to the identification type.
3
facilityId
Identifier for the facility location.
4
locationSeqId
Sequence ID for the specific storage location.
5
quantity
Number of items involved in the action.
6
reason
Explanation for the inventory adjustment.
7
comments
Additional notes or remarks.
Value corresponding to the identification type.
3
facilityId
Identifier for the facility location.
4
locationSeqId
Sequence ID for the specific storage location.
5
quantity
Number of items involved in the action.
6
reason
Explanation for the inventory adjustment.
7
comments
Additional notes or remarks.
Value corresponding to the identification type.
3
facilityId
Identifier for the facility location.
4
locationSeqId
Sequence ID for the specific storage location.
5
quantity
Number of items involved in the action.
6
reason
Explanation for the inventory adjustment.
7
comments
Additional notes or remarks.
Name or description of the order.
3
orderItemSeqId
Sequential identifier for the order item.
4
productId
Unique identifier for the product.
5
parentProductName
Name of the parent product associated with the order item.
6
productName
Name of the product in the order.
7
internalName
Internal name of the product within the system.
8
quantity
Quantity of the order item.
9
orderItemStatusId
Status identifier for the order item.
10
orderItemStatusDesc
Description of the order item status.
Internal reference name for the product.
3
product-id-value
Specific value assigned to the product ID for mapping or identification.
4
facility-id
Unique identifier for the facility (e.g., warehouse or store) where the product is managed.
5
external-id
Identifier for the product used in external systems or integrations.
6
ATP
Available to Promise - quantity of product available to fulfill orders.
7
minimum-stock
The minimum required stock level to prevent stockouts.
8
inv-group-member
Specifies the inventory group or category the product belongs to.
External identifier for the shipment, often used in third-party systems.
3
shipment-type
Type of shipment (e.g., inbound, outbound, transfer).
4
shipment-status
Current status of the shipment (e.g., pending, in-transit, delivered).
5
origin-facility-id
ID of the facility from which the shipment is originating.
6
destination-facility-id
ID of the facility where the shipment is being delivered.
7
product-id
Unique identifier for the product being shipped.
8
id-type
Type of ID used for identifying the product (e.g., SKU, barcode).
9
product-sku
SKU (Stock Keeping Unit) for the product being shipped.
10
quantity
Quantity of the product being shipped.
11
serial-number
Serial number of the product being shipped, if applicable.
12
order-id
Unique identifier for the order related to the shipment.
13
tracking-number
Unique tracking number assigned to the shipment for tracking its status.
External identifier used to represent the facility in external systems.
3
product-id
Unique identifier for the product in the system.
4
product-sku
Stock Keeping Unit (SKU) of the product for tracking and inventory management.
5
facility-safety-stock
Quantity of safety stock reserved for walk-in customers at the facility.
The unique identifier for the product store where the item is located.
3
facility-id
The identifier for the facility handling the product.
4
external-facility-id
The unique external identifier for the facility in another system.
5
product-SKU
The unique Stock Keeping Unit (SKU) identifier for the product.
6
quantity
The available quantity of the product in stock or expected.
7
atp
The quantity of the product that can be promised for delivery.
8
arrival-date
The expected date when the product will arrive at the facility or store. Users can use MM-DD-YYYY, DD-MM-YYYY, or the standardized yyyy-MM-dd HH:mm:ss format based on their requirements.
The unique identifier for the Purchase Order in an external system.
3
po-item-seq-id
The sequence identifier for items within the Purchase Order.
4
product-id
The unique identifier for the product in the system.
5
product-sku
The Stock Keeping Unit (SKU) represents the product.
6
ATP
Available-to-Promise quantity for the product based on current inventory data.
Secondary identifier type such as UPCA or SKU.
3
id-value
The value corresponding to the identifier type.
4
good-identification-type
The type of identification. For ERP codes, the value should always be ERP_ID.
5
good-identification-value
The ERP code assigned to the product.
Disable a facility by removing it from active inventory and fulfillment workflows. The facility record remains available for history.
Confirm that the facility has no orders that still require fulfillment and that the business has approved its removal from Product Stores, groups, and integrations.
Open the Company App.
Go to Facilities > Find.
Select the facility.
Mark the facility Permanently closed when the closure is permanent.
Turn off each Sell inventory online group.
Set fulfillment capacity to No capacity.
Turn off Allow pickup.
Turn off Use native fulfillment app.
Turn off Generate shipping labels.
Unlink Product Stores that no longer use the facility.
Open External mappings and remove obsolete Shopify or custom mappings.
Open Groups and remove the facility from active routing and channel groups.
Confirm that:
The facility contributes no online inventory
New orders bypass the facility
Pickup and native fulfillment are off
Product Store, group, and external mappings match the closure plan
Keep the facility record for historical orders and inventory records.
Configure the organizations, stores, integrations, facilities, and users that operate HotWax Commerce.
Use the Company App to set up and maintain an Order Management System (OMS) tenant. The app brings the main administration tasks into one place.
Learn how to create customized packing boxes in HotWax Commerce, ensuring precise shipping cost calculations and accurate label generation.
HotWax Commerce lets users define these boxes for accurate shipping calculations and label generation, ensuring alignment with retailer packaging standards.
This guide outlines a step-by-step process for retailers to establish and manage boxes within HotWax Commerce.
Users can create shipping boxes through the following steps in HotWax OMS:
Navigate to HotWax OMS > Settings > General Settings.
Scroll to the Shipment Box section.
Review verified access and action permissions for the current Job Manager app.
Job Manager uses app access, administrator permissions, and backend action checks.
Assign JOB_MANAGER_APP_VIEW to users who need to open Job Manager.
The app checks this permission during sign-in. A user without app access cannot use the operational pages described below.
Assign staff to the facility and select the role they perform at that location.
Open the Company App.
Go to Facilities > Find.
Select the facility.
Open the Job Manager app
COMMON_ADMIN
Create, edit, save, and delete Message types and Remote systems, including protected configuration fields
COMMERCEUSER_VIEW
Use Go to OMS from Settings when that button is available in the connected environment
A service job can show Permission Group on its Job Details Overview tab. The backend can require this job-specific permission before a user runs or manages that job.
Grant only the permission group required for the user’s operational role.
After app access is granted, the current menu contains:
Dashboard
Catalog
Run history
File history
Manual uploads
Message history
Message types
Remote systems
Documents
Export history
Settings
Some actions also depend on record state and backend authorization. The app shows only actions available for the current user and record.
Remote-system definitions can contain secrets. Give COMMON_ADMIN only to users who maintain integration configuration.
Do not include secrets, payloads, or customer data in permission screenshots or access requests.
See the Job Manager guide for task-based instructions.
JOB_MANAGER_APP_VIEW
Open the Staff tab.
Click Staff Member.
Search for the user.
Select the facility role.
Save the assignment.
The staff list shows the user, assigned role, and assignment date.
Open the Staff tab.
Find the user.
Click the remove action.
Confirm the change.
Removing a facility assignment leaves the user account and Security Groups unchanged.
View the internal organization hierarchy and manage parent-child relationships
Shopify
Maintain connections, mappings, Product Sync, inventory sync, and Order Sync
Klaviyo
Connect Klaviyo and review the notification integration
NetSuite
Configure the connection and maintain integration mappings
Facilities
Create and manage facilities, facility groups, locations, staff, and parking queues
Users
Create users and manage Security Groups and App Permissions
Settings
Review account, instance, version, timezone, and data-fetch information
The menu reflects your permissions. Contact an administrator when a required page is missing.
Follow Set up HotWax Commerce with Shopify for the complete standard Shopify-only implementation journey.
Use these guides for regular administration:
Product Store
Create a brand or storefront, edit store settings, or clone settings between stores
Organizations
Click Add to open the box creation form and enter the details:
Shipment Box ID
Unique identifier for the box in HotWax Commerce.
Description
Descriptive name, e.g., "Standard Medium Box".
Dimension Unit of Measurement
Click Add to save the box.
Use the Edit (pencil) icon to update box dimensions if needed.
The added box sizes can now be mapped in the shipment carrier setup page.
Retailers often integrate with multiple shipping carriers. When sending box details to a carrier, associating them helps the carrier identify the box size and calculate shipping costs accurately. Users can associate shipment boxes for carriers through the following steps in HotWax OMS:
Navigate to HotWax OMS > Carriers.
Select the carrier you want to configure.
Find the Carrier Shipment Box section.
Click Add to associate a shipment box with this carrier.
Select the Shipment Box from the dropdown (created in the previous step).
Enter the Packaging Code provided by the shipping carrier. This is essential for carrier systems to identify the box type.
Click Add to save the configuration.
These configured boxes are now ready for selection by packers during the order fulfillment process, ensuring accurate packaging aligned with specific carriers for efficient shipping.
Incorrect box selection may result in extra shipping charges for retailers.
Connect Klaviyo and review its HotWax Commerce notification use cases.
The Klaviyo integration sends supported HotWax Commerce order events to Klaviyo for customer communication.
The Klaviyo page identifies notification use cases such as:
Buy Online Pick Up In Store order ready for pickup
Pickup order completion
Pickup order rejection
Order cancellation events
Confirm the notification design and Klaviyo templates with the implementation team before connecting a production account.
Company requires an OMS-side Unigate tenant before it can create Klaviyo connections. When the page shows Klaviyo isn't ready on this instance yet, ask an administrator to provision the tenant from OMS Admin, then return and click Check again.
Open the Company App.
Go to Klaviyo.
Click Connect Klaviyo.
Keep API keys and other connection secrets out of screenshots and support tickets.
Go to Klaviyo.
Select the connection.
Confirm the endpoint, masked API key, tenant, and active status.
Select the Product Store.
Validate the first event with a test order and confirm receipt in Klaviyo before enabling customer-facing communication.
An event can be owned by only one Klaviyo connection. When another connection owns the event, disable it there before assigning it to the current connection.
Disconnecting removes the saved API key and stops every email event owned by the connection.
Open the connection.
Review the number of active email events.
Click Disconnect.
When active events exist, enter DELETE.
The disconnect action provides no undo option. Reconnecting requires the API key again.
The HotWax Commerce Receiving app is designed specifically for store associates to receive shipments arriving at their facilities. Since the app facilitates manual scanning and receiving by store associates, no specific permissions are required to access the app or to perform basic receiving tasks. However, to complete and close shipments, higher-level permissions are required. This ensures that only store managers, after verifying that the items have been received as requested and addressing any discrepancies, can finalize the shipment process.
Below is a list of all the actions available in the Receiving App, along with the specific permissions needed to perform them.
The HotWax Commerce Cycle Count App is designed for store associates and the operations team, enabling them to efficiently perform inventory cycle counts. Store associates can conduct cycle counting within their stores, while the operations team can manage cycle counts across multiple locations.
All actions within the app require specific permissions, as outlined below.
Facility groups define where a facility participates in pickup, online inventory, brokering, shipping, and fulfillment workflows.
Open the Company App.
Go to Facilities > Groups.
Create a store or warehouse and complete its initial configuration.
Create a facility for every physical or operational location that holds inventory, fulfills orders, receives goods, or supports pickup.
Open the Company App.
Go to Facilities > Find.
Configuring shipping methods in HotWax Commerce involves setting up carriers, shipment methods, and gateways to ensure accurate rate shopping and label generation.
: Learn how to create carriers and link shipment methods in the Fulfillment app.
: Configure credentials for carrier APIs to generate shipping labels.
: Define standard package dimensions for accurate weight and rate calculations.
1
View Draft Counts Page
COMMON_ADMIN
Allows users to view draft cycle counts on the draft count page.
2
View Assigned Count Page
COMMON_ADMIN
Grants access to view assigned counts on the assigned page.
3
View Pending Review Page
COMMON_ADMIN
Enables users to view counts in pending review.
4
View Closed Count Page
COMMON_ADMIN
Allows users to view the closed count page.
5
View Settings Page
COMMON_ADMIN
Grants access to the settings page.
6
View Count Details
FULFILL_INVCUNT_ADMIN OR INV_COUNT_ADMIN
Grants users access to view count details.
7
Update Product Identifiers Setting
COMMON_ADMIN
Allows updates to product identifiers settings.
8
View Cycle Count App
INVCOUNT_APP_VIEW
Grants users permission to view the overall Cycle Count App.
9
Perform Cycle Count
FULFILL_INVCUNT_ADMIN
Grants users permission to perform Cycle Count.
Save the connection.
Return to the Klaviyo list and confirm that the connection appears.
Turn on each email event that this Klaviyo connection should send.
Enter the customer-facing subject for the enabled event.
Repeat for each Product Store.
Click Disconnect Klaviyo.
Select the facility type, such as store or warehouse.
Enter the facility name.
Review the generated internal ID and enter an external ID when required.
Click Create Facility.
Enter the street address, city, country, state, and postal code.
Enter latitude and longitude, or use the generate action after the address is complete.
Save the address.
Accurate coordinates support distance-based routing and pickup-location search.
Review these settings:
Product Store: Associates the facility with the brands it supports
Sell inventory online: Adds facility inventory to an approved sales-channel group
Allow pickup: Makes the facility eligible for pickup workflows
Use native fulfillment app: Indicates whether the facility uses HotWax Commerce fulfillment
Generate shipping labels: Enables supported label generation
Days to ship: Records the facility lead time
Create a facility login only when the facility uses an approved shared-login workflow.
Click Save Configurations when the required values are complete. You can return to Manage facility details to add remaining configuration.
HotWax Commerce provides merchants with a suite of Enterprise User Apps to ensure seamless omnichannel operations such as same-day BOPIS, Ship From Store, and Pre-Order management. User access in HotWax Commerce is tailored based on employees' roles and designations, and customized permission parameters. To ensure that some users can execute actions while others are granted either view-only access or no access to certain or all information within an app's interface.
By enabling or disabling app features and actions by the logged-in user's granted authorizations, HotWax Commerce provides superior security clearance management. This granular control guarantees that only authorized employees have access to specific app features, thereby assisting retailers in preventing unintended alterations.
1
View Shipments Tab
-
Allows users to view a list of shipments arriving at their facility.
2
View Returns Tab
-
Enables users to view and manage shipments returning to the facility.
3
View Purchase Order Tab
1
View Shipment Details
-
Allows users to view detailed information about a specific shipment.
1
Select Product Identifier
COMMON_ADMIN
Allows users to select the product identifier used to view items within the app.
Filter by group type.
Select a group or use its edit action.
Click the create button.
Enter the group name.
Review the generated internal ID.
Select the group type.
Select the Product Store when the group is store-specific.
Enter a description.
Save the group.
The internal ID becomes permanent after creation.
Use the group edit action to change its name, description, group type, or Product Store links. Confirm the routing and inventory impact before deleting a group.
Open the group.
Review current facilities.
Add individual facilities or use Include all when every eligible facility belongs in the group.
Drag facilities into the required sequence when the group order affects routing.
Remove facilities that are no longer eligible.
Save the changes.
Pickup
Facilities offered for Buy Online Pick Up In Store
Brokering
Facilities available together in an Order Routing brokering rule
Channel facility group
The same facility can belong to more than one group. Review all group memberships from the facility Groups tab.
Unit for dimensions (e.g., Inches, Centimeters).
Box Dimensions
Input width, height, and length.
Internal locations describe where inventory is stored, received, staged, or picked inside a facility.
Open the Company App.
Go to Facilities > Find.
Select the facility.
Open the Locations tab.
Click Internal Locations.
Select the location type:
Bulk
Pick/Primary
Receiving Bay
Enter the applicable area, aisle, section, level, and sequence.
Save the location.
Use sequence to represent the approved pick order inside the facility.
Open the location overflow menu.
Click Edit Location.
Update the fields.
Save the changes.
Confirm that the location is no longer used by an active inventory workflow.
Open the location overflow menu.
Click Remove Location.
Confirm the removal.
HotWax Commerce’s Transfers App enables operations managers to create, track, and manage Transfer Orders across multiple facilities. The app provides a centralized view of all transfer orders, showing where products are being sent, received, and their current status.
Below is a list of all the actions available in the Transfers App, along with the specific permissions needed to perform them.
1.
View and maintain the internal organization hierarchy in Company.
Organizations represent the internal companies and divisions that own Product Stores and facilities. Use the hierarchy to understand parent-child relationships before changing an organization.
Organization management is available to users with the required party-management permission.
Open the Company App.
Go to Organizations.
Search by organization name or ID when needed.
Expand the hierarchy to review parent and child organizations.
Identify the organization marked Primary.
Select an organization to open its details.
The list reports hierarchy anomalies instead of hiding affected organizations. Resolve an anomaly before making another hierarchy change.
The details page shows:
Organization name and ID
Primary organization status
Current parent
Child organizations
Owned facilities appear for reference. This version excludes facility-owner editing.
Go to Organizations.
Click the create button.
Enter the organization name.
Review the generated organization ID and update it when needed.
If creation reports a partial update, pause before retrying. Refresh organization data and confirm the created records, then retry or contact support.
Open the organization.
Click Edit next to the organization name.
Enter the new name.
Save the change.
The organization ID stays the same after a rename.
Open the child organization.
Find the hierarchy section.
Select the new parent.
Click Save.
Company blocks a change that would create a hierarchy cycle. If the current hierarchy is ambiguous, resolve the reported anomaly before changing the parent.
Review Company account, instance, version, timezone, and data-fetch information.
Use Settings to confirm which account, OMS instance, app version, and timezone are active. The page also shows the last successful data fetch for configuration used by Company.
Open the Company App.
Go to Settings.
Confirm:
Signed-in user
OMS instance
OMS release
Company app version and build
Current timezone
Include the instance, release, app version, and build when reporting an issue. Keep authentication tokens and credentials out of the report.
Open the timezone setting.
Select the timezone used to display dates and times.
Save the change.
Reopen an affected page and confirm the displayed time.
The setting changes displayed times while leaving Shopify shop and facility timezones unchanged.
Data Fetch Status lists the configuration areas used by Company and shows their row counts and last successful fetch times.
Use it when the UI is missing a recently changed Product Store, facility, mapping, permission, or integration record.
Find the affected data area.
Review its last successful fetch time.
Use the available refresh action for reference data.
Return to the affected page.
Some live activity refreshes only while its page is open. Open the relevant Product Sync, Order Sync, or history page before reporting stale activity.
Contact support when:
A refresh reports an error
The last successful fetch remains unchanged after a refresh
The refreshed row count is unexpectedly zero
The current UI still shows old data after a successful refresh
Provide the affected area, last successful fetch time, instance, release, and app build.
Parking queues are virtual facilities that hold orders outside an active fulfillment location. Use only the queues included in the order-routing design.
Open the Company App.
Go to Facilities > Parking.
Click the create button.
Enter the name, internal ID, and description.
Save the parking queue.
Open the parking overflow menu.
Click Rename.
Enter the new name.
Save the change.
Open the parking overflow menu.
Click Archive.
Confirm the action.
To restore a queue:
Open archived parking.
Find the queue.
Click the unarchive action.
Confirm that no active routing rule depends on a queue before archiving it.
The available queues and their automation depend on the tenant's routing configuration.
Facilities whose inventory contributes to a sales channel
Generate shipping label
Facilities that use supported HotWax Commerce label generation
Same-day shipping
Facilities that can meet the same-day fulfillment promise
OMS fulfillment
Facilities that use HotWax Commerce fulfillment
Staging
Select the parent organization.
Save the organization.
Confirm that the new organization appears under the selected parent.
Confirm the new name in both the details page and hierarchy.
Return to Organizations and confirm the new position.
-
Allows users to view arriving purchase order (PO) shipments.
2
Scan Items
-
Enables users to scan items that are part of the shipment.
3
Add Items
RECEIVING_ADMIN
Allows users with higher permissions to add unexpected items to the shipment.
4
Receiving Items
-
Allows users to receive items listed in the shipment.
5
Product Image
-
Enables users to view and enlarge the product image associated with the shipment.
6
View Receiving History
-
Allows users to view the history of receiving activities related to the items in the shipment.
7
Receive and Close Shipments
RECEIVING_ADMIN
Allows users with higher permissions to receive and close the shipment after verifying all items.
2
Manage All Receiving Operations
COMMON_ADMIN
Allows users to manage all receiving operations.
3
View Receiving App
RECEIVING_APP_VIEW
Grants users permission to view the Receiving App.
4
Go To OMS
COMMERCEUSER_VIEW
Allows users to access HotWax OMS.
5
Force Scan
COMMON_ADMIN
Allow received quantity to be incremented by scanning the barcode of products.



Go To OMS
COMMERCEUSER_VIEW
Allows users to access OMS directly from the Transfers App.
View Transfers App
TRANSFERS_APP_VIEW
Allow users to view the Transfers App.
1.
Update Product Identifier setting
COMMON_ADMIN
Allows users to choose a product identifier to view products using their preferred identification method, facilitating easier product management.
2.
Configuration facility
Holds inventory reserved as a company-level threshold
General operations parking
Separates historical or non-operational imported orders
BOPIS rejected queue
Holds pickup orders rejected by the selected store
Unfillable hold parking
Holds unfillable orders outside the normal cancellation path
Unfillable parking
Holds orders for another brokering attempt
Brokering queue
Holds orders until the next brokering run
Pre-order parking
Holds pre-orders until their inventory and release conditions are ready
Backorder parking
Holds orders waiting for replenishment
This guide walks you through setting up rate shopping in HotWax Commerce.
In Shopify, retailers can choose from various shipping methods, which are then presented to customers during checkout. Retailers may offer customers shipping based on Service Level Agreements (SLAs) such as standard shipping or specific shipment methods like FedEx Air or FedEx Ground. Customers select their preferred method, and charges are applied accordingly.
In HotWax Commerce, the shipping method mapping can be different based on the retailer's requirements.
For retailers with agreements with carrier service providers, shipping method options are directly offered to customers. Customers can then choose their preferred shipping method, and charges are applied accordingly. In such scenarios, carrier providers automatically offer retailers the best shipping prices. In these instances, HotWax simplifies the process by only requiring the mapping of shipping methods from Shopify to HotWax for generating shipping labels. For instance, if a customer selects FedEx Two-Day Shipping on Shopify, this method would have been pre-mapped by the retailer, including rates, zones, and other pertinent information. When an order transitions from Shopify to HotWax, this shipping method seamlessly transfers over.
Retailers need to create carrier and shipment methods in HotWax Commerce and ensure that product store shipment mapping is also completed for the existing shipment methods. Learn how to map carrier shipment methods here.
Once shipping methods are created, retailers have to also map Shopify Shop carrier shipment methods to ensure all the shipment methods coming from Shopify are mapped with the respective carrier shipments. Follow these steps to map Shopify Shop carrier shipments:
Login: Login to your HotWax Commerce Instance and navigate to Shopify Shop from the Hamburger menu.
Select Shop: Select the Shopify Shop for which you want to create the mapping
Navigate to Carrier Shipments: Navigate to the Shopify Shop carrier shipment section
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 shipping label generation specifically for those carriers associated with the selected facility. To learn more about how to add a carrier party to the facility, read our
Once the shipment method is saved and mapped, HotWax Commerce runs a carrier-specific API call to generate a shipping label based on the shipment method selected by the customer during checkout. Since all shipment methods are mapped, HotWax Commerce directly generates the shipping label based on the shipment method, shipping distance, and the box size from the carrier.
For retailers without specific carrier integrations, offering customers the choice between standard and expedited delivery is common practice. Default delivery charges are applied for both options, but actual shipping costs may vary depending on the carrier and the chosen method. For example, if a customer selects Standard Shipping and the retailer charges $20, but the carrier offers Air Shipping for $30 and Ground Shipping for $10, it's crucial to select the most cost-effective option, such as Ground Shipping. HotWax Commerce facilitates this through rate shopping, querying different service levels, or shipping methods provided by carrier partners to find the best option for each shipment.
Retailers who want to rate shop need to enable the rate shopping configuration for their Product Store.
Log in: Access your HotWax Commerce instance.
Navigate: Go to the Settings section from the main menu.
Select Store: Choose the relevant Product Store.
Add Configuration: Under the store settings section, click on the Add button.
Shipping methods are created and mapped with the carrier, product store, and facility in . For shipping based on SLA, retailers don’t have to map the Shopify shop carrier shipment methods.
Setting Service Level Agreements (SLAs) defines delivery expectations for shipment methods.
Navigate to the Fulfillment App > Carrier & Shipment Methods.
Select the NA carrier (or the relevant carrier).
Go to the Methods tab.
Locate the shipment method and click on the Edit icon (or relevant configuration button).
HotWax Commerce streamlines shipping label generation by automating the process based on order specifics like shipping method, box size, and delivery distance. Retailers need to associate carrier ID with the Facility to generate shipping labels with rate shopping. for more information.
The system initiates an API call in the background when a picklist is created, leveraging SLA data to fetch shipping methods and charges. This ensures efficient selection of the most cost-effective shipping method within the specified delivery timeframe, saving time and resources for retailers.
Picklist Creation: When a store manager creates a picklist in HotWax Commerce, the DoRateShopping/ service initiates in the background.
API Call Execution: This service triggers an API call to the endpoint of the shipping carrier or aggregator, based on the configuration.
Fetching Shipping Methods: The API call retrieves available shipping methods and associated charges, considering the specified SLA for order delivery. For example, if the SLA for order delivery is 7 days, the API call fetches all the shipping methods available to deliver the order in 5-7 days.
Set up inventory channels and publish physical and aggregate inventory to Shopify.
Use the Order Routing Rules and Company apps together to set up multichannel inventory:
Use Sourcing in the Order Routing Rules app to define inventory channels, assign facilities, and configure the rules that calculate online available-to-promise inventory.
For connections using the Company inventory-event model, use Inventory sync in the Company App to map a channel to a Shopify aggregate location, monitor outbound events and jobs, and reconcile inventory.
This page covers outbound HotWax-to-Shopify publication after cutover. For the one-time inbound Shopify-to-HotWax starting inventory seed, follow .
Before you schedule publication, confirm the model deployed for the Shopify connection. The Order Routing Publish tab configures the JOB_UL_INV publishing path. Company Inventory sync configures the event-driven physical-QOH and aggregate-ATP paths. Do not activate both paths for the same Shopify target unless the implementation plan requires them.
Open Sourcing > Channels in the Order Routing Rules app.
Create or select the channel facility group.
Confirm every facility that should contribute inventory.
See for detailed steps.
Map each Shopify location to the inventory model that it represents:
Do not use a physical Shopify location as an aggregate target. Create or choose a location that does not already back a HotWax facility or another active inventory channel.
For a connection using the Company inventory-event model:
Open the Company App.
Select Shopify and open the connection.
Select Inventory sync.
See for channel setup, real-time controls, job monitoring, event history, and reconciliation.
Use Reset physical location QOH when a Shopify location mapped to one HotWax facility is stale. Use the affected channel's Reset aggregate ATP job when an aggregate Shopify location is stale.
Physical changes skipped while the shop-specific push is off and aggregate changes skipped while an individual event source is off are not replayed. Turn the control back on, then run the correct full reset for every affected target.
When the OMS-wide Inventory channel event updates feed is in manual mode, reconcile aggregate ATP before you enable real-time updates, then restart every OMS node so Moqui registers the feed.
Learn how to set up shipping gateways in HotWax Commerce to integrate with Third-Party Logistics companies (Carriers) for efficient fulfillment of online orders.
The HotWax Commerce Store Fulfillment App empowers retailers to efficiently fulfill online orders from their stores. HotWax Commerce seamlessly integrates with multiple Third-Party Logistics companies, commonly known as Carriers, to generate shipping labels based on store and customer addresses, as well as the weight and dimensions of shipment packages. Each Carrier provides a Shipping Gateway software system, enabling HotWax Commerce to request shipment quotations and labels during the fulfillment process.
To enable integration with Carriers, retailers must set up their preferred carriers, define shipping methods, and configure the necessary settings for the shipment gateway within the Fulfillment App.
Navigate to the Fulfillment App.
Go to the Carrier & Shipment Methods tab from the main menu.
Follow the sequence to create your carrier and methods as outlined in the .
Once the carrier is created, you can proceed to add specific Gateway Configurations.
After loading Carrier data into HotWax Commerce, the next critical step is to establish communication with shipping gateways. In this section, we'll explore the essential parameters needed to enable integration with FedEx and the same steps can be applied to other carriers.
To configure Shipment Gateways settings, users need to navigate to the FedEx Carrier Setup page. For adding new gateways, users should click the Add button under the Shipment Gateway Configuration section. This will open upShipment Gateway Configuration Form, which comprises multiple fields. Not all of these fields are mandatory for configuration.
Below given fields are important and needs to be configured to enable the integration:
Shipment Gateway Config Id - Shipment Gateway Config Id is a unique identifier for each configuration. Choose your own unique ID and name it in a way that is easily recognizable later in the configuration process
Connect Url - This is the endpoint or URL where HotWax Commerce will connect to the Shipping Gateway for getting shipping quotations and labels. It serves as the gateway for sending requests and receiving responses.
Connect Timeout -Connect Timeout is the maximum time limit for establishing a connection with the Shipping Gateway. If the Shipping Gateway is unresponsive, HotWax Commerce will attempt to establish a connection, with the default timeout set to 60 seconds. You have the flexibility to set this value according to your specific needs. However, it's crucial to avoid excessively long timeouts, as they could potentially make HotWax Commerce busy or unresponsive during an extended connection process.
After completing all field entries, you can save the shipment gateway configurations by clicking the Add button within the form. If a user has entered any incorrect information in any field they can delete the configuration by clicking on the Delete icon in the last column and add a new shipping gateway configuration with the correct information. We will be soon releasing the edit feature to modify the configurations.
Configuring the shipping options for your store is a pivotal step. Within the Product Store Shipping Method section, you can easily add specific shipping methods by clicking the Configure Shipping Method button. This action prompts a new form to appear on the screen, where configuration details must be entered. Upon clicking the Add button in the form, the new configurations will be established.
During the fulfillment process, as packers prepare packages and request shipping labels, the HotWax Commerce Fulfillment App retrieves quotations for all configured shipping methods based on configurations done in this section. These configurations help HotWax Commerce Store Fulfillment App intelligently select the least expensive shipping method, optimizing costs and ensuring timely delivery.
Product Store - Choose the Store for which you want to add the shipping method.
Tracking Required - This configuration provides flexibility in managing your fulfillment process based on specific tracking requirements and business rules. Set the value to 'Y' (Yes) to enforce a rule that fulfillment teams cannot complete the shipment without a tracking code. Alternatively, set the value to 'N' (No) to allow fulfillment teams to proceed even when the Carrier does not return a tracking code.
Shipment Gateway Config Id - Choose the 'Shipment Gateway Config Id' that you recently created to associate it with the Product Store and Shipping Method. This identifier helps in specifying which shipping gateway to connect with when requesting shipping labels for the packages.
In essence, the 'Carrier Service Code' facilitates seamless communication between HotWax Commerce and the Shipping Gateway, ensuring accurate alignment of shipping methods for streamlined order fulfillment. Here are quick links to USPS and FEDEX service code for reference: and
Delivery Days - The 'Delivery Days' field represents the number of days committed by shipping methods for order delivery. This information is crucial for the HotWax Commerce Store Fulfillment App, particularly during the rate shopping process before obtaining shipping labels. The 'Delivery Days' field guides the app in shortlisting shipping methods eligible for rate shopping based on the specified delivery timeframe.
If you wish to modify any settings within your shipment methods for a product store, you can do so by clicking either the Edit or Delete icons associated with the shipping method from the last column.
Carriers offer a range of predefined boxes designed for shipping products of various sizes and weights. Retailers opting for predefined boxes enjoy the advantage of sending only the box type, eliminating the need to specify package dimensions when requesting shipping quotations and labels. To streamline your packing process, follow these steps:
Navigate to the Carrier Shipment Box section.
Click on the Add button to open up a new pop-up form. Users can add preferred boxes individually in the form. These will be the boxes available for selection by packers at the time of packing.
For each box, choose the Shipment box and Packaging code shared by Shipping Gateways. The Packaging code is crucial for the identification of various packaging boxes by Shipping Gateways.
By performing these steps, you essentially map the Packaging box from HotWax Commerce to the corresponding packaging boxes recognized by the Shipping Gateway. These setup ensure that your packing process is efficient, and packers only see the relevant box types that you have added. Click on the Delete icon in the last column if you wish to remove any carrier box from view for packers.
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. To add carriers to a facility follow these steps:
Navigate to the Carrier Facility section.
Within the Carrier Facility section, look for the Add button and click on it. This action will open a pop-up box where you can specify details for adding a new carrier to a facility.
In the pop-up box, enter the name of the facility where you want to add the carrier
This guide outlines how to efficiently manage carriers and shipment methods in HotWax Commerce, covering tasks such as creating carriers, linking shipment methods, and enabling methods for brands.
In HotWax Commerce, carriers and shipment methods are used to define the delivery preference linked to an order.
Carriers: Carriers represent the shipping companies or services responsible for physically transporting the shipments like FedEx or UPS.
Shipment Methods: Shipment methods, on the other hand, represent the specific methods used for shipping goods, such as ground shipping, express shipping or standard delivery.
Carriers typically offer multiple shipment methods to customers for delivering packages. For example, a carrier like FedEx may offer ground shipping, overnight delivery, and international shipping as different shipment methods. In HotWax Commerce, these shipment methods are associated with a carrier, allowing businesses to configure and manage various shipping options offered by each carrier.
Permanently anonymize customer information from the Order Manager while preserving the associated operational records.
Data privacy regulations such as the GDPR give individuals the right to request erasure of their personal information. HotWax Commerce supports these requests by anonymizing the customer record from the Order Manager.
Anonymization does not delete the customer or order records. It permanently replaces or removes the customer's personally identifiable information while retaining the records required for order history and accounting.
The action:
Replaces the customer name with DELETED.
Review threshold, safety stock, pickup, shipping, and brokering rules for the channel.
Set up channel.Choose the channel facility group.
Choose the Shopify aggregate location.
Create the channel.
Review the jobs created in a paused state.
Run a full aggregate ATP reset before you rely on incremental events.
Confirm that an active shared sender covers ShopifyInventoryAdjustment, or set up the approved dedicated inventory sender.
Activate the approved publisher and reset schedules.
Keep the manual discard job paused and unscheduled.
Physical location
One Shopify location maps to one HotWax facility. Shopify receives that facility's QOH.
Aggregate location
One Shopify location maps to an inventory channel. Shopify receives ATP aggregated from the channel's facilities.
Disables the customer record.
Refreshes the customer search index so the disabled customer no longer appears in Find customers.
Open the Order Manager.
Select Find customers from the main menu.
Search for the customer by name, HotWax party ID, email address, or phone number.
Select the customer to open the Customer Detail page.
Select the trash icon in the upper-right corner.
In the Anonymize customer data confirmation dialog, review the warning and select Anonymize.
Wait for the Customer data has been anonymized. confirmation. The Order Manager returns to Find customers.
Search Find customers using the customer's original name, email address, or phone number. The customer should no longer appear.
Search Find orders using the customer's original email address.
If no orders are returned, anonymization is complete.
If orders still appear, their search documents contain stale customer information and must be reindexed.
Order search results use a separate index from customer search. If a search by the original email address still returns orders after anonymization:
Open Webtools and select Service Engine.
Search for and open the createOrderIndex service.
Select Schedule Job.
Run the service for each affected order ID.
Search Find orders using the original email address again. No affected orders should be returned.
If the customer remains visible in Find customers, or if Order Manager displays Failed to anonymize customer data. Please try again., retry the action. Contact a HotWax Commerce system administrator if it continues to fail.
Anonymization cannot be undone. Before proceeding, confirm that no active order still requires the customer's contact or delivery information.
Add Mapping: Click on the Add button to open the shipment mapping form
Select Carrier and Method: Select Carrier and Carrier shipment method from the dropdown menu
Add Shopify Shipment Method: Add the Shopify Shipment Method name that will correspond to the above-selected shipment method.
Save Mapping: Click on the Add button to save the shipment method.
Configure Rate Shopping: Choose Configuration for Rate Shopping and set the value to Y.
Save: Click Add to save. You will see the RATE_SHOPPING setting active for the store.
Specify the Delivery Days to set the SLA for that method.
Automatic Label Generation: Upon selection, another API Call a shipping label is generated in the background, ready for store associates to print during the packing process.
Regeneration on Packaging Change: If store associates modify the default packaging, the shipping label needs to be regenerated, prompting rate shopping to occur again to ensure accurate and cost-effective shipping.
Access Account Nbr - This is a unique identifier associated with FedEx. It is used to authenticate and link HotWax Commerce to your specific FedEx account, ensuring that the shipping requests are associated with the correct account.
Access Meter Number - This is another identifier that helps FedEx track and manage the usage of their web services. It is specific to your FedEx account and is used for billing purposes.
Access User Key - Access User Key, also known as the 'access key,' is a security credential that authenticates HotWax Commerce when making requests to the FedEx server. It ensures that only authorized systems can interact with FedEx's services.
Access User Pwd - This is the password associated with the access key. Together with the access key, it provides a secure means of authentication, preventing unauthorized access to your FedEx account.
Label Image Type - Label Image Type is a mandatory field that determines the format or type of the shipping label image generated and returned by FedEx. Choosing the correct type, such as PDF or PNG.
Shipment Method Type - Choose the Shipping Method that you want to add.
Carrier Service Code - "The 'Carrier Service Code' serves as a unique identifier for a specific shipping method offered by a carrier, such as FedEx. Shipping Gateways utilize this distinctive code to identify and distinguish various shipping methods. When you enter this code in the designated field, you are essentially mapping the shipping methods from HotWax Commerce to the corresponding services provided by the Shipping Gateway.
Save the carrier shipment box by clicking on the Add button in the form.
Add button to confirm and add the respective carrier to that facility.If needed, you can remove the association between a carrier and a facility by clicking on the Delete icon in the last column.
One shipment method can also be used with multiple carriers. This flexibility allows businesses to offer customers a range of shipping options while leveraging different carriers based on factors such as cost, delivery speed, reliability, and geographic coverage.
For example, the "express shipping" method could be offered by multiple carriers such as FedEx, UPS, and DHL. Each carrier may have its own pricing, service level agreements, and delivery networks, but they all provide an express shipping service that businesses can offer to their customers.
To manage carriers and shipment methods in HotWax Commerce, navigate to the "Carriers and Shipping Methods" page in the Fulfillment app.
[!TIP] This page is permission-driven. Make sure that you have
CARRIER_SETUP_VIEWadded to your user before trying to open this page.
Setting up shipping methods involves several interconnected steps. Follow this sequence to ensure a complete configuration:
To begin managing carriers and shipment methods, you'll first need to select a carrier to manage.
Carrier integrations
Retailers can configure carriers in HotWax Commerce even if they don't have an API integration setup with them. If a carrier does not have an API integration setup, it will show up with the label "Offline label" indicating that the label will need to be generated outside of HotWax Commerce.
If the carrier you want to use is not already set up, you can create a new carrier by clicking on the "+" button on the bottom right. On the Create Carrier page you'll be prompted to name your carrier and create a unique ID for them. Make sure this ID is easy to read since you may need to reference it later when using the OMS. The unique ID also much be less that 20 characters in length.
Once you're ready, click on the "Setup Methods" button. This will set up your carrier with the provided details and navigate you to the next step where you can link the methods this carrier services.
While a carrier ID cannot be edited after creation, its name can. To edit a carrier's name, click on the edit button next to their name on the carrier detail page.
To link a shipment method to a carrier, select the checkbox on the method.
You can also focus your view to just see methods set up for a carrier by enabling the filter "Only methods for this carrier" at the top right.
When configuring a shipment method with a carrier, there are two optional attributes that can be added.
Delivery Days: Tells the OMS routing engine how fast this method is expected to be delivered by this carrier. During routing, if orders are prioritized by shipping method, the routing engine will attempt to allocate orders with lower delivery days first.
Carrier Code: HotWax Commerce will use the carrier code to communicate the method for which to generate a label when integrated using APIs. This code will be provided by the carrier. If integrating with NetSuite for fulfillment, this code is mapped to the internal ID of the method setup in NetSuite and is used when syncing orders.
To create a new method, click on the "+" button on the bottom right. Give the new method a name and a unique ID. Similar to the carrier ID, this name should be easy to understand and no more than 20 characters long. Click on the save button to create the method.
Hint: avoid using carrier details in the method name since they can be linked to other carriers later on.
By default when you create a new method it is linked to the carrier where you created it from, but it will be visible on all carrier pages since shipment methods are not specific to a carrier.
Commonly used methods can be placed at the top by manually editing the sequence of shipment methods.
Hint: The sequence of methods is shared across all carriers.
Click on the more options menu at the end of a shipment method and select "Edit sequence". This will open a modal where you can drag and drop shipment methods to change their sequence. Once you're satisfied with the sequence, click on the save button on the bottom right.
Danger: clicking on the x close button on the top left will discard any changes you've made.
HotWax Commerce has intricate support for managing multiple brands through OMS. While a carrier may be set up for many shipment methods, not all brands set up in the OMS may service those methods. To ensure accurate rate-shopping during label generation, retailers can specify which methods individual brands support. Each brand, set up as a Product Store, can be selected from the tabs next to the Methods tab.
To add a method to a Product Store, select the checkbox on that method. There are also two additional configurations available when setting up a method for a Product Store.
Require tracking codes: To enforce label generation and tracking codes linked to a shipment, this setting should be enabled. When this is enabled, orders cannot be shipped from the Fulfillment app without linking a corresponding tracking code to them. Additionally, the Ship Packed Orders job won't ship packed orders for this method if they're missing tracking info.
Hint: This setting is effective on orders that are processed after it's configured.
The facilities section of the carrier settings allows retailers to manage which facilities are allowed to generate labels for this carrier. Select the checkbox on each facility that should be allowed to generate labels for this carrier.
The HotWax Commerce Pre-Order App is designed for merchandisers to gain a clear understanding of their presell catalog, allowing them to track the status of pre-orders and backorders, and confirm listed items on the eCommerce platform. This app enables merchandisers to efficiently manage all pre-orders, including the ability to release them manually. The Pre-Order App is designed specifically for merchandisers to get a full overview of the pre-order products; therefore, the "PRE-ORDER APP VIEW" permission is required to access the app. Furthermore, actions that involve pre-order inventory configurations also require higher-level permissions. Below is a list of all the actions available in the Pre-Order App, along with the specific permissions needed to perform them.
After creating a facility, manage its day-to-day configuration from Facilities > Find in the Company App. The facility details page contains address and contact information, operating hours, fulfillment settings, Product Store associations, and external mappings.
Open Facilities > Find.
There are two ways to locate a facility:
Search by facility name from the Search facilities
View Product Details
-
View detailed information and all orders for a specific product.
3
Filter Orders
-
Filter orders for specific products based on size, order date, promise date, or loyalty status.
4
Release Orders
-
Release all orders associated with the selected products.
Filter Product Catalog
-
Filter the product catalog based on pre-order, backorder, or all products.
View Purchase Order Details
-
View complete purchase order details, including purchase order date, ATP (Available to Promise) of the product, and already allocated inventory from the purchase order.
3
View Online ATP Computation
-
View ATP computation details, including current online ATP, quantity on hand (QOH), and excluded ATP.
4
Reserve Inventory
COMMON_ADMIN
Configure whether the OMS (Order Management System) should reserve inventory for pre-orders.
5
Hold Pre-Order Physical Inventory
COMMON_ADMIN
Configure inventory computation to prevent physical inventory from being made available online for products with orders in the Pre-Order parking.
6
View Pre-Order Jobs
-
View all pre-order jobs and their next scheduled run times.
7
View Shopify Listing Status
-
View the listing status of products on Shopify.
Update Product Identifier Setting
COMMON_ADMIN
Allow user to manage product identifier settings
1
Search Orders
-
Search all the pre-orders within the system.
2
Filter Orders
-
Filter orders based on order date, promise date, or loyalty status.
3
Release Items
-
Release items from the parking queue to begin fulfillment.
4
Edit Promise Date
-
Edit the promise date of the order as needed.
1
View Products
-
View all products currently on pre-order.
1
View Product Catalog
-
View the complete product catalog, including pre-orders and backorders.
1
View Pre-Order Listing Status
-
View the listing status, eligibility, and pre-order timeline of products.
1
View OMS
COMMERCEUSER_VIEW
Allow user to view OMS directly form the Pre-Order App.




2
2
2
2
Use the Product Store and Type filters to narrow the list to a specific product store or facility type.
You can rename a facility by clicking the Edit button next to the facility name. Update the name in the pop-up and click Apply to save it.
You can change the facility type from the Facility details page.
Use the Address and Contact Details card on the Facility details page to maintain facility address, phone number, shipping name, and directions.
Open the facility from the Find Facilities page.
Click Add on the Address card, or click Edit if an address already exists.
Enter or update Address Line, City, Country, State, and Zip code.
Click the Save icon to apply the changes.
Open the facility from the Find Facilities page.
On the Facility details page, locate the Address and Contact Details card.
Click Add for an empty contact section, or click Edit to update existing details.
Enter or update the Phone number field with the correct contact number for the facility.
Click the Save icon to apply the changes.
The shipping name can differ from the facility name and can be used to reflect the retailer's preferred brand name for shipments.
Open the facility from the Find Facilities page.
Locate the Address and Contact Details card on the Facility details page.
Click Edit to open the form.
Enter the Shipping Name.
Verify that the facility Zip code is present.
Click the Save icon to update the details.
Directions can be used to capture nearby landmarks or other location notes that help staff and customers find the facility.
Open the facility from the Find Facilities page.
Locate the Address and Contact Details card.
Click Add or Edit to open the address form.
Enter the Directions value along with any other address updates.
Click the Save icon.
Latitude and longitude support store lookup and distance-based pickup experiences on Shopify Product Detail Page (PDP).
Open the facility from the Find Facilities page.
On the Facility details page, click Add on the Latitude & Longitude card.
Enter the coordinates manually, or use the Generate icon to derive them from the saved address.
Click the Save icon.
Use the Map Link card to add a navigation link for a facility.
Open the facility from the Find Facilities page.
Locate the Map Link card on the Facility details page.
Click Add, or click Edit if a link already exists.
Enter the map URL.
Click Save.
To verify the link, click Preview on the Map Link card and confirm the location opens correctly in a new tab.
Locate the Map Link card on the Facility details page.
Click Remove.
Confirm the removal if prompted.
Operating hours help inform pickup availability and carrier communication.
Select one of the existing calendars in the Operating hours card and click Add Operating Hours, or click Custom Schedule to create your own.
For a custom schedule, enter the schedule name, start time, and end time.
To set different hours by day, enable Daily Timings and enter the schedule for each day.
Click the Save icon.
Open the facility from the Find Facilities page.
Locate the Operating Hours card.
Click Change, or Add if no time zone is configured yet.
Select the browser default time zone or choose a different time zone from the list.
Facilities can be associated with one or more product stores.
Click Add on the Product Stores card.
Select one or more product stores from the list.
Click the Save icon.
Use the overflow menu on a linked product store to mark it as Primary or Unlink it from the facility.
Use the Sell inventory online card and the Online Order Fulfillment card to define how the facility participates in fulfillment and inventory computation.
Users can configure the following settings for the facility:
Allow Pickup: Controls whether the facility can support Buy Online, Pick-up In Store (BOPIS) and appear as a store pickup option.
Use Native Fulfillment App: Indicates whether the facility uses HotWax Commerce's Fulfillment App or a third-party fulfillment system.
Generate Shipping Labels: Controls whether shipping labels are generated through HotWax Commerce for the facility.
Days to Ship: Sets the minimum number of days the facility requires to ship an order after brokering.
Retailers can enable or disable sales-channel toggles for the facility to control whether its Available-to-Promise (ATP) is included in online inventory computation for each configured channel.
Fulfillment capacity determines how many orders can be allocated to a facility in a day.
On the Online Order Fulfillment card, open the overflow menu next to number of orders allocated today.
Choose one of the available options:
Unlimited capacity
No capacity
Custom
Click Apply to save the selected capacity.
Use View order count history on the same card to review recent order counts when setting capacity.
If the facility uses the native fulfillment flow, you can create facility-specific logins from the retail or warehouse login card.
Click Add in the login card.
Enter the facility username, password, and reset password link.
Click the Save icon.
Use external mappings to connect a HotWax Commerce facility with Shopify, ERP, or another external system.
Open the facility and go to the External Mappings tab at the bottom of the Facility details page.
Click Map Facility to an External System.
Choose the external system for the mapping.
Complete the required fields:
For Shopify, select the store and enter the location ID from Shopify Admin.
For Custom, enter the Mapping ID, Mapping Name, and Mapping Value.
Click the Save icon to create the mapping.
Use Edit to update a mapping or Remove to delete it.
The HotWax Commerce BOPIS App is designed for store staff to efficiently manage the fulfillment of Buy Online, Pick Up In Store (BOPIS) orders. Similar to the Fulfillment App, store users can carry out essential tasks such as picking, packing, and handing over orders without needing special permissions. As a result, access to the BOPIS app is open to all users involved in the order fulfillment process. However, managing the app's configurations, such as altering settings or workflows, requires higher-level permissions.
Below is a list of all the actions available in the BOPIS App, along with the specific permissions needed to perform them.
The HotWax Commerce Users App is designed to manage user profiles and permissions within the system. Since all users are permitted to manage their own profiles, no specific permission is required to access the Users App for personal profile management. However, to add new users or to manage permissions specific to other users, additional higher-level permissions are required.
Below is a list of all the actions available in the Users App, along with the specific permissions needed to perform them.
The HotWax Commerce Facilities app is designed for specialized users such as admins and store heads. It facilitates the creation of new facilities within HotWax Commerce, mapping them with external systems, and managing their scope of participation in store fulfillment processes. Consequently, access to the Facilities App is restricted to specialized users only. To log in to the Facilities App, users must have the "FACILITIES_APP_VIEW" permission.
All actions within the Facilities App users with this permission level are unrestricted, as higher-level access is required to enter the app. Below is a summary of the actions available in the Facilities App:
View Inventory
-
Allows users to view the available inventory for items in the order.
View Inventory
-
Enables users to view the available inventory for items in the packed order.
3
Resend Notification Button
-
Allows users to resend the pickup notification to the customer.
Order Rejection
COMMON_ADMIN
Enables users to reject an order completely or partially, based on available inventory or other factors.
Reject Order Partially
COMMON_ADMIN
Specifies whether a BOPIS order can be partially rejected if inventory is insufficient at the store.
3
Show Shipping Orders
COMMON_ADMIN
Allows users to view shipping orders alongside pickup orders.
4
Generate Packing Slip
COMMON_ADMIN
Enables the creation of packing slips, helping customers reconcile their order against delivered items.
5
Enable Tracking
COMMON_ADMIN
Tracks who picked orders by entering picker IDs during the packing process.
6
Notification Preference
-
Allows users to select the types of notifications they want to receive.
7
Go to Launchpad
COMMON_ADMIN
Allows users to open Launchpad from the BOPIS app when the app is not running in standalone mode.
8
Go to OMS
COMMERCEUSER_VIEW
Allows users to access the HotWax OMS from the BOPIS App.
9
View BOPIS App
BOPIS_APP_VIEW
Allows users to view the entire BOPIS App.
10
Manage BOPIS Operations
STOREFULFILLMENT_ADMIN
Allows users to manage all BOPIS operations in the store.
1
Product View
-
Allows users to view all existing products in the catalog.
2
Product Detail
-
Enables users to check inventory levels across different stores for specific products.
1
Ready for Pickup Button
-
Marks an order as ready for pickup, triggering a notification to the customer.
1
Handover Button
-
Marks an item as fulfilled when handing over the order to the customer.
1
View Completed Orders
-
Allows users to view all completed orders.
1
View Incoming Orders
-
Enables store associates to view incoming orders, ready-for-pickup orders, and completed orders from the store.
1
Order Detail Page
-
Allows store associates to view the details of an order.
1
View Order Details Page
COMMON_ADMIN
Controls what customers are allowed to edit on their order when re-routing fulfillment.






2
2
2
2
Block Login / Disable User
SECURITY_CREATE OR SECURITY_ADMIN
Enables administrators to block or restore a user's access to HotWax Commerce applications.
3
Add Credentials
SECURITY_CREATE OR SECURITY_ADMIN
Allows administrators to create login credentials for a user who does not yet have a login.
4
Reset Password
SECURITY_CREATE OR SECURITY_ADMIN
Allows administrators to reset another user's password. Users can reset their own password from their own profile.
5
Force Logout
SECURITY_CREATE OR SECURITY_ADMIN
Allows administrators to sign a user out of all active sessions immediately.
6
Add Contact Details
-
Enables users to add or update contact information such as email, phone number, and external ID.
7
Add Security Group
SECURITY_CREATE OR SECURITY_ADMIN
Allows users to assign or remove security groups for the selected user.
8
Add Product Store
SECURITY_CREATE OR SECURITY_ADMIN
Provides the ability to assign users to a specific product store.
9
Add to Facilities
STOREFULFILLMENT_ADMIN
Enables the assignment of users to specific facilities for fulfillment tasks.
10
Add as Picker
STOREFULFILLMENT_ADMIN
Allows the user to be added as a picker for fulfillment purposes.
11
Select Favorite
-
Enables users to select a favorite product store and Shopify shop for preselection across all applications.
Create Security Group
SECURITY_CREATE OR SECURITY_ADMIN
Provides the ability to create new security groups for managing user permissions.
3
Add/Remove Permissions
SECURITY_CREATE OR SECURITY_ADMIN
Enables users to add or remove permissions from existing security groups.
4
Download Permission List
-
Allows users to download a list of existing permissions within a security group.
View User App
USERS_APP_VIEW
Grants users permission to view the User App.
3
Manage Security Permission
SECURITY_CREATE OR SECURITY_ADMIN
Allows users to manage all User App operations.
1
View Users
-
Allows users to view all existing users within HotWax Commerce.
2
Search Users
-
Enables users to search for specific users by name, email, or other identifiers.
3
Create Users
SECURITY_CREATE OR SECURITY_ADMIN
Provides the ability to create new user profiles within the system.
1
Edit Profile Information
-
Allows users to add a photo and edit personal information such as their name.
1
View Tab
SECURITY_VIEW OR SECURITY_ADMIN
Allows users to view all permissions currently assigned within the system.
1
Go to OMS
COMMERCEUSER_VIEW
Allows users to access HotWax OMS directly from the User App.



2
2
2
Permission
Description
1
Search Facilities
-
Allows users to search for specific facilities using various criteria such as name or location.
2
Create Facilities
-
Enables users to set up new facilities within HotWax Commerce.
3
Sell Online Chip
-
Option to enable or manage online sales capabilities for a facility.
4
Daily Order Capacity Chip
-
Allows users to set or view the daily order capacity for a facility.
Serial No.
Action
Permission
Description
1
Create New Virtual Facility as Parking
-
Allows users to create a virtual facility specifically for parking purposes.
Serial No.
Action
Permission
Description
1
Create New Facility Groups
-
Allows users to set up new groups to organize multiple facilities.
Serial No.
Action
Permission
Description
1
Change Facility Name and Type
-
Enables users to update the name and type of a facility.
Serial No.
Action
Permission
Description
1
Go TO OMS
COMMERCEUSER_VIEW
Allows users to access OMS directly from the Facilities App
Serial No.
Action
2
Rename Parking
-
Enables users to change the name of an existing parking virtual facility.
3
Archive Unused Parking
-
Option to archive parking virtual facilities that are no longer in use.
2
Edit Facilities in Group
-
Enables users to modify the facilities that belong to a specific group.
3
Edit/Delete Group
-
Option to edit the details of or delete an existing facility group.
4
Change Facility Group Subtype
-
Allows users to change the subtype of a facility group to fit different needs or classifications.
2
Add Address and Contact Details
-
Allows users to input or update the address and contact information for a facility.
3
Add Latitude and Longitude
-
Option to add geographical coordinates to a facility for accurate location tracking.
4
Manage Operating Hours
-
Enables users to set or modify the operating hours for a facility.
5
Assign Product Store
-
Allows users to designate which products are handled by a specific facility.
6
Manage Fulfillment Settings
-
Option to configure settings related to the fulfillment processes for a facility.
7
Select Online Sales Channels
-
Enables users to specify which online sales channels are associated with a facility.
8
Manage Online Order Fulfillment Capacity
-
Allows users to set or adjust the capacity for fulfilling online orders at a facility.
9
Create Login for Store
-
Option to generate login credentials for store users who need access to the facility's functions.
10
Add Mappings
-
Allows users to create or update mappings between facilities and other systems or services.
11
Add Staff
-
Enables users to assign staff members to a facility.
12
Add Locations
-
Option to include additional locations or sub-areas within a facility.
13
Assign Groups
-
Allows users to assign a facility to one or more facility groups for better organization.




Configure NetSuite connection details and integration mappings in Company.
Use the NetSuite page to review connection configuration and maintain the values that translate HotWax Commerce records into NetSuite records.
The page contains three areas:
Configuration
SFTP connection and Product Store
Open the Company App.
Go to NetSuite.
Open SFTP.
Review the configured remote and connection status.
See for the NetSuite-side requirements.
Open Product Store.
Select the Product Store used by the NetSuite integration.
Save the selection.
Confirm the Product Store on the NetSuite landing page.
Review the related before activation.
Open Inventory variances.
Review the HotWax variance reason.
Select the matching NetSuite adjustment reason or account.
Save the mapping.
Unmapped variance reasons can prevent an inventory adjustment from posting correctly to NetSuite.
Open Shipping methods.
Review the HotWax shipment method and carrier.
Enter or select the matching NetSuite value.
Save the mapping.
Open Payment methods.
Review the HotWax payment method.
Select the matching NetSuite payment method.
Save the mapping.
See for integration context.
Open the applicable mapping from Orders & Fulfillment.
Review the HotWax value.
Select the matching NetSuite price level or discount item.
Save the mapping.
See for deployment requirements.
Open Departments.
Review each HotWax Product Store or sales context.
Select the matching NetSuite department.
Save the mapping.
Open Sales channel.
Review the HotWax sales channel.
Select the matching NetSuite sales channel value.
Save the mapping.
After changing a mapping:
Reopen the page and confirm the saved value.
Validate a bounded test record through the integration.
Review the related integration log.
Apply the mapping to other values only after the test succeeds.
Update the connection only when the integration team provides approved values.
Save the change and verify the next expected file transfer.
Repeat for each variance reason used by store and warehouse teams.
Products & Inventory
Inventory variances
Orders & Fulfillment
Shipping methods, payment methods, price levels, discounts, departments, and sales channel
The Launchpad serves as the central hub for all HotWax Commerce apps, providing easy access to development, user acceptance testing (UAT), and production versions of the applications all in one place.
The Launchpad is the central hub for accessing all HotWax Commerce applications. It provides Single Sign-On (SSO), so users only need to log in once to access all associated apps without re-entering credentials.
When you open the Launchpad without an active session, a Login button appears in the top-right corner of the home page. Select this button to begin the sign-in process.
Enter your Order Management System (OMS) instance URL and select Next.
Enter your Username and Password, then select Login.
Once signed in, selecting any app card on the home page automatically authenticates you into that application through Single Sign-On (SSO).
If you select an app card without signing in first, the app redirects you back to the Launchpad login page to complete authentication before you can access it.
Applications on the Launchpad are organized into the following categories:
Each app on the Launchpad can be launched in three different environments:
Select your user profile at the top of the home page.
Select Logout from the menu.
BOPIS
Enables store associates to manage and handover Buy Online, Pickup In-Store orders to customers.
Fulfillment
Enables store associates to pick, pack, and ship orders brokered to stores from the OMS.
Pre-Orders
Available to Promise
Enables merchandisers to configure rules for computing and publishing available inventory to sales channels.
Job Manager
Helps operations teams monitor service health, manage job schedules, investigate files and messages, and build data exports.
Order Routing
Receiving
Enables store associates to manage incoming shipments, purchase orders, and return orders.
Cycle Count
Enables stock associates to count store inventory and reconcile systematic and physical inventory.
Transfers
Import
Enables users to import inventory and purchase orders.
Users
Allows businesses to create and manage users within HotWax Commerce OMS.
Facilities
Production
Select the app card.
Development (Dev)
Select the bottom-left icon on the app card.
UAT (User Acceptance Testing)
Enables merchandisers to manage pre-orders and backorders with planned future inventory.
Enables merchandisers to configure order routing rules that determine how and where orders are fulfilled.
Enables store associates to manage inventory transfers between facilities.
Assists businesses in managing multiple facilities like stores and warehouses, including facility details and fulfillment options.
Company
Enables administrators to manage company-level configurations, product stores, and Shopify shop connections.
Select the bottom-right icon on the app card.
Use this canonical guide to connect one Shopify shop to a new HotWax Commerce instance and validate products, facilities, starting inventory, order import, routing, fulfillment, and named operational access. It is the required procedure for the standard Shopify-only launch profile; linked application documentation is optional background, not a required setup path.
At completion, one Shopify shop is connected to one active product store. Shopify is the approved initial source for products, locations, and quantity on hand; HotWax Commerce publishes ongoing available-to-promise inventory after cutover. The launch team has imported and reconciled products and open orders, mapped facilities, tested routing and fulfillment, and saved evidence for every gate.
Use the chapter evidence and the progress table as the launch record. A queued job, a pending request, or the absence of a visible error is never proof that a step is complete.
Continue only when all of the following are true:
You have one launched HotWax Commerce instance with no initial login claimed.
You are connecting one Shopify shop, not multiple shops.
Shopify is the initial source for products, locations, and quantity on hand.
You use standard shippable products and standard fulfillment with one or more mapped facilities.
The Shopify app has verified level-2 protected-customer-data access.
The agreed history window does not require orders created more than sixty days ago.
Stop and contact HotWax Commerce for an advanced launch plan if you need an ERP integration, multiple Shopify shops, a migration, pickup, preorders, backorders with advanced inventory rules, returns integrations, Loop, kits, gift cards, SFTP or file-based integrations, custom product or order flows, or read_all_orders access for older orders. Do not mix those variants into this launch.
The launch owner collects and approves these inputs before anyone configures the instance:
Instance host name; named initial administrator; administrator email; and approved password-vault location.
Shopify shop domain and named Shopify administrator.
Confirmation of level-2 protected-customer-data access for the Shopify app.
Product-store name, stable identifier, currency, locale, time zone, primary operating country, all approved operating countries, shipment weight unit, order prefix, and order approval and billing defaults.
Store access tokens, passwords, and private keys in the approved password vault. Redact credentials, customer data, and private endpoints from tickets and screenshots.
The launch owner keeps this table current. An individual may hold more than one owner role, but every evidence reference must identify the person accountable for the chapter.
Owner: Maarg platform administrator
Application: Maarg Admin
Confirm that this is a clean tenant with only the _NA_ seeded user, that normal seed data including the ADMIN group is loaded, and that the ext-user data set was not loaded. ext-user supplies shared or demonstration users and suppresses the one-time form. Have the named administrator's vault location ready.
Open https://<instance-host>/. The login page redirects to the one-time form and displays Welcome to your new system when no user account has been claimed.
Enter Username, New Password, New Password Verify, User Full Name, and Email Address. Use a named individual account and a unique password that satisfies the deployed policy. The current tested default is at least eight characters, one digit, and one non-alphanumeric character; a deployment can require more.
Select Create Initial Admin Account. Store the credential in the approved password vault.
Two named, separately tested Maarg platform administrators can sign in and the instance remains restricted to approved administrators.
Save the success message, both active user identifiers, active ADMIN memberships, login-test timestamps, and the vault record identifiers. Do not save passwords or tokens.
If the form is absent before an account is claimed, or submission returns Can only create initial admin account if there are no UserAccount records, stop. Inspect the moqui.security.UserAccount count and confirm whether ext-user was loaded. Never repair this condition by inserting raw records. This account is a Maarg platform administrator only; it does not by itself prove access to Company App or other HotWax applications.
Continue to the instance readiness gate only after both administrator logins and memberships are proven.
Owner: HotWax integration operator
Application: Maarg Admin and Company App
Have confirmation that the deployed HotWax applications are supported for this launch, the claimed administrator, the approved application-access package, and confirmation of Shopify's level-2 protected-customer-data approval.
Confirm with HotWax Commerce that the deployed Maarg, Company App, Shopify embedded app, HotWax Keychain, Shopify OMS bridge, Mantle Shopify connector, and Poorti versions are supported for this launch.
Verify required seed and base data, healthy search services, present Shopify integration components, and that no demonstration or temporary administrator remains active.
Apply the supported HotWax application-access package and verify that the named launch administrator can open every application used by the remaining chapters.
Confirm level-2 protected-customer-data approval for the Shopify app and that the agreed history does not require orders created more than sixty days ago.
The deployed applications and required access are ready, and the launch profile passes the access and order-history gates.
Save the supported-release confirmation, health-check results, application access test results, package reference, protected-data approval confirmation, and the history-window decision.
Creating an initial ADMIN account does not guarantee complete Company App access. Until the supported application-access package is included in the tested release, this is a HotWax-owned stop gate. Do not continue with legacy group or permission workarounds. Stop for an advanced launch plan if older order access is needed. Stop if a required client has not passed the authentication-factor compatibility test; do not mandate MFA for that account until it has.
Continue when the launch administrator can use the required applications and all stated readiness evidence is positive.
Owner: Maarg platform administrator and Company application administrator
Application: Maarg Admin and Company App
Have the approved product-store name, stable identifier, currency, locale, time zone, primary operating country, all approved operating countries, shipment weight unit, order prefix, and order approval and billing defaults.
In Maarg Admin → Applications → System → Tools → Entity → Entities, open org.apache.ofbiz.common.property.SystemProperty. The direct find path is /qapps/system/Tools/Entity/DataEdit/EntityDataFind?selectedEntity=org.apache.ofbiz.common.property.SystemProperty. Verify general / currency.uom.id.default matches the approved single-store currency, general / country.geo.id.default matches the primary operating-country Geo ID, and shipment / shipment.default.weight.uom is the approved WT_kg
The approved global defaults and operating countries are saved, and an active Product Store can be selected by the Shopify connection and later associated with facilities and users.
Save the three verified System Property keys and values, selected operating-country Geo IDs, company and Product Store identifiers, configured defaults, selected time zone, and an active-state screen.
Stop if the identifier, currency, primary or approved operating countries, shipment weight unit, locale, time zone, or order defaults are undecided. Also stop if a global default disagrees with the one-store launch profile or an approved operating country is absent after creation. Do not change the Product Store identifier after integrations or transactions exist; treat it as a governed launch decision.
Continue with the Shopify connection gates using this active Product Store.
Owner: Shopify administrator, HotWax Keychain approver, and Company application administrator
Application: Maarg Admin, Shopify Admin, HotWax Keychain, and Company App
Have the approved Shopify app URL, shop domain, named Shopify administrator, valid Product Store, protected-data approval, approved OMS token issuance profile, and vault location. Confirm the simple launch does not need read_all_orders.
In Maarg Admin → Settings → JWT Tokens, open /qapps/Oms/Settings/JwtTokens. This screen is self-token-only: leave Username as the signed-in named administrator. Enter the tenant-approved free-text Purpose value, record it using the governed format Shopify OMS connection | <shop-domain> | <YYYY-MM-DD>, set Expires In (Days), and select Generate Token. Copy the displayed token once into the approved vault. This is an OMS authorization token, not a Shopify access token.
Verify Token generated for <user> — copy it now. It will not be shown again. and record the displayed Purpose, Expires, token subject, owner, and vault reference. The positive handoff result is one valid OMS
The approved Shopify shop is connected to exactly one Product Store, every simple-profile API capability is available, the live OAuth handles match the approved scope profile, the selected remote has SHOP_RW_ACCESS, and Company Product Sync reports Write access.
Save the token subject, purpose, expiry, and vault record; connection request identifier and acceptance; shop and Product Store identifiers; returned OAuth handles and scope approval; order-import compatibility confirmation; selected remote identifier and access scope; and the positive Product Sync access state.
Stop if the launch requires a separate integration subject: the current Maarg screen cannot issue a token for it, and entering another username returns You are not allowed to generate tokens for other users. A signed-in named administrator may issue only that administrator's self-token when policy permits. Also stop if the request remains pending or is rejected; protected-data approval or a required API capability is missing; the refreshed handles do not match the approved scope profile; order-import compatibility is unconfirmed; an unexpected advanced handle is unresolved; the remote cannot be corrected; or Product Sync shows Update required, Read only, or Unavailable. Do not proceed to an order chapter when the deployed import requires read_returns for this standard profile. The Company token-generation action calls a missing Maarg route; do not use it as the approved issuance path. A Keychain payload can omit accessScope, so refreshing OAuth scopes alone does not correct the remote capability.
Continue only after all four gates—OMS token, Shopify installation, Keychain approval, and Company verification—are positive and order-import compatibility is confirmed.
Owner: Company application administrator
Application: Company App
Have the connected shop, active Product Store, actual Shopify values, and approved business meanings for product types, sales channels, payment methods and gateways, and shipping methods.
Open Company App /shopify-connection-details/<shop-id>. For Product types, open /shopify-connection-details/<shop-id>/product-types, select each HotWax product type, enter its Shopify value in Shopify ID, and select the save icon. Confirm Mapping updated successfully and that the Shopify value displays as a chip beside the selected product type.
For Sales channels, open /shopify-connection-details/<shop-id>/sales-channels, select each HotWax sales channel, enter the Shopify order source in Shopify ID, and select the save icon. Confirm Mapping updated successfully
Each Shopify value used by the launch resolves to one reviewed HotWax destination with a clear business meaning.
Save the mapping export or screen references, source values, chosen destinations, reviewer, and timestamp.
Stop for unmapped values or many-to-one mappings whose business meaning is unclear. Do not import products or orders while a required mapping is unresolved.
Continue with the initial product sync after the mapping review is complete.
Owner: Company application administrator
Application: Company App
Confirm governed SKU and barcode rules, products included from the connected shop, approved product-type mappings, and source Shopify product and variant counts.
Open Company App /shopify-connection-details/<shop-id>/product-sync. If the connection card shows Setup new product sync, open it; Update Shopify access scope, Shopify write access required, Upgrade required for new product sync, Upgrade to new product sync, or Disable old product sync is a stop condition.
Select Review configurations. On Confirm product store, select the Product Store, review any linked Shopify shops, select I have verified that these Shopify stores are part of the selected Product Store, and select Next.
The Product Sync terminal result and reconciliation show that intended Shopify products and variants have correct identity and Product Store association.
Save source and imported counts, terminal job state, failed and skipped counts, sample identifiers, identity exceptions, and their approved disposition.
Stop if Product Sync does not reach a terminal success state, counts do not reconcile, or any duplicate or missing identity exception is unapproved. Do not load inventory until exceptions are resolved or explicitly accepted by the launch owner.
Continue to facilities and location mapping when product identity is reconciled.
Owner: Company application administrator
Application: Company App
Have the approved facility list, Shopify location identifiers and names, physical-location intent, Product Store association, and each location's inventory, routing, and fulfillment role.
To create a facility first, open Company App /create-facility, select Type, enter Name and Internal ID, optionally enter External ID, and select Create facility. Confirm Facility created successfully. Then open /create-facility/address/<facility-id> to save its address and /create-facility/config/<facility-id>.
In Add Store Configuration, select Add under Product Stores
Every active Shopify location used by the launch has one intentional physical-facility mapping and Product Store association.
Save a location-to-facility mapping table with Shopify identifiers and names, HotWax identifiers and names, Product Store, and operational roles.
Stop if an active Shopify location has no intentional facility mapping or maps to an unsuitable physical facility. Do not use _NA_ as a universal facility or location mapping.
Continue to starting inventory only after products, facilities, and all required location mappings are reconciled.
Owner: HotWax integration operator and Company application administrator
Application: Maarg Admin and Company App
Confirm complete product identity, facility and location mappings, a valid Shopify remote internal identifier, approved inventory cutover, and that Shopify quantity on hand is the approved initial source. Pause the shared Shopify bulk-operation poller schedules and confirm global isolation before starting.
In Maarg Admin → System → System Messages, confirm no unrelated message under parent type ShopifyBulkQuery is in SmsgProduced or SmsgSent.
Keep both shared Shopify bulk-operation poller schedules paused.
Open Maarg Admin → System → Service Jobs, open sync_ShopifyInventoryReset
The recorded message completes its inbound Shopify inventory path, its RESET_SHOPIFY_INVENTORY Data Manager load is terminal and positive, and sample quantity-on-hand values reconcile in the Shopify-to-HotWax direction.
Save job-run final status; exact BulkQueryShopifyInventoryReset systemMessageId; Shopify bulk-operation identifier and transitions; RESET_SHOPIFY_INVENTORY counts and errors; sample quantity comparison; external reset records; and schedule-state evidence. Evidence screens include /qapps/system/ServiceJob/JobRuns/JobRunList, /qapps/system/SystemMessage/Message/SystemMessageList, and /qapps/Oms/DataManager/DataManagerImport/DataManagerImportList.
Stop if an unrelated produced or sent bulk message exists, the recorded message is queued without download and processing evidence, the Data Manager load fails, quantities do not reconcile, or outbound inventory publishes unapproved seed values. in Company covers outbound HotWax-to-Shopify inventory publication; it does not import starting QOH from Shopify. Use this Maarg Admin procedure for the inbound seed until a tested Company import flow is released.
Continue to order infrastructure only after inventory seeding is reconciled and approved normal schedules are restored.
Owner: HotWax integration operator
Application: Maarg Admin
Have the selected shop identifier and domain, environment, AWS account and region, approved queue naming, launch date, stored AWS credentials, approved queue policies, and the Chapter 4 order-import compatibility confirmation.
Open Maarg Admin → Shopify → Shopify Order Integration Setup at /qapps/Oms/Shopify/ShopifyOrderIntegrationSetup?shopId=<shop-id>. In Select Shopify Store, choose the selected shop and select Refresh / View Health Status. Treat the ✅ Integration Stack Fully Configured or ⚠️ Integration Setup Incomplete banner only as a configuration summary; it is not a runtime gate. Return channels, return-application modeling, and gift-card mapping are excluded from this launch and do not block it.
Save included-profile section evidence: MDM Bridge Configuration must show MDM Framework Status ✅ Valid
Included-profile MDM, remote, queue, consumer, property, webhook, fallback, and history configuration evidence is positive. Separate ORDERS_CREATE and ORDERS_UPDATED webhook rows exist, and the HotWax infrastructure handoff proves both EventBridge topic patterns, queue delivery, and dead-letter delivery. The health banner and configuration actions do not prove runtime order import.
Save the included-profile section states and identifiers, queue URL and ARN, dead-letter ARN, policy references, both EventBridge topic patterns and test-event identifiers, target-queue deliveries, consumer-read results, failed-test dead-letter result, separate ORDERS_CREATE and ORDERS_UPDATED webhook-list rows, and property values. For every incomplete fallback or history job, save the Service Job detail's pre-save hidden values or governed approval, then the re-opened Edit values and ✅ Active status after Update Job. Save realtime runtime job-run and Data Manager evidence only with the controlled Shopify order in Chapter 13; save System Message evidence only for a flow that actually creates one.
Stop for missing Chapter 4 order-query compatibility evidence, a missing required included-profile resource or section state, inaccessible queue, failed delivery, missing redrive behavior, a missing ORDERS_CREATE or ORDERS_UPDATED webhook row or EventBridge pattern, failed consumer, incomplete required Data Manager configuration, a cross-environment identifier, or any unknown fallback runAsBatch, fromDate, additionalParameters, or history windowDays value. Do not use Save Config until a governed value is available. The setup screen does not by itself provision or prove EventBridge delivery, queues, dead-letter handling, redrive, policies, or runtime order import.
Continue to open-order history only after realtime queue infrastructure and the fallback prerequisites are proven.
Owner: HotWax integration operator and Company application administrator
Application: Maarg Admin and Company App
Have the agreed merchant-zoned history start and launch cutoff, deployed instance or JVM time zone, valid Shopify remote identifier, approved window size, level-2 protected-data approval, completed realtime infrastructure, and the Chapter 4 order-import compatibility confirmation. Inventory bulk work must be complete because inventory and history use overlapping bulk-operation responsibilities. updatedAt selects open, unfulfilled orders for a query window. For an order not already in HotWax Commerce, createdAt < newOrderSync.launchDate determines historical creation. Existing orders are not recreated; pre-cutoff orders are historical work, use needsInventoryIssuance=N, and park unfulfilled ship groups in GENERAL_OPS_PARKING.
Convert the merchant's zoned history start and launch cutoff to the deployed instance or JVM time zone. Store newOrderSync.launchDate as the converted launch cutoff and orderSyncHistory.lastSyncDate as the converted history start in zone-less yyyy-MM-dd HH:mm:ss format.
In System Messages, confirm no unrelated ShopifyBulkQuery message is in SmsgProduced or SmsgSent. Keep poll_ShopifyBulkOperationResult
Each history window has a positive terminal bulk and Data Manager result, the open-order reconciliation is complete, and the contained active Order Sync has a positive controlled batch before normal recurrence is saved.
Save converted property timestamps and the exact converted start and end timestamp for every queued history window, along with its history job-run identifier, BulkOrderHistoryQuery and result messages, exact systemMessageId, BULK_ORDER_HISTORY counts and errors, source-to-load reconciliation, duplicate proof, containment and normal recurrence expressions, first controlled-batch message, job-run, import, and Data Manager result, and activation record.
The history cursor advances when a window is queued; if it fails, reset the cursor to the failed window before retrying. Stop if the Chapter 4 order-query compatibility evidence is missing or if protected-data approval, the shared bulk isolation gate, the recorded window bounds, the Data Manager result, or reconciliation fails. Pause the contained job before its first scheduled fire if the controlled batch fails. Orders created more than sixty days ago need separately approved read_all_orders and are outside this guide. Do not use the current Company history action until its compatibility is released and tested.
Continue to routing and fulfillment when history is reconciled and recurring Order Sync is safely active.
Owner: Company application administrator and operations validator
Application: Order Routing app and Company App
Have mapped fulfillment facilities, approved routing and brokering policy, split-order behavior, shipping mappings, and fulfillment notification and tracking policy.
In the Order Routing app, open /order-routing. Select Create routing group, enter the approved group data, select Save, and confirm Changes saved successfully. Open /order-routing/<routing-group-id> and set Status to Active rather than Draft.
In the routing-group detail, add the approved eligible facilities and routing rules. Set each routing rule to Active, select Save, and confirm Saved and Changes saved successfully
A standard shippable Shopify order can route to an eligible facility, be fulfilled there, and return fulfillment and tracking information to Shopify.
Save the routing-group and rule identifiers, their Active states, controlled-test result, schedule and history references, selected-facility configuration, split-order decision, shipping mapping evidence, and notification and tracking settings.
Stop if the routing group or any required rule remains Draft, no eligible facility is selected by the routing test, shipping values are unmapped, or fulfillment and tracking publication is not configured. Do not add pickup, preorder, advanced promise, or returns setup to this standard launch.
Continue to operational access once standard routing and fulfillment settings are proven.
Owner: Company application administrator
Application: Company App
Have the named operational users, approved roles or groups, Product Store assignments, facility assignments, access owner, and access-review date. Stores and facilities must already exist.
In Company App, open /users and select the create action to open /create-user. Leave Facility login off; it is a distinct party-group flow. Enter required First name and Last name and the approved optional Employee ID, Email, and Phone number, then select Create User. Confirm User created successfully, open /user-confirmation/<party-id>, and select Quick Setup.
Each named operational user has the exact template-specific account, security group, Product Store, facility, and/or WAREHOUSE_PICKER role result. Every job that needs application access has a named login and a recorded successful job-specific test.
Save user identifiers; the exact security group where the template creates one, or explicit no-login/no-security-group evidence for Fulfillment; Product Store and facility assignments and count where applicable; WAREHOUSE_PICKER role evidence where applicable; access-test result; access owner; and review date. Do not save plaintext credentials.
Stop if the saved account, security group, Product Store, facility, or WAREHOUSE_PICKER role does not match the selected template and approved access, or if a required application login cannot be supplied through a tested login-bearing template or the supported manual route. The initial Maarg administrator is a platform recovery and administration account, not a routine operations account. Do not recreate legacy raw permission records.
Continue to launch validation once operational users have passed their job-specific access tests.
Owner: Launch owner and operations validator
Application: Shopify Admin, Company App, and Maarg Admin
Confirm that Chapters 1 through 12 are complete, a standard shippable test product is available, an eligible facility can fulfill it, and all evidence owners are available for sign-off.
Place one controlled real Shopify order using a standard shippable product and record the Shopify order identifier.
Verify the expected payment and shipping values in Shopify.
Prove that the realtime path imports the order exactly once: Shopify event, SQS delivery, consume_ShopifyOrders_SQS consumer job run, Data Manager logId tied by createdByJobRunId, SYNC_SHOPIFY_ORDER
One controlled order proves import, mapping, routing, facility assignment, fulfillment, tracking return to Shopify, approved inventory direction, named operational access, and absence of duplicates.
Save the Shopify order identifier and states, HotWax order identifier and state, mapping and facility evidence, fulfillment and tracking confirmation, inventory evidence, the realtime consumer job run and tied Data Manager log, earlier history and fallback System Messages, release versions, sign-off, exceptions, and rollback owner.
Stop the launch for a pending or rejected Shopify request, missing OAuth scope, unmapped product or order value, product count mismatch, facility or Shopify-location mismatch, bulk operation that never downloads or processes, failed Data Manager load, history cursor advanced past a failed window, unavailable realtime queue or consumer, duplicate import, fulfillment or tracking not returned to Shopify, or inventory moving in the wrong direction. Recover the failed stage, save the failure evidence, and repeat the affected validation; do not sign off on a queued job, no visible error, or an order that merely exists somewhere.
The launch is ready for operational handoff only after the launch owner records positive evidence and sign-off.
Use this table to recover without bypassing the applicable stop gate.
Use application manuals only for optional operating detail after this guide's required outcome is complete. Keep the following boundaries clear:
Maarg Admin is the platform-administration application used for the bootstrap, tokens, service jobs, system messages, Data Manager, and integration setup.
Company App is used for Product Store, connection verification, mappings, Product Sync, facilities, operational users, and recurring Order Sync.
Order Routing app is used to create, activate, test, schedule, and review standard routing groups and rules.
For advanced or excluded launch profiles, contact HotWax Commerce for an advanced launch plan rather than extending this procedure with untested steps.
Product identity policy, including governed SKU and barcode rules.
Each Shopify location and its intended physical HotWax facility.
Agreed order-history start date, launch cutoff timestamp, merchant time zone, and deployed instance or JVM time zone.
Written confirmation that Shopify quantity on hand is the approved initial inventory source.
Launch owner, HotWax integration operator, Keychain approver, platform administrator, Company application administrator, and operations validator.
—
2. Instance readiness
HotWax integration operator
Not started
—
—
3. Company and product store
Maarg platform administrator and Company application administrator
Not started
—
—
4. Shopify connection
Shopify administrator
Not started
—
—
5. Shopify mappings
Company application administrator
Not started
—
—
6. Product import
Company application administrator
Not started
—
—
7. Facilities and locations
Company application administrator
Not started
—
—
8. Starting inventory
HotWax integration operator
Not started
—
—
9. Order infrastructure
HotWax integration operator
Not started
—
—
10. History and recurring sync
HotWax integration operator
Not started
—
—
11. Routing and fulfillment
Company application administrator
Not started
—
—
12. Operational users
Company application administrator
Not started
—
—
13. End-to-end launch test
Launch owner
Not started
—
—
Verify the success message Account created with username <username>. The form returns to the normal login page rather than signing you in automatically.
Sign in with the new credentials, sign out, and sign in again.
In Maarg Admin → Applications → System → Security → Users, open the account. The current stable path is /qapps/system/Security/UserAccount/UserAccountList.
Verify that the account is active and has active ADMIN membership.
Create or verify a separate named recovery administrator according to the customer's access policy. In that user's Groups panel, add ADMIN, verify that the membership is active, and test a separate login. Do not grant sensitive diagnostic access unless a separately approved requirement needs it.
Do not require an authentication factor for the bootstrap or recovery administrator until every required Company App and operational client has been tested with that factor. Maarg web login supports authentication factors, but the current basic Maarg REST login does not expose the corresponding factor-code input.
If an authentication factor is required by launch policy, test every required Company App and operational client before enabling it for the launch account. The current basic Maarg REST login has no factor-code input even though Maarg web login supports authentication factors.
WT_lbIn Company App, open /product-store and select Create product store to open /create-product-store.
Enter Company name when this is the first Product Store, then enter Name, ID, and Currency. When Operating countries appears, select Add, choose every approved country, save the selection, and verify the selected country chips before continuing. Select Manage configurations. The page must display Product store created successfully. before it opens /product-store-onboarding/<product-store-id>. Then open moqui.basic.GeoAssoc in Maarg Admin → Applications → System → Tools → Entity → Entities, filter for toGeoId=DBIC and geoAssocTypeEnumId=GROUP_MEMBER, and verify one saved geoId association for every approved operating country.
In the Configurations screen, select Configure manually and set Product Identifier, Auto approve orders, and Sales order ID prefix. Select Setup product store.
Open /product-store-details/<product-store-id> and set the approved locale, time zone, order approval and billing defaults. Re-open the details page and verify every saved value before using the Product Store in a connection.
In Shopify Admin, install the official HotWax Commerce app from the approved application URL. Complete Shopify OAuth, approve only the scope set authorized for the deployed app release and shop, and confirm level-2 protected-customer-data access. Do not copy scope handles from an older setup guide.
Enter the OMS host and the OMS Access Token. Never paste that token into a ticket or screenshot. Submission creates a pending connection request; pending is not connected.
In HotWax Keychain, open Find Instance Requests. The HotWax Keychain approver confirms the customer, instance, and shop, then accepts the correct pending request. For a failed, rejected, duplicate, or superseded request, stop it, record the request identifier and disposition, correct the cause, and submit only the intended replacement.
Reopen the connection in Company App. Confirm that the shop is connected, link it to the Product Store, and confirm the shop identifier and Product Store relationship.
In Company App → Shopify connection → Configuration → Access scopes, select Refresh scopes, record the returned Shopify OAuth handles, and complete both scope gates:
Required API capabilities for the simple profile: confirm the active requested set covers and the refreshed grant provides every capability below.
Shopify write scopes include the corresponding read capability. Record whether read_inventory and read_merchant_managed_fulfillment_orders are explicit handles or are covered by their paired write handles; do not add duplicate read handles only to make the displayed list match.
Verify the granted scopes: compare the refreshed handles with the required capabilities above and record how each capability is granted. Resolve every missing or unexpected scope with HotWax Commerce before continuing. The later setup chapters and final validation confirm that the approved capabilities work.
Not required by this simple profile: read_all_orders; write_orders and write_products for pickup or preorder extensions; read_fulfillments and write_fulfillments; read_assigned_fulfillment_orders and write_assigned_fulfillment_orders; read_third_party_fulfillment_orders and write_third_party_fulfillment_orders; read_channels
Order-import compatibility: have HotWax Commerce confirm that the deployed order import supports this standard scope profile without read_returns. Do not add read_returns unless returns are included in an approved advanced launch profile.
In Maarg Admin → Shopify → Shopify Shops → the connected shop → Shop Remotes, open the selected remote. The current detail path is /qapps/Oms/Shopify/ShopifyShops/ShopifyShopDetail?shopId=<shop-id>. Verify its Access Scope is SHOP_RW_ACCESS.
If the selected remote is blank, SHOP_NO_ACCESS, or SHOP_READ_WRITE_ACCESS, a HotWax integration operator edits that selected remote in Shop Remotes, sets it to SHOP_RW_ACCESS, saves, and rechecks the connection.
In Company App → Shopify → open the connection → Products and Inventory → Product Sync, verify the Shopify API access row displays Write access.
Document the rotation policy. HotWax Keychain retains the OMS token for credential resynchronization, so do not revoke or allow it to expire until it is replaced through the supported Keychain flow and a resync is proven.
For Payment methods, open /shopify-connection-details/<shop-id>/payment-methods, select Add when the HotWax payment method does not exist, enter Payment method name and its Shopify value in Shopify ID, and save; confirm Payment method created successfully. Otherwise select the existing method, enter Shopify ID, and select the save icon; confirm Mapping updated successfully and the mapped value chip.
For Shipment methods, open /shopify-connection-details/<shop-id>/shipment-methods, select the carrier, select Create shipment method when needed, enter Carrier, Shipment method name, and Shopify name, and save. Otherwise edit the existing method's Shopify Name and select Save all. Confirm the Shopify value displays as a chip beside the intended shipment method and the page reports a successful saved mapping.
If starter mappings are present, compare every displayed Shopify value with the actual Shopify value. Confirm every value used by the launch has one intentional HotWax destination.
On Confirm internal name mapping, select the governed identifier—SKU, UPCA / Barcode, or Shopify internal id—and select Next. The choice must match the approved SKU and barcode policy.
On the import review, compare Shopify and HotWax product and variant counts, linked-shop count, and Shopify API access. Select Am I making a mistake? for the sample check. Resolve Conflict results and investigate unexpected Not found in HotWax results; if the page shows Review possible catalog mismatch, select I reviewed the warning and want to continue and Continue to import only for an approved exception.
Select Run product import. In Background sync, select Setup Job if the shop-specific job is missing, select I understand and want to start the first product sync, then select Start product sync.
Follow Product export request payload, Pending bulk operations, and Bulk file process until the run is terminal. Confirm Product sync request completed. Select Finish setup when offered and confirm Recurring product sync scheduled every 15 minutes.; it saves cron 0 */15 * ? * * with paused N and opens the dashboard. If already active, select Open sync page.
Compare Shopify product and variant counts with imported counts; record failed and skipped counts. Inspect representative simple products and variants for SKU, barcode, Shopify product and variant identifiers, and Product Store association. Reconcile duplicate or missing identity exceptions with the launch owner.
To import a Shopify location, open /shopify-connection-details/<shop-id>/locations, select Import facility, select only the intended Shopify locations, select Retail Store or Warehouse, and select the download action. Confirm the {count} locations imported result. Re-open each created facility and explicitly add and verify its Product Store association before mapping; importing from this screen alone does not prove that association.
In /shopify-connection-details/<shop-id>/locations, select the facility row, enter the Shopify location identifier in Shopify ID, and save. Confirm Mapping updated successfully, then select Run Facility Audit and verify the summary shows the required locations as mapped with zero unintended not imported or stale locations.
Review the Shopify location identifier and name, HotWax facility identifier and name, Product Store association, and whether the facility participates in inventory, routing, and fulfillment.
/qapps/system/ServiceJob/Jobs/ServiceJobDetail?jobName=sync_ShopifyInventoryResetIn System Messages, find the resulting BulkQueryShopifyInventoryReset message and record its exact systemMessageId.
Open send_ProducedBulkOperationSystemMessage_ShopifyBulkQuery, select Run Job once, and verify that the recorded message—not another bulk query—moves from SmsgProduced to SmsgSent and receives the Shopify bulk-operation identifier.
Open poll_ShopifyBulkOperationResult and use one-time Run Job actions until the recorded message reaches its expected terminal state. Keep poll_BulkOperationResult_ShopifyBulkQuery paused for this inventory operation.
In Maarg Admin → MDM → Data Manager Imports, wait for the RESET_SHOPIFY_INVENTORY load tied to the recorded message to reach a terminal result.
Compare sample Shopify on_hand values with HotWax quantity on hand. Verify external inventory reset records and that outbound publication did not echo unapproved quantities to Shopify during the seed.
Restore only the schedules approved for normal operations after validation.
SYNC_SHOPIFY_ORDERBULK_ORDER_HISTORY✅ Connectedconsume_ShopifyOrders_SQS✅ ActiveIn Order Sync System Properties, verify newOrderSync.launchDate and orderSyncHistory.lastSyncDate. Use Edit, enter the approved Value, and select Update Property; use Set to Now only when the approved launch cutoff is now.
In Webhooks Management, register both realtime order topics:
For new orders, select Subscribe New Webhook, enter ORDERS_CREATE in Topic, verify EndPoint / ARN, and select Register. This topic provides the dedicated new-order signal during high-volume order creation instead of relying on order updates alone.
For order changes, select Subscribe ORDERS_UPDATED, verify EndPoint / ARN, and select Register.
Refresh the webhook list and confirm that both ORDERS_CREATE and ORDERS_UPDATED rows show the intended endpoint. Webhook creation triggered. is not registration evidence.
Configure the fallback queue_ShopifyOrderSync job by its visible row state:
❌ Incomplete: before opening Fix Configuration, open the linked job name in Maarg Admin Service Job detail and record runAsBatch, fromDate, and additionalParameters, or obtain their governed approved values. Save Config submits only System Message Type and Remote ID and may blank those omitted parameters. Enter the two visible values and select Save Config only after the three hidden values are recorded or approved. Re-open the resulting configured row, select Edit, restore the exact recorded or approved Run As Batch, From Date, and Additional Params, select Update Job, then re-open it and verify all five values and its ✅ Active status.
Configured intended-shop row: select Edit, review System Message Type, Remote ID, Run As Batch, From Date, and Additional Params, then select Update Job only with the exact recorded or governed approved values. Re-open the row and save every displayed value and its ✅ Active status.
⚠️ Unassigned: enter the approved New Job Name in Clone, select Clone Job, then re-open the cloned intended-shop row and follow the applicable incomplete or configured branch.
❌ No fallback jobs found matching queue_ShopifyOrderSync: select Clone Standard Job, enter the approved New Job Name, select Clone Job, then re-open the cloned row and follow the applicable incomplete or configured branch.
Configure sync_ShopifyOrderHistory by its visible row state:
❌ Incomplete: before opening Fix Configuration, open the linked job name in Maarg Admin Service Job detail and record windowDays, or obtain its governed approved value. Save Config submits only System Message Type and Remote ID and may blank the omitted windowDays. Enter the two visible values and select Save Config only after windowDays is recorded or approved. Re-open the resulting configured row, select Edit, restore the exact recorded or approved Window Days, select Update Job, then re-open it and verify System Message Type, Remote ID, Window Days, and its ✅ Active status.
Configured intended-shop row: select Edit, review System Message Type, Remote ID, and Window Days, then select Update Job only with the exact recorded or governed approved values. Re-open the row and save every displayed value and its ✅ Active status.
⚠️ Unassigned: enter the approved New Job Name in Clone, select Clone Job, then re-open the cloned intended-shop row and follow the applicable incomplete or configured branch.
❌ No historic sync jobs found matching sync_ShopifyOrderHistory: select Clone Standard Job, enter the approved New Job Name, select Clone Job, then re-open the cloned row and follow the applicable incomplete or configured branch.
Complete the HotWax-owned infrastructure handoff. Its evidence must show that the EventBridge rule matches both orders/create / ORDERS_CREATE and orders/updated / ORDERS_UPDATED, and must include the SQS queue URL and ARN, dead-letter queue ARN, redrive policy, queue policy, resource policy, a successful AWS test-event identifier for each topic, target-queue delivery, consumer-read evidence, failed-test dead-letter evidence, and policy comparison to the approved environment.
Do not infer a Maarg service-job run or Data Manager load from the infrastructure test event: this screen does not provide a source-proven action that causally creates those records. Runtime proof for the included realtime profile is deferred to the controlled real Shopify order in Chapter 13, where the SQS consumer job run, Data Manager logId, createdByJobRunId, configId, terminal result, and OMS order are tied together. Realtime SQS import does not create a System Message.
Calculate and record the exact converted start and end timestamp for the first history window. Clone sync_ShopifyOrderHistory for the selected shop. Set systemMessageTypeId to BulkOrderHistoryQuery, set the correct Shopify systemMessageRemoteId, set the approved window size—seven days unless the tested release defines another safe default—and select Run Now once. Save the job-run identifier and that window's exact bounds.
Record the resulting BulkOrderHistoryQuery systemMessageId together with the exact converted start and end timestamp for its queued window.
Select Run Job once on send_ProducedBulkOperationSystemMessage_ShopifyBulkQuery and verify that the recorded history message is the message sent.
Use one-time Run Job actions on poll_BulkOperationResult_ShopifyBulkQuery until the recorded history message reaches the expected terminal state.
Wait for the tied BULK_ORDER_HISTORY Data Manager load to reach a terminal result, then reconcile Shopify query records to Data Manager records. Record the same window's exact converted start and end timestamp with the job run, systemMessageId, and Data Manager result.
For each window, compare eligible unknown pre-launch Shopify orders with newly created HotWax orders; prove that existing orders were not duplicated and post-launch records were not created by the history flow. Calculate the exact next start and end timestamp before queueing the next window so the evidence proves no gap or overlap.
After history reconciliation, open /shopify-connection-details/<shop-id>/order-sync/configure. Verify Shopify shop, Product Store, Shopify remote, and Order mapping readiness. Select Create paused Order Sync job and confirm Batch job and Activation both show Paused.
In Schedule, enter a valid containment Quartz cron expression whose displayed Schedule preview and next run are after the controlled validation window. Verify the displayed OMS runtime timezone and select Save schedule. Resolve every Missing mapping in the linked mapping screen or obtain an approved exception before activation.
Select Review and activate, verify the selected shop, remote, containment schedule, and mapping review in Activate Order Sync, then select Activate Order Sync. Confirm Activation shows Active and open /shopify-connection-details/<shop-id>/order-sync immediately; Run now is unavailable while the job is paused.
In the Order sync jobs card, open Queue order requests. With a controlled eligible Shopify order in the selected batch window, select Run now and confirm The standard next batch was queued as <id>. Save the resulting Queued SystemMessage, job run, the tied import, and its Data Manager result. Do not allow the containment schedule to fire while that run is unresolved.
If the controlled batch is positive, open Queue order requests, replace the containment expression with the approved normal recurrence in Quartz cron expression, verify its Schedule preview, and select Save. If the batch fails, immediately turn Active off in that same job detail and select Save before the containment schedule fires; preserve the failure evidence and do not enable normal recurrence.
Set the approved split-order behavior in the active routing group. Use Add schedule or Edit schedule only for the approved routing cadence, then select Save and confirm the group's and each rule's Active state.
Open /order-routing/<routing-group-id>/test and run the controlled routing test with the standard shippable product, shipping method, and mapped facility. Confirm the result selects an eligible facility. Use Run now only for the approved schedule and inspect History for the resulting run.
In Company App, recheck /shopify-connection-details/<shop-id>/shipment-methods for the mapped Shopify shipping method. Open /product-store-details/<product-store-id> and verify Fulfillment notifications and Enable tracking are enabled for the approved standard flow.
Admin: enter Username, Password, and Email; choose Require password reset on login when policy requires it; select the approved Product stores; do not assign facilities; then select Finish setup and confirm Setup complete. Verify security group ADMIN and Product Store role APPLICATION_USER.
Merchandising manager: enter Username, Password, and Email; apply the approved password-reset policy; select the approved Product stores; do not assign facilities; then select Finish setup and confirm Setup complete. Verify security group MERCHANDISE_MGR and Product Store role APPLICATION_USER.
CSR: enter Username, Password, and Email; apply the approved password-reset policy; do not assign Product Stores or facilities; then select Finish setup and confirm Setup complete. Verify security group CSR.
Fulfillment manager: enter Username, Password, Email, and Employee ID; apply the approved password-reset policy; select every approved facility under Select Facilities; do not assign Product Stores; then select Finish setup and confirm Setup complete. Verify security group STORE_MANAGER, party role WAREHOUSE_PICKER, and each facility assignment with role WAREHOUSE_PICKER.
Fulfillment: enter Employee ID only, then select Finish setup. This template does not create a login, security group, Product Store assignment, or facility assignment; it ensures party role WAREHOUSE_PICKER, then redirects directly to /user-details/<party-id> without a Setup complete alert. It does not provide application access.
If a user needs an application login with an approved security group but no login-bearing template above supplies the required access, select Setup Manually at /user-confirmation/<party-id> and confirm the prompt; it opens /user-details/<party-id>. In Login details, enter Username and Password, then select Add credentials. In Clearance → Security Group, select Add to security group (or Add), choose the approved group or groups, and use the save-icon action; confirm Security group(s) updated successfully. In Product stores, select Add to a product store (or Add), choose the approved stores, and use the save-icon action; confirm Role(s) updated successfully. For required facilities, open the Added to facilities assignment row in Fulfillment, choose the approved facilities, and use the save-icon action; confirm Facility associations updated successfully. Re-open /user-details/<party-id> and verify the exact saved Username, Block login state, security groups, Product Stores, facilities, and application access. Do not infer that a template provides an unshown assignment.
For Admin, Merchandising manager, CSR, and Fulfillment manager, Setup complete confirms creation only; then open /user-details/<party-id> and verify Username, Block login is off, and the exact template-specific security group, Product Store, and facility results above. For Fulfillment, use the direct /user-details/<party-id> redirect to verify the WAREHOUSE_PICKER party role and the expected absence of login and security-group assignments. Confirm the relevant saved result when an assignment changes.
Sign in only with a login-bearing template and complete the job-specific application and action test. Record the access owner and review date for each user; do not retain plaintext credentials as evidence.
Verify product, channel, payment, shipping, and location mappings resolve; the order reaches the intended HotWax state; and routing assigns an eligible facility.
Have the facility process fulfillment and confirm fulfillment and tracking publish back to Shopify.
Verify inventory changes follow the approved post-cutover HotWax-to-Shopify direction.
Verify no duplicate order, fulfillment, or inventory message was produced.
Review and save the path-appropriate job-run, Data Manager, and application-screen evidence for every preceding result. Include System Message evidence for the earlier history and fallback checks, not for realtime SQS import.
Record sign-off, release versions, test order identifier, evidence links, known exceptions, and rollback ownership.
Product Sync shows Write access.
Product or order value is unmapped
Add or correct the reviewed mapping and retest the value.
Each used source value has an intentional destination.
Product counts or identity do not match
Compare source and terminal import counts, investigate failed or skipped records, and resolve identity exceptions.
Counts reconcile or the launch owner explicitly accepts a documented exception.
Facility and Shopify location disagree
Correct the physical facility mapping and Product Store association.
Every active operational location has an intentional mapping.
Bulk operation never downloads or processes
Keep the global ShopifyBulkQuery isolation gate, record the exact systemMessageId, run only the prescribed one-time job, and inspect downstream Data Manager evidence.
The recorded message and its Data Manager load are terminal and positive.
Data Manager load fails
Save its error and tied message, correct the source or configuration cause, then rerun the isolated affected flow.
Terminal counts and error review are positive.
History cursor moved past a failed window
Reset orderSyncHistory.lastSyncDate to the failed window before retrying and preserve the failure evidence.
That exact window is reconciled before later windows proceed.
Realtime queue or consumer is unavailable
Repair EventBridge, SQS, dead-letter, redrive, policies, consumer, and webhook prerequisites through the HotWax-owned handoff.
Test delivery, consumer read, and failed-test dead-letter path are proven.
Duplicate import, fulfillment, or inventory message
Pause the affected schedule, preserve identifiers and transitions, determine the duplicate source, and reconcile the data before resuming.
No duplicate is created in a controlled repeat test.
Fulfillment or tracking is absent in Shopify
Verify facility processing, shipping mapping, notification configuration, and tracking publication, then repeat the controlled fulfillment.
Shopify shows the expected fulfillment and tracking.
Inventory moves in the wrong direction
Pause unapproved publication, confirm the current launch phase, and reconcile sample values before resuming the approved direction.
Seeded inventory is Shopify to HotWax; post-cutover publication is HotWax to Shopify.
HotWax Keychain owns acceptance of the pending instance request.
1. Initial Maarg administrator
Maarg platform administrator
Not started
Shopify to HotWax Commerce
One-time starting quantity-on-hand seed
Shopify
HotWax Commerce to Shopify
Ongoing available-to-promise publication after cutover
Shopify request is pending, rejected, duplicated, or superseded
In HotWax Keychain, verify the intended request, record its disposition, correct the cause, and accept only the intended replacement.
The correct request is accepted and Company shows the expected connected shop.
OAuth scope or Product Sync access is missing
—
HotWax Commerce
Refresh scopes, verify the selected remote is SHOP_RW_ACCESS, correct that selected remote if needed, and recheck Product Sync.
read_fileswrite_filesread_draft_orderswrite_draft_ordersread_gift_cardswrite_gift_cardsread_returnswrite_returns