# SelfServe > SelfServe is a post-purchase operations platform for Shopify. It lets end customers edit their own orders after checkout through a self-service portal embedded in the order status page. Merchants control what can be changed using rules, restrictions, and time-based editing windows. SelfServe also provides self-service order cancellations, post-purchase upsells, automated order tagging, address editing, and real-time notifications. SelfServe is installed from the Shopify App Store and operates as an embedded Shopify application. It serves two user types: Shopify merchants (who configure rules and monitor changes) and end customers (who use the self-service portal to edit their orders). ## Core Features ### Order Editing Customers can change products, swap variants (size, color), adjust quantities, add new items, remove items, and update their shipping method directly from their order status page. Merchants control every permission. When the order total changes, SelfServe automatically collects the price difference or issues a partial refund. If the customer does not complete payment within 15 minutes, the system automatically reverts the order to its original state. ### Order Editing Limitations Merchants can allow or disallow order downgrades (removing items or reducing quantities). They can also control whether customers are allowed to add new items to existing orders or only modify what is already there. ### Order Editing Restrictions Merchants can block editing for specific orders or customer segments using Shopify tags. For example, tagging an order as "pre-order" or "final-sale" automatically locks editing. Tagging a customer as "wholesale" or "high-fraud-risk" revokes their editing access. Restrictions are checked in real-time when a customer attempts to edit. ### Editing Windows Editing windows define when customers can edit orders after purchase. There are two modes: - **Time-based:** Simple duration limits such as "allow edits for 60 minutes after purchase" or "allow edits for 3 days." - **Rule-based:** Advanced conditional rules using time of day, day of week, order tags, product types, and customer segments. Rules are written in natural-language style and evaluated in priority order. Examples include aligning editing windows with warehouse cut-off times or blocking edits during overnight processing hours. ### Order Cancellations Customers can request cancellations through a self-service flow. Merchants configure cancellation rules, including time limits and eligible order types. Cancellations can be restricted by order tag (e.g., "final-sale", "custom-made") or customer tag (e.g., "black-friday-customers", "wholesale"). For orders that need human review, cancellation requests can be routed to an approval queue where the merchant team approves or denies with a reason shown to the customer. ### Post-Purchase Upsells SelfServe injects product recommendations into the order editing flow. Merchants create upsell blocks and place them on the editing page. Each block supports: - Per-product percentage or fixed-amount discounts with named discount codes - Subscription upsells integrated with Shopify selling plans (one-time or recurring options per variant) - Visibility rules: hide products already in the order, hide once added - Compare-at pricing using Shopify's built-in compare-at price field ### Automated Order Tagging SelfServe automatically tags orders in Shopify when customers make changes. There are six trigger events: - `customer_item_added` — customer added a new product - `customer_item_removed` — customer removed a product - `customer_item_quantity_changed` — customer adjusted quantity - `customer_shipping_method_changed` — customer changed shipping method - `customer_address_changed` — customer updated shipping address - `customer_order_cancelled` — customer cancelled via the self-service portal Tags can be used to create custom filters in Shopify Orders, trigger Shopify Flow automations, generate special packing slips, route orders to fulfillment teams, and send targeted email sequences. ### Address and Contact Editing Customers can update their shipping address, billing address, email, and phone number after checkout. Built-in validation prevents invalid entries. Address changes trigger the `customer_address_changed` tag. ### Notifications Merchants receive configurable real-time alerts when customers make changes. Notifications cover all six change types (items added, removed, quantity changed, shipping changed, address changed, order cancelled). Individual notification types can be toggled on or off. Alerts are delivered via email and the SelfServe dashboard. ## Customer-Facing Portal The self-service editing portal is embedded directly in the Shopify order status page (thank-you page and customer account order page). Customers see an editing interface showing their current order with options to make changes based on the merchant's configuration. The portal displays a countdown timer when a time-based editing window is active. After making changes, customers see a confirmation with the updated order details and adjusted total. ## Merchant Dashboard The merchant-facing interface lives inside the Shopify admin as an embedded app. The settings panel includes sections for: - Editing window (time-based or rule-based) - Order editing limitations (downgrade controls) - Order editing restrictions (tag-based blocks) - Item editing limitations (add item controls) - Address and contact editing settings - Cancellation rules - Cancellation restrictions (order tag and customer tag blocks) - Cancellation approval queue configuration - Automated order tagging (six trigger types with custom tag names) - Notification preferences - Upsell block configuration ## Technical Details - **Platform:** Shopify embedded application - **Installation:** Shopify App Store - **Data sync:** Real-time bidirectional sync with Shopify (inventory, shipping, payments, tags) - **Payment handling:** Automatic collection of price differences or partial refunds through Shopify's payment infrastructure - **Safety mechanism:** 15-minute auto-revert if customer does not complete payment for an order edit - **Performance:** Zero impact on checkout or storefront page load speed; loads only on the order status page - **Shopify Flow integration:** Via automated order tagging - **Theme compatibility:** Works with all Shopify themes including custom themes - **Setup time:** Under 10 minutes for most merchants ## Pages - [Homepage](https://selfserve.app/) - [Order Editing](https://selfserve.app/features/order-editing) - [Order Cancellations](https://selfserve.app/features/order-cancellations) - [Post-Purchase Upsells](https://selfserve.app/features/post-purchase-upsells) - [Rule-Based Editing Windows](https://selfserve.app/features/rule-based-editing-window) - [Automated Order Tagging](https://selfserve.app/features/automated-order-tagging) - [Address and Contact Editing](https://selfserve.app/features/address-and-contact-editing) - [Notifications](https://selfserve.app/features/notifications) - [Wall of Love](https://selfserve.app/wall-of-love) - [Pricing](https://selfserve.app/pricing) - [FAQ](https://selfserve.app/faq) - [Privacy Policy](https://selfserve.app/privacy-policy) - [Terms of Service](https://selfserve.app/terms-of-service) - [Cookie Policy](https://selfserve.app/cookie-policy)