Missing shopify orders in Netsuite (Sales Orders)

In the last few weeks we've had a few hiccups with the connection between Shopify and Netsuite. Because of this, there have been a few orders that the Celigo Flow missed... and so we have had some orders that were NOT synced from Shopify to Netsuite.
My biggest question is: How can we remedy this? Is there a way to look up past orders that have NOT been synced to Netsuite? Is there a way perhaps to mark the orders that have been picked up (mark in Shopify) that would help with the real-time pick up to look for orders that haven't been picked up in the past? I know some people have already looked into this and are writing back a Netsuite id for the order into Shopify, but I don't even know where to start to make that happen... would I need to write a new flow for that or add this on to an existing one?

Hi @johanvl
It seems you're currently using a real-time flow for syncing orders from Shopify to NetSuite.
Have you tried running the scheduled flow after backdating it to cover the period when orders were missed? Due to the built-in duplicate-check logic, orders already synced won’t be re-imported, making this approach safe and efficient.

If you're unsure about performing the backdated sync yourself or need additional guidance, you can connect with Celigo support. You will be assisted with step-by-step guidance to ensure no orders are missed and help with any complexities during the process.
Thanks
Nilesh.

2 Likes

Hi @nileshkumar ,
I have not. Which flow is that? And more importantly: IF I would run that, why would I run that unless I know that I'm missing orders? I don't know that I'm missing orders unless I have something that notifies me that I AM missing them.. (ok, I get a notification when an order is about to expire, but that's pretty late in the process..)
Thanks,
Johan

It's pretty typical to just have both flows on. The real-time flow ensures things are there immediately, but then the batch flow potentially catches anything. Like @nileshkumar said, there is no concern over having duplicates because the flow takes that into account. Maybe have the batch run 1-2 times a day as a failsafe.

1 Like

Which flow is this? Is this the "Shopify order to NetSuite order (cash sale or sales order)"?
This has not been set up. Is there information somewhere to set this up correctly? (I saw some settings under the Settings area) Or do I just need to schedule this for say once a day and that's it?

Hi @johanvl
That is the correct flow.
You can refer the KB article for further guidance or connect with support.

Thanks
Nilesh.

hi @johanvl just to chime in as a user, we have both the realtime and batch flows running, we also instituted a couple of items upstream in Shopify to reinforce the sync:

  1. We have a flow that runs about 5-10 minutes after an order is created to add a label "import" to the order. In Celigo, we only pull orders with the import tag (this helps us avoid pulling in cancelled or fraudulent orders that get worked by other teams). This extra step seems to add a little resiliance to the sync.
  2. We set up email alerts using Flow in Shopify when orders are about 3-4 days old. This list tends to be fairly short, so it's easy to work. And the added benefit is we catch any missed orders well ahead of the expiration date.

Our batch job in Celigo is set to Delta and filtered by Last Updated to catch orders moving from Draft to Active, or any other changes that might be made between creation and readiness for import to NetSuite.

In general, orders missing sync is an outlier for us, either an error to work in Celigo (we also have auto-retry and auto-resolve functions in place to maximize automation) or a miss we can still resolve within a reasonable timeframe.

3 Likes

@Lee.Rice.Epstein Thanks for your input!
As far as the Shopify Flow, you did you set this up? I looked at it and I can have it start at "Order Create", but that's about it. Do you have any insight or know of any documentation to trigger the flow when orders are about 3-4 days old?

@johanvl for the flow, it runs on a daily schedule with the query below to list orders in an auth/unfulfilled state, all the way through pre-paid/unfulfilled. You'll see as well how we use tag:import as a kind of sanity check against "this order should be in order management."

With fulfillment_status:partial and financial_status:partially_paid we also pick up split shipments where 1 product is on backorder.

created_at:<='{{ scheduledAt | date_minus: "4 days" }}' AND tag:import AND status:open AND (fulfillment_status:unfulfilled OR fulfillment_status:partial) AND (financial_status:authorized OR financial_status:partially_paid OR financial_status:paid)

After this,

  • Flow action Count to count items in get order data
  • Flow action Sum to calculate the sum of total amounts
  • If count is greater than 0, send internal email with count of orders, $sum of value and in the email body the order ID and order $