Skip to main content

Understanding Parent and Child Orders in Storefronts

Updated over a week ago

When your organization uses a Zest Storefront to send corporate gifts, every order creates two linked records: a Parent Order and one or more Child Orders.

Understanding how these work together helps you manage fulfillment, reconcile financials, and support your recipients with confidence — all without any engineering help.

Before you start:

  • You have a Zest Storefront set up for your organization.

  • You have access to your Shopify admin and your Zest Dashboard.

  • Your fulfillment team knows your Zest order number prefix (e.g., CRZ, ZLG).

What Are Parent and Child Orders?

Parent Order: When a gifter submits an order through your storefront, Zest creates a single Parent Order to represent the entire transaction. This is the payment record — it captures who sent the gifts, how many recipients are included, and the total amount charged. Parent Orders live entirely within the Zest platform and are never sent to Shopify.

Child Orders: For each recipient in the order, Zest creates a separate Child Order. Each Child Order has its own shipping address, product selection, gift message, and tax calculation. These are the orders your fulfillment team works from — they appear in Shopify as standard orders, just like any other order you fulfill.

Why this structure? Shopify requires a single shipping address per order. Since corporate gift orders often go to many recipients at once, Zest splits them at the individual recipient level so each order flows cleanly through your existing Shopify fulfillment workflow.

How Parent and Child Orders Are Structured

Here is a simplified view of what gets created for a single corporate gift order:

ZEST DASHBOARD (internal only)

└── Parent Order: CRZ1001

├── Gifter info, billing address, payment

├── Total: $2,500.00

└── 10 recipients

SHOPIFY (visible to your fulfillment team)

├── Child Order 1 → Recipient A, 123 Main St

├── Child Order 2 → Recipient B, 456 Oak Ave

└── ... (one per recipient)

Parent Order contains:

  • Gifter's name, email, and billing address.

  • Payment method and total transaction amount.

  • Number of Child Orders.

  • Acquisition and tracking data.

  • Placeholder line items (not real products — fulfillment happens at the Child Order level).

Child Order contains:

  • Recipient's name, shipping address, and gift message.

  • Actual product details (SKUs, quantities, variants).

  • Per-recipient shipping and tax amounts.

  • A reference back to the Parent Order number.

Where Parent and Child Orders Appear (Zest vs. Shopify)

Zest Dashboard

Shopify

Parent Order

✅ Visible and searchable by order number

❌ Never pushed to Shopify

Child Orders

✅ Visible under the Parent Order

✅ Appear as standard Shopify orders

Because Parent Orders never enter Shopify, there is no risk of revenue double-counting in your Shopify reports. Only Child Orders appear in Shopify — and each Child Order represents exactly one recipient's shipment.

Note: The Zest Dashboard is the source of truth for the overall order. Use Shopify for day-to-day fulfillment operations.

How Orders Are Tagged and Linked Together

Since Shopify has no native parent-child order concept, Zest links orders through tags and metadata fields on each Child Order.

Tags added to every Child Order in Shopify:

  • zest-gift — identifies this as a Zest-powered order.

  • zest-order-{ParentOrderNumber} — links the Child Order back to its Parent (e.g., zest-order-CRZ1001). You can filter by this tag in Shopify reports and Shopify Flow.

  • zest-storefront-{storefrontSlug} — identifies which storefront generated the order.

  • Scheduled delivery date (e.g., 01-15-2025).

Order attributes visible in Shopify order detail:

  • Scheduled Date — the requested delivery date.

  • Gift From — the gifter's name.

Tip: To find all Child Orders for a given Parent Order, search Shopify using the tag zest-order-CRZ1001 (replace with your actual order number). Note that you cannot search by Child Order number in the Zest Dashboard — always use the Parent Order number there.

Additional linking methods:

Zest also stores the Parent Order reference in order notes and order attributes on each Child Order, so your ERP or fulfillment system can read it from the Shopify order JSON regardless of how your connector is configured.

Note: Some ERP connectors (e.g., Celigo for NetSuite) may not read Shopify metafields. If your connector cannot see linking data, contact your Zest account manager — Zest can push the Parent Order reference as an order attribute instead, which is always present in the Shopify order JSON.

Payment Capture and Financial Reconciliation

Payment is captured once at checkout — on the Parent Order — with a single charge to the gifter's payment method.

  • Child Orders are created in Shopify as paid orders, with revenue allocated to each recipient's shipment.

  • There are no duplicate payment processing fees.

  • The Parent Order in Zest reflects the total amount paid by the gifter.

  • Each Child Order in Shopify reflects the value attributed to that individual recipient.

Because Parent Orders never appear in Shopify, your Shopify revenue reports automatically show only Child Order values. No manual filtering is required for standard Shopify reporting.

⚠️ Fraud detection heads-up: High-value Parent Orders may trigger Shopify's fraud detection before Child Orders are created. If payment is voided before Child Orders are fulfilled, those Child Orders may proceed without captured payment. To prevent this, adjust your Shopify fraud protection settings to accommodate higher-value gift orders, or use Shopify Flow to immediately capture payment on orders tagged zest-gift before any fraud-review delay kicks in.

⚠️ Shopify Flow timing: If your Shopify Flow delays payment capture (for example, for a fraud review window), Zest may process the order before the delay fires. Update your Flow to capture payment immediately on zest-gift tagged orders, then apply your review logic separately.

Preventing Double-Counted Revenue in Reporting

For storefront (corporate) orders, double-counting is not a concern by default. Parent Orders never appear in Shopify, so Shopify reports only include Child Orders.

If you use an ERP or external reporting system:

  • Your ERP connector reads orders from Shopify and will only see Child Orders.

  • Filter or tag awareness: Child Orders carry the zest-gift and zest-order-{ParentOrderNumber} tags. Use these to group related orders in your ERP.

  • Run a test order end-to-end to confirm your connector handles Zest orders correctly before going live.

Important: For revenue timing purposes, be aware that payment is captured in Zest (via your payment processor) at checkout, while Child Orders appear in Shopify when recipients are confirmed.

For most storefront orders these happen within seconds of each other. For e-gift orders where recipients accept over days or weeks, there will be a timing gap between payment capture and Child Order creation in Shopify — this is expected behavior.

Managing Customer-facing Notifications

For storefront orders, Parent Orders never enter Shopify — so there are no Shopify order confirmation or cancellation emails triggered on the Parent Order. This keeps your gifter's inbox clean.

What notifications your gifter and recipients receive:

  • Zest sends its own confirmation and status emails to the gifter based on the Parent Order.

  • Each recipient receives their own notification email when their Child Order ships (via Shopify's standard fulfillment notifications or your Klaviyo flows).

Tips for customizing recipient notifications:

  • Use Shopify's standard order and fulfillment email templates to control what recipients see.

  • For more control, move transactional emails to Klaviyo. Child Orders trigger standard Shopify order events (created, fulfilled, etc.) that you can use to build Klaviyo flows — including gift messaging, the sender's name, and your storefront branding.

  • Contact your Zest account manager for recommended Klaviyo flow templates for corporate gifting.

Using the Zest App Block for Order Navigation

The Zest app block is a tool you can pin in your Shopify admin to make it easy for your team to navigate between Child Orders and their associated Parent Order — no searching by tags required.

How to pin the Zest app block:

  1. Navigate to any order in Shopify that was placed through Zest.

  2. Find the Zest gift details block in the order detail view.

  3. Click the three-dot menu on the block.

  4. Select Pin for all staff.

Once pinned, the block appears on all Zest orders for your entire team.

What the block displays:

  • Clickable links between Child Orders and their Parent Order (and vice versa).

  • Gift message and recipient information.

  • Refund instructions.

Tip: This is especially useful for your customer service team. When a gifter contacts you about a specific order, your team can click directly to the right Child Order instead of manually searching by tag.

Processing Refunds on Multi-Recipient Orders

Because each recipient has their own Child Order in Shopify, refunds are processed at the Child Order level.

How to refund a storefront order:

  1. Locate the specific Child Order in Shopify (use the zest-order-{ParentOrderNumber} tag or the Zest app block to find it).

  2. Process the refund directly on that Child Order in Shopify.

⚠️ Important: Do not issue refunds at the Parent Order level for corporate gifting orders. Refunds issued at the Parent (header) level in the Zest Dashboard do not automatically cancel the associated Child Orders in Shopify. If you refund at the parent level, Child Orders will remain as "unfulfilled" in your Shopify reports and fulfillment queue. Always refund at the Child Order level to ensure fulfillment status is updated correctly.

Canceling an entire order after Child Orders are created: Contact your Zest account manager. Because Child Orders are live in Shopify once created, canceling them requires coordinating both Zest and Shopify records.

Common Troubleshooting Scenarios

A Child Order is missing from Shopify

Child Orders are created in Shopify when recipient details are confirmed — typically within seconds of checkout for storefront orders. If a Child Order is missing:

  • Check the Zest Dashboard for the Parent Order status and confirm the order completed successfully.

  • Confirm the recipient's shipping details were entered correctly.

  • Occasionally, a transient Shopify API issue can prevent an order from pushing. If a Child Order has not appeared after a few minutes, contact your Zest account manager.

A Child Order is missing its tags or order attributes

Occasionally, a Shopify API timing issue can cause order attributes or tags not to be written to a specific Child Order. This is a transient issue, not a systematic one. Contact your Zest account manager to have the attributes re-applied to the affected order.

ERP is processing unexpected orders or routing orders to a problem queue

Your ERP connector should only see Child Orders (tagged zest-gift) in Shopify. If unexpected orders appear:

  • Verify your connector can read order attributes (note_attributes) from the Shopify order JSON — this is where the Parent Order reference is stored.

  • If your ERP uses a timed order sweep, note that very recent orders may not yet be fully tagged when the sweep runs. Test with a sample order to validate timing.

Revenue timing differences between your payment processor and Shopify

For most storefront orders, payment capture and Child Order creation happen within seconds. For e-gift orders where recipients accept days or weeks later, Child Orders are only created in Shopify when acceptance occurs — creating a gap between payment and Shopify order reporting. This is expected and by design.

Gifters appear as "returning customers" in Shopify analytics for first-time orders

Child Orders are associated with the gifter's existing customer record in Shopify (created when the Parent Order was processed). This can cause Shopify analytics to count the gifter as a "returning" customer even for their first gift purchase. This is a known reporting nuance being investigated.

A $0 Parent Order appears in Zest

If a customer begins a storefront order but does not complete the checkout, a $0 Parent Order may appear in Zest. Zest has a safeguard in place to block incomplete orders from proceeding, but you may still see these in your order history. No action is needed — these orders do not create Child Orders in Shopify.

Did this answer your question?