Atelier – Cancel Order & Change Address for WooCommerce

Description

Let WooCommerce customers cancel eligible orders and change their shipping address before fulfilment starts, within an editing window you control. Choose instant cancellation or require store approval. Address changes apply immediately only when the shipping zone and tax rates stay the same; other destinations can be sent to the store as a request.

In instant mode, when a customer cancels, the order is cancelled immediately and the plugin asks the payment gateway for a full refund when that gateway supports WooCommerce refunds. If an automatic refund is unavailable or fails, the cancellation still completes safely, the customer sees an honest message, and the merchant receives an actionable notice for manual reconciliation. In approval mode, submitting a cancellation creates a merchant request and leaves the order unchanged until the store approves it.

What customers can do

  • Cancel an eligible order from My Account or a signed guest link.
  • Change the shipping address and phone when the new destination keeps the same shipping zone and tax rates.
  • Send a request instead when an address would cross a shipping zone or change tax rates.
  • Update the order note and merchant-approved personalisation fields.
  • See exactly when the editing window closes.

What merchants control

  • Set the editing-window duration.
  • Choose instant, approval-required, or off separately for cancellation, address changes, and notes.
  • Let guests change their order from a secure email link, or keep that off.
  • Decide whether downloads and admin editing remain available during the window.
  • Review an audit note for every customer action.

Privacy and security

The plugin contains zero telemetry and makes no external requests of its own. Refunds use the payment gateway already configured in WooCommerce. Customer actions require a nonce and ownership check; merchant actions require WooCommerce capabilities. Guest links are signed, rate-limited, and expire with the editing window.

Shipping compatibility

The editing window keeps orders out of Processing until it closes. That gates shipping integrations that trigger on Processing or use a configurable status filter, while integrations that pull every order through the REST API need merchant-side verification.

  • WooCommerce Shipping: verified by code and controlled integration. The label screen warns while the window is open; a successful label purchase closes it.
  • ShipStation: verified by code and controlled integration. Orders stay out of the default XML and REST exports until the window closes. Do not add the custom editing-window status to ShipStation’s export statuses.
  • Packlink PRO: verified by code and controlled integration. Its shipment draft starts when the order reaches Processing after the window closes.
  • Sendcloud: not guaranteed and not verified. Verify in the Sendcloud panel which order statuses it imports.
  • Shipmondo: not guaranteed and not verified. Verify in the Shipmondo panel which order statuses it imports.

Compatibility

  • WordPress 6.9 or newer.
  • WooCommerce 10.8 or newer.
  • HPOS and both block and classic checkout.
  • Translation-ready: translations arrive as language packs from translate.wordpress.org.

Product changes and contextual upsells are part of the Pro edition’s scope. Free covers the actions described here.

On the web

Source code

The uncompiled source of the scripts in assets/build/ ships with the plugin in frontend/src/; to build them again, run npm ci and npm run build in the plugin folder with Node.js 20 or newer.

Screenshots

Installation

  1. Upload the plugin files to /wp-content/plugins/atelier-cancel-order-change-address-for-woocommerce, or install the plugin through the WordPress Plugins screen.
  2. Activate the plugin.
  3. Open WooCommerce > Settings > Customer order editing.
  4. Choose the editing-window duration and a mode for each operation.
  5. Review the shipping compatibility matrix before using the window in production.

FAQ

Can customers add or remove products?

No. The free version covers cancellation, same-zone address changes, order notes, and merchant-approved personalisation fields. Product swaps, quantity changes, and paid upsells are reserved for the Pro version.

Does cancelling really refund the payment?

Yes, when the order has a refundable balance, WooCommerce allows the gateway to attempt the refund, and the gateway confirms success. The plugin records the attempt before calling the gateway and prevents duplicate local submissions. If an automatic refund is unavailable or fails, the order is still cancelled and the merchant receives a manual-reconciliation notice.

Gateway coverage is deliberately conservative:

  • Stripe (official): the refund API and a complete accumulated refund through two successive partial refunds were verified in test mode on 2026-07-12.
  • Cash on delivery: no payment has been captured, so cancellation has no money to return.
  • Redsys: support depends on the exact extension and version. Redsys Lite 7.0.2 exposes a versioned refund path, but remote success and safe timeout/retry behaviour are not E2E-verified; confirmed failures use manual reconciliation.
  • Any other gateway: reporting refund support only allows WooCommerce to attempt the operation; it does not prove remote success or safe retry. Unsupported and failed combinations use manual reconciliation.

Does it work for guest orders?

Yes. When a guest order enters the editing window, the guest receives one email with a signed “Manage order” link and the deadline to use it; the store can edit or disable that email under WooCommerce > Settings > Emails. The link contains the order ID and order key. The key is compared safely, the link expires when the editing window closes, and the guest view does not expose another order’s data.

Will my warehouse or shipping plugin pick up an order while it is being edited?

ShipStation and Packlink PRO respect the gate with their default status behaviour. WooCommerce Shipping warns before label purchase and closes the window after a successful purchase. Sendcloud, Shipmondo, and other integrations that pull through the REST API are not guaranteed and not verified; confirm their imported statuses in the provider panel. See the Shipping compatibility section and the guide for the versions and conditions covered.

Is this the EU right of withdrawal?

No. This is a configurable commercial cancellation window before fulfilment. Keep your formal returns and right-of-withdrawal process separate and appropriate for your products and jurisdiction.

Does it send any data anywhere?

The plugin has zero telemetry and makes no external requests of its own. An automatic refund is processed by the payment gateway already connected to your WooCommerce store.

Does it support HPOS and block checkout?

Yes. HPOS, legacy order storage, block checkout, and classic checkout are covered from the first release.

Does it work with page caching plugins?

The My Account pages and the signed guest order page define the DONOTCACHEPAGE constant and send WordPress no-cache headers, so a page cache that honours them does not store these customer-specific pages. The plugin does not configure any caching plugin itself: if yours ignores that constant or those headers, exclude the My Account pages and URLs containing wcoe_guest_order from its cache.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Atelier – Cancel Order & Change Address for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • Initial release.
  • Added the post-payment editing window and fulfilment gate.
  • Added cancellation with reconciled total refunds and graceful manual fallback.
  • Added same-zone address changes, cross-zone requests, notes, and personalisation editing.
  • Added signed guest access, per-operation approval modes, customer and merchant emails, HPOS support, and the shipping compatibility matrix.