Cash Sale and Sales Order in single Shopify NetSuite IA

I want to sync the Shopify POS orders as cash sale to NetSuite and the Shopify online orders as sales orders to NetSuite. I was planning to use real-time flow for one and scheduled flow for another. Following are the settings and respective errors:

Case 1:

  • Shopify order to NetSuite cash sale (add realtime) for cash sale
  • Shopify order to NetSuite order (sales order or cash sale scheduled) for sales order
  • Shopify transaction to Netsuite customer deposit (add realtime) for customer deposit

Error: You cannot enable "Shopify order to NetSuite cash sale (add) (real-time Flow) because "Shopify order to NetSuite order (cash sale or sales order)" (scheduled flow) is syncing orders to NetSuite as Sales Order. In the scheduled flow, you must change the "Using scheduled flow, sync Shopify Orders to NetSuite as" setting to "Cash Sale" to enable the real-time flow.

Case 2:

  • Shopify order to NetSuite cash sale (add realtime) for cash sale
  • Shopify order to NetSuite sales order (add realtime) for sales order
  • Shopify transaction to Netsuite customer deposit (add realtime) for customer deposit

Error: Please disable 'Shopify order to NetSuite sales order (add)' data flow before enabling this data flow

Case 3:

  • Shopify order to NetSuite order (sales order or cash sale scheduled) for cash sale
  • Shopify order to NetSuite sales order (add realtime) for sales order
  • Shopify transaction to Netsuite customer deposit (add realtime) for customer deposit

Error: You cannot enable "Shopify order to NetSuite sales order (add) (real-time Flow) because "Shopify order to NetSuite order (cash sale or sales order)" (scheduled flow) is syncing orders to NetSuite as Cash Sale. In the scheduled flow, you must change the "Using scheduled flow, sync Shopify Orders to NetSuite as" setting to "Sales Order" to enable the real-time flow.

Does these errors mean that I cannot use a single integration to create cash sales and sales order?

Additionally when I saved the "Using scheduled flow, sync Shopify Orders to NetSuite as" Cash Sales and saved it. I dont see this feature in the Order > Settings > Order tab anymore. Any help will be appreciated.

Hello @sujitdesai183

This is Khaisar from Celigo. Please allow me to answer your query.

The existing Shopify - Netsuite Integration App, do support this usecase.

First thing, I would like to confirm here, for all the POS Orders (including Buy Online Pick In Store), we internally handle them to import as CashSales even if only the flow "Shopify order to NetSuite sales order (add realtime) for sales order" is enabled. We internally read the Order source, and for all the POS orders, we import it as CashSales (as this is ideal workflow for most of the business). For this to work, you just need to have your "Shopify order to NetSuite sales order (add realtime) for sales order" enabled and below setting under Order > POS section as disabled. By this you can sync both your online & POS order using the same flow and in realtime with SalesOrder & CashSale record type respectively.

And for the next query "Using scheduled flow, sync Shopify Orders to NetSuite as" is not displayed. Actually, we show this setting only if both the realtime flows are in disabled status. If any one of the realtime flow is enabled, then we hide this setting, as this flow "Shopify order to NetSuite order (sales order or cash sale scheduled)" considers the same record as like the realtime flow i.e., either SalesOrder or CashSale. However as mentioned in the first reply, though both Realtime and Batch flow are set to SalesOrder record, we still import the POS orders as Cashsale.

Please review this and let us know for further queries.

Thanks,

 

Khaiser,

Thank you so much. This was much relieving. Currently we do not map the payment method on sales order and we map it on the customer deposit. I would like to know that when POS orders are treated as Cash Sales when synced through "Shopify order to NetSuite sales order (add realtime) for sales order" how do we map their payment method since this flow will not have the payment method mapping. Also what happens to the customer deposit flow when the order is POS order. Does it gets triggered or not?

Hello @sujitdesai183

Greetings !!
As I mentioned previously, we use the same SalesOrder import even to import the CashSale records in certain scenarios. This means we need to specifically handle few mappings which are required to create a cashsale record, something like

1. Location
2. Account
3. Payment Method etc.,

For other mappings except Payment Methods, they don't require any special handling as that won't impact the sales order record. But for Payment Methods, as it affects import of customer deposit, we need to handle in such a way that this mapping is applicable only when the source is "POS". For this to achieve, please make use of below handlebar for the Payment Method mapping

{{#if source_name}}{{#compare source_name '===' 'pos'}}{{payment_gateway_names}}{{else}}{{/compare}}{{/if}}

This will ensure the Payment Method is set only for CashSale record and not considered for SalesOrder.

And as well, whenever we are importing a POS order as CashSale, we don't trigger the Customer Deposit flow. It is triggered only when we are importing the particular order as Sales Order.

Please review this and let us know for any further queries.

 

@khaisarahamad

This is really great insight. Thanks a ton! Just one quick query. We will place orders from POS but we will ship the order products to customer if the the product is out of stock. We call these orders as 'endless aisle' and they are equivalent of 'Buy in Store and ship to customer'. We will be importing these orders as netsuite sales orders. To handle these orders do we need only need to check the following settings in POS subtab of order settings:

5301043caa20740200000001-b81e4a3cf8484a7d9a34258d9b285e30.png

Since the pos order source for this order will be 'POS' the payment method will be mapped for these sales order. And this will prevent the customer deposit flow run. Even thought the source is same for POS orders and endlessAisle orders the former is fulfilled and latter is not. Is there any other conditions like fulfillment status that we can add to make sure we achieve the following:

1. Shopify POS, fulfilled order: NetSuite Cash Sale

2. Shopify online, unfulfilled order(BOPIS): NetSuite Sales Order and Customer Deposit

3. Shopify POS, unfulfilled order(EndlessAisle): NetSuite Sales Order and Customer Deposit.

I would appreciate if you can share the handlebar syntax for payment method that will accommodate the above requirements. Meanwhile I will try on my own for this as well. Thank you so much again. Much appreciate your help.

Hello @sujitdesai183

Hope you are doing well !!

In the above list you mentioned, we internally support both POS Orders & BOPIS Orders i.e., Scenario 1 & 2. And for EndlessAisle orders, we can try to handle this by extending the handlebar I provided previously. Mostly we will be using the node as you mentioned i.e., combination of "source_name" & "fulfillment_status"
Can you confirm have you reviewed these kind of orders previously and what will be "fulfillment_status".

Do you mind logging a support ticket with the same Order ID, and sample Order JSON for the same. So that we can review it thoroughly and provide you the handlebar.

Please review and let us know for any further queries.

Thanks,

 

Khaiser,

I figured that out and it is working. Thank you for the lead again.