Skip to main content

Understanding Parent and Child Orders in Concierge

Updated over a week ago

When you manage corporate gifting through Zest Concierge, every multi-recipient project is organized into two tiers: a Parent Order that holds your project together, and Child Orders — one per recipient.

This structure keeps large gifting programs clean, trackable, and simple to manage.

What Are Parent and Child Orders?

Parent Orders are the top-level container for a Concierge gifting project. In Zest Concierge, Parent Orders exist only in the Zest dashboard — they are never pushed to Shopify.

Child Orders are the individual, fulfillable orders — one per recipient.

Child Orders are pushed to Shopify as standard orders, so your fulfillment team works with a familiar workflow.

Why this structure? Shopify requires one shipping address per order. Zest creates separate Child Orders for each recipient so your fulfillment team can work with standard Shopify orders — while Zest manages all the organizational complexity behind the scenes.

How Parent and Child Orders Are Structured

Here's a visual overview of how a Concierge project is organized:

Parent Order (Project: ZPS102) — lives in Zest only

├── Child Order ZPS102-C1 → Recipient 1 → pushed to Shopify

├── Child Order ZPS102-C2 → Recipient 2 → pushed to Shopify

└── Child Order ZPS102-C3 → Recipient 3 → pushed to Shopify

Parent Orders use your brand's unique 3-character order number prefix (e.g., ZPS, CRZ) followed by a sequential number. Each Child Order within the project is numbered with a -C suffix (e.g., ZPS102-C1, ZPS102-C2).

What a Parent Order contains:

  • Project name and number (e.g., ZPS102).

  • Client billing contact and email.

  • Stripe payment record.

  • Total recipient count.

  • Analytics and acquisition data.

What each Child Order contains:

  • Recipient name and shipping address.

  • Product line items (the actual products to be shipped).

  • Gift message.

  • Shipping method and allocated cost.

  • Tax amount.

  • Reference to the Parent Order project number.

Where Parent and Child Orders Appear

Zest Dashboard

Shopify Admin

Parent Order

✅ Visible and manageable

❌ Not present

Child Orders

✅ Visible and trackable

✅ Standard Shopify orders, ready for fulfillment

In Zest: You can see and manage everything — the Parent Order project, all Child Orders, recipient status, and fulfillment progress — directly from the Zest Concierge dashboard.

In Shopify: Only Child Orders appear. Each one looks and behaves like any other Shopify order: it has line items, a shipping address, and displays as Paid. Your existing fulfillment workflow works without any modification.

Searching for orders: To find a specific project in Zest, search by Parent Order number (e.g., ZPS102). In Shopify, find all Child Orders for a project by filtering on the tag zest-concierge-ZPS102.

How Orders Are Tagged and Linked Together

Shopify doesn't have a native parent-child order relationship, so Zest uses order tags, attributes, and metafields to keep everything connected — all set up automatically when orders are created.

Default tags added to every Child Order in Shopify:

Tag

What it does

zest-gift

Identifies all orders created through Zest.

zest-order-{order_number}

Links the Shopify order to its Zest order number (e.g., zest-order-ZPS102-C1).

zest-concierge-{project_number}

Links the order to its parent project (e.g., zest-concierge-ZPS102).

Scheduled ship date

The intended ship date formatted as MM-DD-YYYY.

You can also add custom tags to specific projects directly from the Zest dashboard.

Order attributes visible in Shopify's order detail view:

  • Gift From: The name of the gift sender.

  • Scheduled Date: The planned ship date.

Metafields: Zest supports writing custom metafields to Shopify orders, which is useful for ERP integrations and advanced reporting workflows. These are configurable from your account's order settings.

Tip for ERP users: Some ERP connectors may not read metafields from Shopify's order data. If that's the case for your setup, Zest can push the project number as an order attribute instead — which is always visible in the order's data. Reach out to your Zest account manager to configure this.

Your unique order number prefix: Every Zest account has a customizable 3-character prefix (e.g., CRZ, ZPS) assigned during onboarding. This prefix appears on all Parent Order and Child Order numbers and powers the zest-concierge- tag. Choose it carefully — changing the prefix later requires coordination with the Zest team.

Payment Capture and Financial Reconciliation

In Zest Concierge, payment works differently from a standard ecommerce checkout:

  1. Invoice-based billing: Your client receives a Stripe invoice through your Concierge workflow — there's no real-time online checkout. Payment is captured once at the invoice level.

  2. One payment, many recipients: A single payment covers all recipients in the project. There is only one charge to the client's payment method, with no duplicate processing fees across Child Orders.

  3. Child Orders marked as Paid in Shopify: When Child Orders are pushed to Shopify, they are immediately set to Paid status. Each Child Order includes a transaction reference linked back to the Stripe charge, so your payment records stay consistent.

  4. Stripe as your payment record: The Stripe invoice is the authoritative source for the payment. All Child Orders in Shopify reference that payment for reconciliation purposes.

Note for finance teams: There will be a timing difference between when the Stripe invoice is paid and when Child Orders appear in Shopify — Child Orders are created when recipients accept their gifts, which may be days or weeks after the invoice is settled. Use Stripe for payment dates and Shopify for fulfillment tracking.

Preventing Double-counted Revenue in Reporting

In Zest Concierge, double-counting revenue is not a concern — and here's why: Parent Orders never enter Shopify.

Since the Parent Order (the project record) only exists in the Zest dashboard, it has no presence in Shopify's order data. Only Child Orders appear in Shopify, and each Child Order represents one real, fulfillable shipment.

This means:

  • Your Shopify revenue reports automatically reflect only real recipient orders.

  • There are no extra or phantom orders cluttering your Shopify reporting.

  • Every Child Order's revenue accurately represents the value of one recipient's gift.

For ERP integrations: Most ERP connectors handle Zest Child Orders correctly out of the box since they are standard Shopify paid orders. If your system syncs Shopify orders on a timed interval (e.g., every 15 minutes), verify that it correctly routes new Child Orders to your fulfillment queue. We recommend testing with a sample order before going live with any new connector.

Managing Customer-Facing Notifications and Cancellation Emails

Zest automatically manages customer-facing communications to prevent duplicate or confusing emails.

How it works:

  • Shopify order confirmation emails are suppressed. When Zest creates Child Orders in Shopify, Shopify's default order confirmation email is turned off. Recipients will not receive a generic Shopify email that might reveal gift details before delivery.

  • Gift notifications come from Zest. Recipients receive a personalized gift notification email directly from Zest when their gift is sent.

  • Purchaser notifications come from Zest. The client who placed the Concierge order receives project updates and confirmations through Zest.

What to watch for:

  • If you use Klaviyo or a similar email platform connected to Shopify, review your automation flows to make sure they trigger on fulfillment events (like shipment confirmation) — not on order creation — to avoid sending unintended emails to recipients.

  • If you use Shopify Flow for order processing, ensure your flows are triggered by the right events for Zest Child Orders.

Common Troubleshooting Scenarios

Child Orders not appearing in Shopify

Child Orders are pushed to Shopify when recipient information is confirmed in the Concierge dashboard. If orders aren't appearing, verify that:

  • Recipient information has been fully entered and confirmed in Zest.

  • The project's scheduled ship date isn't holding orders in a pending state.

If orders still aren't appearing after confirming the above, contact Zest support — occasional transient issues can delay order creation.

Missing tags or attributes on a Child Order

In rare cases, API issues can prevent order tags or attributes from being written to a specific Child Order. This is an intermittent issue, not a systematic problem. Contact Zest support to manually re-sync the affected order.

ERP is capturing Child Orders before fulfillment starts

If your ERP syncs Shopify orders on a timed schedule, it may pick up Child Orders as soon as they're created in Shopify. This is expected behavior — Child Orders are fully valid Shopify paid orders. Confirm that your ERP is configured to correctly handle new, unfulfilled orders. If you use a connector for your ERP system, run a test order to verify that all expected order data (including tags and attributes) is visible.

$0 orders appearing in Zest or Shopify

Zest has safeguards to prevent $0 orders from reaching Shopify. If you see a $0 order in either Zest or Shopify, contact Zest support immediately to investigate.

High-value orders triggering Shopify fraud detection

Large Concierge projects can occasionally trigger Shopify's built-in fraud detection, which may delay or affect payment on Child Orders. To prevent this:

  • Review your Shopify fraud protection settings and adjust thresholds to accommodate higher-value orders.

  • Use Shopify Flow to process orders tagged zest-gift immediately upon creation to keep them moving through your workflow without delay.

If you need help configuring this, reach out to your Zest account manager.

Revenue timing differences between Stripe and Shopify

Stripe records payment when the invoice is settled. Child Orders appear in Shopify only when recipients accept their gifts — which can be days or weeks after the invoice is paid. This timing gap is expected and normal. Use Stripe as your source of truth for payment dates, and Shopify for fulfillment tracking and order-level reporting.

A project appears as multiple separate order groups

For some project configurations, Concierge may organize recipients into separate Child Order groupings based on product or recipient combinations.

Did this answer your question?