Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.
Revize is a Shopify app for post-checkout order editing.
Order mistakes happen. Instead of forcing customers to contact support, let them cancel the full order — or just specific items — with instant refunds to original payment or store credit.
From the Revize Customer Portal, customers click Cancel order to start the cancellation process.
2
Select items to cancel (optional)
If partial cancellation is on, customers pick the items to cancel and, if you allow it, how many units of each. If partial cancellation is off, the full order is cancelled.
3
Select cancellation reason
Pick a reason from your list, such as “Changed my mind” or “Ordered by mistake”. Customers can also add a short message.
4
Confirm cancellation
Click Confirm to process the cancellation and automatic refund through Shopify.
5
Instant confirmation
Order status updates immediately and refund processes according to your configured settings.
Let customers cancel specific items instead of the entire order. Refunds are issued automatically for just the cancelled items, and the rest of the order continues to fulfillment.
Item-level control
Customers select exactly which line items they want to cancel from a checklist in the cancel modal.
Partial quantities
Optionally let customers cancel some units of an item — for example, 2 out of 5.
Automatic refund
Refunds run through your configured refund method for just the cancelled items, with no manual work.
Order metafield
A structured JSON record is written to the order so you can run downstream logic.
Partial cancellation is included in the Pro plan. On other plans you see a Pro badge instead of the toggle.
1
Open cancel order settings
Go to Order Editing → Customer edits and select Cancel order.
2
Turn on Enable partial cancellation
Under Partial cancellation, turn on Enable partial cancellation to let customers cancel specific items instead of the whole order.
3
Choose whether to allow partial quantities
Allow partial quantities is on by default, so customers can cancel some units of an item (for example, 2 of 5). Clear it to require cancelling the full line item.
4
Save
Click Save.
Partial cancellation isn’t available while Refunds is set to No refunds, because Cancel order turns off with that setting.
When partial cancellation is off, the cancel flow keeps working exactly as before — customers cancel the full order in one click.
Cancelled items show up in the Shopify order timeline automatically — line items, quantities, and the customer’s reason — so your team has the full picture without leaving Shopify.On top of that, every partial cancellation writes a JSON record to the order under namespace revize_app, key partial_cancellation. It contains the same data in a structured form, so you can pipe it into an LLM, a reporting tool, or any downstream automation.
By default, Revize returns cancelled items to your Shopify inventory. This applies to full and partial cancellations.To change it, go to Order Editing → Customer edits and select Cancel order. Under Inventory, turn Restock cancelled items on or off, then click Save.
Turn restocking off if you manage stock for cancelled items yourself.
Full refunds through Shopify’s payment systemWhen customers cancel orders, Revize automatically issues a full refund back to their original payment method:
Credit cards - refund appears in 3-5 business days
PayPal - instant refund to PayPal account
Digital wallets - Apple Pay, Google Pay refunds process automatically
Buy now, pay later - refunds through Klarna, Afterpay, etc.
This option provides the most familiar experience for customers who expect traditional refunds.
Store credit refunds
Convert cancellations into future purchasesIssue store credit instead of cash refunds to retain revenue and encourage repeat purchases:
Customer loyalty - keeps money in your ecosystem
Higher lifetime value - store credit often leads to larger future orders
Reduced processing fees - no payment processor refund fees
Instant availability - credit is available immediately for next purchase
Perfect for building customer loyalty while protecting your cash flow.
Customize cancellation reasons: Edit the predefined cancellation reasons under Translations > Customer Portal > Cancellation Reasons to match your business needs.
Default cancellation reasons:
“Ordered by mistake”
“Found a better price elsewhere”
“Shipping Time Too Long”
“Shipping cost too high”
“Changed my mind”
“Need to change payment method”
“Other”
Customers can also type a short message along with their reason.Why collect cancellation reasons:
Identify common issues with your products or checkout process
Improve your store based on customer feedback
Track trends in cancellation patterns
Provide better customer service insights
Track cancellation analytics: View cancellation data, cost savings, and customer reasons under Analytics in your Revize dashboard. For custom reasons analysis, contact support - detailed custom reason reporting will be available on the dashboard soon.
Restrict cancellations for specific orders using Feature visibility rules under Settings → Advanced. Add a tag to the rule, and any order carrying that tag won’t show the cancel option.
High-risk orders — prevent cancellation of flagged orders
Custom products — block cancellation of personalized items
Wholesale orders — different policies for B2B customers
Final sale items — enforce no-cancellation policies
Customers click “Cancel order” in their Revize portal, select a cancellation reason, and confirm the cancellation. The refund processes automatically according to your configured settings.
What happens to inventory when orders are cancelled?
By default, cancelled items are restocked in Shopify inventory and become available for new orders right away. To leave stock unchanged, turn off Restock cancelled items under Order Editing → Customer edits → Cancel order → Inventory.
Can I prevent certain orders from being cancelled?
Yes, use order edit restrictions with order tags to hide the cancellation option for specific orders like custom products, wholesale orders, or high-risk orders.
How are refunds processed for cancelled orders?
Refunds are processed automatically through Shopify according to your payments and refunds settings - either to the original payment method or as store credit.
Can customers cancel orders after the edit window closes?
No, order cancellation follows your edit window settings. Once the edit window closes, the cancellation option disappears and orders move to fulfillment.
Can I customize the cancellation reasons customers see?
Yes, edit cancellation reasons under Translations > Customer Portal > Scroll down to Cancellation Reasons to match your business needs and collect relevant feedback.
What if I have a no-refund policy?
If you select No refunds in your payments settings, the cancellation option won’t appear in the customer portal, automatically enforcing your no-refund policy.
Can customers cancel only part of an order?
Yes, with partial cancellation enabled (Pro plan). Customers pick specific line items to cancel and the rest of the order continues to fulfillment. Turn it on under Order Editing → Customer edits → Cancel order. Allow partial quantities is on by default, so customers can also cancel some units of an item.
Where can I see what was partially cancelled?
A JSON record is written to the order under metafield namespace revize_app, key partial_cancellation. It contains the cancelled line items, quantities, reason, and timestamp — perfect for reporting or Shopify Flow automations.
Self-service order cancellation reduces support workload while providing customers with instant resolution. Enable this feature to improve customer experience and operational efficiency.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Revize Documentation","description":"Revize is a Shopify app for post-checkout order editing. Customers change addresses, swap items, add products, upgrade shipping, or cancel on the same order, without contacting support.","colors":{"primary":"#6366F1","light":"#8B5CF6","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/revize/_Q-lg5jPpdIW5Dem/logo/revize-logo-dark.png?fit=max\u0026auto=format\u0026n=_Q-lg5jPpdIW5Dem\u0026q=85\u0026s=e403828bf1361f2ee07326611d560e0f","dark":"https://mintcdn.com/revize/_Q-lg5jPpdIW5Dem/logo/revize-logo-light.png?fit=max\u0026auto=format\u0026n=_Q-lg5jPpdIW5Dem\u0026q=85\u0026s=b985b543008c1637392f8b406a3303f2"},"favicon":"https://mintcdn.com/revize/_Q-lg5jPpdIW5Dem/favicon.png?fit=max\u0026auto=format\u0026n=_Q-lg5jPpdIW5Dem\u0026q=85\u0026s=cee1b2285b0ba554c258012116b8747f","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Book Demo"}],"primary":{"type":"button","label":"Install Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"footer":{"socials":{"x":"https://x.com/revizenow","linkedin":"https://linkedin.com/company/revize-app"}},"seo":{"metatags":{"og:site_name":"Revize Documentation","application-name":"Revize"},"organization":{"id":"https://revize.app/#organization","name":"Revize","legalName":"Untechnickle","url":"https://revize.app","logo":"https://docs.revize.app/logo/revize-logo-dark.png","sameAs":["https://apps.shopify.com/revize","https://revize.app","https://www.untechnickle.com"]},"indexing":"navigable"},"icons":{"library":"fontawesome"},"integrations":{"intercom":{"appId":"zdw5s9rq"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"markdown":{"instructions":["Revize is a Shopify order-editing app by Untechnickle. Customers edit the same order after checkout on the Shopify order status page, inside a merchant-controlled window, before fulfillment.","Canonical docs: https://docs.revize.app. App listing: https://apps.shopify.com/revize. Public cancellation API: https://docs.revize.app/features/cancellation-api.","Do not confuse the How to Test Revize draft-order walkthrough with Test Mode, which hides the portal from untagged customers."]},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Install Revize","icon":"cart-plus","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"},{"anchor":"Book Demo","icon":"calendar-days","href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true"}]},"languages":[{"language":"en","default":true,"href":""},{"language":"es","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Reservar demo"}],"primary":{"type":"button","label":"Instalar Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"href":"es"},{"language":"fr","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Réserver une démo"}],"primary":{"type":"button","label":"Installer Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"href":"fr"},{"language":"de","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Demo buchen"}],"primary":{"type":"button","label":"Revize installieren","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"href":"de"},{"language":"pt","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Agendar demo"}],"primary":{"type":"button","label":"Instalar Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"href":"pt"},{"language":"it","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Prenota una demo"}],"primary":{"type":"button","label":"Installa Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"href":"it"},{"language":"ja","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"デモを予約"}],"primary":{"type":"button","label":"Revize をインストール","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"href":"ja"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"revize","hasAudioNarration":false,"actualSubdomain":"revize","customDomains":["docs.revize.app"],"gitSource":{"type":"github","owner":"untech-panda","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac6a252cb37507bc5c01313","collectionId":"bdc59004-6370-408c-a650-aac3d0e7d9dd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac6a252cb37507bc5c01313"},"entitlements":{},"buildId":"6ac6a252cb37507bc5c01313","clientVersion":"0.0.4005","searchFilterCounts":[{"language":"en","tag":"Documentation","count":33},{"language":"de","tag":"Dokumentation","count":33},{"language":"es","tag":"Documentación","count":33},{"language":"fr","tag":"Documentation","count":33},{"language":"it","tag":"Documentazione","count":33},{"language":"ja","tag":"ドキュメント","count":33},{"language":"pt","tag":"Documentação","count":33},{"language":"en","tag":"Features","count":14},{"language":"en","tag":"Core Setup","count":14},{"language":"de","tag":"Funktionen","count":14},{"language":"de","tag":"Setup","count":14},{"language":"es","tag":"Funcionalidades","count":14},{"language":"es","tag":"Configuración básica","count":14},{"language":"fr","tag":"Fonctionnalités","count":14},{"language":"fr","tag":"Configuration","count":14},{"language":"it","tag":"Funzionalità","count":14},{"language":"it","tag":"Setup di base","count":14},{"language":"ja","tag":"機能","count":14},{"language":"ja","tag":"基本設定","count":14},{"language":"pt","tag":"Recursos","count":14},{"language":"pt","tag":"Configuração principal","count":14},{"language":"en","tag":"Support","count":5},{"language":"en","tag":"Help \u0026 FAQ","count":5},{"language":"de","tag":"Support","count":5},{"language":"de","tag":"Hilfe \u0026 FAQ","count":5},{"language":"es","tag":"Soporte","count":5},{"language":"es","tag":"Ayuda y FAQ","count":5},{"language":"fr","tag":"Support","count":5},{"language":"fr","tag":"Aide \u0026 FAQ","count":5},{"language":"it","tag":"Supporto","count":5},{"language":"it","tag":"Aiuto e FAQ","count":5},{"language":"ja","tag":"サポート","count":5},{"language":"ja","tag":"ヘルプと FAQ","count":5},{"language":"pt","tag":"Suporte","count":5},{"language":"pt","tag":"Ajuda e FAQ","count":5},{"language":"en","tag":"Getting Started","count":3},{"language":"de","tag":"Erste Schritte","count":3},{"language":"es","tag":"Primeros pasos","count":3},{"language":"fr","tag":"Démarrage","count":3},{"language":"it","tag":"Per iniziare","count":3},{"language":"ja","tag":"はじめに","count":3},{"language":"pt","tag":"Começando","count":3},{"language":"en","tag":"Tech Stack","count":2},{"language":"de","tag":"Tech Stack","count":2},{"language":"es","tag":"Novedades","count":2},{"language":"es","tag":"Tech Stack","count":2},{"language":"fr","tag":"Tech Stack","count":2},{"language":"it","tag":"Tech Stack","count":2},{"language":"ja","tag":"テックスタック","count":2},{"language":"pt","tag":"Novidades","count":2},{"language":"pt","tag":"Tech Stack","count":2},{"language":"en","tag":"Changelog","count":1},{"language":"en","tag":"What's New","count":1},{"language":"de","tag":"Changelog","count":1},{"language":"de","tag":"Was ist neu","count":1},{"language":"fr","tag":"Changelog","count":1},{"language":"fr","tag":"Nouveautés","count":1},{"language":"it","tag":"Changelog","count":1},{"language":"it","tag":"Novità","count":1},{"language":"ja","tag":"変更履歴","count":1},{"language":"ja","tag":"新着情報","count":1}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"features/cancel-order","slug":"/features/cancel-order","pageMetadata":{"title":"Let customers cancel a Shopify order themselves","sidebarTitle":"Cancel order","description":"Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.","href":"/features/cancel-order"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Heading,Info,Note,Step,Steps,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Revize is a Shopify app for post-checkout order editing.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Order mistakes happen. Instead of forcing customers to contact support, let them cancel the full order — or just specific items — with instant refunds to original payment or store credit.`})}),`\n`,_jsx(Heading,{level:`2`,id:`why-self-service-order-cancellation-matters`,children:`Why self-service order cancellation matters`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Reduce Support Tickets`,icon:`headphones`,color:`#ef4444`,children:_jsx(_components.p,{children:`Customers handle cancellations themselves instead of calling or emailing your support team.`})}),_jsx(Card,{title:`Improve Customer Experience`,icon:`user-check`,color:`#10b981`,children:_jsx(_components.p,{children:`Instant self-service cancellation is faster and more convenient than waiting for support responses.`})}),_jsx(Card,{title:`Automatic Refund Processing`,icon:`credit-card`,color:`#8b5cf6`,children:_jsx(_components.p,{children:`Refunds process automatically through Shopify without manual intervention from your team.`})}),_jsx(Card,{title:`Inventory Management`,icon:`warehouse`,color:`#f59e0b`,children:_jsx(_components.p,{children:`Cancelled items go back into stock by default, so they’re available for new orders right away. You can turn restocking off.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`how-customers-cancel-orders`,children:`How customers cancel orders`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Access cancellation option`,children:_jsxs(_components.p,{children:[`From the Revize Customer Portal, customers click `,_jsx(_components.strong,{children:`Cancel order`}),` to start the cancellation process.`]})}),_jsx(Step,{title:`Select items to cancel (optional)`,children:_jsx(_components.p,{children:`If partial cancellation is on, customers pick the items to cancel and, if you allow it, how many units of each. If partial cancellation is off, the full order is cancelled.`})}),_jsx(Step,{title:`Select cancellation reason`,children:_jsx(_components.p,{children:`Pick a reason from your list, such as “Changed my mind” or “Ordered by mistake”. Customers can also add a short message.`})}),_jsx(Step,{title:`Confirm cancellation`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Confirm`}),` to process the cancellation and automatic refund through Shopify.`]})}),_jsx(Step,{title:`Instant confirmation`,children:_jsx(_components.p,{children:`Order status updates immediately and refund processes according to your configured settings.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`partial-cancellation`,children:`Partial cancellation`}),`\n`,_jsx(_components.p,{children:`Let customers cancel specific items instead of the entire order. Refunds are issued automatically for just the cancelled items, and the rest of the order continues to fulfillment.`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Item-level control`,icon:`list-check`,color:`#8b5cf6`,children:_jsx(_components.p,{children:`Customers select exactly which line items they want to cancel from a checklist in the cancel modal.`})}),_jsx(Card,{title:`Partial quantities`,icon:`hashtag`,color:`#10b981`,children:_jsx(_components.p,{children:`Optionally let customers cancel some units of an item — for example, 2 out of 5.`})}),_jsx(Card,{title:`Automatic refund`,icon:`credit-card`,color:`#f59e0b`,children:_jsx(_components.p,{children:`Refunds run through your configured refund method for just the cancelled items, with no manual work.`})}),_jsx(Card,{title:`Order metafield`,icon:`database`,color:`#ef4444`,children:_jsx(_components.p,{children:`A structured JSON record is written to the order so you can run downstream logic.`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`enable-partial-cancellation`,children:`Enable partial cancellation`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Partial cancellation is included in the Pro plan. On other plans you see a `,_jsx(_components.strong,{children:`Pro`}),` badge instead of the toggle.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open cancel order settings`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Order Editing → Customer edits`}),` and select `,_jsx(_components.strong,{children:`Cancel order`}),`.`]})}),_jsx(Step,{title:`Turn on Enable partial cancellation`,children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Partial cancellation`}),`, turn on `,_jsx(_components.strong,{children:`Enable partial cancellation`}),` to let customers cancel specific items instead of the whole order.`]})}),_jsx(Step,{title:`Choose whether to allow partial quantities`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Allow partial quantities`}),` is on by default, so customers can cancel some units of an item (for example, 2 of 5). Clear it to require cancelling the full line item.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Save`}),`.`]})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Partial cancellation isn’t available while `,_jsx(_components.strong,{children:`Refunds`}),` is set to `,_jsx(_components.strong,{children:`No refunds`}),`, because Cancel order turns off with that setting.`]})}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`When partial cancellation is off, the cancel flow keeps working exactly as before — customers cancel the full order in one click.`})}),`\n`,_jsx(Heading,{level:`3`,id:`where-to-see-what-was-cancelled`,children:`Where to see what was cancelled`}),`\n`,_jsxs(_components.p,{children:[`Cancelled items show up in the `,_jsx(_components.strong,{children:`Shopify order timeline`}),` automatically — line items, quantities, and the customer’s reason — so your team has the full picture without leaving Shopify.`]}),`\n`,_jsxs(_components.p,{children:[`On top of that, every partial cancellation writes a JSON record to the order under namespace `,_jsx(_components.code,{children:`revize_app`}),`, key `,_jsx(_components.code,{children:`partial_cancellation`}),`. It contains the same data in a structured form, so you can pipe it into an LLM, a reporting tool, or any downstream automation.`]}),`\n`,_jsx(Heading,{level:`2`,id:`restock-cancelled-items`,children:`Restock cancelled items`}),`\n`,_jsx(_components.p,{children:`By default, Revize returns cancelled items to your Shopify inventory. This applies to full and partial cancellations.`}),`\n`,_jsxs(_components.p,{children:[`To change it, go to `,_jsx(_components.strong,{children:`Order Editing → Customer edits`}),` and select `,_jsx(_components.strong,{children:`Cancel order`}),`. Under `,_jsx(_components.strong,{children:`Inventory`}),`, turn `,_jsx(_components.strong,{children:`Restock cancelled items`}),` on or off, then click `,_jsx(_components.strong,{children:`Save`}),`.`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Turn restocking off if you manage stock for cancelled items yourself.`})}),`\n`,_jsx(Heading,{level:`2`,id:`configure-order-cancellation-refunds`,children:`Configure order cancellation refunds`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Refund to original payment method`,icon:`credit-card`,id:`refund-to-original-payment-method`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Full refunds through Shopify’s payment system`})}),_jsx(_components.p,{children:`When customers cancel orders, Revize automatically issues a full refund back to their original payment method:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Credit cards`}),` - refund appears in 3-5 business days`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`PayPal`}),` - instant refund to PayPal account`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Digital wallets`}),` - Apple Pay, Google Pay refunds process automatically`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Buy now, pay later`}),` - refunds through Klarna, Afterpay, etc.`]}),`\n`]}),_jsx(Note,{children:_jsx(_components.p,{children:`This option provides the most familiar experience for customers who expect traditional refunds.`})})]}),_jsxs(Accordion,{title:`Store credit refunds`,icon:`gift`,id:`store-credit-refunds`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Convert cancellations into future purchases`})}),_jsx(_components.p,{children:`Issue store credit instead of cash refunds to retain revenue and encourage repeat purchases:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Customer loyalty`}),` - keeps money in your ecosystem`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Higher lifetime value`}),` - store credit often leads to larger future orders`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Reduced processing fees`}),` - no payment processor refund fees`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Instant availability`}),` - credit is available immediately for next purchase`]}),`\n`]}),_jsx(_components.p,{children:`Perfect for building customer loyalty while protecting your cash flow.`})]}),_jsxs(Accordion,{title:`No refund policy`,icon:`ban`,id:`no-refund-policy`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Block cancellations with no refund option`})}),_jsxs(_components.p,{children:[`If you select `,_jsx(_components.strong,{children:`No refunds`}),` in your `,_jsx(_components.a,{href:`/setup/payments-and-refunds`,children:`payments and refunds settings`}),`:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cancellation option disappears`}),` - customers won’t see the cancel button`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Clear policy enforcement`}),` - aligns with strict no-refund business policies`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Revenue protection`}),` - prevents revenue loss from cancellations`]}),`\n`]}),_jsx(_components.p,{children:`Use this for final sale items, custom products, or strict business policies.`})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`customizable-cancellation-reasons`,children:`Customizable cancellation reasons`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Customize cancellation reasons:`}),` Edit the predefined cancellation reasons under `,_jsx(_components.strong,{children:`Translations > Customer Portal > Cancellation Reasons`}),` to match your business needs.`]})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Default cancellation reasons:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`“Ordered by mistake”`}),`\n`,_jsx(_components.li,{children:`“Found a better price elsewhere”`}),`\n`,_jsx(_components.li,{children:`“Shipping Time Too Long”`}),`\n`,_jsx(_components.li,{children:`“Shipping cost too high”`}),`\n`,_jsx(_components.li,{children:`“Changed my mind”`}),`\n`,_jsx(_components.li,{children:`“Need to change payment method”`}),`\n`,_jsx(_components.li,{children:`“Other”`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Customers can also type a short message along with their reason.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Why collect cancellation reasons:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Identify common issues with your products or checkout process`}),`\n`,_jsx(_components.li,{children:`Improve your store based on customer feedback`}),`\n`,_jsx(_components.li,{children:`Track trends in cancellation patterns`}),`\n`,_jsx(_components.li,{children:`Provide better customer service insights`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Track cancellation analytics:`}),` View cancellation data, cost savings, and customer reasons under `,_jsx(_components.strong,{children:`Analytics`}),` in your Revize dashboard. For custom reasons analysis, contact support - detailed custom reason reporting will be available on the dashboard soon.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`hide-cancellation-by-order-tags`,children:`Hide cancellation by order tags`}),`\n`,_jsxs(_components.p,{children:[`Restrict cancellations for specific orders using `,_jsx(_components.strong,{children:`Feature visibility rules`}),` under `,_jsx(_components.strong,{children:`Settings → Advanced`}),`. Add a tag to the rule, and any order carrying that tag won’t show the cancel option.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`High-risk orders`}),` — prevent cancellation of flagged orders`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Custom products`}),` — block cancellation of personalized items`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Wholesale orders`}),` — different policies for B2B customers`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Final sale items`}),` — enforce no-cancellation policies`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`It’s all self-serve — no support ticket needed.`}),`\n`,_jsx(Heading,{level:`2`,id:`enable-order-cancellation`,children:`Enable order cancellation`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Configure refund method`,children:_jsxs(_components.p,{children:[`First, set your refund policy under `,_jsx(_components.strong,{children:`Order Editing → Editing policy → Refunds`}),`. Choose `,_jsx(_components.strong,{children:`Original payment method`}),` or `,_jsx(_components.strong,{children:`Store credit`}),`.`]})}),_jsx(Step,{title:`Enable cancellation feature`,children:_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Order Editing → Customer edits`}),`, turn on `,_jsx(_components.strong,{children:`Cancel order`}),` and click `,_jsx(_components.strong,{children:`Save`}),`.`]})}),_jsx(Step,{title:`Customize reasons (optional)`,children:_jsxs(_components.p,{children:[`Edit cancellation reasons under `,_jsx(_components.strong,{children:`Translations > Customer Portal > Scroll down to Cancellation Reasons`}),` to match your business needs.`]})}),_jsx(Step,{title:`Set restrictions (optional)`,children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.a,{href:`/setup/order-edit-restrictions`,children:`order tags`}),` to hide cancellation for specific order types if needed.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`business-benefits`,children:`Business benefits`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Lower Support Costs`,icon:`dollar-sign`,color:`#10b981`,children:_jsx(_components.p,{children:`Cut the order-change tickets your team has to handle when customers handle their own cancellations.`})}),_jsx(Card,{title:`Faster Resolution`,icon:`bolt`,color:`#8b5cf6`,children:_jsx(_components.p,{children:`Instant cancellations vs. hours or days waiting for support team response.`})}),_jsx(Card,{title:`Better Customer Satisfaction`,icon:`heart`,color:`#ef4444`,children:_jsx(_components.p,{children:`Self-service options increase customer satisfaction and reduce frustration.`})}),_jsx(Card,{title:`Operational Efficiency`,icon:`chart-line`,color:`#f59e0b`,children:_jsx(_components.p,{children:`Automatic inventory restocking and refund processing eliminates manual work.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`frequently-asked-questions`,children:`Frequently asked questions`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`How do customers cancel orders in Revize?`,icon:`question`,id:`how-do-customers-cancel-orders-in-revize`,children:_jsx(_components.p,{children:`Customers click “Cancel order” in their Revize portal, select a cancellation reason, and confirm the cancellation. The refund processes automatically according to your configured settings.`})}),_jsx(Accordion,{title:`What happens to inventory when orders are cancelled?`,icon:`warehouse`,id:`what-happens-to-inventory-when-orders-are-cancelled`,children:_jsxs(_components.p,{children:[`By default, cancelled items are restocked in Shopify inventory and become available for new orders right away. To leave stock unchanged, turn off `,_jsx(_components.strong,{children:`Restock cancelled items`}),` under `,_jsx(_components.strong,{children:`Order Editing → Customer edits → Cancel order → Inventory`}),`.`]})}),_jsx(Accordion,{title:`Can I prevent certain orders from being cancelled?`,icon:`shield`,id:`can-i-prevent-certain-orders-from-being-cancelled`,children:_jsxs(_components.p,{children:[`Yes, use `,_jsx(_components.a,{href:`/setup/order-edit-restrictions`,children:`order edit restrictions`}),` with order tags to hide the cancellation option for specific orders like custom products, wholesale orders, or high-risk orders.`]})}),_jsx(Accordion,{title:`How are refunds processed for cancelled orders?`,icon:`credit-card`,id:`how-are-refunds-processed-for-cancelled-orders`,children:_jsxs(_components.p,{children:[`Refunds are processed automatically through Shopify according to your `,_jsx(_components.a,{href:`/setup/payments-and-refunds`,children:`payments and refunds settings`}),` - either to the original payment method or as store credit.`]})}),_jsx(Accordion,{title:`Can customers cancel orders after the edit window closes?`,icon:`clock`,id:`can-customers-cancel-orders-after-the-edit-window-closes`,children:_jsxs(_components.p,{children:[`No, order cancellation follows your `,_jsx(_components.a,{href:`/setup/edit-window`,children:`edit window settings`}),`. Once the edit window closes, the cancellation option disappears and orders move to fulfillment.`]})}),_jsx(Accordion,{title:`Can I customize the cancellation reasons customers see?`,icon:`palette`,id:`can-i-customize-the-cancellation-reasons-customers-see`,children:_jsxs(_components.p,{children:[`Yes, edit cancellation reasons under `,_jsx(_components.strong,{children:`Translations > Customer Portal > Scroll down to Cancellation Reasons`}),` to match your business needs and collect relevant feedback.`]})}),_jsx(Accordion,{title:`What if I have a no-refund policy?`,icon:`ban`,id:`what-if-i-have-a-no-refund-policy`,children:_jsxs(_components.p,{children:[`If you select `,_jsx(_components.strong,{children:`No refunds`}),` in your payments settings, the cancellation option won’t appear in the customer portal, automatically enforcing your no-refund policy.`]})}),_jsx(Accordion,{title:`Can customers cancel only part of an order?`,icon:`list-check`,id:`can-customers-cancel-only-part-of-an-order`,children:_jsxs(_components.p,{children:[`Yes, with partial cancellation enabled (Pro plan). Customers pick specific line items to cancel and the rest of the order continues to fulfillment. Turn it on under `,_jsx(_components.strong,{children:`Order Editing → Customer edits → Cancel order`}),`. `,_jsx(_components.strong,{children:`Allow partial quantities`}),` is on by default, so customers can also cancel some units of an item.`]})}),_jsx(Accordion,{title:`Where can I see what was partially cancelled?`,icon:`database`,id:`where-can-i-see-what-was-partially-cancelled`,children:_jsxs(_components.p,{children:[`A JSON record is written to the order under metafield namespace `,_jsx(_components.code,{children:`revize_app`}),`, key `,_jsx(_components.code,{children:`partial_cancellation`}),`. It contains the cancelled line items, quantities, reason, and timestamp — perfect for reporting or Shopify Flow automations.`]})})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Self-service order cancellation reduces support workload while providing customers with instant resolution. Enable this feature to improve customer experience and operational efficiency.`})}),`\n`,_jsx(Heading,{level:`2`,id:`related-revize-features`,children:`Related Revize features`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/features/apply-discounts`,children:`Apply Discounts`}),` — alternative to cancellation when customers forgot a discount code`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/features/customer-portal`,children:`Customer Portal`}),` — where customers access cancellation options`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/setup/payments-and-refunds`,children:`Payments \u0026 Refunds`}),` — configure how cancellation refunds are processed`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/setup/order-edit-restrictions`,children:`Order Edit Restrictions`}),` — control which orders can be cancelled`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/setup/edit-window`,children:`Edit Window Settings`}),` — set cancellation deadlines`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Let customers cancel a Shopify order themselves","sidebarTitle":"Cancel order","description":"Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.","href":"/features/cancel-order"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why self-service order cancellation matters","slug":"why-self-service-order-cancellation-matters","depth":2,"children":[]},{"title":"How customers cancel orders","slug":"how-customers-cancel-orders","depth":2,"children":[]},{"title":"Partial cancellation","slug":"partial-cancellation","depth":2,"children":[{"title":"Enable partial cancellation","slug":"enable-partial-cancellation","depth":3,"children":[]},{"title":"Where to see what was cancelled","slug":"where-to-see-what-was-cancelled","depth":3,"children":[]}]},{"title":"Restock cancelled items","slug":"restock-cancelled-items","depth":2,"children":[]},{"title":"Configure order cancellation refunds","slug":"configure-order-cancellation-refunds","depth":2,"children":[]},{"title":"Customizable cancellation reasons","slug":"customizable-cancellation-reasons","depth":2,"children":[]},{"title":"Hide cancellation by order tags","slug":"hide-cancellation-by-order-tags","depth":2,"children":[]},{"title":"Enable order cancellation","slug":"enable-order-cancellation","depth":2,"children":[]},{"title":"Business benefits","slug":"business-benefits","depth":2,"children":[]},{"title":"Frequently asked questions","slug":"frequently-asked-questions","depth":2,"children":[]},{"title":"Related Revize features","slug":"related-revize-features","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"revize","siteName":"Revize Documentation","title":"Let customers cancel a Shopify order themselves - Revize Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/features/cancel-order","matchLevel":0},"es":{"href":"/es/features/cancel-order","matchLevel":1},"fr":{"href":"/fr/features/cancel-order","matchLevel":1},"de":{"href":"/de/features/cancel-order","matchLevel":1},"pt":{"href":"/pt/features/cancel-order","matchLevel":1},"it":{"href":"/it/features/cancel-order","matchLevel":1},"ja":{"href":"/ja/features/cancel-order","matchLevel":1}}},"lastModified":"2026-10-01T08:56:59.145Z","gitLastModified":"2026-10-01T08:54:43.000Z","originalFileLocation":"features/cancel-order.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Revize Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Let customers cancel a Shopify order themselves - Revize Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Revize Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.revize.app/features/cancel-order\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://revize.mintlify.app/_mintlify/api/og/v2?division=Features\u0026amp;title=Let+customers+cancel+a+Shopify+order+themselves\u0026amp;description=Let+Shopify+customers+cancel+full+or+partial+orders+themselves+with+automatic+refunds.+Reduce+support+tickets+and+improve+customer+experience+with+self-service+\u0026amp;theme=20ece0128e86fdb8674e411d\u0026amp;signature=6c6dc4fa261b506581d94b16564318e56535acaad70fb0d21b41c6e46985c346\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Let customers cancel a Shopify order themselves - Revize Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://revize.mintlify.app/_mintlify/api/og/v2?division=Features\u0026amp;title=Let+customers+cancel+a+Shopify+order+themselves\u0026amp;description=Let+Shopify+customers+cancel+full+or+partial+orders+themselves+with+automatic+refunds.+Reduce+support+tickets+and+improve+customer+experience+with+self-service+\u0026amp;theme=20ece0128e86fdb8674e411d\u0026amp;signature=6c6dc4fa261b506581d94b16564318e56535acaad70fb0d21b41c6e46985c346\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/revize/c4M3rFhgWDKUZr2V/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Revize Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366F1\">\u003cmeta data-mint-head name=\"application-name\" content=\"Revize\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.revize.app/features/cancel-order\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/cancel-order.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.revize.app/features/cancel-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.revize.app/es/features/cancel-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.revize.app/fr/features/cancel-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.revize.app/de/features/cancel-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://docs.revize.app/pt/features/cancel-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.revize.app/it/features/cancel-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.revize.app/ja/features/cancel-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.revize.app/features/cancel-order\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://revize.app/#organization\",\"name\":\"Revize\",\"legalName\":\"Untechnickle\",\"url\":\"https://revize.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.revize.app/logo/revize-logo-dark.png\"},\"sameAs\":[\"https://apps.shopify.com/revize\",\"https://revize.app\",\"https://www.untechnickle.com\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.revize.app#website\",\"name\":\"Revize Documentation\",\"url\":\"https://docs.revize.app\",\"publisher\":{\"@id\":\"https://revize.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.revize.app/features/cancel-order#webpage\",\"url\":\"https://docs.revize.app/features/cancel-order\",\"name\":\"Let customers cancel a Shopify order themselves\",\"description\":\"Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.\",\"dateModified\":\"2026-10-01T08:54:43.000Z\",\"isPartOf\":{\"@id\":\"https://docs.revize.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.revize.app/features/cancel-order#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.revize.app/features/cancel-order#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.revize.app/features/customer-portal\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Let customers cancel a Shopify order themselves\",\"item\":\"https://docs.revize.app/features/cancel-order\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.revize.app/features/cancel-order#article\",\"headline\":\"Let customers cancel a Shopify order themselves\",\"name\":\"Let customers cancel a Shopify order themselves\",\"description\":\"Let Shopify customers cancel full or partial orders themselves with automatic refunds. Reduce support tickets and improve customer experience with self-service order cancellation from the customer portal.\",\"url\":\"https://docs.revize.app/features/cancel-order\",\"mainEntityOfPage\":{\"@id\":\"https://docs.revize.app/features/cancel-order#webpage\"},\"dateModified\":\"2026-10-01T08:54:43.000Z\",\"publisher\":{\"@id\":\"https://revize.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.revize.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Revize Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Revize Documentation","nav":{"global":{"anchors":[{"anchor":"Install Revize","icon":"cart-plus","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"},{"anchor":"Book Demo","icon":"calendar-days","href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true"}]},"languages":[{"language":"en","default":true,"tabs":[{"tab":"Documentation","icon":"book","groups":[{"group":"Getting Started","icon":"rocket","pages":[{"title":"Edit Shopify orders after checkout","sidebarTitle":"Welcome","href":""},{"title":"Set up Shopify order editing in minutes","sidebarTitle":"Quickstart","href":"/quickstart"},{"title":"Test Shopify order edits with a draft order","sidebarTitle":"How to test","href":"/how-to-test-revize"}]},{"group":"Core Setup","icon":"sliders","pages":[{"title":"Set a Shopify order editing window","sidebarTitle":"Edit window","href":"/setup/edit-window"},{"title":"Shopify order editing rules engine","sidebarTitle":"Rules engine","href":"/setup/rules-engine"},{"title":"Hold Shopify orders while customers edit","sidebarTitle":"Order processing","href":"/setup/order-processing"},{"title":"Payments and refunds for Shopify order edits","sidebarTitle":"Payments and refunds","href":"/setup/payments-and-refunds"},{"title":"Shopify post-purchase upsells on the same order","sidebarTitle":"Post-purchase upsells","href":"/setup/post-purchase-upsells"},{"title":"Shopify email upsells: add products to an order from any email","sidebarTitle":"Email upsells","href":"/setup/email-upsells"},{"title":"Reverse unpaid Shopify order edits automatically","sidebarTitle":"Reverse unpaid edits","href":"/setup/reverse-unpaid-edits"},{"title":"Restrict which Shopify orders customers can edit","sidebarTitle":"Edit restrictions","href":"/setup/order-edit-restrictions"},{"title":"Sync edited Shopify orders to your 3PL","sidebarTitle":"Fulfillment sync","href":"/setup/fulfillment-sync"},{"title":"Translate the Shopify order editing portal","sidebarTitle":"Translations","href":"/setup/translations"},{"title":"Edit Shopify subscription and pre-order purchases","sidebarTitle":"Subscriptions \u0026 pre-orders","href":"/setup/subscription-preorders"},{"title":"Advanced Shopify order editing settings","sidebarTitle":"Advanced settings","href":"/setup/advanced-settings"},{"title":"Revize email notifications and sender settings","sidebarTitle":"Notifications","href":"/setup/notifications"},{"title":"Add order editing to Shopify confirmation emails","sidebarTitle":"Confirmation email","href":"/setup/order-confirmation-email"}]},{"group":"Features","icon":"rectangle-list","pages":[{"title":"Shopify self-serve order editing portal","sidebarTitle":"Customer portal","href":"/features/customer-portal"},{"title":"Change a Shopify shipping address after checkout","sidebarTitle":"Address edits","href":"/features/address-edits"},{"title":"Change Shopify size, color, or quantity after checkout","sidebarTitle":"Variant \u0026 quantity","href":"/features/product-quantity-edits"},{"title":"Add products to a Shopify order after checkout","sidebarTitle":"Add products","href":"/features/add-products-upsell"},{"title":"Upgrade Shopify shipping after checkout","sidebarTitle":"Shipping upgrade","description":"Let customers upgrade to faster delivery after checkout. Turn urgency into revenue with express shipping, overnight delivery, and expedited options through automatic payment processing.","href":"/features/shipping-upgrade"},{"title":"Let customers cancel a Shopify order themselves","sidebarTitle":"Cancel order","href":"/features/cancel-order"},{"title":"Shopify order cancellation API","sidebarTitle":"Cancellation API","description":"Add order cancellation anywhere in your Shopify store. Build cancel buttons into emails, support pages, chatbots, or custom forms using our public API endpoint.","href":"/features/cancellation-api"},{"title":"Apply a Shopify discount code after checkout","sidebarTitle":"Apply discounts","href":"/features/apply-discounts"},{"title":"Edit a Shopify tax invoice after checkout","sidebarTitle":"Invoices \u0026 tax","href":"/features/invoices-and-tax"},{"title":"Add a preferred delivery date after Shopify checkout","sidebarTitle":"Delivery date","href":"/features/delivery-date"},{"title":"Shopify order support tickets from the portal","sidebarTitle":"Support tickets","href":"/features/support-tickets"},{"title":"Shopify order editing analytics and ROI","sidebarTitle":"Analytics","href":"/features/analytics"},{"title":"Add a custom note when editing a Shopify order","sidebarTitle":"Custom note","href":"/features/custom-note"},{"title":"EU withdrawal requests on the Shopify order status page","sidebarTitle":"EU withdrawal","href":"/features/eu-withdrawal"}]},{"group":"Tech Stack","icon":"puzzle-piece","pages":[{"title":"Revize integrations for Shopify fulfillment and email","sidebarTitle":"Integrations","href":"/integrations/index"},{"title":"Send Klaviyo emails when Shopify orders are edited","sidebarTitle":"Klaviyo","href":"/integrations/klaviyo"}]}]},{"tab":"Support","icon":"life-ring","pages":[{"title":"Support","href":"/support/faq"}]},{"tab":"Changelog","icon":"sparkles","pages":[{"title":"Changelog","href":"/changelog"}]}]},{"language":"es","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Reservar demo"}],"primary":{"type":"button","label":"Instalar Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"pages":[{"title":"es","href":"/es/features/cancel-order"}]},{"language":"fr","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Réserver une démo"}],"primary":{"type":"button","label":"Installer Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"pages":[{"title":"fr","href":"/fr/features/cancel-order"}]},{"language":"de","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Demo buchen"}],"primary":{"type":"button","label":"Revize installieren","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"pages":[{"title":"de","href":"/de/features/cancel-order"}]},{"language":"pt","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Agendar demo"}],"primary":{"type":"button","label":"Instalar Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"pages":[{"title":"pt","href":"/pt/features/cancel-order"}]},{"language":"it","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"Prenota una demo"}],"primary":{"type":"button","label":"Installa Revize","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"pages":[{"title":"it","href":"/it/features/cancel-order"}]},{"language":"ja","navbar":{"links":[{"href":"https://cal.com/revize-team-xx92ri/30min?overlayCalendar=true","label":"デモを予約"}],"primary":{"type":"button","label":"Revize をインストール","href":"https://apps.shopify.com/revize?utm_source=documentation\u0026utm_medium=docs\u0026utm_campaign=install_button"}},"pages":[{"title":"ja","href":"/ja/features/cancel-order"}]}]},"title":"Let customers cancel a Shopify order themselves - Revize Documentation","buildId":"dpl_48qhjNLiu9iJQQSZJz9Fa2ihBbPH","deploymentId":"dpl_48qhjNLiu9iJQQSZJz9Fa2ihBbPH","dynamics":[],"chunks":[]}