Skip to main content
Features

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.

Validation

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
Contact edits

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.

northfield-studio.com/orders/status

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.

The contact detail edit form, showing an old email address being replaced, and the confirmation link step that must be completed before the change is applied to the order.

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
Edit window

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.

Edit window · 1 hour00:38:12left

Continuous picking

For stores where a label can print within the hour. Short enough that nothing in the warehouse ever chases a moving address.

Edit window · 3 hours02:41:07left

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.

Edit window · 24 hours19:04:55left

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
Optional module

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.

northfield-studio.com/orders/status

Add to this order

Anything you add ships in the same parcel as order #1042.

  • Linen napkin set, four

    Tabletop · 12 in stock

    $28.00
  • Beeswax candle, tall

    Home · 40 in stock

    $16.00

Amount to pay

$28.00

Pay the difference

Payment is taken through Shopify checkout. No new order is created.

The add-to-order panel on the Order Status page, with a linen napkin set added at twenty-eight dollars, live stock counts beside each product, and a button to pay the difference through Shopify checkout.

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
Merchant control

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.

admin.shopify.com/apps/selfserve/settings

Edit window

1 hour3 hours12 hours24 hours

Counted from order creation. Always closes early when a fulfilment is created.

Allowed changes

  • Email address

    Confirmation link required

    On
  • Phone number

    Applies immediately

    On
  • Recipient name

    Applies immediately

    On
  • Delivery address

    Validator always runs

    On
  • Delivery instructions

    Carrier does not support

    Off
  • Add more products

    Off by default

    Off

Guard rails

Maximum edits per order
3
Address must stay in original country
On
Excluded order tags
wholesale, subscription
The SelfServe settings screen inside the Shopify admin, showing a three hour edit window selected, four of six change types switched on, a cap of three edits per order, and wholesale and subscription orders excluded.

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
Get started

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.