Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Discover how integration with NetSuite simplifies inventory synchronization and management of bundles in HotWax Commerce, ensuring accurate inventory calculations and order fulfillment updates.
Integration with NetSuite simplifies the inventory synchronization of bundles in HotWax Commerce. As NetSuite shares a daily morning feed of the inventory of products, it includes the inventory for bundles as well.
Automatic Inventory Management of bundle
NetSuite independently manages the inventory of bundles by considering the lowest common denominator among their components. For example: if a bundle comprises a belt and a wallet, where the belt's inventory is 7 and the wallet’s inventory is 10, the inventory of bundles aligns with the lowest available quantity, which becomes 7.
Multi-Location Inventory Handling
NetSuite operates similarly to HotWax Commerce in calculating the inventory of bundles across multiple locations, considering the availability of components at each location. If all bundle components are available at a single location, NetSuite considers the inventory of bundles for that specific location. For instance, imagine a bundle consisting of a belt and wallet distributed across various locations:
Times Square Store: 5 Belts
Brooklyn Store: 10 Wallets
Broadway Store: 3 Belts and 7 Wallets
NetSuite calculates the inventory of a bundle by computing the lowest available quantity within a single facility. As a result, NetSuite will push an inventory of 3 to HotWax for this bundle, reflecting the available quantity of the scarcest component at one location in the bundle.
Post-Inventory Computation Handling
After NetSuite's inventory calculation for bundles, NetSuite synchronizes the inventory of the bundles to HotWax Commerce like other products’ inventory
When syncing an order containing a bundle to NetSuite, only the bundle's product ID is sent. NetSuite does not require bundle component details as retailers already have bundle-component associations set up within NetSuite to simplify the import process.
When the bundle is fulfilled from a location in NetSuite, HotWax Commerce receives the bundle's ID in the fulfilled order feed from NetSuite. Processing this information, HotWax Commerce marks both the bundle and its components as fulfilled, ensuring accurate fulfillment status within the eCommerce system.
Learn how invoices are generated in NetSuite and HotWax Commerce, finalizing payment transactions and accounting entries for completed orders, contributing to accurate financial reporting in both syst
Generating invoices in NetSuite for orders streamlines the financial processes. This step finalizes payment transactions and accounting entries for completed orders, contributing to accurate financial reporting. This step remains the same for orders whether items are fulfilled in NetSuite or not.
Actions
A scheduled SuiteScript in NetSuite identifies sales orders in "Pending_Billing" status, which have corresponding customer deposits already created.
Upon generating the invoice, the status of the customer deposit status is updated from "Undeposited" to "Fully Applied", and the invoice is marked as "PAID IN FULL," signifying payment reception and application to the invoice. This process also ensures all necessary accounting postings are handled in NetSuite.
This step has no external dependency on jobs running in HotWax Commerce.
SuiteScript
The HC_SC_CreateSalesOrderInvoice
SuiteScript also generates a CSV file highlighting erroneous records found during processing and uploads the file to the SFTP server. Simultaneously, an email alert is automatically triggered to designated personnel, helping them quickly pinpoint the source of the issue and accelerating troubleshooting.
Overall sync progress
This is the last step of the order sync. The order lifecycle has been completed.
Approve order in HotWax for fulfillment
HotWax brokering allocates orders
Sync item allocation to NetSuite for facilities where NetSuite fulfillment is used
Sync order item fulfillment details from NetSuite to HotWax
Sync order item fulfillment details from HotWax to NetSuite
Invoice orders in NetSuite
eCommerce platforms like Shopify lets customers cancel orders if they have not yet been fulfilled. Customers can initiate cancellations themselves, or they may request CSRs to cancel their orders. In either case, when an order is canceled on the eCommerce platform, it is marked as "Canceled".
HotWax Commerce runs a scheduled job every 15 minutes to synchronize order cancellations from the eCommerce platform. Upon the successful synchronization of cancellations from eCommerce, the order status is marked as "Canceled", and the payment status is set to "Refunded" in HotWax Commerce. Subsequently, when an order is marked as "Canceled" in HotWax Commerce, this cancellation update is synchronized with NetSuite to close the corresponding order in NetSuite.
Actions
A scheduled job in HotWax Commerce Integration Platform runs every 15 minutes and identifies order items that have been canceled in HotWax Commerce. Subsequently, generates a JSON file comprising the canceled order items and places this file at a designated SFTP location.
SFTP Location
A SuiteScript in NetSuite reads the JSON file from the SFTP location and updates the order status from "Pending Fulfillment" to "Closed" for the affected orders.
SuiteScript
When orders are created in NetSuite, corresponding customer deposits are also generated. In cases where an order is canceled, HotWax Commerce initiates a customer refund against the customer deposit in NetSuite to ensure accurate accounting and posting. If only a few items within a order are canceled, the refund is created only for the amount corresponding to the canceled items.
Actions
Another scheduled job in HotWax Commerce Integration Platform checks the refunded amount due to order cancellations, generates a JSON file containing this information and places the file at a designated SFTP location.
SFTP Location
A SuiteScript in NetSuite reads this file and generates a customer refund against the customer deposit. Upon the creation of the customer refund record, the status of the customer deposit is automatically updated from "Not Deposited" to "Fully Applied".
SuiteScript
Learn how sales orders are processed in HotWax Commerce and NetSuite
In the dynamic world of eCommerce, the efficient fulfillment of online sales orders is a critical aspect of a retailer's success. When online orders are placed via e-Commerce platforms like Shopify, they need to be quickly processed and fulfilled to meet promised delivery timelines while optimizing operational costs.Online orders placed on platforms like Shopify are downloaded into the HotWax Commerce for processing and fulfillment. HotWax Commerce plays a pivotal role in this process by seamlessly routing orders to the most suitable fulfillment locations. The decision is based on factors such as inventory availability, cost, and time, ensuring efficient order processing.
Upon arrival in HotWax Commerce, orders are initially flagged as "created," awaiting further processing. The pivotal step follows as these orders are pushed into Netsuite ERP for creation, ensuring that all essential order information, including order IDs, is accurately transmitted. This synchronization process typically takes no longer than 30 minutes per order, ensuring a swift transition into Netsuite.
After creation in Netsuite, the system communicates back to HotWax Commerce, confirming the successful integration and prompting a transition of the order to an "approved" state within HC. At this juncture, the order is deemed ready for allocation, where it is assigned to a specific location within the inventory network, facilitating the subsequent fulfillment process.
While the synchronization process is efficient, it is also scalable to accommodate varying order volumes. HotWax Commerce can handle up to 600 orders per 15-minute interval, and by strategically batching orders, this capacity can be further augmented to approximately 1200 orders within a 30-minute timeframe. Despite potential fluctuations in processing times during peak periods, typically taking around 45 minutes to 1 hour 20 minutes, the integration mechanism ensures that orders are seamlessly synchronized between Shopify and Netsuite ERP.
The flow of order and fulfillment information in the sales order integration varies depending on the responsibilities a retailer has designated to NetSuite. Oftentimes NetSuite is used for is accounting and GL posting functionalities with all fulfillment happening in external systems such as a 3PL, dedicated WMS system, or specialized fulfillment software in stores. Other times retailers may be using NetSuite’s fulfillment capabilities as well, usually in their main warehouse. While most parts of the order sync remain the same, the stage at which order item allocation is pushed to NetSuite varies based on NetSuite’s fulfillment responsibilities.
Here is the NetSuite Order Lifecycle Business Process Model that provides step by step overview of how the sync works before we dive into elaborate details.
Most of our customers use Shopify as their eCommerce platform along with NetSuite as their ERP and warehouse fulfillment solution. Therefore, to explain the NetSuite Order Lifecycle BPM, we have taken Shopify as the eCommerce platform, NetSuite as the ERP and warehouse fulfillment solution, with HotWax Commerce as the Order Management System.
Customers place their online orders on Shopify. HotWax Commerce being an Order Management System, downloads new orders from Shopify so that they can be further processed. By default these orders are assigned a “Created” status in HotWax Commerce.
A dedicated job in HotWax Commerce prepares and exports a feed of orders marked as "Created" to NetSuite.
NetSuite's SuiteScript then consumes this order data, generating orders in the "Pending Fulfillment" status.
HotWax Commerce ensures confirmation of successful order item synchronization with NetSuite. To achieve this, a dedicated job in HotWax Commerce downloads NetSuite's internal IDs, while another job downloads NetSuite's item line IDs. This process also triggers multiple actions in HotWax Commerce and NetSuite:
A scheduled job in HotWax Commerce creates customer deposit records for corresponding orders in the "Undeposited" status in NetSuite.
A scheduled job in HotWax Commerce updates the order status from "Created" to "Approved" in HotWax Commerce.
Why is order approval necessary?
Only orders with approved status are eligible to be brokered in HotWax Commerce and orders without approval remain in the "Created" status.
Now that orders have been approved, they are automatically sent to the Brokering Queue which serves as a waiting area for orders awaiting processing. Orders in the brokering queue are analyzed and picked in the brokering run.
What are brokering runs:
Brokering runs are scheduled by retailers to execute at specified intervals, allowing for effective and timely order routing. Retailers need to set a frequency and run time for brokering. For example, setting the frequency of a run to "Daily" and the runtime to "7 am" will execute the brokering run every morning at 7 am.
In the brokering run, the order routing engine looks for the best fulfillment location to fulfill orders from.
Learn more about order brokering and routing
In the event where an order is routed to a warehouse fulfillment location, HotWax Commerce synchronizes allocation details to NetSuite.
When items are allocated to stores for fulfillment, they automatically show up in the HotWax Commerce Store Fulfillment App
.
A dedicated job in HotWax Commerce synchronizes order line items with their respective fulfillment locations to NetSuite.
NetSuite’s SuiteScript consumes this feed and updates fulfillment location on corresponding orders.
When the warehouse fulfillment team begins the fulfillment of the order item, an item fulfillment record is created in NetSuite. As soon as the item is picked, packed and shipped multiple actions take place in NetSuite:
The item fulfillment record is marked as “Shipped”.
The initial order status is updated from “Pending Fulfillment” to “Pending Billing”.
Finally, once the invoice is auto generated in the "Paid" status, the order status is updated from “Pending Billing” to “Billed”. This marks the completion of the order lifecycle in NetSuite.
In the event where a fulfillment team is unable to find an order item to be fulfilled, they reject that specific order. A scheduled job in HotWax Commerce imports the rejected order item feed from NetSuite. Subsequently, all rejected orders are moved to the rejected queue in HotWax Commerce so that they can be rebrokered and allocated to a new fulfillment location.
NetSuite's script exports item fulfillment records marked as "Shipped". A scheduled job in HotWax Commerce consumes this feed, and following actions take place:
The fulfillment status of the corresponding order item in HotWax Commerce is updated to "Shipped".
The order status is automatically updated from "Approved" to "Completed" in HotWax Commerce.
In the event of a partial shipment, the order remains in the "Approved" status until all items have been shipped.
Now, let's see what happens when orders are allocated to a store location instead of the warehouse.
Fulfillment teams at the store prepare online orders for shipment.
Upon successful picking of an order item, the fulfillment status is changed to "Picked".
Once the item has been packed, the fulfillment status is updated to "Packed".
Finally, when an order item is marked as shipped in the Store Fulfillment App
, the fulfillment status is then updated to "Shipped".
When all items of an order are marked “Shipped” in the Store Fulfillment App
, the order status is automatically updated from “Approved” to “Completed” in HotWax Commerce.
In the event of a partial shipment, the order remains in the "Approved" status until all items have been shipped.
In HotWax Commerce, a scheduled job prepares and exports a feed containing order items marked as "Shipped". NetSuite’s script consumes these records and multiple actions take place:
The item fulfillment record is created amd marked as “Shipped”.
The initial order status is updated from “Pending Fulfillment” to “Pending Billing”.
Finally, once the invoice is auto generated in the "Paid" status, the order status is updated from “Pending Billing” to “Billed”. This marks the completion of the order lifecycle in NetSuite.
Once an order reaches the "Completed" status in HotWax Commerce, a scheduled job in HotWax Commerce sends the tracking details to Shopify and marks the orders as “Fulfilled”.
This process remains consistent regardless of whether the order fulfillment is performed in NetSuite or the Store Fulfillment App
.
When an order is marked "Completed" in HotWax Commerce, either through the fulfillment feed from NetSuite or the Store Fulfillment App
, HotWax Commerce automatically identifies these completed orders and marks them as "Fulfilled" in Shopify.
Overview of how sync works:
Sync new orders from HotWax to NetSuite
Sync customers
Sync order line items
Sync order ids
Create customer deposit
Approve order in HotWax for fulfillment
HotWax brokering allocates orders
Sync item allocation to NetSuite for facilities where NetSuite fulfillment is used
Sync order item fulfillment details from NetSuite to HotWax
Sync order item fulfillment details from HotWax to NetSuite
Invoice orders in NetSuite
When setting up a facility on HotWax, retailers choose if fulfillment is run by NetSuite. If a facility uses NetSuite for fulfilling orders, HotWax effectively treats NetSuite as the WMS of that facility. So when order items are allocated to that facility, HotWax pushes those items' allocation details to NetSuite and fetches there fulfillment details from NetSuite as well.
If a retailer already has their 3PL integrated with NetSuite, they can choose to configure it in the OMS as a NetSuite fulfillment location. This will allow them to continue to use their pre-built integration without having to integrate the 3PL directly with the OMS.
Why this is important
HotWax by default does not sync item allocation details to NetSuite for items until they are fulfilled. While this may seem like a lag in our integration, it important for maintaining simplicity in the integration. With distributed order routing its common for items to be allocated and rejected from fulfillment multiple times, so the first allocation is not always final. If we were to sync item allocation to NetSuite for all items as soon as they were allocated, we'd also have to update the allocation every time it changed in the OMS. Syncing allocation information early on to NetSuite even when it's not used for fulfillment also introduces the opportunity for accidental fulfillment from NetSuite which is avoided entirely by not posting allocation information until fulfillment is completed.
Often, customers come into the store excited to purchase their favorite item, only to find it unavailable in their size or preferred color. When this happens, store associates check stock availability across their network of locations. If the desired item is found elsewhere, they place an order on the customer's behalf for the delivery to their home address.
Most of our customers opt for Shopify as their eCommerce platform, along with Shopify POS for their POS system. In this scenario, HotWax Commerce downloads send sale orders from Shopify, just like other regular orders.
While both send sale orders and regular eCommerce orders are placed to be shipped to the customer's address, the only distinction lies is the sales channel they originate from. Send sale orders are initiated by store associates on behalf of the customer so they have Shopify POS as their sales channel. This sets them apart from regular eCommerce orders, where customers directly place their orders through traditional online channels.
As discussed above, despite the fact that send sale orders originate from the POS sales channel, their treatment remains same as regular orders. A scheduled job in HotWax Commerce downloads all new orders, including send sale orders from Shopify, so that they can be brokered and fulfilled. Consequently, upon download, these orders are automatically assigned the default "Created" status in HotWax Commerce.
Send sale orders in the “Created” status are then synchronized to NetSuite for further processing.
The process of synchronizing send sales orders from HotWax Commerce to NetSuite also remains the same. The created orders feed generated by the HotWax Commerce Integration Platform contains new orders in the "Created" status, including send sale orders to sync to NetSuite.
The steps discussed in the synchronization of sales orders from HotWax Commerce to NetSuite are followed to sync send sale orders:
Sync new orders from HotWax to NetSuite
Sync customers
Sync order line items
Sync order ids
Create customer deposit
Approve order in HotWax for fulfillment
HotWax brokering allocates orders
Sync item allocation to NetSuite for facilities where NetSuite fulfillment is used
Sync order item fulfillment details from NetSuite to HotWax
Sync order item fulfillment details from HotWax to NetSuite
Invoice orders in NetSuite
In our integration, send sale orders are handled similarly to regular orders. Therefore, the SFTP location, SuiteScripts, as well as the jobs within the HotWax Commerce Integration Platform and OMS, remains the same.
HotWax Commerce also synchronizes POS completed orders to NetSuite as cash sales. So, once send sale orders are “Completed” in HotWax Commerce, how does HotWax Commerce ensure that they are not synchronized to NetSuite again as regular POS completed orders?
As outlined in the POS sales synchronization process, three criteria are checked when syncing POS completed orders to NetSuite as cash sales: the order status must be "Completed," the sales channel should be identified as POS_Channel, and the shipping method should be POS_COMPLETED. Given that send sales orders have their shipping method set as standard, they are excluded from being synchronized to NetSuite as POS completed orders.
Gift cards are stored-value cards that carry a value determined at the time of the card's purchase. They are often given as gifts or rewards and are redeemable for products up to the value stored on the card.
Retailers set up both physical and digital gift cards in their eCommerce platform. Both physical and digital gift cards have a unique serial number or GC number that customers need to enter to redeem the card's value.
Learn more about gift cards set up in eCommerce
Physical Gift Cards:
Physical gift cards are tangible cards that customers can buy online or in-store. These cards come with a unique serial number that customers can use to redeem the value stored in the card.
Digital Gift Cards:
Digital gift cards, also known as e-gift cards, are virtual equivalents of physical gift cards. Customers receive them via email or text message along with a unique serial number that they can use to redeem the value stored in the card.
A scheduled job in HotWax Commerce downloads both physical and digital gift card orders from the eCommerce platform like Shopify.
Learn more about gift card orders synchronization to HotWax Commerce
The process of synchronizing physical gift card orders from HotWax Commerce to NetSuite remains straightforward like any other order item.
Upon downloading physical gift card orders, HotWax Commerce synchronizes them with NetSuite in the “Created” status. Once these orders are synchronized, they have their status as “Pending Fulfillment” in NetSuite. HotWax Commerce retrieves NetSuite sales order item line IDs and NetSuite sales order IDs. After that HotWax Commerce creates customer deposits in NetSuite in the “Undeposited” status, and approves physical gift card orders in HotWax Commerce.
Approved physical gift card order items are brokered in HotWax Commerce, upon allocation, HotWax Commerce begins syncing them to systems that are responsible for fulfillment of those gift card items.
In our integration, physical gift card orders are handled similarly to regular orders. Therefore, the SFTP location, SuiteScripts, as well as the jobs within the HotWax Commerce Integration Platform and OMS, remains the same.
Learn more about sales order synchronization between NetSuite and HotWax Commerce
In the event where a fulfillment location where a gift card item is allocated uses NetSuite for fulfillment, usually a warehouse, then the HotWax Commerce syncs those items' allocation with NetSuite.
Item fulfillment records are created in NetSuite against the gift card order items.
As part of the fulfillment process, warehouse fulfillment teams assign a unique serial number to each gift card and load the corresponding value onto it. This ensures that when customers receive their orders, they can easily redeem the value by using the serial number provided on the gift card.
Once the gift card item is prepared and ready to be shipped, the corresponding item fulfillment record is marked as “Shipped” in NetSuite.
Fulfilled order status is updated in NetSuite from “Pending Fulfillment” to “Pending Billing”, subsequently, invoice is auto generated in NetSuite in the status “Paid”, and the customer deposit status is automatically updated from “Not Deposited” to “Fully Applied”.
Once the gift card order item is successfully fulfilled, it is synchronized from NetSuite to HotWax Commerce along with other fulfilled sales orders.
A scheduled job in HotWax Commerce marks physical gift card orders that are fulfilled in NetSuite as “Completed”.
It’s crucial to note that the gift cards are not functional until they are activated in the eCommerce platform. The activation process in eCommerce is a necessary step to ensure that the gift cards are redeemable and fully functional upon receipt by customers.
Learn more about synchronization of fulfillment data
A scheduled SuiteScript in NetSuite generates a CSV file containing gift card items, their assigned serial numbers, and values corresponding to the gift card orders. The generated CSV is then placed at an desginated SFTP location.
SuiteScripts
Export NetSuite gift card fulfillment details:
SFTP Location
A scheduled job in HotWax Commerce Integration Platform reads the generated CSV file from the SFTP location, runs transformation and generates a JSON file with the relevant data required for the gift card activation, including, gift card items, their assigned serial numbers, corresponding values in NetSuite.
Finally, once the JSON is prepared, HotWax Commerce Integration Platform initiates gift card activation process in the eCommerce platform. Because most of our customers are using Shopify as their eCommerce platform, in this scenario HotWax Commerce Integration Platform calls Shopify API to activate the gift card.
HotWax Commerce Integration Platform communicates directly with Shopify for gift card activation, without any intermediary involvement from the HotWax Commerce OMS.
Job in HotWax Commerce
Gift card activation:
Shopify API
Bulk data import GraphlQL API used along with gift card create mutation
Once the gift card is activated in eCommerce, customers can conveniently redeem it.
When a physical gift card item is allocated to stores for fulfillment, they show up in the HotWax Commerce Fulfillment App
.
Similar to fulfilling physical gift card orders in NetSuite, as part of the fulfillment process, store associates assign a unique serial number to each gift card and load the corresponding value onto it.
Once gift card order items are successfully fulfilled in stores, a scheduled job in HotWax Commerce synchronizes fulfilled order data to NetSuite.
Upon synchronizing fulfilled orders data, the gift card order status in NetSuite is updated from “Pending Fulfillment” to “Pending Billing”, subsequently, invoice is auto generated in NetSuite in the status “Paid”, and the customer deposit status is automatically updated from “Not Deposited” to “Fully Applied”.
This marks the completion of physical gift card orders in NetSuite.
For store allocated orders, store associates initiate the gift card activation directly from the HotWax Fulfillment App.
HotWax Commerce automatically syncs these activation codes to Shopify, so that these gift cards can be activated and redeemed right after customers receive their orders. This activation step ensures that the gift card is fully functional and customers can use the unique serial number they received in their email to redeem the value stored in the gift card.
Digital gift cards are already in the “Completed” status in HotWax Commerce. HotWax Commerce also synchronizes them with NetSuite so that customer deposits can be created against them and invoices can be generated.
Digital gift cards are auto-activated and customers can directly redeem them by entering a unique serial number provided with the card.
A scheduled job in HotWax Commerce Integration Platform generates a CSV file of gift card orders that are in “Completed” status and do not have a NetSuite order item line IDs. This helps make sure that only relevant orders are synchronized to NetSuite and regular orders that are “Completed” in HotWax Commerce are not synchronized again to NetSuite.
A scheduled SuiteScript in NetSuite reads the CSV file from the SFTP location and creates gift card orders in the “Pending Fulfillment” status.
HotWax Commerce retrieves NetSuite sales order item line IDs, NetSuite sales order IDs, and creates customer deposits in NetSuite in the “Undeposited” status.
By default non inventory items like digital gift cards are configured to be not eligible for fulfillment in NetSuite. Therefore digital gift cards are automatically fulfilled in NetSuite and their status updated from “Pending Fulfillment” to “Pending Billing”.
Subsequently, invoice is auto generated in NetSuite in the status “Paid”, and the customer deposit status is automatically updated from “Not Deposited” to “Fully Applied”.
When walk-in customers purchase a gift card from the store, it is treated as a regular POS order in HotWax Commerce. HotWax Commerce syncs those orders with NetSuite in the POS sales synchronization to NetSuite.
What happens when customers redeem their gift card to pay for a new order?
When gift card payments are applied to an order, they are not processed like traditional transactions. Instead they impact the GL in NetSuite as "deferred revenue". In order to correctly post this payment to NetSuite, it is not sent as a customer deposit and instead posted as a "payment item" in the order when pushed to NetSuite.
If gift card payments were recorded as customer deposits, there could be a risk of double counting the revenue. This is because the revenue from gift card sales would already have been recorded when the gift cards were initially sold. Treating gift card payments as payment items avoids this double counting since they're simply offsetting existing revenue rather than creating new revenue.
Learn how the OMS syncs allocated items to systems for fulfillment, including NetSuite facilities for warehouse orders, ensuring accurate allocation and fulfillment processes.
After an order's items are allocated, the OMS begins syncing them to systems that are responsible for fulfillment of those items. When items are allocated to stores for fulfillment, they show up in the HotWax Store Fulfillment App.
If the facility where an item is allocated uses NetSuite for fulfillment, usually a warehouse, then the OMS syncs those items' allocation with NetSuite.
It's important to remember that if items are not allocated to a NetSuite Facility
their allocation is not synced to NetSuite until after fulfillment is complete.
Actions
A scheduled job in HotWax Commerce Integration Platform generates a CSV file containing order line items with their respective fulfillment locations and places this file at an SFTP location.
SFTP Location
A SuiteScript in NetSuite reads this CSV file from the SFTP location and updates fulfillment locations in sales orders by using the task.CsvImportTask of N/task module.
SuiteScripts
Import NetSuite fulfillment item allocations:
Sync new orders from HotWax to NetSuite
Sync customers
Sync order line items
Sync order ids
Create customer deposit
Approve order in HotWax for fulfillment
HotWax brokering allocates orders
Sync item allocation to NetSuite for facilities where NetSuite fulfillment is used
Sync order item fulfillment details from NetSuite to HotWax
Sync order item fulfillment details from HotWax to NetSuite
Invoice orders in NetSuite
If a NetSuite fulfillment location cannot fulfill an order item that has been allocated to them, it is moved to a Rejected Orders
facility. The Rejected Orders
facility is an "undefined" type of facility, which means it is not mapped to a physical location. A SuiteScript periodically exports all the order items at this facility and places them at an SFTP location.
A scheduled job in HotWax Commerce imports this rejected order item feed and moves those items back to the brokering queue to be reallocated to a new facility.
SuiteScripts
SFTP Location
Job in HotWax Commerce
If an order is rejected from the HotWax Store Fulfillment App with a valid inventory issue reason, then inventory delta's are also pushed to NetSuite. These are the valid inventory variance reasons to be pushed to NetSuite:
VAR_STOLEN
VAR_DAMANGED
VAR_FOUND
SFTP Locations
Inventory variance of actual vs programmatic:
SuiteScripts
Learn how fulfillment information is synchronized between NetSuite and HotWax Commerce, ensuring accurate order status updates and financial processing.
When the warehouse fulfillment team begins the fulfillment of the order item, an item fulfillment record is created in NetSuite. As soon as the order item is picked, packed and shipped, the item fulfillment record is marked as “Shipped” and the order status is updated from "Pending Fulfillment" to "Pending Billing".
Synchronizing shipped order items from NetSuite to HotWax Commerce ensures that the order status is consistent and updated across both systems.
Actions
A Map Reduce SuiteScript generates a CSV file containing item fulfillment records in the Shipped status and places it at an SFTP location.
SuiteScript
SFTP Locations
A scheduled job within HotWax Commerce Integration Platform reads and transforms this CSV file into the JSON format so that OMS can consume this file. This JSON file is then placed at an SFTP location.
A scheduled job within HotWax Commerce OMS reads this JSON file from the SFTP location, marking order items as fulfilled in HotWax Commerce.
Job in HotWax Commerce
Sync order item fulfillment details from NetSuite to HotWax
The primary difference in this context is the approach to sending fulfillment location data from HotWax Commerce to NetSuite.
While fulfillment locations are indeed transmitted to NetSuite after in-store orders are fulfilled within HotWax Commerce, it's important to understand that this data transmission isn't critical for the actual fulfillment of orders. The fulfillment location data is conveyed to NetSuite once orders are fulfilled in HotWax Commerce. Its significance lies in updating order status in NetSuite, subsequent creation of invoices and the application of payments to these invoices. This step occurs post-fulfillment in HotWax Commerce to ensure proper financial processing and completion of orders in NetSuite.
Actions
A scheduled job in HotWax Commerce Integration Platform retrieves fulfilled order items and creates a feed of outbound shipments as a JSON file and places it at an SFTP location.
to be added
A Scheduled Script in NetSuite reads this JSON file from the SFTP location, allocating locations to the orders in NetSuite by updating order records. Additionally, it creates fulfillment records in Shipped status in NetSuite based on the HotWax Commerce shipment data using the N/Record module of NetSuite.
SuiteScript
SFTP Locations
Upon completion of this process, the orders transition from "Pending Fulfillment" to "Pending Billing" status, signifying that they are fulfilled and ready for billing.
The HC_SC_CreateItemFulfillment
SuiteScript also generates a CSV file highlighting erroneous records found during processing and uploads the file to the SFTP server. Simultaneously, an email alert is automatically triggered to designated personnel, helping them quickly pinpoint the source of the issue and accelerating troubleshooting.
Sync order item fulfillment details from HotWax to NetSuite
Overall sync progress
Order fulfillment is completed and now the only step remaining is invoicing.
Sync new orders from HotWax to NetSuite
Sync customers
Sync order line items
Sync order ids
Create customer deposit
Approve order in HotWax for fulfillment
HotWax brokering allocates orders
Sync item allocation to NetSuite for facilities where NetSuite fulfillment is used
Sync order item fulfillment details from NetSuite to HotWax
Sync order item fulfillment details from HotWax to NetSuite
Invoice orders in NetSuite
These reports play a crucial role in ensuring order synchronization across Shopify, HotWax, and NetSuite.
The Missing Order Attribute Report is a vital tool for tracking order synchronization. By monitoring the presence of essential attributes, it identifies orders lacking crucial information, ensuring a seamless synchronization process. This report enables proactive resolution of discrepancies, preventing any orders from failing to synchronize effectively.
Field | Description |
---|
In the NetSuite context, the report ensures accurate order synchronization by verifying essential attributes. By highlighting orders lacking these attributes, it prevents synchronization issues, providing assurance that orders seamlessly integrate with NetSuite.
Field | Description |
---|
The Canceled Order Report provides a comprehensive tracking mechanism for all orders that have entered the OMS and subsequently been canceled. This report ensures a systematic record of cancellations, offering visibility into the cancellation process.
In the context of NetSuite, the Canceled Order Report becomes important due to the non-automatic synchronization of cancellations by HotWax. This report ensures that canceled orders align with expectations in NetSuite, whether through Celigo or NetSuite user actions. By using this report, organizations leveraging NetSuite gain a proactive means to verify and reconcile cancellation records, preventing discrepancies. This meticulous approach contributes to the accuracy of cancellation data across systems, enhancing the reliability of financial and operational records within NetSuite.
Field | Description |
---|
The Product Without NetSuite ID report identifies products that have been synchronized from Shopify to the OMS with an expectation that NetSuite should have corresponding entries for all these products. However, instances may arise where legacy data in Shopify is not present in NetSuite. This discrepancy has the potential to disrupt the synchronization in product-based workflows between Shopify, the OMS, and NetSuite. Addressing the products without NetSuite IDs is crucial to maintain the integrity of data across platforms and ensure a seamless synchronization process, preventing any potential disruptions in the flow of product information between the systems.
The Customers Without NetSuite ID report identifies instances where customer records synchronized from Shopify to the OMS lack corresponding entries in NetSuite. To address this, the OMS creates new customers in NetSuite, ensuring the integrity of customer data across platforms. This report provides an overview of customers without NetSuite IDs, offering valuable insights into the synchronization status and enabling timely corrective actions. By maintaining consistency in customer data, this approach contributes to a seamless and reliable integration between Shopify, the OMS, and NetSuite.
The Allocation Pending Report displays orders assigned to facilities that currently lack sufficient inventory for immediate fulfillment. Monitoring the orders and items listed in this report is essential for initiating replenishment actions at the store. By doing so, retailers can ensure that inventory levels are maintained adequately, facilitating the successful completion of fulfillment for the identified orders.
Discover how order approval in HotWax Commerce ensures seamless integration with NetSuite, preventing conflicts and errors in order fulfillment.
Orders that are in "Created" status in HotWax Commerce are pushed to NetSuite rather than orders that are in "Approved" status. It's important to note the rationale behind this decision.
Initially, we attempted to synchronize approved orders from HotWax Commerce to NetSuite. However, this posed challenges when dealing with orders that contained both available and unavailable inventory items for fulfillment. In such cases, only a partial order could be pushed to NetSuite, causing complications. If the order was partially fulfilled in NetSuite due to certain available items, a subsequent attempt to send the remaining items led to conflicts. NetSuite recognized the initial order as complete and did not accept the remaining partial order, causing system errors and duplication.
To circumvent such complexities and ensure a seamless process, a strategic shift was made. Orders, upon their creation within HotWax Commerce, are designated as "Created" status. It is at this phase that critical order information is captured and assembled into CSV files for transmission to NetSuite. By choosing the "Created" status for order synchronization, HotWax Commerce retains control of the integration process and its sequence of interactions with NetSuite, enhancing accuracy and mitigating errors that arose from attempts to synchronize orders in "Approved" status.
Orders will only be allocated for fulfillment after they have been approved.
To successfully create a sales order in NetSuite, . If the order contains a new customer not present in NetSuite, the system won't allow the order to be pushed.
Actions
A scheduled job within HotWax Commerce Integration Platform operates at defined intervals to generate a CSV file comprising customers who have not been synchronized to NetSuite. This job can be configured to run at regular intervals, typically set at an hourly frequency. Customers who haven't been synchronized within the last hour are included in this CSV file and placed at an SFTP location for synchronization with NetSuite.
HotWax Internals
Identify new customers by checking the Person table for entries where the roleTypeId is CUSTOMER
and where the PartyIdentification
record for identification type NETSUITE\_CUSTOMER\_ID
is not created.
SFTP Location
A Scheduled Script in NetSuite is responsible for downloading the CSV file of customers not yet synchronized and utilizes the ImportTask function of the N/Task module. This script processes and creates customer records within NetSuite, ensuring that the necessary customer information is available in NetSuite for order creation.
SuiteScripts
Import new customers from SFTP
Once customers are created in NetSuite, a scheduled script exports recently created customers in a CSV file at an SFTP location to be imported by HotWax Commerce.
A scheduled job in Hotwax Commerce OMS reads this file from the SFTP location and syncs the NetSuite customer IDs, confirming the customer synchronization in the OMS.
SuiteScripts
Export recently created customers to SFTP
SFTP Location
Job in HotWax Commerce
Import NetSuite Customer IDs from SFTP
"*" denotes fields that are required to be sent to NetSuite for the customer sync to work
Sync customers
Capturing orders in HotWax Commerce initiates the creation of orders in "Created" status. In this step, created sales orders are pushed from HotWax Commerce to NetSuite for further processing.
A job within HotWax Commerce Integration Platform generates a CSV file of orders in "Created" status that have not yet been sent to NetSuite and places this file at an SFTP location. When creating this file HotWax Commerce also ensures that the customer already exists in NetSuite using the customer ID saved in the last step.
The file contains details such as unit prices, order adjustments, and shipping costs, excluding direct tax amounts. HotWax Commerce omits the tax amount from the file and sends tax codes for the individual order items because NetSuite independently computes the taxes based on these codes and applies them accurately to each order item, ensuring precise tax calculations within NetSuite.
Order and Item Discounts
If an order has a discount code applied to it, during order sync to NetSuite, HotWax checks if the applied code is available in NetSuite. If the code is available then the exact code is used and the value of the discount is shared as the Rate
. In the event that the code is not available in NetSuite, HotWax will use a default discount code SHOPIFY DISCOUNT
along with the value of the discount.
Item-level discounts have special handling as well. They are synced as a separate line item in the order using a SHOPIFY DISCOUNT ITEM
item, however, HotWax does not send an order line ID for this item. The amount of the adjustment is added in the Amount
field when preparing the CSV for NetSuite and the Price Level
is always set to Custom
.
Item Price
The price for products is not sent by HotWax when the order syncs to NetSuite. Instead, NetSuite automatically adds the value of the product upon order creation based on the price of the product in NetSuite.
Tax Codes
For retailers that use Avatax, the Tax Code and Shipping Tax Code will always contain AVATAX
when sent from HotWax. Avalara Tax calculation will automatically compute taxes on the order in NetSuite when the order is created.
We've added a limit to how many orders can be synced in one file to NetSuite to ensure the NetSuite file size limit is not breached. NetSuite has a limit of 25,000 rows in one CSV, so if your order volume in one sync duration exceeds this limit, we automatically paginate the file to ensure NetSuite does not reject the file. During pagination, one order should not be split into separate files because this could lead to errors in the order import process in NetSuite. Assuming that most eCommerce orders contain 10 or fewer items, there is an upper limit of 1000 orders per file. This keesp the file size well below NetSuite's limit while also leaving a buffer for orders with more line items.
Though it may seem like this would significantly slow down the order sync, this is not actually the case. All valid orders are still exported from HotWax Commerce at once and then paginated for NetSuite, this means all the order files are available for NetSuite to process and the speed at which they're processed is determined by the configuration of NetSuite used by the retailer. Higher configurations will have faster and more concurrent file process capabilities.
SFTP Locations
A scheduled SuiteScript in NetSuite reads this CSV file from the SFTP location and creates sales order records in the "Pending Fulfillment" status using the CSV Import function of the N/Task module.
SuiteScript
To sync sales orders from HotWax Commerce to NetSuite, a required field is the "Order Status." As a part of our integration strategy, we have opted to directly set the value of "Order Status" in NetSuite as "Pending Fulfillment".
"*" denotes fields that are required to be sent to NetSuite for the sales order sync to work
This step syncs NetSuite sales order line item IDs with HotWax Commerce order items. This step helps in mapping and aligning the order line items in HotWax Commerce with their corresponding line item IDs in NetSuite. This synchronization enables a smooth and accurate cross-referencing of items and their relevant details between the two systems. Without syncing order line item IDs, any attempt to update an order item in NetSuite would result in a new order item being created.
Actions
A Map Reduce SuiteScript in NetSuite retrieves order line item IDs, generates and places the CSV file at an SFTP location.
SuiteScript
SFTP Location
A job within HotWax Commerce OMS imports this CSV file from the SFTP location and associates NetSuite order line item IDs with corresponding order items.
Job in HotWax Commerce
Sync order line items
This step synchronizes NetSuite sales order IDs with orders in HotWax Commerce for tracking and identification. This step enables cross-referencing and linkage between orders in both systems, paving the way for accurate tracking and management.
The synchronization of Sales Order IDs from NetSuite to HotWax Commerce serves as an indicator that the orders in HotWax Commerce have been successfully integrated into NetSuite. Additionally, it is an essential step for various functions, including the creation of item fulfillment, return authorization, and customer deposit records in NetSuite. *** NOTE
Actions
A Map Reduce SuiteScript in NetSuite fetches pending fulfillment orders, generates a CSV file with internal sales order IDs and places this file at an SFTP location.
SuiteScript
SFTP Location
A job within HotWax Commerce OMS imports this CSV file and associates NetSuite order IDs with corresponding orders.
Job in HotWax Commerce
Sync order ids
This step creates customer deposit records in NetSuite for authorized payments of sales orders. Generating a customer deposit in NetSuite is essential to represent authorized payments for orders. This step signifies the initiation of the financial transaction for orders.
Sync status of customer deposits to NetSuite is time-driven, this means that we check the entry date of an order into HotWax Commerce and manage a cursor for the last exported timestamp. If a customer deposit creation fails, it will not be automatically retried because it will have passed the order entry time condition.
To ensure that only applicable customer deposits are created in NetSuite, orders that have been canceled or refunded will not have their deposit created. However, if an order is canceled or refunded after the deposit has been created in NetSuite, it will have to be manually handled by a NetSuite user. HotWax provides a report for all orders that have been canceled or refunded where the customer deposit may need to be dealt with manually.
Actions
HotWax Commerce Integration Platform runs a scheduled job that generates a JSON file comprising of order details with their respective grand totals and places this file at an SFTP location.
SFTP Locations
Export customer deposit for orders with NetSuite order identification
A SuiteScript in NetSuite reads this JSON file from the SFTP location and creates customer deposit records in "undeposited" status. It employs the N/Record module for record creation.
SuiteScript
The HC_SC_CreateCustomerDeposit
SuiteScript also generates a CSV file highlighting erroneous records found during processing and uploads the file to the SFTP server. Simultaneously, an email alert is automatically triggered to designated personnel, helping them quickly pinpoint the source of the issue and accelerating troubleshooting.
This step involves marking orders as "Approved" for further processing and fulfillment. This step ensures that orders are appropriately marked "Approved" once all necessary details and required references are established. This authorization triggers the routing of orders to their designated fulfillment locations.
Actions
A scheduled job within HotWax Commerce Integration Platform validates order items, generates and places the CSV file at an SFTP location. A scheduled job within HotWax Commerce OMS reads this CSV file from the SFTP location and marks order items "Approved".
Approved orders are then processed by the brokering engine in HotWax Commerce for order routing. Following the execution of the order brokering engine, the available inventory for each order item is assessed. Consequently, the brokering engine in HotWax Commerce assigns suitable fulfillment locations to the order items that have inventory available for fulfillment.
After completing these steps, here is how much of the order sync is now complete:
Sync new orders from HotWax to NetSuite
Sync customers
Sync order line items
Sync order ids
Create customer deposit
Approve order in HotWax for fulfillment
HotWax brokering allocates orders
Sync item allocation to NetSuite for facilities where NetSuite fulfillment is used
Sync order item fulfillment details from NetSuite to HotWax
Sync order item fulfillment details from HotWax to NetSuite
Invoice orders in NetSuite
Explore a list of shipping methods mapped between Shopify, HotWax Commerce, and NetSuite, ensuring accurate order syncing.
When syncing orders to NetSuite it's very important to have the correct shipping methods mapped. If shipping methods are not mapped correctly the order import process may fail.
Here is a sample table of how shipping methods are mapped between Shopify, HotWax and NetSuite.
# | Shopify Value | HotWax ID | NetSuite Value |
---|
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 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
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
Field | Description |
---|
Field | Description |
---|
Field | Description |
---|
S.No. | Fields in HotWax Commerce | Fields in NetSuite |
---|
S.No. | Fields in HotWax Commerce | Fields in NetSuite |
---|
S.No. | Fields in HotWax Commerce | Fields in NetSuite |
---|
S.No. | Fields in HotWax Commerce | Fields in NetSuite |
---|
S.No. | Fields in HotWax Commerce | Fields in NetSuite |
---|
S.No. | Fields in HotWax Commerce | Fields in NetSuite |
---|
ORDER_NAME | The identifier for the order |
ATTRIBUTE | The essential order attributes. For example, |
STATUS | The status if the order has essential attributes or not |
ORDER_NAME | The identifier for the order |
ATTRIBUTE | The essential order attribute. For example, |
NETSUITE_ORDER_EXPORTED | Status if the order has been exported to NetSuite or not |
NETSUITE_CUSTOMER_ID | The customer identifier in NetSuite |
ORDER_ID | The ID of the order in Shopify |
HC_ORDER_ID | The ID of the order in HotWax Commerce |
CANCELLED_DATE | Date when the order was canceled |
SKU | Unique identifier |
ITEM_DESCRIPTION | Narrative detailing the characteristics of the item |
Price | The monetary value associated with the canceled item |
REASON | Reason behind the cancellation |
External_Id | The ID of the order in the external system |
sku | Stock Keeping Unit (SKU) for the product |
shopify_product_id | Unique identifier for the product in Shopify |
hotwax_product_id | Unique identifier for the product in HotWax OMS |
hotwax_customer_id | Unique identifier for the customer in HotWax |
FIRST_NAME | First name of the customer |
LAST_NAME | Last name of the customer |
shopify_customer_id | Unique identifier for the customer in Shopify |
order_count | Count of orders associated with the customer |
FACILITY_ID | The identifier of the facility in external systems |
FACILITY_NAME | The name of the facility in external systems |
SKU | Unique identifier |
QUANTITY | Quantity required of the SKU |
1 | Shopify Customer ID | HC Shopify Customer ID |
2 | NetSuite Customer ID | Internal Customer ID |
3 | Name | Name |
4 | Emails |
5 | Phones | Phone |
1 | Product Store External ID | Subsidiary * |
2 | Customer-Closed Won | Status * |
3 | Individual | Type * |
4 | Party ID | External ID |
5 | Party Classification | Initial Lead Source |
6 | True | Taxable |
1 | NetSuite Sales Order ID | Internal Sales Order ID |
2 | Shopify Order ID | HC Shopify Order ID |
3 | Shopify Order Name | PO# |
4 | Sales Channel | HC Sales Channel |
5 | Customer | Customer * |
6 | Bill To Address | Billing Address * |
7 | Order Date | Date * |
8 | Product | Item |
9 | Qty | Quantity |
10 | Ship To | Shipping Address * |
11 | Ship Method | Shipping Method |
12 | Ship From | Location |
13 | Communications | Memo |
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 |
6 |
1 | Priority Shipping (3-5 Day) | PRI_SHP_3DAY | Priority Shipping (3-5 Day) |
2 | FREE 2-Day Shipping | FRE_2_DAY_SHP | 2-Day Shipping |
3 | FREE Standard Shipping (7-10 Days) | FRE_STD_SHP_7DAY | FREE Standard Shipping - Fedex Smartpost Select Lightweight |
4 | DHL api Express Worldwide | DHL_API_EXP_WW | DHL Express Worldwide |
5 | FedEx International Priority® | FDX_INT_PRI | FedEx International Priority |
6 | FedEx International Economy® | FDX_INT_ECO | FedEx International Economy |
7 | Overnight Shipping | OVR_SHP | FedEx Standard Overnight |
8 | FREE 2 Day Shipping | FRE_2DAY_SHP | FedEx Home Delivery |
9 | FedEx 2Day | FDX_2DAY | 2-Day Shipping |
10 | Standard Shipping | STD_SHP | 2-Day Shipping |
11 | SecondDay | SEC_DAY | FREE FedEx 2-Day |
12 | Standard | STANDARD | 2-Day Shipping |
13 | EXPEDITED | EXPEDITED | 2-Day Shipping |
14 | SmartPost Standard Shipping (7-10 Days) | SMP_STD_SHP_7DAY | SmartPost Standard Shipping (7-10 Days) |
15 | 2-Day Shipping | 2_DAY_SHP | 2-Day Shipping |
16 | 2 Day Shipping | 2DAY_SHP | 2-Day Shipping |
17 | 2-Day FedEx Shipping | 2_DAY_FDX_SHP | 2-Day Shipping |
18 | FedEx International Priority Express | FDX_INT_PRI_EXP | FedEx International Priority |
19 | FedEx International Connect Plus | FDX_INT_CNT_PLS | FedEx International Connect Plus |
20 | FedEx Ground Shipping | FDX_INT_GRD_SHP | FedEx Ground |
21 | 2-3 Day International Shipping | 2DAY_INT_SHP | FedEx International Connect Plus |
22 | 2-5 Day International Shipping | 5DAY_INT_SHP | FedEx International Connect Plus |
23 | 2 Day Shipping 67G | 2DAY_SHP_67G | 2-Day Shipping 67G |
24 | 2 Day FedEx Shipping | 2DAY_FDX_SHP | FedEx Home Delivery |
25 | 3-Day Shipping | 3_DAY_SHP | 3-Day Shipping |
26 | 3 Day Shipping | 3DAY_SHP | FedEx Home Delivery |
27 | Standard Ground Shipping | STD_GRD_SHP | FedEx Home Delivery |
28 | Ground Shipping | GRD_SHP | FedEx Home Delivery |
29 | Shipping | SHP | USPS Shipping |
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 |