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
⚠️ NOTE: Any new Shopify store created on or after June 3, 2021, will utilize the API / Auto-Subscribing Webhooks method. This method would allow you to skip the Shopify-side action items described below and simply follow the Skubana-side actions, minus the Signature.
Any previously existing Shopify stores that did not have that method turned on for their Shopify store can have it enabled by contacting your Account Manager or Skubana Support to enable this functionality for a specific Shopify channel(s). This feature will not apply to your account overall, it must be enabled on a channel-basis. So be sure to be specific in your request. As of April 2021, Skubana added the ability to choose to set up webhooks via API / Auto-Subscribing Webhooks as opposed to the older method described below. See this article for details and directions.
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
Webhook API version: The "Latest" option
⚠️ 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.
Expand the Webhook Configuration view.
3. Paste the signature value from Shopify into the Signature field. If you have more than one webhook enabled here and you already have the Signature set, you can leave that value alone. Check the box for Enable Order Refund Webhook.
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
4. Click the Save 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.