How to Add a Gift Message to Shopify Order Confirmation Page
Why Add a Gift Message to Your Shopify Order Confirmation Page?
The order confirmation page is the last screen a customer sees before they close the tab and wait for a package. If you sell anything people buy for someone else — candles, coffee, jewelry, baby clothes, skincare — that screen is a missed opportunity to capture a gift note while the buyer is still thinking about the recipient.
Adding a gift message field directly to the order confirmation page (also called the Thank You page) solves three problems at once. It captures the message at the moment of highest intent, it keeps the note attached to the order record instead of buried in an email thread, and it gives your fulfillment team something to print and drop in the box. No back-and-forth emails asking "what should the card say?"
Shopify has supported post-purchase checkout extensions for a while now, but you don't need a paid app to do this. A small theme edit plus Shopify Flow (free on all plans) gets you a working gift message capture and fulfillment workflow.
What You'll Need Before You Start
- A Shopify plan that supports checkout extensibility. Order status and Thank You page customization is available on Shopify's current plans — check current pricing and feature availability for your specific plan, since Shopify has changed these boundaries more than once.
- Theme access. You need permission to edit theme code (Online Store → Themes → Edit code). If you're on a Shopify Plus account with a locked theme, ask your developer.
- A duplicate theme. Always duplicate your live theme before editing. Click the "..." menu next to your theme and select Duplicate. If something breaks, you publish the duplicate and you're back in business in seconds.
- Shopify Flow (free) if you want to route gift messages to email, Slack, or your 3PL automatically. Install it from the Shopify App Store.
- A fulfillment process for the card itself. Decide now whether you're handwriting notes, printing them on packing slips, or using a service like Handwrytten or Postable. This is the part most merchants forget.
Step 1: Access Your Shopify Theme Code
- In Shopify admin, go to Online Store → Themes.
- Find your live theme, click the "..." button, and choose Edit code.
- In the left sidebar, open the Templates folder and look for
checkout.liquidor, on newer themes, the Checkout folder withthank_you.liquid. - If your theme uses the newer Checkout Extensibility system (most themes published after 2023), you won't find
checkout.liquidat all. Instead, you'll use the Checkout Editor and a checkout UI extension. For that route, go to Settings → Checkout → Customize and use the checkout editor's app blocks.
For most merchants on Dawn, Refresh, Craft, or any current free Shopify theme, the fastest path is the checkout UI extension route. If you're on an older theme with checkout.liquid, the Liquid edit below still works.
Step 2: Add the Gift Message Field to the Order Confirmation Template
The goal is a textarea that appears on the Thank You page and writes its value back to the order as an order attribute or note.
If you're editing checkout.liquid or thank_you.liquid
Open the file and find the section that renders after the order summary. Add a form block like this:
<div class="gift-message-block">
<label for="gift-message">Add a gift message (optional)</label>
<textarea id="gift-message" name="checkout[attributes][Gift Message]" maxlength="200" rows="3"></textarea>
<button type="button" id="save-gift-message">Save gift message</button>
</div>
Then add the script that posts the value back to the order:
document.getElementById('save-gift-message').addEventListener('click', function () {
const message = document.getElementById('gift-message').value;
fetch('/cart/update.js', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ attributes: { 'Gift Message': message } })
}).then(() => {
document.getElementById('save-gift-message').textContent = 'Saved';
});
});
This writes the gift message as a cart attribute, which Shopify carries through to the order as an order attribute visible in the admin.
If you're using Checkout Extensibility
Build a checkout UI extension that renders a text field on the Thank You page and calls applyAttributeChange from the @shopify/ui-extensions package. The applyAttributeChange API writes the value to the order as a custom attribute. Deploy the extension with the Shopify CLI:
shopify app deploy
Then in Settings → Checkout → Customize, add your extension as a block on the Thank You page.
For merchants who don't want to touch code at all, apps like Gift Note, Gift Wrap, or In Cart Upsell offer a no-code version of this. Check current pricing and whether they support the Thank You page specifically — not all gift message apps do.
Step 3: Save and Test Your Gift Message Field
- Save the file or deploy the extension.
- Open your storefront in an incognito window and place a real test order (use Shopify's Bogus Gateway if you're on a development store).
- On the Thank You page, confirm the gift message field renders and accepts input.
- Submit a message like "Happy birthday, Sam — hope the candles smell amazing."
- Open the order in Shopify admin and check the Additional details section. Your gift message should appear as an order attribute.
- Delete the test order.
If the field renders but the value doesn't save, the issue is almost always in the attribute key. Shopify expects checkout[attributes][Your Key] in Liquid or applyAttributeChange in extensions — a typo in either breaks the write silently.
Step 4: Capture and Fulfill Gift Messages (Without an App)
Once the message is stored as an order attribute, you need a way to get it in front of whoever packs the box.
- Shopify Flow: Create a workflow triggered by Order created with a condition that the order has a "Gift Message" attribute. Add an action to send an email or Slack message containing the attribute value to your fulfillment team.
- Packing slips: Edit your packing slip template (Settings → Notifications → Packing slip) to print the gift message in a highlighted box. This is the simplest option if you fulfill in-house.
- Order tags: Use Flow to tag orders containing gift messages (e.g.,
gift), then filter by that tag in your order list. - Third-party fulfillment: If you use a 3PL, most integrations pass order attributes through. Confirm with your provider that they read custom attributes, not just notes.
A simple comparison of your options:
| Method | Setup effort | Best for | Cost |
|---|---|---|---|
| Packing slip edit | Low | In-house fulfillment | Free |
| Shopify Flow email/Slack | Medium | Small teams, remote packers | Free |
| Order tags + filter | Low | Manual review workflows | Free |
| Dedicated gift app | Low | No-code merchants | Check current pricing |
Troubleshooting Common Issues
- Field doesn't appear on the Thank You page. Check that you edited the correct template. On Checkout Extensibility stores,
checkout.liquidedits do nothing — you must use the checkout editor. - Message saves but shows blank in admin. The attribute key in your Liquid and your JavaScript must match exactly, including capitalization.
- Message appears only sometimes. Some themes cache the Thank You page. Clear your theme cache or check whether a third-party script is interfering.
- Customer can't edit after submitting. The Thank You page is a one-shot screen. If you need post-purchase editing, send a follow-up email with a form link (Shopify's Order status page or a tool like Jotform) instead.
- Gift message shows on the packing slip but not the invoice. These are separate notification templates — edit both under Settings → Notifications.
Final Thoughts: A Simple Way to Offer Gift Options
Adding a gift message field to your Shopify order confirmation page is a two-hour project that pays off every time someone buys a present. You capture the note while intent is high, you store it as a structured order attribute instead of an email, and you route it to fulfillment with free tools like Shopify Flow. Start with the packing slip method if you fulfill in-house; upgrade to Flow automation once gift orders become a meaningful share of your volume.
FAQ
Can I add a gift message field without editing theme code? Yes. Apps like Gift Note and Gift Wrap add the field through a checkout extension with no code. Check current pricing and confirm the app supports the Thank You page, since some only work on the cart page.
Will the gift message show up on the customer's order confirmation email? Only if you edit the order confirmation email template under Settings → Notifications. The attribute is stored on the order, but the default email doesn't print custom attributes unless you add Liquid for them.
Does adding a gift message field require Shopify Plus?
Not necessarily, but the method differs. Checkout Extensibility customization options have changed across Shopify plans — verify what your current plan supports before starting, and use the checkout editor route if checkout.liquid isn't available.