POS Orders

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.

Different Approaches for Posting 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.

Workflow

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.

Sync POS orders to NetSuite

  1. 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

/home/{sftp-username}/netsuite/cashsale/export

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.

  1. 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

HC_SC_ImportCashSale

Here's how POS order fields are mapped in HotWax Commerce and NetSuite

S.No.Fields in HotWax CommerceFields in NetSuite

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

Here's how POS order fields are mapped in HotWax Commerce and NetSuite that remain hidden in the user interface but are included in the POS order CSV file

S.No.Fields in HotWax CommerceFields in NetSuite

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

Synchronize NetSuite POS Order ID to HotWax Commerce

  1. 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

HC_MR_ExportedCashSaleCSV

SFTP Locations

/home/{sftp-username}/netsuite/salesorder/import/orderidentification
  1. 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

Order Identification
FTP Config: IMP_ORDER_IDENT

Last updated