Configure - Return Flow

  • Updated

DataFlow : LoopReturns Return to NetSuite Return Authorization Add

On creating a return in LoopReturns(status: open), our integration will export the returns from the loop and create the return authorization with the status Pending Receipt in NetSuite. Integration App has the following 2 flows to accomplish this

  1. LoopReturns Return to NetSuite Return Authorization Add
  2. LoopReturns Return to NetSuite Return Authorization Add (Batch)

The first flow is a real-time flow that picks up the returns from LoopReturns as soon as it’s created in LoopReturns, In case the return is missed by the first flow, the second flow will run on the scheduled basis and imports the missing records. Real-time reduces the sync time and syncs the records in both systems in almost real-time.

Pre-Requisites

  1. Sales orders should be billed.
  2. Support creating the return authorization from the sales order or billing record(cash sale or invoice).
  3. If the Client chooses to create the Return Authorization from the billing record, make sure they don’t create multiple invoices on a single sales order.
  4. Etail order Id/Shopify order Id should be populated on the NetSuite Sales Order transaction body field, also on the billing records if the client chooses to create return authorization on the billing record

Integration App comes up with the following features

Return Statuses: can configure the flow to support pulling both open and closed status returns from LoopReturns with the multi-select option shown in the below screenshot.

1.png

Group the Items: In case the item with the same SKU appears as multiple lines in LoopReturns, the option will help them to group all of them as a single item and create a single item in NetSuite Return Authorization during import.

Group_Items_with_Same_Sku.png

Cutoff Start Date and Time: We have a “Cutoff start Date and Time” field to stop exporting any Loopreturns returns that got created before the set value date. So if we set the date to 10/20/19, our integration app will only process the records that got created on or after 10/20/19 and updated after the flow lastExportDateTime in LoopReturns. If this is left empty it will then bring all the LoopReturns records that got updated after the lastExportDateTime of the flow and doesn’t care about when a return is created in LoopReturns.

2.png

Get details from the parent record: In some cases, there is a use case to get the details[like payment method, etc] from the parent sales order/invoice/cash sale records and make it available in the data [Source record ] so that we can map it to necessary Destination record field (NetSuite), also can add lookUp. For more details please check the integration app documents. Please note that we can only pull transaction body level fields from the parent record and not the line item details.

3.png

Discounts: Integration App supports all different types of discounts that NetSuite supports. However, we cannot support the combination of different types of discounts in the setup, the client should select one of them during the configuration. The discount details are pulled from the LoopReturns, we use them to set the appropriate discount in the NetSuite.

  1. Header Level Discount – Body level field DISCOUNT, RATE will be set
  2. Each Line Item Level Discount – Configured discount item will be added below each line item if there is a discount for the item
  3. Discount as a separate line item – One single line item with the total discount will be added to the transaction
  4. Based on the sales order – If the sales order has the header level discount, will set the header level discount on the return authorization, if not will set whatever Line Level Discount or Discount as a separate line item that is configured in the setup. You cannot setLine Level Discount and Discount as a separate line item at the same time.In case the sales order has both header level discount and other types of discounts on the sales order, return authorization will set the header level discount.

Sales Tax: Supports all types of NetSuite sales tax configurations. The tax details are pulled from the LoopReturn, we use them to set the appropriate tax in the NetSuite.

  1. Header/Body Level/Tax Percentage – Supports setting up the Header or Body Level or Tax Percentage sales tax
  2. Item Tax Code – Supports setting up the tax code [like Avalara] on the line items and making sure the sales tax applied on the LoopReturns is reflected on the NetSuite Return Authorization.
  3. Sales Tax as a separate line item – One single line item with the total sales tax will be added to the return authorization

Exchanges/Advanced Exchanges/Instant Exchanges/Different Priced Exchanges/Shop Now:  These are all different features available in LoopReturns for the exchanges. From our Integration point of view, all these exchanges are the same. We add a line item in the return authorization with a negative exchange total amount, to track the exchange. The preferred NetSuite item type for this is the non-inventory item for sale, the account for the item should be set with the proper account to see the proper GL impact. Return Authorization created has the checkboxes to identify whether its Exchange, Advanced Exchanges, Storefront(shop now).

NOTE: Please make sure to uncheck the CAN BE FULFILLED/RECEIVED checkbox

Upselling: In the case of upselling, we save the upsell amount into the custom field on Return Authorization. This upsell amount should/will reflect in the new sales order created in Shopify [shopify to NetSuite], but it is out of the scope of our integration.

Store Credit: When a customer selects store credit during the return process, a gift card will be created in Shopify. We add a line item in the return authorization with a negative store credit/gift amount, to track the store credit amount. The preferred NetSuite item type for this is the non-inventory item for sale, the account for the item should be set with the proper account to see the proper GL impact. Return Authorization created will check the checkbox LOOP GIFT CARD to identify if the refund type is store credit.

NOTE: Please make sure to uncheck the CAN BE FULFILLED/RECEIVED checkbox

Information: Other information like tracking number, amount, total tax, handling fee about the LoopReturn returns are stored in the Return Authorization custom fields that come with our Netsuite bundle

4.png

Note:

  1. When the loop return issued gift card is used in Shopify, there is no way to link it to the Return Authorization to which the gift card is generated
  2. GL impact or Importing or updating any of the exchange or gift card orders into NetSuite is out of the scope of this project and should be handled by Shopify NetSuite IA.
  3. If the Client chooses to create the Return Authorization from the billing record, make sure they don’t create multiple invoices on a single sales order.
  4. Updates to the Return Authorization in NetSuite [after the Item Receipt] via the integration app are not supported at the line level.
  5. Cannot bring any details about the exchange order placed or orders placed with store credit
  6. Cannot bring the Refund payment method that is used for the refunds
  7. Cannot form any link between the new exchange Sales Order or order placed with store credit with Netsuite return authorization in NetSuite
  8. Cannot bring store credit gift card number or its last 4 digits
  9. Returns in Loop Returns in a status other than “Open” or “Closed” can not be made eligible for importing Returns into NetSuite.
  10. The return’s ID in Loop Returns is mapped to the “Loop Returns Id” field in NetSuite. In case if there is any record of the same record type with the same “Loop Returns Id” exists, the record sync will be ignored without creating any duplicates or errors.

DataFlow : LoopReturns Return to NetSuite Return Authorization Label Update

Loop has the ability to generate the shipping labels while placing a return to ship the return items. However, it’s a return policy setting for the merchant. If merchants do not turn on shipping labels on the loop, during the return process no label is generated. Customers will be shown the address to ship their items back to on the Customer Portal confirmation page.

For all the returns that have the shipping label generated, our integration will update the shipment status[pre_transit, in_transit, out_for_delivery, delivered, error, failure] back into NetSuite [custom field: LOOP LABEL STATUS] to know the current status of return items from NetSuite.

Integration App has the following 2 flows to accomplish this

  1. LoopReturns Return to NetSuite Return Authorization Label Update
  2. LoopReturns Return to NetSuite Return Authorization Label Update (Retry)

The first flow is a real-time flow that gets triggered every time there is an update on the shipping label status and updates the return authorization label status custom field in NetSuite.

The second flow is the retry flow which is based on the NetSuite saved search. The saved search will get all the NetSuite Return Authorizations that are created by our IA and don’t have any labels. For every record on the NetSuite Saved search, will look up LoopReturns for Shipping Label status and update the Shipping Label status back into NetSuite. This is a brute force method, to make sure we don’t miss any Shipping Label status updates. The retry flow runs based on the saved search, so we can add criteria of our choice on what shipping labels status we want to re-import back into NetSuite.

Note:

  1. This feature will work only for the LoopReturns returns that have Shipping Labels generated. In case the merchant doesn’t turn on shipping labels on the LoopReturns Return Policy or the return is not eligible for the shipping Label, IA cannot update the shipping status for those returns in NetSuite.
  2. Only the Return Authorizations that are imported into NetSuite via our IA are eligible to import the Shipping Labels

Next Steps

Configure Item Receipt Flow