Skip to main content

How to Configure Gift Data in Shopify Order Fields

Updated this week

Gift Notes gives your brand full control over where and how gift message data appears on Shopify orders. In about five minutes, you can configure order notes, order attributes, and order metafields directly from the Gift Notes settings page. This guide walks you through every option so your gift data flows exactly where your fulfillment system needs it.

Overview: Where Gift Data Lives in Shopify Orders

When a customer places an order through Gift Notes or Multiship Checkout, Zest automatically writes gift message data to your Shopify order based on the templates you define. You choose:

  • Which fields receive gift data (order notes, order attributes, or metafields).

  • How the data is formatted using a simple template syntax.

  • What combination of fields to use — you can write to all three types simultaneously, or just one.

By default, Zest populates gift data in both the Notes section and the Additional Details section (order attributes) of a Shopify order. This dual placement ensures compatibility with different fulfillment platforms, but many brands prefer to consolidate to a single location to avoid duplicate printing on packing slips.

Important: If your packing slip template pulls from both Notes and Additional Details, gift messages may print two or three times. To fix this, remove the gift note template from one location, keeping it only where your packing slip or fulfillment system reads from.

Understanding Order Notes vs. Order Attributes vs. Order Metafields

Field Type

Where It Appears in Shopify

Best For

Order Notes

The "Notes" field at the top of the order detail page

Packing slips and fulfillment systems that read from the Shopify notes field

Order Attributes

The "Additional Details" section of the order

ShipStation and ERPs that read key-value pairs; also usable in Shopify order confirmation email templates

Order Metafields

Hidden by default; accessible via API, metafield-aware apps, or the admin if a metafield definition exists

3PLs or ERPs that require a specific namespace/key structure

When to use each:

  • Use Order Notes if your packing slip template or fulfillment system reads from the Shopify notes field. This is the most common choice for printed gift messages.

  • Use Order Attributes if your downstream tools (like ShipStation) pull from Additional Details and you want simple key-value pairs. Order attributes can also be included in Shopify's native order confirmation email templates using Liquid.

  • Use Order Metafields if your 3PL or ERP requires data in a specific namespace/key structure, or if your order notes are used for internal operational purposes and you don't want gift data mixed in.

Configuring Gift Message Field Placement

You can manage all order field settings yourself directly in the Zest app.

To access Order Fields settings:

  1. Open the Zest Gift Notes app in your Shopify admin.

  2. Navigate to Settings.

  3. Scroll to the Order Fields section.

Here you'll see three subsections: Order Note, Order Attributes, and Order Metafields.

Configuring your order note

  1. In the Order Note card, click Edit.

  2. In the template editor, type your desired format using the template variables below (e.g., To: {{to}}\nFrom: {{from}}\nMessage: {{message}}).

  3. Click Save. Changes apply to the next order immediately — no redeployment needed.

Adding order attributes

  1. In the Order Attributes card, click Add attribute.

  2. Enter a Key (the label, e.g., Gift Message).

  3. Enter a Value using template variables (e.g., {{message}}).

  4. Click Save.

You can add multiple attributes and delete any you don't need.

Adding order metafields

  1. In the Order Metafields card, click Add metafield.

  2. Enter the Namespace (e.g., custom).

  3. Enter the Key (e.g., gift_message).

  4. Enter the Value template (e.g., To: {{to}} Message: {{message}} From: {{from}}).

  5. Click Save.

Key name precision matters: The namespace and key must exactly match what your 3PL or ERP expects, including capitalization. Double-check this before saving. If you configure a key like fgw_gift_from_email but it actually contains a name (not an email), Zest will proceed with your confirmed spec but this may cause confusion downstream.

Metafields and draft orders: Metafields may not appear on Shopify draft orders until payment is collected. This is a Shopify platform limitation, not a Zest issue. If your team creates manual or phone orders with gift messages, confirm this behavior with Shopify before relying on metafields for that flow.

Formatting and Concatenating Gift Fields (To, From, Message)

Available template variables

When editing any order note, attribute, or metafield value, type {{ to see the available fields:

Variable

What It Contains

{{message}}

The gift note text written by the customer

{{to}}

The recipient's name

{{from}}

The sender's name

{{email}}

The recipient's email address

{{phone}}

The recipient's phone number

Note: Even if you exclude {{to}} and {{from}} from your Shopify order fields, those values are still captured and used in the customer-facing gift card experience. Omitting them from order templates only affects what appears in the Shopify admin and downstream systems.

Concatenating fields into one value

You can combine any number of fields into a single value by writing them together in a template:

Example — full gift message block:

To: {{to}} From: {{from}} Message: {{message}}

Example — simplified for character-limited ERPs:

{{message}} - {{from}}

You can hard-code any label text (like To:, From:, Message:) directly in the template alongside the variables.

Character count limits: Some ERPs have strict limits on order note fields. Simplify by removing labels and consolidating fields. For example, using {{message}} - {{from}} instead of To: {{to}}, Message: {{message}}, From: {{from}} saves significant character count.

Configuring Shipping Date Fields and Formats

For brands using Multiship Checkout, you can configure how and where the scheduled shipping date is written to Shopify orders.

To configure shipping date output:

  1. In the Zest app, go to Settings.

  2. Scroll to the Multiship section and click to edit Date Picker settings.

  3. Under the output options, configure where the date should be written: as an order attribute, an order metafield, or both.

Supported date formats

Format

Example Output

yyyy-MM-dd (default)

2025-12-25

MM/dd/yyyy

12/25/2025

dd/MM/yyyy

25/12/2025

For metafields, you can also configure the output type as:

  • Date — stores the value as a Shopify date type.

  • String — stores the date in one of the three formats above as plain text.

  • JSON — use the template variable {{date}} to compose a custom format or wrap the date in a JSON structure.

3PL sync tip: For brands whose ERP doesn't read order tags, writing the ship date to order notes or attributes (rather than relying solely on tags) ensures the date syncs correctly to your fulfillment system.

Matching Field Configuration to Your Fulfillment System (3PL/ERP)

The key to a smooth integration is mapping Zest's output to exactly the field your fulfillment system reads.

Steps to identify the right mapping:

  1. Screenshot an existing gift order in your fulfillment system (ShipStation, NetSuite, etc.).

  2. Note the exact field names and formatting it expects for gift data.

  3. Open Order Fields in the Zest settings and configure your templates to match.

  4. Place a test order and verify the data appears correctly end-to-end.

Common integrations:

  • ShipStation — typically reads order notes and order attributes (Additional Details).

  • NetSuite / QuickBooks — typically reads order notes, but custom field mapping may be required.

  • Custom 3PL APIs — usually expect a specific metafield namespace/key structure.

Third-party app conflicts: If your store uses another Shopify app that also writes to order notes or attributes (such as a special instructions field), its data may conflict with Zest's. If this happens, reach out to Zest support — we may need collaborator access to investigate whether the conflict is with a native Shopify field or a third-party app before recommending an alternative routing.

Adding Gift Data to Shopify Email Templates Using Liquid Code

You can include gift message data in Shopify's native order confirmation or notification emails using Liquid code. This requires light editing of your Shopify email templates.

Prerequisites: Order attributes are used for this — not metafields. If you want gift data in email templates, make sure your gift message is configured as an order attribute.

Sample Liquid snippet for order confirmation emails

A developer can add conditional Liquid logic like the following to your order confirmation template in Shopify:

{% assign gift_message = "" %} {% for attr in order.attributes %}   {% if attr.name == "Gift Message" %}     {% assign gift_message = attr.value %}   {% endif %} {% endfor %}  {% if gift_message != "" %}   <p><strong>Gift Message:</strong> {{ gift_message }}</p> {% endif %}

Replace "Gift Message" with the exact key name you configured in the Order Attributes section of the Zest settings.

Metafields cannot be used here: Shopify's native email template editor does not support reading order metafields. Use order attributes if email inclusion is required.

Formatting in metafield values: If your 3PL prints gift messages from a metafield, be aware that special characters or line break sequences (like \n) may or may not be interpreted depending on your 3PL's system. Test a sample order to confirm which formatting your vendor supports.

Troubleshooting Common Issues (Duplicates, Overwrites, Missing Data)

Gift message prints multiple times on packing slips

Cause: Gift data is configured in both Order Notes and Order Attributes, and your packing slip template reads from both locations.

Fix: Remove the gift note template from one location in the Zest Order Fields settings — keep it only where your packing slip template reads from.

Gift data is overwriting internal order notes

Cause: Your team uses the Shopify order notes field for operational notes, and Zest is writing gift data there too.

Fix: In the Order Fields settings, remove the Order Note template and add the gift data as an order attribute or metafield instead. Your operational notes field will remain free.

Gift data is missing in my fulfillment system

Steps to diagnose:

  1. Check the raw Shopify order in the admin — is the data visible under Notes or Additional Details?

  2. If it appears in Shopify but not in your fulfillment system, the issue is likely a field mapping mismatch. Confirm the exact field name your fulfillment system reads and update the Zest template accordingly.

  3. If data is missing entirely in Shopify, check that your Order Fields templates are saved and non-empty. Place a new test order.

Shipping date is missing in my ERP

Cause: The ship date may be configured to write to a field your ERP doesn't read (e.g., order tags only).

Fix: In the Multiship Date Picker settings, add an order attribute output for the shipping date. Most ERPs reliably read order attributes.

A metafield I configured isn't appearing

  • Confirm the namespace and key exactly match what your downstream system expects (case-sensitive).

  • If using draft orders, remember that metafields may not appear until the order is paid — this is a Shopify limitation.

  • Check whether the metafield type (Date vs. String vs. JSON) matches what your 3PL expects.

Gift data from a previous app is conflicting with Zest data

Cause: Another Shopify app is writing to the same order field.

Fix: Contact Zest support. We'll review your setup (with collaborator access if needed) and help route Zest data to a non-conflicting field.

Did this answer your question?