When a POS order on Shopify is refunded fully or partially, a Refund object on Shopify is created and if configured, a webhook endpoint will be triggered in Skubana and we will automatically create a RMA for the refunded items sent by Shopify.
⚠️ NOTE: This webhook will only create an RMA for orders in Shipped status in Skubana. This webhook now works for both Shopify e-commerce and POS orders. For information on how the e-commerce refund webhook will work, see this article.
⚠️ WARNING: Webhooks are not retroactive, so if they were not configured properly at the time of an event in Shopify, the event will not apply in Skubana.
Shopify Webhook Configuration
- To set up this webhook in Shopify, you first need to go to the Shopify store page and go to Settings. From the settings page, select Notifications
- Scroll all the way down to the last section which is Webhooks and click on the Create webhook button
Add the Refund Create webhook
- Event: Refund create
- Format: JSON
- URL: https://app.skubana.com/shopify/refunds/create
- Webhook API version: The "Latest" option
- Save webhook
- ⚠️ NOTE: This Refund Create webhook will work for both POS and non-POS orders. For information on how the refunds will operate for e-commerce orders, see the Skubana RMA Creation Details (specific to e-commerce orders) section of the article here.
- Click Save webhook when complete and you will see the new entry for Webhooks as well as the signature value that is needed to enter in Skubana. Copy the signature value
Skubana Webhooks Configuration
- In Skubana, navigate to the Settings Module, click Sales Channels, select the Shopify sales channel and click the Edit button. From here go to the Connection tab and click Edit Integration.
- Select the Enable Webhooks button and paste the signature value into Skubana
Here you can also choose the new option “Restock items from Refund based on Shopify’s restock value”, which will allow Shopify and Skubana to communicate if inventory will be restocked into Skubana.
- If this setting is enabled AND the return in Shopify has a restock value of true, Skubana will set the action on the RMA as Reinsert.
- If this setting is enabled AND the return in Shopify has a restock value of false, Skubana will set the action on the RMA as Write Off
- If this setting is disabled, Skubana ignores the restock value from Shopify and the RMA action will have to be manually selected
To save click “Launch Shopify Authorization” button
Skubana RMA Creation Details (specific to POS orders)
When a refund is created in Shopify, the webhook will be hit and we will create an RMA for all the items involved. This works across splits and bundle breakdowns. The RMA in Skubana will be automatically created with the below default information from Shopify.
If an RMA is created in this flow, it will be marked Received on the date the webhook was hit.
- RMA Number = RMA-REFUND-[order-number]
- RMA Notes = Created from Shopify Refund Webhook: [refund-reason-from-shopify]
- Tracking Number = “In Store Return”
- RMA Type = Refund
- RMA Reason = Other
- Loss to Seller = $0.00
- RMA Item Action = IF the Restock items from Refund based on Shopify's restock value checkbox is enabled AND Shopify says to restock, then this value will be "Reinsert". Otherwise, it will be set to "Write Off"
- The Returns Location can actually be configured using Shopify Location Warehouse Mappings. If we have a mapping for the Location ID we receive from the refund, then we will choose that warehouse’s returns location. If there are multiple warehouses pointing to this location, then we will choose the first one we find. If that warehouse does not have a returns location, then we will use the original order fulfillment source’s returns location.