The integration app supports Shopify's “POS Pro” edition features.
Important
-
The Buy online, pick up in-store, and Sync Buy in-store, ship to a customer orders as a sales order settings are available only in the premium/markets edition of the integration app.
-
When using the Buy in-store, ship to a customer setting, to create a sales order instead of a cash sale, make sure to add the shipping address while creating the order in the POS app. The app automatically creates a cash sale if you don't add a shipping address. To add the shipping address, ensure you have the required permission enabled. You can check the steps here: Shopify Help - Add Shipping Address.
Required: A new permission “Read & write fulfillment orders” has been added added to the Shopify App “NetSuite SmartConnector” to get fulfillment information for Shopify POS pro orders. You must re-authorize your Shopify connection for this integration app.
This feature allows you to sync orders that are bought online and picked up from the store that are fulfilled from the POS location. To sync the Buy online, pick up in-store orders, in the Settings > Order > POS tab, check the Buy online, pick up in-store checkbox. The order flow brings the location details on the NetSuite sales order for the “buy online, pickup in-store” orders. For these orders, the pick-up store address is displayed in the “Ship To” field in the Address tab on the NetSuite sales order.
-
If the Buy online, pick up in-store checkbox is checked : A new page processor “Get order fulfillment info from Shopify ” is added to the appropriate order flow. The appropriate order flow syncs the pick-up store address in the “Ship To” field in the “Address” tab on the NetSuite sales order.
-
If the Buy online, pick up in-store checkbox is unchecked: The appropriate order flow syncs the default shipping address on the customer record in NetSuite.
The “Get order fulfillment info from Shopify” page processor syncs the Shopify fulfillment location at the line level in NetSuite. The fulfillment location at the line level helps to identify a group of line items to be fulfilled from the same location for the same order.
Notice
A merchant receives an order for two hats and two shirts. The hats are assigned to location A, and the shirts are to be fulfilled by a fulfillment service. In this case, the order includes two fulfillment orders:
-
one represents the hats to be fulfilled from location A
-
one represents the shirts to be fulfilled by the fulfillment service
Note
-
If the order does not have a shipping address and if it is a pick-up order, the shipping address is replaced with a Shopify location.
-
For the Buy online, pick up in-store orders, the shipping method from Shopify is the name of the pickup location. Be sure to update the shipping method in the Map Ship Methods setting ( Settings > Order > Shipping tab).
For the Buy online, pick up in-store orders, when the order is picked up from the store, the fulfillment is actually happening at the POS location and you can sync your fulfillment using the “ Shopify fulfillment to NetSuite item fulfillment ” flow to create a fulfillment record in NetSuite against the sales order.
Limitation : If multiple pickup locations are assigned to an order, the integration app considers only the first location.
For these orders, if you wish to sync any other additional Shopify information, you can configure the following mappings in the order flow:
-
Customer address: create a custom field in NetSuite and add a mapping in the order flow.
-
assigned_location_id
-
assigned_location : {name, address1, address2, city, country, zip}: such as POS location
-
Others like supported_actions and other details (such as pick-up date) provided by Shopify.
In NetSuite,
-
When you check the Buy online, pick up in-store setting in the integration app, the order flow differentiates such orders in NetSuite by checking the “Buy online, pickup in-store” checkbox on the NetSuite order record ( eTail > Shopify sub-tab).
-
The “Ship To” in the address tab in NetSuite represents the pick-up location present in the Shopify order.
For detailed instructions about the mapping that syncs line level location from Shopify to Netsuite, see Map location to the NetSuite custom field section.
This feature allows you to sync orders that are bought in-store and later shipped to the appropriate address. To sync Buy in-store, ship to customers orders as sales orders to NetSuite, in the Settings > Order > POS tab, check the Sync “Buy in-store, ship to a customer” orders as a sales order checkbox. When the setting is checked, these orders are synced into NetSuite as a sales order. The warehouse team can process fulfillment in NetSuite and sync back the fulfillment information from NetSuite to Shopify.
If the source channel of the order is POS and in Shopify, if “Fulfillment” is None , then it is a Buy in-store, ship to customer order. Also, a POS order with a shipping address is treated as a Buy in-store, ship to customer order.
Note
You can see the Sync “Buy in-store, ship to a customer” orders as a sales order checkbox, only if you uncheck the Add POS orders into NetSuite as sales orders checkbox in the Settings > Order > POS tab.
After you sync the Buy in-store, ship to a customer orders to NetSuite:
-
The sales orders and its other NetSuite records can be synced using the “NetSuite Billing to Shopify Billing Add” flow.
-
The fulfillment records can later be synced to Shopify using the “NetSuite Fulfillment to Shopify Fulfillment Add” flow.
In the NetSuite sales order, to see the POS location for each line item, you can create a custom field and map the location to that field.
Once you enable the Buy Online, pick up in-store setting, a new page processor “Get order fulfillment info from Shopify” is added to the appropriate order flow.
To map the Shopify location field to the NetSuite custom field:
-
Go to the Flows tab.
-
Click Edit mappings of the order flow you want to map the location.
-
In the sales order field mappings, paste this expression in the Source record field (Shopify):
line_items[*].fulfillment_orders[0].assigned_location_id
-
Map the above field to the respective Item Location field on the Destination record field (NetSuite) side.
-
Click Save. Once this setting is saved, set up a Static lookup table to convert the Shopify Location ID to the Netsuite Location ID/Name.
-
Click the Settings ( ) button next to the NetSuite custom field you mapped above.
-
In the Field mapping type, select Lookup.
-
In the Options, select Static: Value to value.
-
From the Import field value list, select the required value and map it to the value in the Export field value field.
-
Click Save & close.
Comments
Hi Sujit Desai, I spent a lot of time on this and happy to share some knowledge as this is no where documented.
You need to map:
line_items[*].fulfillment_orders[0].assigned_location_id
Hi Celigo team, could you please confirm if any additional mapping is required for location line level mapping? I'm not able to see location is being mapped at SO.
What should be the mapping to get the pickup location mapped at line level? Cause right now I am mapping the fulfillments location id to line level location but since there are no fulfillments when the order is created in shopify and is synced in real time to netsuite. Hence nothing is being mapped to line level location field of netsuite sales order
Updated this doc to introduce a new section Map Shopify location to the NetSuite custom field to address your request. Kindly look into the same and let us know if you are able to achieve your use case. Thanks!
Please sign in to leave a comment.