Discover how HotWax Commerce synchronizes POS sales to NetSuite, ensuring accurate inventory and accounting updates for a consolidated view of online and in-store sales.
In a retail environment, POS (Point of Sale) transactions play a vital role, reflecting the real-time sales happening in physical stores. POS sales are posted to NetSuite to manage inventory and conduct relevant accounting. While many businesses integrate their POS systems directly with their ERP (Enterprise Resource Planning) systems, some retailers choose to centralize their sales data, routing all transactions through an Order Management System (OMS) to synchronize both online and in-store sales data with the ERP. This scenario focuses on this synchronization where HotWax Commerce acts as the intermediary to push POS sales to NetSuite.
There are two primary ways to record POS sales in NetSuite: creating sales orders or directly creating cash sales records. Creating sales orders necessitates additional steps such as creating customer deposits, fulfillment records, and invoices. Cash Sale transactions represent immediate sales with received payment, eliminating the need to create fulfillment records, unlike conventional sales orders.
We took the approach of directly creating cash sales for POS sales data in NetSuite due to its streamlined process, eliminating the need for intervention to create additional records and allowing for immediate completion of transactions.
The synchronization of POS sales from HotWax Commerce to NetSuite involves the creation of Cash Sale records in NetSuite, ensuring that sales data from physical stores is accurately reflected in the ERP system. By channeling all POS transactions through HotWax Commerce, retailers can leverage this integration to keep their inventory updated, perform relevant accounting postings, and maintain a consolidated view of both online and in-store sales within NetSuite.
A job within HotWax Commerce Integration Platform identifies POS completed orders that need to be synced to NetSuite by checking the following conditions:
Order Status: Completed.
Sales Channel: POS_Channel.
Shipping Method: POS_COMPLETED.
POS orders that match these criteria are exported to an SFTP location in a CSV file.
SFTP Locations
Time based sync HotWax uses a time based cursor to track which orders have been synced. This means if sync fails for an order, it will not be automatically retried.
A Scheduled SuiteScript in NetSuite imports this CSV file from the SFTP server. The SuiteScript uses the CSV ImportTask function of the N/Task module to import the POS order details as Cash Sale records directly into NetSuite.
SuiteScript
1
Shopify Order Name
PO #
2
NetSuite Order ID
POS Order Internal ID
3
Shopify Order ID
HC Shopify Order ID
4
Sales Channel
HC Sales Channel
5
Order Date
Date *
6
Bill To
Customer *
7
Product
Item
8
Qty
Quantity
9
Location
Location
1
Order Item Seq ID
External Order Line ID
2
Price Level NetSuite
Price Level
3
Tax Code
Tax Code
4
Product Promo ID
Discount Item
5
Product Store External ID
Subsidiary
To sync POS orders from HotWax Commerce to NetSuite, a required field is the "Shipping Address." HotWax Commerce syncs the store's address in the "Ship To" field in NetSuite
"*" denotes fields that are required to be sent to NetSuite for the POS order sync to work
A MapReduce SuiteScript is utilized in NetSuite to export a CSV file to an SFTP location containing the internal NetSuite IDs corresponding to the processed POS orders.
SuiteScript
SFTP Locations
The Import Order Identification job within HotWax Commerce OMS then retrieves the exported CSV file from the SFTP server and creates Order Identification records in the OMS, linking the POS orders with their respective NetSuite internal IDs.
Job in HotWax Commerce