Changelog

Act on Shopify orders from the conversation

Your team can now cancel, refund, edit the shipping address of, add a note to, or remove an unshipped item from a Shopify order without leaving the conversation. Large refunds from Agents wait for an Owner or Admin to approve them. You can also hold an order's fulfillment so the store doesn't ship it while you sort something out with the customer.

How it behaves

  • Every order card has an actions menu: cancel, refund, remove an item, edit the shipping address, or add a note. Each one asks you to confirm first.
  • Refunds go back to the original payment method. Choose a full refund or an amount; you cannot refund more than the store still has to refund.
  • Refunds above your approval threshold (Settings, Helpdesk; 200 by default) from an Agent are held as "Awaiting approval". Owners and Admins see Approve and Reject on the order and can approve their own refunds straight away.
  • Anyone can ask for approval on any action instead of running it at once.
  • Cancelling asks for a reason, and can refund the payment and restock the items. Shopify finishes some cancellations in the background; the order updates when it does.
  • Removing an item only works for items that have not shipped. You choose how many to remove and whether to restock them.
  • Hold fulfillment puts the parts of an order that haven't started shipping on hold, with one of Shopify's reasons (incorrect address, awaiting payment, high risk of fraud, and so on) and an optional staff note. The store won't ship them until the hold is released, and the customer isn't told. The order card shows the hold, for example "On hold: incorrect address".
  • Releasing a hold from Aide releases only the hold placed from Aide. Holds placed in Shopify or by another app (a fraud check, for example) are shown but stay until they're released in Shopify.
  • Stores connected before holds were added approve Aide's new fulfillment permission in Shopify once. Until then the hold dialog says to allow holds in Shopify, and nothing is sent to the store.
  • Only your team holds orders. Aide doesn't offer holds to customers in chat.
  • If Shopify refuses (an invalid address, an order already closed), the action shows as Failed with Shopify's reason, and nothing changes in the store.
  • Each order lists its recent actions with who asked, who approved, and the result.
  • A disconnected store can't be acted on until Shopify is reconnected.

For developers

  • POST /v1/conversations/:id/orders/:orderId/{cancel,refund,address,note,remove_item} answer 201 with an order_action (status: applied, failed, pending_approval, queued).
  • GET /v1/conversations/:id/order-actions and GET /v1/order-actions?status=pending_approval list them; POST /v1/order-actions/:id/approve and /reject decide pending ones.
  • Order items[] gain id (the line item to name in remove_item) and fulfilled.
  • POST /v1/conversations/:id/orders/:orderId/hold (reason: one of Shopify's hold reasons in lower case, optional note) and /release_hold answer an order_action like the others, or 422 holds_permission_missing while the store hasn't granted the fulfillment orders permission.
  • GET /v1/conversations/:id/orders/:orderId/fulfillment-holds reads the order's holds live from Shopify: permission (granted or missing), holds[] (reason, label, note, byAide), canHold and canRelease.

All changes

We use cookies to enhance your Aide experience.
by clicking "accept all" you consent to our use of cookies.
Learn more