How to Add a Gift Message Field to Shopify Checkout

2026-10-04 · upselling

Why a Gift Message Field Pays Off for Your Store

Gift buyers behave differently from regular customers. They spend more per order, they shop earlier in the season, and they often abandon checkout when they can't find a way to include a note. If your Shopify store sells candles, jewelry, coffee, apparel, or anything else people buy for someone else, a gift message field is one of the highest-return small changes you can make.

The practical benefits are straightforward:

The catch is that Shopify's checkout is deliberately locked down. You can't drag a text field into it. But there are two workable approaches, and both are covered below.

Shopify Checkout Limits: What You Can and Can't Edit

Shopify restricts checkout customization for security and PCI compliance. Understanding the boundary saves you hours of frustration.

Checkout element Editable on standard plans? How
Cart page (before checkout) Yes Theme code, cart attributes, apps
Cart drawer / cart popup Yes Theme code or app
Checkout branding, logo, colors Yes Settings → Checkout
Checkout field order/labels Limited Checkout editor (some fields only)
Adding a new custom text field No (on non-Plus) Not supported natively
Checkout UI extensions Shopify Plus only Checkout extensibility APIs
Order confirmation / notification emails Yes Settings → Notifications
Packing slips Yes Order printer apps or templates

The key takeaway: on any plan below Shopify Plus, you cannot add a native text input directly inside the checkout form. What you can do is capture the gift message before checkout and carry it through as a cart attribute or line item property. Shopify then displays it on the order in admin and passes it into notification emails.

If you're on Plus, checkout UI extensions let you add a real field inside checkout. Everything below still applies for the order-display side.

Option 1: Add a Gift Note Field With a Cart Attribute (Theme Edit)

This is free and works on every plan. You add a textarea to the cart page or cart drawer, and Shopify stores it as a cart attribute that rides along with the order.

Step 1: Open your theme code. In Shopify admin, go to Online Store → Themes → Edit code. Work on a duplicate of your live theme first — click Actions → Duplicate before touching anything.

Step 2: Find your cart template. Look for sections/main-cart.liquid (Dawn and most OS 2.0 themes) or templates/cart.liquid in older themes. For a cart drawer, check snippets/cart-drawer.liquid.

Step 3: Insert the form field. Inside the cart <form> element — the one that posts to /cart — add:

<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" placeholder="Happy birthday! — from Sam"></textarea>
</p>

The attributes[Gift message] name is what makes this a cart attribute. Keep the name consistent everywhere you reference it.

Step 4: Save and test. Add a product to cart, type a message, and proceed to checkout. Complete a test order (use Shopify's Bogus Gateway or a 100% off discount code) and open the order in admin. Your message should appear in the Additional details section of the order page.

Trade-offs to know about:

Option 2: Use a Lightweight Gift Message App

If you'd rather not touch Liquid, or you need per-item notes, date scheduling, or gift wrap upsells, an app is the faster route. Several Shopify apps in this category do essentially the same job, so compare on these criteria rather than marketing copy:

Install from the Shopify App Store, then follow the app's onboarding to place its block in your theme via the theme editor (Customize → Add block). Most modern gift message apps ship as app blocks, which means no code editing.

One caution: apps that inject fields by rewriting checkout templates will break when Shopify updates checkout. Stick to apps that use cart attributes or app blocks, and check the "Last updated" date on the listing.

Step-by-Step: Testing Your Gift Message Field Before Launch

Run this checklist on a duplicate theme before publishing. It takes about fifteen minutes.

  1. Place a test order with a gift message using Shopify's Bogus Gateway (Settings → Payments → enable test mode) or a 100% discount code.
  2. Verify the field survives the cart → checkout transition. Add the message, then navigate to checkout and back to the cart. If the text disappears, your theme is re-rendering the cart via AJAX and you need to persist the value in localStorage or use an app.
  3. Check the order in admin. Confirm the message appears under Additional details or in the order notes.
  4. Check the confirmation email. Place a real test order to your own address and read the customer and merchant notification emails.
  5. Check the packing slip. Print one from the order page and confirm the note is visible to your fulfillment team.
  6. Test edge cases: empty message, 200+ characters, emoji, and special characters like < and &. Liquid auto-escapes output, but confirm nothing renders as raw HTML.
  7. Test on mobile. The cart drawer on iOS Safari behaves differently from desktop Chrome, particularly with keyboard focus and sticky footers.

Where to Display Gift Notes on Orders and Packing Slips

Capturing the message is half the job. Your fulfillment workflow has to surface it, or it does nothing.

In Shopify admin: cart attributes show automatically on the order page under Additional details. Line item properties show beneath the product name in the order's line items. No configuration needed.

In notification emails: edit Settings → Notifications → Order confirmation and add Liquid where you want the note:

{% if attributes["Gift message"] %}
  <p><strong>Gift message:</strong> {{ attributes["Gift message"] }}</p>
{% endif %}

For line item properties, loop through line_item.properties instead.

On packing slips: if you use a third-party order printer app, check whether it renders cart attributes and line item properties by default — many do, some don't. If you print directly from Shopify's order page, the note appears in the order details. For a cleaner slip, most order printer apps let you edit the template to add a bordered "Gift Message" block.

In your 3PL or fulfillment integration: if you use a warehouse or fulfillment service, confirm they receive attributes in the order payload. Some integrations only pass SKU, quantity, and shipping address. Test with one order before a busy season.

Common Mistakes That Break Checkout (and How to Avoid Them)

Conclusion

Adding a gift message field to your Shopify store doesn't require Plus or a developer — a cart attribute in your theme handles it on any plan, and a lightweight app covers per-item notes and gift wrap upsells. The work is in the details: testing that the field survives AJAX cart updates, confirming the note reaches your notification emails and packing slips, and making sure whoever packs the box actually sees it. Get those right and you'll capture more gift orders with less manual back-and-forth.

FAQ

Can I add a gift message field inside Shopify checkout without Shopify Plus? No. Shopify doesn't allow custom input fields inside checkout on standard plans. The workaround is to collect the message on the cart page or product page as a cart attribute or line item property, which then appears on the order in admin, in notification emails, and on packing slips. Shopify Plus merchants can use checkout UI extensions to add a field directly in checkout.

Should I use a cart attribute or a line item property for gift notes? Use a cart attribute when one message applies to the whole order — it's simpler and shows under Additional details on the order. Use line item properties when a customer might buy multiple gifts with different messages, since properties attach to each specific product. Some stores use both.

Will the gift message show up on my packing slip automatically? Not always. Cart attributes and line item properties display on the Shopify order page by default, but third-party order printer apps and 3PL integrations vary. Check your app's template settings or place a test order and print the slip before relying on it during a busy season.