EU cancellations and returns from a Shopify customer account with Power +

Power+ Customer Account

Shopify Customer Account: Cancellation requests and EU right of withdrawal

The mini-app adds an action directly to orders in the new Shopify Customer Account. The customer clicks, states their reason, and the app then creates a metaobject. It does not refund, cancel, or modify the order itself: it triggers a specific signal that the brand can then process with Shopify Flow.

What the customer sees

Action in the order

The button appears in the action menu of an order in the new Customer Account.

Simple form

The customer enters a free-text reason, such as change of mind, address error, or return request.

Confirmation

Once the request is sent, the customer receives visual confirmation. The next steps are managed by Shopify Flow.

Available display rules

European Union only

Configuration option: display the action only when the shipping country is in the European Union. The country is verified server-side from the Shopify order.

14-day window

Configuration option: hide the action 14 days after the order date. This logic supports the right of withdrawal, without imposing the final processing.

Shop recommendations

Visible link in the footer

In addition to the action available in the Customer Account, we recommend adding a permanent link in the website footer, for example, Cancellation and right of withdrawal. This link can point to an explanatory page or to the return policy, accessible without customer login.

Update of Terms and Conditions

The T&Cs must explain how the customer can submit their request, what happens if the order has not yet been processed, and what happens if it has already been shipped or delivered.


Example wording to be legally validated: "For orders delivered to a country in the European Union, you have, with legal exceptions, a 14-day right of withdrawal from the receipt of the products. You can exercise this right from your customer account, from the 'Cancellation and right of withdrawal' link at the bottom of the site, or by contacting our customer service. If the order has not yet been processed, it can be cancelled and refunded. If it has already been shipped or delivered, we will provide you with the applicable return instructions."


Point of attention: the mini-app can hide the action after 14 days depending on the configuration, but the T&Cs must remain the legal reference. The exact starting point of the deadline, product exceptions, and covered countries must be validated according to the merchant's activity.

Metaobject created

Metaobject type: power_plus_order_request. The definition is automatically created if it does not already exist. This is not an order metafield: it is a separate entry, easier to use as a trigger and as a customer request log.


Key Shopify Type Usage in Flow
order_id Single line text, required GID of the Shopify order. Used to find the order and apply the correct Flow branch.
order_name Single line text Readable order number, e.g., #1029, useful in emails and internal notifications.
customer_id Single line text Customer ID if available. Can help retrieve customer history.
customer_email Single line text Customer email if available. Useful for confirming receipt or requesting information.
customer_name Single line text Customer name if available, for personalizing messages.
reason Multi-line text Reason entered by the customer. Can be sent to support or added to an internal note.
delivery_country_code Single line text Shipping country code, e.g., FR. Allows auditing EU eligibility.
order_created_at Single line text Order date. Useful for checking the processing window in Flow.
submitted_at Single line text, required Submission date of the request. Serves as a reference date for support.
payload_json JSON Structured copy of main data for auditing or advanced integrations.

Recommended Flow: Unprocessed order

1

Trigger

When a metaobject is created, filter on type = power_plus_order_request.

2

Find the order

Use order_id to identify the relevant Shopify order. Add the customer reason to an internal note or a tracking tag.

3

Cancellation condition

If the order is not fulfilled/processed, launch the cancellation scenario: cancel the order, refund according to the brand's policy, restock if necessary.

4

Customer communication

Send a confirmation email: request accepted, order cancelled, refund in progress or completed.


Depending on the actions available in Shopify Flow on the store, the cancellation step can be native or go through an additional action. In all cases, the metaobject remains the reliable entry point: it contains the order, the customer, the reason, and the request date.

Useful fields for creating the cancellation Flow

For the condition

  • Order fulfillment status.
  • Order financial status.
  • Order creation date vs submitted_at.
  • Shipping country via delivery_country_code.

For the action

  • order_id to target the order.
  • reason to document the cancellation.
  • order_name for human emails.
  • customer_email if Flow sends an external notification.

For tracking

  • Order tag: cancellation_requested.
  • Order tag: auto_cancelled or manual_review_required.
  • Internal note with reason and request date.

If the order is already fulfilled

Recommendation: do not automatically cancel an order that has already been processed or shipped. The same metaobject then becomes a return request or a support request.


Return scenario

  1. Detect that the order is fulfilled.
  2. Add a tag return_requested or manual_review_required.
  3. Send an email to the customer with the return procedure.
  4. Notify support with order_name, customer_email, and reason.

Scenario with return portal

  1. Create or forward a request to the return portal used by the brand.
  2. Include the order number and reason.
  3. Send the customer the return link or instructions.
  4. Keep the Shopify order intact until the return is received and validated.

What the mini-app deliberately does not do

No direct cancellation

It does not modify the order without business logic validation.

No direct refund

The refund remains within Shopify Flow or a support validation.

No imposed return

Each brand can choose its return tool, email, tags, and exceptions.

Proposed customer message

"Your request has been received. You will receive a confirmation email with the next steps."