Loop Restock Functionality & API Calls


Loop has functionality that allows merchants to mark products as returned and restock them into Shopify directly from the Loop admin. A high level overview of how this feature works and how to turn it on can be found in the Inventory section of General Return Policy Settings.

Loop marks products as returned and restocks them the way Shopify expects those actions to be performed, which aligns with most third party systems, as far as how restocking should be done.

In this article: 

  • Restocking Through Loop
  • How Loop Restocks
  • FAQ

Restocking Through Loop

Loop can restock returned items in your inventory, though when and how it does this is dependent on your Inventory settings.

To learn more about these settings specifically and how they work, take a look at General Return Policy Settings.

  • If automated processing events are enabled and restock functionality is enabled:
    • Loop will automatically restock items as soon as the return processes, based on processing events. 
    • It will do so either directly in Shopify or to your specified inventory management system through webhook.
  • If processing events are set to manual and restock functionality is enabled:
    • You will have the option to restock when processing the return or at a later date
    • To restock when processing, check the restock box
    • To process a return, but not restock the item yet, uncheck the same box
  • Note: If a processing event is set to manual, the Restock on processing events toggle will not apply to that outcome.

  • If restock functionality is disabled, Loop will take no action to restock the item in Shopify or through webhooks.
    • This is generally the configuration for merchants who do not use Shopify for inventory, do not have webhooks set up to their inventory management system and choose to manually restock in those systems when products come back.

How Loop Restocks

Loop restocks using native Shopify restock functionality in the Refund API, specifically the restock_type field. More information on the Refund API can be found directly from Shopify, here.

The  restock_type field indicates how this refund line item affects inventory levels in Shopify. Valid values that can be passed along here are:

  • no_restock: Refunding these items won’t affect inventory. The number of fulfillable units for this line item will remain unchanged. For example, a refund payment can be issued but no items will be returned or made available for sale again.
  • cancel: The items have not yet been fulfilled. The canceled quantity will be added back to the available count. The number of fulfillable units for this line item will decrease.
  • return: The items were already delivered, and will be returned to the merchant. The returned quantity will be added back to the available count. The number of fulfillable units for this line item will remain unchanged.
  • legacy_restock: The deprecated restock  property was used for this refund. These items were made available for sale again. This value is not accepted when creating new refunds.

Loop will use no_restock and return when processing returned products. Those calls will in turn drive the "restock": true or "restock": false flags. Though it may not be true for all third party systems, many of the ones we work with look for these flags to authorize restocking. Check with the system you use before leveraging this functionality.

If restocking is turned off in Loop, a setting that can be changed in your General Settings, Loop will pass no_restock when the return is processed.


Can I restock products to a different location from where they were fulfilled from? No. When Loop restocks a product, that product is restocked to the Shopify location it was fulfilled from.

If you have any questions about how restocking works in Loop, please reach out to us at support@loopreturns.com.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.