Skip to main content

How Does the Multiship Checkout Experience Work?

Updated this week

Zest's Multiship Checkout lets your customers send products to multiple people in a single order — without any engineering work on your end. You control the experience entirely from your Shopify admin and the Zest app settings. No code required.

Before getting started, make sure you have:

  • The Zest Gift Notes app installed on your Shopify Plus store.

  • The multi-recipient feature enabled in your Zest app settings.

  • The Zest checkout extension active in your Shopify checkout editor.

Overview: What Is Multiship Checkout?

Multiship Checkout is a built-in feature of Zest Gift Notes that enhances the standard Shopify checkout flow. Instead of shipping everything to one address, customers can assign cart items to up to 10 different recipients, enter individual shipping addresses, and optionally add a personalized gift note or digital card for each person — all in a single transaction.

Payment is processed once through Shopify's native checkout. Zest creates separate Child Orders in Shopify for each recipient in the background, so your fulfillment workflow stays clean and familiar.

How Customers Access the Multiship Flow (Entry Points)

Customers enter the multi-recipient experience by clicking a button or link you've placed in your cart or checkout. This is always opt-in — customers who proceed through your regular checkout without clicking the button get the standard single-address Shopify experience.

Where the button can appear:

  • In the cart drawer or cart page (via a Shopify app block)

  • On the checkout page (via a Shopify checkout extension block)

What the button says: The default text is "Send to multiple recipients," but you can customize it in your Zest checkout extension settings in the Shopify checkout editor.

Look for the Multiship Conversion Text field.

Note: The multi-recipient flow cannot be triggered automatically based on which products are in the cart, a customer tag, or any other condition. Customers must click the button themselves.

The Checkout Experience Step by Step

Once a customer clicks the multi-recipient button, here's what they experience:

  1. Cart review: The customer sees their current cart items and a prompt to begin adding recipients.

  2. Add recipients: The customer adds up to 10 recipients, entering a name, shipping address (with address autocomplete), optional company name, and optional phone number for each.

  3. Assign products: The customer assigns cart items to each recipient (see this section below).

  4. Add gift notes: Optionally, the customer writes a personalized gift message and selects a digital card for each recipient.

  5. Select shipping: The customer picks a shipping method per recipient from your store's available Shopify shipping rates.

  6. Checkout: The customer completes a single payment through Shopify's native checkout. Zest handles splitting the order into individual Child Orders behind the scenes.

Two Common Gifting Behaviors: "Dupers" vs. "Splitters"

Your customers will naturally fall into one of two gifting styles:

  • Dupers add one item to their cart and want to send the same thing to everyone. The flow detects this automatically — if the cart has a single item with a quantity of 1, or if you've enabled Dupe-Only Mode, Zest shows a simplified experience that copies the full cart to each recipient.

  • Splitters add multiple items or quantities and want to divide them among different people. The flow shows checkboxes so the customer can assign specific products to specific recipients.

About half of shoppers fall into each category. The flow handles both automatically.

Product Assignment: Same Items vs. Different Items per Recipient

By default, customers can send different products to different recipients in a single order. During the recipient assignment step, customers use checkboxes to choose which items from their cart go to which person.

Example: A customer adds a gift set, a tote bag, and a jar of preserves to their cart. They can send the gift set and tote to one recipient while sending just the preserves to another.

What happens to unassigned items? Items not assigned to any recipient are simply excluded from the order — the customer is only charged for items they've explicitly assigned. Unassigned items do not block checkout completion.

Note: Customers cannot add entirely new products from your catalog while inside the multiship flow. They can only modify quantities of items already in their cart. If they navigate away to browse your store, all entered recipient addresses will be lost. Encourage customers to finalize their cart before starting the multiship flow.

Dupe-Only Mode: When and Why to Use It

Dupe-Only Mode (labeled in your settings as "Require sending the same products and quantities to each recipient") forces every recipient to receive an identical basket — the full cart, duplicated for each person. Per-product checkboxes are hidden, and the flow automatically copies all cart contents to each recipient.

When to enable it:

  • Shipping insurance / order protection: If you use a product like Route for order protection, its pricing is calculated on the cart value. When items are split unevenly across recipients, the per-recipient cart values differ, and the insurance calculation breaks. Dupe-Only Mode ensures uniform cart contents per recipient so the math works correctly.

  • Cart-level rules: If you use apps (like Rebuy SmartCart) that apply gift-with-purchase or minimum order rules at the cart level, those rules may not enforce correctly when items are split. Dupe-Only Mode prevents customers from gaming free-gift offers by forcing identical carts.

  • Simplicity: For brands whose gifting use case is "send the same thing to everyone," Dupe-Only Mode creates a cleaner, less confusing checkout experience.

To enable it: Go to your Zest app admin → SettingsMultishipOther Settings, and check "Require sending the same products and quantities to each recipient."

Pricing, Shipping, and Tax Calculation

Why do items show as FREE before recipients are added?

Before recipients and shipping addresses are entered, products display as $0 (or "FREE") in the checkout summary. This is expected — shipping costs and taxes vary by delivery address, and the system can't calculate accurate totals until it knows where each item is going. Once recipients are added and shipping methods are selected, correct prices, shipping costs, and taxes populate for each recipient, and the right-hand total updates accordingly.

The "FREE" label for $0-priced items is controlled by Shopify and cannot be changed.

Why is there no cart total upfront?

The multi-recipient checkout intentionally does not display a grand total until all recipients, shipping destinations, and shipping methods are confirmed. Showing a dollar total before these selections would be inaccurate. The right-hand sidebar shows item counts and per-recipient totals as they're filled in.

Shipping rates per recipient

Each recipient can have their own shipping method — for example, one recipient can receive standard shipping while another gets 2-day delivery. Zest pulls all shipping methods you've configured in Shopify and presents them per recipient during checkout.

You can add a custom shipping help message (title + description) that appears as a callout when customers select shipping methods. Configure this in your Zest app settings under Multiship → Shipping Help Text.

Product Eligibility and Restrictions

Not all products can be used with multiship checkout. The following will block the entire flow:

  • Subscription products — Any item with a selling plan (e.g., a "subscribe and save" product) is ineligible.

  • Digital gift cards — Shopify native gift card products and any product whose type matches "gift card" are ineligible.

  • Out-of-stock items — All items in the cart must be available for sale.

If a customer's cart contains an ineligible item, the multiship button will be disabled and an error message will appear. You can customize the eligibility error message in your Zest checkout extension settings to explain why multiship checkout is unavailable (for example, "Multi-recipient checkout is not available because your cart contains a subscription product.").

What is supported:

  • Products with variants (size, color, etc.)

  • Products with custom attributes or personalizations (these pass through to each Child Order)

  • Mixed carts with multiple product types

Personalization as a separate SKU

If your store implements product personalization as a separate line-item SKU (rather than a product variant or attribute), this can create a conflict during recipient assignment — the system won't know which recipient the personalization charge belongs to. If this applies to your store, consider restructuring personalization as a product variant or attribute before enabling multi-recipient checkout, or reach out to Zest support.

Printed gift note SKUs

If a printed gift note card is added to the cart as a SKU before entering the multi-recipient flow, it will be duplicated for every recipient's Child Order. The digital gift message collected inside the flow is per-recipient, but it is not tied to the physical note SKU.

Customizing the Checkout (Text, Images, Messaging)

You have several options for customizing the multiship checkout experience — all without writing any code.

Entry point button text: Customize the button label (e.g., "Send to multiple addresses," "Order for multiple recipients") in your Shopify checkout editor under the Zest extension settings → Multiship Conversion Text.

Product images in the checkout sidebar: The right-hand sidebar uses product images uploaded to your products in Shopify's admin. Keep your product images up to date in Shopify to ensure they display correctly. You can also upload custom images for shipping and tax line items.

Custom text on the checkout page: Use Shopify Checkout Blocks to add custom static text or callout messages to the checkout experience. Shopify Checkout Blocks supports conditional visibility, so you can show a block only when the multi-recipient mode is active.

Shipping help text: Add a custom title and description that appears as an alert when customers are selecting shipping methods. Configure this in Zest app settings → Multiship → Shipping Help Text.

Gift note settings: You can configure character limits, enable or disable emoji, and control what fields appear on the gift note form from your Zest checkout extension settings.

What you cannot change:

  • The "FREE" label shown for $0 items before addresses are entered — this is Shopify-controlled.

  • Certain checkout app block elements that are shared across all Zest merchants cannot be configured on a per-brand basis.

Session Timeouts and Address Persistence

Session behavior:

The multiship checkout uses Shopify's native checkout session. Child Orders are considered stale after 120 minutes of inactivity and will be cleared. If a customer's session becomes stale, they may see a prompt to refresh and re-add their recipients.

If customers encounter issues (recipients not showing, totals not updating), refreshing the checkout page typically resolves them.

Address persistence:

Recipient addresses are not saved if a customer navigates away from the checkout page (for example, going back to browse your store). All entered address information will be lost if the customer leaves checkout.

However, customers can modify item quantities within the multi-recipient flow using the "modify items and quantities" option without losing their entered addresses.

Address autocomplete:

The multiship address form includes address autocomplete powered by Google Places. This is active by default and helps customers enter shipping addresses quickly and accurately.

Troubleshooting Common Customer Confusion

My items are showing as FREE / $0

This is expected before shipping addresses are added. Remind customers to add all recipients and select shipping methods — prices will populate as they go.

I don't see a total price"

The multiship checkout shows a running total per recipient but does not show a grand total until all recipients are confirmed. This is by design.

I accidentally entered multi-recipient checkout

Customers can use their browser's back button to return to the regular cart. Alternatively, they can complete the flow with a single recipient.

My recipient addresses disappeared

If a customer navigated away from checkout to browse the store, their addresses will have been lost. They'll need to re-enter them. Encourage customers to add all items to their cart before starting the multi-recipient flow.

I can't find a product I want to add

Customers cannot add new products from inside the multi-recipient flow — only items already in the cart can be assigned. The customer needs to go back to the store, add the product, and restart the flow (note: this will clear entered addresses).

The checkout timed out / my order reset

Child Orders in the multi-recipient flow become stale after 120 minutes of inactivity. If this happens, the customer should refresh the page and re-add their recipients. For very large orders or customers who take a long time to complete checkout, encourage them to work through the flow in one sitting.

Shipping insurance isn't calculating correctly

If you use an order protection product and items are being split unevenly, consider enabling Dupe-Only Mode to ensure consistent cart values per recipient.

The multi-recipient button isn't showing

Check that the feature is enabled in your Zest checkout extension settings (enable_multiship is checked) and that the extension is active in your Shopify checkout editor. Also confirm that the customer's cart doesn't contain subscription or gift card products, which disable the button.

A/B testing isn't working inside multi-recipient checkout

Third-party A/B testing frameworks lose visibility once customers enter the multiship checkout flow. You can A/B test the entry point (showing or hiding the multi-recipient button) and measure conversion outcomes. Zest can read cart attributes from A/B testing frameworks to dynamically show or hide the module — contact Zest support for help setting this up.

Did this answer your question?