How to refund a WooCommerce order from a Zendesk ticket

By Jake Marsh · Updated

To refund a WooCommerce order without leaving Zendesk, install Basketwell for WooCommerce, open the customer's ticket, click the order in the sidebar and choose Refund. Enter the amount and reason, choose to send the money back through the order's payment gateway or Record the refund only, then confirm. WooCommerce creates the refund, and Basketwell adds an internal note and the basketwell_refund tag to the ticket.

Before you start

Refunds need a WooCommerce REST API key with Read/Write permission. A Read key shows orders but can't change them. If your key is Read only, edit it in WordPress under WooCommerce > Settings > Advanced > REST API and set Read/Write. In Basketwell's settings, Allow refunds must be on, and the agent must be allowed to take actions (see the table below).

Steps

  1. Open the ticket. Basketwell lists the requester's orders, matched by every email address on their Zendesk profile, including guest orders billed to that address.
  2. Click the order the customer is asking about. If it isn't listed, type the order number (1043 or #1043) or another email into the lookup box at the bottom of the sidebar.
  3. Choose Refund. A panel opens inside the order and states exactly what will happen.
  4. Enter the amount and a reason. The amount starts at what's left to refund on the order; keep it for a full refund, or type a smaller amount for a partial one. The reason is stored on the WooCommerce refund.
  5. Pick how the money goes back.
    • Send the money back through the order's payment method (the option names it, for example your card gateway) asks that gateway to refund the original payment. If the payment method can't refund automatically, the option is greyed out and says so.
    • Record the refund only records it in WooCommerce for money you returned another way, such as store credit or a bank transfer.
  6. Confirm. The button shows the amount, for example Refund $25.00. Nothing is sent until the agent clicks it.

What happens after you confirm

WhereWhat changes
WooCommerce orderA refund for the amount and reason. A full refund makes WooCommerce mark the order Refunded. The refund's details carry the Zendesk ticket id.
Customer's inboxWooCommerce sends its own refund email, if that email is turned on in the store.
Zendesk ticketAn internal note describing the refund, plus the basketwell_refund tag for views and reports.

If the store doesn't answer in time, Basketwell never sends the refund a second time on its own. It reads the order again and tells the agent whether the refund is there, so the same order can't be refunded twice by accident.

Control who can refund, and how much

SettingWhat it does
Who may take actionsadmin (default), agent (everyone), custom role ids or group:<id>, comma separated. Everyone else sees orders read-only.
Allow refundsTurns refunds on or off for everyone.
Largest refund without an adminAn amount in the order's currency. Above it, only an admin can refund. 0 removes the limit.

A common setup is admin, group:<your billing group id> with a limit of 100, so frontline agents can see everything and billing handles larger refunds.

What it costs

Basketwell is $15 a month per Zendesk account, for every agent, billed monthly by Zendesk. It has a 14-day free trial; Zendesk asks for a card at install. Full setup is in the Basketwell documentation.

Basketwell for WooCommerce

The requester's WooCommerce orders on the ticket: refund, change status, resend emails, all logged. $15 a month per Zendesk account.


Questions

Can I refund only some items from an order?

Yes. Enter a smaller amount than the order total and WooCommerce records a partial refund with your reason. The order stays in its current status.

Why does the refund option not appear?

Either Allow refunds is off, the agent isn't in the list of people allowed to take actions, or the order has nothing left to refund. If the button shows but the store refuses the refund because the API key is Read only, edit the key in WooCommerce and set Read/Write.

Does the customer get an email?

WooCommerce sends its refund email if it's turned on in WooCommerce > Settings > Emails. Basketwell doesn't send its own.

Can a refund from Zendesk be undone?

No. A refund through the gateway moves real money, which is why Basketwell asks for confirmation and logs every refund on the ticket.


More Basketwell for WooCommerce guides


More Zendesk guides