How to Add a Gift Message to Shopify Order Confirmation
How to Add a Gift Message to Shopify Order Confirmation
A customer buys a birthday gift, checks out in a hurry, and only remembers afterward that they wanted a note in the box. Now they're emailing your support inbox, you're matching their order number to a name, and someone on your team is handwriting a card before the parcel ships.
You can eliminate most of that back-and-forth by collecting the gift message during checkout and printing it automatically on the order confirmation and packing slip. Shopify supports this natively through order notes and cart attributes, so you don't need a paid app to get started. Here's how to set it up, test it, and decide when the free method stops being enough.
Why Buyers Want to Add a Gift Message After Checkout
Gift buyers behave differently from regular buyers. They often don't know the recipient's address, they want the price hidden, and they want a note included. When there's nowhere to type that note, one of three things happens:
- They abandon the cart and buy from a store that asks.
- They order anyway and email you afterward, creating manual work.
- They order and say nothing, then the recipient opens a box with no explanation.
The third outcome is the expensive one. A gift that arrives without a note looks like a mistake, and the buyer blames your store, not their own rushed checkout.
The fix is to give the buyer a text field at the moment they're already thinking about the gift: on the cart page or in the checkout flow. Shopify gives you two no-cost ways to do it.
Option 1: Enable Order Notes on the Cart Page (No App Needed)
This is the fastest method and works on any Shopify theme.
- In your Shopify admin, go to Online Store → Themes.
- Click Customize on your live theme.
- Navigate to the Cart section (in most themes it's under the cart template, not the home page).
- Look for a setting called Show cart notes, Enable order notes, or Show order note field. The exact label varies by theme — Dawn, Refresh, and most current free themes include it.
- Toggle it on and save.
A plain text box now appears on the cart page. Whatever the customer types is saved as the order note and shows up in the Notes section of the order in your admin, and on the order confirmation email if your notification template includes it.
Two things to know before you rely on this:
- The label is generic. Customers see "Order note" or "Add a note to your order," not "Gift message." Some buyers won't connect it to gifting.
- It doesn't appear at checkout. Order notes live on the cart page. If a customer skips the cart and goes straight to checkout (common with Buy Buttons or accelerated checkout), they never see the field.
For a small store testing the waters, this is a legitimate starting point. If your theme has no cart notes setting, move to Option 2.
Option 2: Add a Gift Message Field With Cart Attributes
Cart attributes are custom fields attached to an order. Unlike order notes, they support multiple labeled fields, so you can ask separately for a gift message, a "hide prices" request, and a delivery date.
You'll need to edit your theme code. In Online Store → Themes → Edit code, open your cart template (usually sections/main-cart.liquid or sections/cart-template.liquid in current themes).
Add this inside your cart form, above the checkout button:
<p class="cart-attribute__field">
<label for="gift-message">Add a gift message (optional)</label>
<textarea id="gift-message" name="attributes[Gift message]" maxlength="200"></textarea>
</p>
<p class="cart-attribute__field">
<input type="checkbox" id="hide-prices" name="attributes[Hide prices]" value="Yes">
<label for="hide-prices">Hide prices on the packing slip</label>
</p>
Save, then preview the cart. Anything a customer types into a field named attributes[Gift message] is stored on the order and visible in the admin under Additional details.
A few practical notes:
- Keep the label explicit. "Gift message" beats "Note" every time.
- Set a character limit.
maxlength="200"keeps messages short enough to fit on a card or a packing slip line. - Don't make it required. Forcing a gift message on every order annoys non-gift buyers.
- Style it to match. A raw textarea looks broken on a polished theme. Add padding, border, and font rules that match your existing inputs.
If you'd rather not touch Liquid, apps like Cart Attributes or Order Notes in the Shopify App Store add these fields through the theme editor. Check current pricing and reviews before installing, since free tiers and feature sets change.
How to Show Gift Messages on the Order Confirmation and Packing Slip
Collecting the message is half the job. It has to reach the person packing the box and the buyer's inbox.
On the packing slip: Shopify's default packing slip template already loops through order attributes. If you're using cart attributes, the message should print automatically. If it doesn't, open Settings → Notifications → Packing slip and confirm the template includes the attributes loop:
{% for attribute in order.attributes %}
<p><strong>{{ attribute.first }}:</strong> {{ attribute.second }}</p>
{% endfor %}
On the order confirmation email: This is a separate template and often needs its own edit, covered in the next section.
In your admin: Order notes appear under Notes; cart attributes appear under Additional details. Train whoever fulfills orders to check both before sealing a box.
| Method | Where it appears | Setup effort | Shows at checkout |
|---|---|---|---|
| Order notes | Cart page, order admin, packing slip | Theme setting toggle | No |
| Cart attributes | Cart page, order admin, packing slip, confirmation email | Code edit or app | No |
| Gift message app | Cart, checkout, confirmation, packing slip | App install and config | Often yes |
Editing Shopify's Order Confirmation Email to Display Gift Notes
Go to Settings → Notifications → Order confirmation and click Edit code.
For cart attributes, add this where you want the message to appear, typically after the order summary:
{% if order.attributes.size > 0 %}
<h3>Gift details</h3>
{% for attribute in order.attributes %}
<p><strong>{{ attribute.first }}:</strong> {{ attribute.second }}</p>
{% endfor %}
{% endif %}
For order notes, use {{ order.note }} wrapped in an {% if order.note %} check so blank notes don't leave an empty heading.
Click Preview to see how it renders with sample data, then Save. Send yourself a test order to confirm the real output matches.
Testing Your Gift Message Setup Before You Go Live
Run this checklist on a live test order, not just the theme preview:
- Place an order as a customer would, from product page through to confirmation.
- Enter a message with an apostrophe, an ampersand, and an emoji to check nothing breaks the template.
- Confirm the message appears in the admin under Additional details or Notes.
- Open the confirmation email and verify the message renders correctly, not as raw code.
- Print or preview the packing slip and check the message fits without overlapping the layout.
- Test on mobile. Most gift buyers are on a phone, and textareas often render poorly on small screens.
- Test with a blank message to confirm the section hides cleanly.
If a step fails, fix it before you announce the feature. A gift message field that silently drops messages is worse than no field at all.
Limitations of the No-App Method (and When to Upgrade)
The free methods have real ceilings:
- No checkout-page field. Cart attributes only work on the cart page. Stores using Buy Buttons, product-page checkouts, or accelerated payment methods lose the field entirely.
- No validation. Customers can type anything, including nothing useful, and you have no way to prompt them.
- No per-item messages. If someone buys three gifts in one order, all three get the same message.
- No automation. Nothing prints a card, applies gift wrap pricing, or hides prices automatically. Your team still does that by hand.
- Theme fragility. Theme updates can overwrite your Liquid edits. Keep a copy of your changes.
Upgrade to a dedicated gift message app when any of these apply: you sell high volumes of gifts, you need per-item messages, you want the field on the checkout page, or you want gift wrap as a paid add-on. Apps in this category include Gift Note, Gift Wrap, and similar tools — check the Shopify App Store for current pricing, since plans change and most charge by order volume.
For a store doing a handful of gift orders a week, the native method is usually enough. For a store where gifting is the core use case, the app pays for itself in saved support time.
Conclusion
Adding a gift message to your Shopify order confirmation is a two-part job: collect the message on the cart page using order notes or cart attributes, then make sure it renders on the confirmation email and packing slip. The native method costs nothing and takes under an hour to set up. Test it thoroughly, and upgrade to an app only when you hit the limitations that matter to your store.
FAQ
Does Shopify have a built-in gift message field at checkout? No. Shopify supports order notes and cart attributes on the cart page, but there's no native gift message field inside the checkout itself. Getting a field onto the checkout page requires an app or a Shopify Plus checkout customization.
Will the gift message show up on the packing slip automatically? Usually yes for cart attributes, since the default packing slip template loops through order attributes. Order notes may need a manual edit to the packing slip template. Always print a test slip to confirm.
Can customers add a gift message after they've already placed the order? Not from their end. They'd have to contact you, and you'd add the note manually in the order admin under Notes. This is exactly the workflow a cart-page gift field is designed to prevent.