Order cancellation function in the online store
How customer order cancellation works in an online store, when the button appears, and how the merchant manages cancellation statuses.
Customer order cancellation policy
The order cancellation function allows a logged-in customer to cancel their own order in the online store if the current status of the order is marked for customer cancellation. The service rechecks the permission at the time of cancellation, changes the status to Canceled and records the event in the order history.
Check the deployment status first
The subscription cancellation functionality is based on the state database field is_cancellable . Cancellation is only available for states where the value is set to enabled.
The Order Statuses view in the control panel at /orders/statuses does not provide a field to change this value. In the view, you can edit the name, code, color, default status, and payment or invoice number requirement, but not the customer's cancellation permission.
Do not assume that the feature is enabled by default. Verify the store's status-specific values with technical support before publishing a cancellation instruction to the customer. The feature cannot be enabled from the control panel.
When can a customer cancel?
A customer's order can only be canceled when the current status of the order is_cancellable . The order data in the My Orders view contains a corresponding canCancel value, which the store's UI can use to display the cancellation function.
The cancellation service locks the order line and checks the current status again. If the status has changed and no longer allows cancellation, the service does not change the order but returns an error like " Order can no longer be canceled ." This way, the previously opened view does not skip the later status change.
What a successful cancellation does
Canceling an order retrieves the current status, looks for a language-specific status with a permanent code of cancelled , and changes the order to that. In the same database transaction, a comment describing the customer's cancellation and a note notifying the customer are added to the order history.
The database change is confirmed before sending the email. The service then attempts to send the customer a language-specific status change message and adds the store owner's email address as the recipient. The response returns whether the email was successful.
An email error does not cancel a status change that has already been saved. Therefore, always check the order status in the Control Panel and handle the customer's notification separately if the message did not go through.
If the cancel function is not displayed
The order cancellation function will not be displayed or will not work if the current status of the order does not allow the customer to cancel. First, check the current status of the order and confirm with technical support that is_cancellable value for that status is correct.
The operation will also fail if the order ID is missing, the order cannot be found, or the store is missing a language-specific cancelled state. The latter is a configuration issue: the cancellation must not be redirected to a random replacement state.
If the action was visible before the page was opened but the order was processed, the service's 409 response is an expected concurrency protection. Refresh the My Orders view and contact customer service if necessary.
Prepare customer instructions and terms and conditions
The order cancellation function does not replace the store's other statutory or contractual cancellation channels. Tell the customer clearly where the function can be found, in which premises it can be used, and what to do when the button is no longer visible.
The regulatory date mentioned in the instructions is 19 June 2026 and the date of the FCCA's announcement is 10 April 2026. Since the legal interpretation and scope of the obligation are not clear from the application code, please check the FCCA's documentation or a legal expert for the latest requirements before implementation.
Additionally, ensure the store owner's email address, the Canceled status name in each language used, and translations of the cancellation message. Only test cancellation with a separate test order in a store where cancellation permission is explicitly set.
Good to know
A customer cancellation changes the order status and history, but the service does not verify a refund, inventory return, or cancellation of an external ERP order. These may require separate processes.
The copy sent to the store owner uses the store's STORE_OWNER_EMAIL_ADDRESS setting. The service response uses the same success result for the customer and administrator messages, so it does not distinguish between the delivery of the two recipients.
Changing the order status name does not resolve the cancellation permission. The decisive value is the state-specific is_cancellable , and the final status of the cancellation is identified by a permanent cancelled code.