Everything SelfServe does, and the setting behind each of it
Five capabilities. Each one has a merchant switch, each one writes to the Shopify order timeline, and none of them can touch the items or the price the customer already agreed to.
01 / 05
Address validation that catches the mistake before the label prints
Every address a customer submits through SelfServe is checked against postal reference data before it is written back to the order. If it cannot be matched, the customer is told why, and what to fix, while they are still on the page.
The validator does four things in sequence. It parses the address into its component parts, so a house number typed into the city field is recognised for what it is. It compares the street, locality and postal code against the postal authority record for that country, so a real street in the wrong town is rejected rather than accepted. It normalises formatting to the local convention, which means abbreviations, casing and the order of lines come out the way the carrier expects them. And it flags the classes of problem that a human would spot: a missing sub-premise on a large apartment building, a PO box submitted where the shipping profile does not allow one, a postal code that belongs to a different region than the city named above it.
When the address resolves cleanly, the customer sees a confirmation and the corrected version is saved. When it resolves to something close but not identical, the customer is shown the suggested version beside their own and picks one, so you are never silently overwriting what somebody typed. When it does not resolve at all, the save is blocked with a plain-language explanation, and the customer either corrects it or is handed a link to contact you.
The point is timing. An address caught at this moment costs nothing. The same address caught after the label prints costs a return-to-sender fee, a second outbound shipment, a support conversation, and usually the goodwill of somebody who has already paid you.
Matched to premise level
27 Kelvin Row, Flat 4, Glasgow G12 8QQ
Street, building and postal code all resolve in the Royal Mail file. Saved as typed, formatted for the carrier.
Close, but not exact
188 Rue de Rivoli, 75001 Paris
188 Rue de Rivoli, 75044 Paris CEDEX 01
The customer chooses between what they typed and the corrected version. Nothing is overwritten silently.
Blocked before saving
14 Briggate, Leeds M1 4WB
Postal code M1 4WB belongs to Manchester, not Leeds. The customer is told exactly which line to fix.
What the validator checks
- Street name and house number exist together in postal reference data
- Postal code matches the city and region named on the address
- Sub-premise data is present where the building requires it
- Formatting is normalised to the destination country convention
- PO box and packstation entries respect your shipping profile rules
- Country and region are resolvable to a carrier-accepted code
02 / 05
Customers fix their own email and phone number
A typo in an email address means the customer never receives a shipping confirmation, so they write to you asking where their order is. SelfServe lets them repair it themselves from the Order Status page, using the fields you choose to expose.
Contact editing covers the email address on the order, the phone number, and the recipient name on the shipping record. Each of the three is switched on or off independently in your admin, so a store that only wants phone numbers corrected can allow that and nothing else.
Email changes are verified before they are applied. The customer enters the new address, SelfServe sends a single-use confirmation link to it, and the order is only updated once that link is opened. That closes the obvious hole: an order lookup should never become a way to redirect somebody else's order confirmations to an attacker's inbox. Phone and name changes apply immediately, since neither can be used to take over a notification stream.
Every applied change is written to the order timeline in Shopify with a note recording what changed, from what, to what, and when. Your team sees the same history they would see for an edit made by a staff member, so nothing about the order becomes mysterious later.
Change your email address
Currently on the order
ada@northfeild-studio.com
New email address
ada@northfield-studio.com
Confirm from the new address
We have sent a single-use link to the new address. The order updates when that link is opened, and not before. Phone and name changes apply straight away, since neither can redirect your notifications.
Fields you can expose
- Email address, with a confirmation link sent before the change applies
- Phone number, formatted and checked against the country dialling plan
- Recipient name on the shipping address
- Delivery instructions and access notes, where your carrier supports them
- Each field switched on or off independently per store
03 / 05
Delivery address edits inside a window you set
You decide how long after checkout a customer may still change where the order is going. One hour, three hours, or up to twenty-four hours. When the window closes, the edit link stops working and the customer is pointed at your support channel instead.
The window is a single setting with three presets, and it starts counting from the moment the order is created. One hour suits stores that pick and pack continuously through the day and cannot afford a moving target. Three hours is the common choice for stores with a same-day cut-off, since it covers the gap between an order being placed and a picker touching it. Twenty-four hours works for made-to-order and pre-order stores, where nothing physical happens on the first day anyway.
The customer always sees exactly how much time is left. The Order Status page shows a live countdown next to the edit button, so nobody has to guess whether they are still allowed to act. When the timer reaches zero the controls disappear rather than failing on submit, which is the difference between a clear boundary and a frustrating one.
SelfServe also respects what has already happened to the order. If a fulfilment is created, or the order is marked as being picked, the window closes early regardless of how much time was nominally left. A configurable time limit is a promise to the customer; the fulfilment check is what keeps that promise honest against your warehouse.
Continuous picking
For stores where a label can print within the hour. Short enough that nothing in the warehouse ever chases a moving address.
Same-day cut-off
The common choice. Covers the gap between an order landing and a picker touching it, which is when almost every customer notices their mistake.
Made-to-order and pre-order
For stores where nothing physical happens on day one. Costs nothing, and catches the customer who only reads the confirmation email the next morning.
How the window behaves
- Presets of 1 hour, 3 hours, 12 hours and 24 hours
- Counts from order creation, shown as a live countdown to the customer
- Closes early the moment a fulfilment is created on the order
- Controls are hidden, not broken, once the window has expired
- Expired links show your support contact rather than a dead end
04 / 05
Let customers add more products to an order they already placed
Switched off by default. When you turn it on, a customer who realises they forgot something can add it to the existing order from the Order Status page instead of placing a second one that ships separately.
The customer flow is short. On the Order Status page they see an "Add to this order" panel showing the products you have made eligible. They pick an item and a quantity, SelfServe checks it against live inventory, and the customer pays the difference through Shopify's own checkout. The additional item is attached to the original order, so it picks, packs and ships as one parcel.
For you this changes two things. The obvious one is order value: an addition that would otherwise have become a second order with its own shipping cost now rides along with the first. The less obvious one is warehouse load. Two orders to the same address on the same day is two picks, two labels and two parcels, and frequently a customer service message asking whether they can be combined. Adding to the original order removes all of that.
You keep control of what is eligible. Restrict the panel to a specific collection, exclude anything oversized or fragile that would break your packaging assumptions, and set a cut-off so additions are not accepted once picking has started. Inventory is checked at the moment of adding, so nothing gets attached to an order that you cannot actually ship.
Add to this order
Anything you add ships in the same parcel as order #1042.
- $28.00
Linen napkin set, four
Tabletop · 12 in stock
- $16.00
Beeswax candle, tall
Home · 40 in stock
Amount to pay
$28.00
Payment is taken through Shopify checkout. No new order is created.
Merchant controls on additions
- Off by default, enabled per store when you choose
- Restrict eligible products to chosen collections
- Exclude oversized, fragile or made-to-order items
- Live inventory check before the addition is accepted
- Payment collected through Shopify checkout, not a side channel
- Additions merge into the original order for a single fulfilment
05 / 05
Limit what can be changed, and how often
Self-service is only useful when it stays inside boundaries your operation can absorb. SelfServe gives you a per-change-type switch, so you allow the edits that are cheap for you and refuse the ones that are not.
Each change type is its own setting: email, phone, recipient name, delivery address, delivery instructions, and product additions. Turn on the ones you want. A store that ships internationally might allow contact edits everywhere but refuse address changes that cross a country border, since that would invalidate the duties already calculated at checkout. A store with a single fulfilment run each morning might allow everything, but only for the three hours before that run starts.
On top of the per-type switches there are guard rails on frequency and scope. You can cap how many times a single order may be edited, which stops one indecisive customer generating a dozen change events on the same record. You can require that address changes stay within the original country, or within the original shipping zone, so the rate the customer paid still matches what you are being asked to ship. And you can exclude orders that carry particular tags, which is the usual way to protect wholesale, subscription and manually created orders from being touched at all.
Anything you have not allowed simply does not appear on the Order Status page. The customer is not shown a control that will reject them; they are shown the changes they can actually make, and a link to your support channel for anything else.
Edit window
Counted from order creation. Always closes early when a fulfilment is created.
Allowed changes
- On
Email address
Confirmation link required
- On
Phone number
Applies immediately
- On
Recipient name
Applies immediately
- On
Delivery address
Validator always runs
- Off
Delivery instructions
Carrier does not support
- Off
Add more products
Off by default
Guard rails
- Maximum edits per order
- 3
- Address must stay in original country
- On
- Excluded order tags
- wholesale, subscription
Guard rails available
- Independent on and off switch per change type
- Maximum number of edits allowed per order
- Restrict address changes to the original country or shipping zone
- Exclude orders carrying specific tags from editing entirely
- Disallowed controls are hidden rather than shown and refused
- Every applied change written to the Shopify order timeline
Decide which of the five your operation can absorb
Most stores begin with contact details and delivery address, leave product additions off, and revisit that decision after a month. The fourteen-day trial unlocks all five so the decision is informed rather than theoretical.